Erstellen Sie Active Directory Computerberichte mit PowerShell. Um alles bezüglich Active Directory (AD)-Computerobjekten und deren Eigenschaften zu finden, verwenden wir hauptsächlich das Get-ADComputer -Cmdlet. Zum Beispiel können wir in einer Active Directory Domäne das Get-ADComputer PowerShell Cmdlet verwenden, um Informationen über Computerkontenobjekte (Server und Arbeitsstationen) zu erhalten. Dieses Cmdlet ist eines der nützlichsten zur Suche nach AD-Computern nach verschiedenen Kriterien.
Dieser Artikel behandelt die vielen Verwendungen des Get-ADComputer -Cmdlets und wie wir es in einen umfassenden und wertvollen Bericht umwandeln können.
Lassen Sie uns mit dem Artikel-Blog „Erstellen Sie Active Directory Computerberichte mit PowerShell“ beginnen.
Erstellen von Active Directory Computerberichten mit Powershell
Voraussetzungen
Wenn wir die Beispielskripte in diesem Artikel nachvollziehen möchten, stellen Sie bitte sicher, dass Sie Folgendes haben:
- Eine AD-Umgebung mit mindestens einem domänengebundenen Arbeitsplatz.
- Domänenfunktionsstufe – Windows Server 2016.
- Remote Server-Verwaltungstools (RSAT) für Active Directory auf Ihrem domänengebundenen Arbeitsplatz installiert.
- Die neuestePowerShellVersion, oder zumindestPowerShell 7.xund höher, wird benötigt, um die Skripte auszuführen.
Wie erstellt man Active Directory Computerberichte mit PowerShell? Lass es uns herausfinden.
Verständnis des Get-ADComputer Powershell-Befehls
Bevor wir beginnen, sollten wir uns mit demGet-ADComputerBefehl vertraut machen. Wir benötigen keine Domänenadministratorrechte, um Informationen aus dem Active Directory zu erhalten. Ein reguläres Benutzerkonto, das Mitglied derDomain-BenutzeroderAuthentifizierten BenutzerGruppe ist ausreichend.
Nun, der Get-Help Befehl liefert wie üblich eine Liste aller anderen Parameter für das Get-ADComputer cmdlet:
$command = Get-ADComputer
Get-Help $command
Beispieloutput:
Alternativ können wir auf die offizielle Dokumentation des Get-ADComputer Befehls zugreifenhier.
Nachdem wir die lange Liste der Parameter in unserer Befehlszeile und der Dokumentation durchgesehen haben, können wir mit dem Skripten beginnen. Denken Sie daran, der wichtigste Parameter, der den Get-ADComputer Befehl begleitet, ist der Identity Parameter.
Um Informationen über einen bestimmten Computer Konto in der Domäne zu erhalten, verwenden Sie den -Identitäts-Parameter mit seinem Namen als Argument:
Get-ADComputer -Identity DC01
Hier ist die Beispielausgabe:
DistinguishedName : CN=DC01,OU=Servers,OU=DC,OU=IT,DC=infrasos,DC=com
DNSHostName : DC01.infrasos.com
Enabled : True
Name : DC01
ObjectClass : computer
ObjectGUID : 87654321-1204-5578-0000-123462341264
SamAccountName : DC01
SID : S-1-5-21-123656780-1234667890-0986654321-1264
Als Ergebnis hat das Get-ADComputer Cmdlet nur die grundlegenden Eigenschaften des Computerobjekts von AD zurückgegeben. Das Ausführen des obigen Befehls liefert jedoch nur die oberste Ebene der Informationen über das Computerobjekt. Wenn wir jedoch tiefer eintauchen und die verfügbaren Eigenschaften des Objekts anzeigen möchten, können wir den -Eigenschaften Parameter verwenden.
Um alle Eigenschaften des Objekts aufzulisten, fügen Sie den -Eigenschaften Parameter hinzu und fügen Sie einen Wert von Asterisk (*) hinzu. Der Asterisk-Wert ist der Platzhalterwert, der ALLE angibt:
Get-ADComputer -Identity DC01 -Properties *
Beispiel-Ausgabe:
Andererseits können wir innerhalb der Active Directory-Benutzer- und Computerkonsole (oder dsa.msc) navigieren und die Eigenschaften von dort aus anzeigen. Wählen Sie schließlich ein Computerobjekt aus und navigieren Sie zum Eigenschafteneditor-Tab, um die Liste der Eigenschaften des Computerobjekts anzuzeigen.
Filtern der Get-ADComputer-Ergebnisse
Ein Nachteil besteht darin, dass wir möglicherweise mehr Informationen zu Dingen anzeigen, die wir nicht unbedingt benötigen. Mit der PowerShell-Pipeline können wir mit dem Get-ADComputer-Cmdlet bestimmte Computereigenschaften in der Befehlszeile anzeigen. Beispielsweise können wir nur Werte der Eigenschaften Name und LastLogonDate in der Ausgabe belassen, indem wir den Befehl Format-Table in die Hauptsyntax einbinden:
Get-ADComputer -Identity DC01 -Properties * | Format-Table Name, LastLogonDate -Autosize
Beispielausgabe:
Wenn wir den Parameter AutoSize angeben, berechnet Windows PowerShell bei der Ausführung des Befehls Format-Table die Spaltenbreiten basierend auf den tatsächlich angezeigten Daten. Insgesamt macht dieser Parameter die Spalten lesbar.
Allerdings sucht der vorherige Befehl nur nach einem einzelnen AD-Computergegenstand. Daher können wir, wenn wir Informationen zu allen Computern im Bereich wünschen, das Identity -Argument durch Filter:
Get-ADComputer -Filter * -Properties * | Format-Table Name, Created -Autosize
den Beispielausgaben folgen:
Wir erhalten eine einfach formatierte Tabelle, die nur zwei Felder enthält: den Computernamen und das Erstellungsdatum des Objekts. Wir können weitere Spalten des Computerobjekts aus AD zu dieser Tabelle hinzufügen, indem wir Eigenschaften im Format-Table -Abschnitt des Pipelines hinzufügen.
Grundsätzlich können wir, um Informationen über die Computerobjekte in einer bestimmten Organizational Unit (OU) abzurufen, das –SearchBase -Argument verwenden:
Get-ADComputer -SearchBase ‘OU=IT,DC=infrasos,DC=com’ -Filter * -Properties * | Format-Table Name, Created -Autosize
Außerdem können wir die Abfrageergebnisse auch durch Einfügen der Sort-Object cmdlet in die Pipeline:
Get-ADComputer -Filter * -Properties * | Sort-Object Created | Format-Table Name, Created -Autosize
In dem vorherigen Befehl oben sortiert der Sort-Object Befehl die Ergebnisse des Get-ADComputer zuerst nach Created und leitet sie dann an Format-Table zur Anzeige weiter.
Verwenden von Suchfiltern mit Get-ADComputer
Wir verwenden das Get-ADComputer Cmdlet’s -Filter Argument, um nach mehreren AD Computern basierend auf spezifischen Kriterien zu suchen. Wie erwähnt, können wir in diesem Fall Platzhalter und logische Vergleichsoperatoren verwenden. Sicherlich können wir als Filter nur primäre Computerobjektattribute verwenden.
Gleichermaßen verwenden wir den Where-Object -Pipe, wenn wir Suchfilter für erweiterte Computerattribute verwenden müssen. Die folgenden sind praktischere Beispiele dafür, wie man Computerobjekte im Bereich mithilfe des Get-ADComputer Cmdlets abfragen und durchsuchen kann.
Ermitteln Sie die Gesamtzahl aller aktiven und nicht blockierten Computer in Active Directory:
Wir suchen Computer mithilfe mehrerer Filter gleichzeitig. Verwenden Sie PowerShell logische Vergleichsoperatoren, um dies zu erreichen.
(Get-ADComputer -Filter {Enabled -eq "true"}).Count
Zeige alle Windows Server-Hosts im AD-Domäne an:
Get-ADComputer -Filter {OperatingSystem -Like '*Windows Server*' }
Holen Sie sich eine Liste aller Computer in einem bestimmten OU, deren Namen mit DC beginnen:
Get-ADComputer -Filter {Name -like "DC*"} -SearchBase ‘OU=IT,DC=infrasos,DC=com’ -Properties * | Format-Table Name
Beim Suchen in der OU können wir die –SearchScope1 -Parameter verwenden, um unsere Suche auf die Wurzel-OU zu beschränken. Die -SearchScope2 -Option führt eine rekursive Suche nach Computern in allen OUs durch.
Verwalten mehrerer Computer mit Get-ADComputer
Wir müssen die Foreach-Object Schleife verwenden, um eine bestimmte Aktion für alle Computer in der resultierenden Liste durchzuführen. In diesem Beispiel können wir mehrere AD-Computer remote mithilfe von Windows Management Instrumentation oder Common Information Classes abfragen:
Get-ADComputer -Filter * -Property * |
Select-Object Name,OperatingSystem |
Foreach-Object {
Get-CimInstance Win32_Bios -ComputerName $_.Name -ErrorAction SilentlyContinue |
Select-Object PSComputerName
}
Offensichtlich möchten wir in diesem Beispiel eine Liste von Windows Server-Hosts im Domäne erhalten, zusammen mit ihrem Modell und Hersteller, wir verwenden die gleiche Schleifenmethode und holen die Computer-Eigenschaften.
$Computers = Get-ADComputer -Filter {OperatingSystem -Like '*Windows Server*'}
Foreach ($Computer in $Computers){
$Hostname = $Computer.Name
$ComputerInfo = (Get-WmiObject -Computername $Hostname Win32_ComputerSystem)
$Manufacturer = $Computer.Manufacturer
$Model = $Computer.Model
Write-Output "Name: $Hostname"
Write-Output "Manufacturer: $Manufacturer"
Write-Output "Model: $Model"
Write-Output " "
}
Also, die Informationen, die aus den obigen Beispielen abgerufen wurden, sind über die Domänendienste leicht verfügbar, da diese Computer Teil von AD sind. Allerdings werden nicht alle Computer ihre Eigenschaften der Domäne bekannt geben. Wie können wir sie abrufen?
Anschließend verwenden wir das Invoke-Command. Dieses PowerShell-Cmdlet führt lokale Befehle auf dem Remotecomputer aus. Angenommen, wir müssen einen bestimmten Befehl auf allen Computern in einer bestimmten OU ausführen. In diesem Beispiel verwenden wir das Invoke-Command zum Ausführen eines Gruppenrichtlinien-Aktualisierungsbefehls auf allen Servern:
Get-ADComputer -SearchBase "OU=DC,DC=infrasos,DC=com" -Filter * |
%{ Invoke-Command -Computer $_.Name -ScriptBlock { gpupdate /force } }
Generieren Sie PowerShell AD-Berichte mit Get-ADComputer
In Windows PowerShell exportieren wir die Ausgabe unserer Befehle in mehrere Berichts-Formate. Hier sind einige Beispiele unten.
Zunächst exportieren wir das Ergebnis des Get-ADComputer-Befehls in eine Textdatei:
Get-ADComputer -Filter { OperatingSystem -Like '*Windows Server 2019*' } -Properties * |
Select Name, OperatingSystem |
Format-Table -AutoSize C:\Temp\2019_servers.txt
Zweitens erhalten wir auch eine Liste aller Computer und exportieren sie in eine durch Kommas getrennte Werte(CSV)-Datei:
Get-ADComputer -Filter * -Property * |
Select-Object Name,OperatingSystem |
Export-CSV All-Computers.csv -NoTypeInformation
Drittens können wir auch unseren Bericht exportieren und eine HTML-Webseitenformat mit einer Liste aller Computer und wichtigen Eigenschaften erhalten:
Get-ADComputer -Filter * -Properties * |
Select-Object Name,OperatingSystem |
ConvertTo-Html |
Out-File C:\ps\ad_all_computers.html
Es sollte ungefähr so aussehen:
Vielen Dank, dass Sie „Active Directory Computer Reports mit PowerShell erstellen“ gelesen haben. Wir werden abschließen.
Auch lesen Azure AD-Überwachung bereitstellen
Active Directory Computer Reports mithilfe von Powershell Zusammenfassung
In diesem Artikel haben wir den Get-ADComputer-Befehl ausführlich diskutiert. Wir haben gelernt, dass wir mit diesem Befehl eine detaillierte Liste von Eigenschaften und Informationen für ein bestimmtes Gerät erhalten können. Darüber hinaus haben wir mit einer umfangreichen Liste gelernt, wie wir diese Eigenschaften filtern können, um nur die Informationen abzurufen, die wir benötigen.
Source:
https://infrasos.com/create-active-directory-computer-reports-with-powershell/