Suchen Sie eine schnelle Möglichkeit, einen Active Directory (AD) – Bericht mit PowerShell zu erstellen? Du bist an der richtigen Stelle! In diesem Artikel erfahren Sie, wie Sie benutzerdefinierte Berichte von Benutzerkonten in Ihrer Anzeigenumgebung mit dem Cmdlet Get-ADObject erstellen.

Stellen Sie sich vor, Sie arbeiten in einem Startup-Unternehmen und erfahren, dass das Unternehmen von Investoren finanziert wurde, um das Unternehmen durch die Einstellung neuer Mitarbeiter für mehrere Positionen zu wachsen., Ihr Manager fordert Sie auf, ihr für jedes Büro einen Bericht über die Anzahl der Leiter vorzulegen, um sicherzustellen, dass der Arbeitsplatz über ausreichende Büroräume verfügt.

Normalerweise würden Sie AD-Konten manuell anzeigen, indem Sie die auf Ihrem Desktop-Computer installierte Active Directory-Anwendungskonsole für Benutzer und Computer (ADUC) verwenden. Die Verwendung von ADUC dauert jedoch durchschnittlich eine Minute pro neuen Mitarbeiter, um Informationen für jedes Anzeigenkonto zu überprüfen.,

Sie suchen schnell im Internet nach einigen Optionen und stellen fest, dass Sie das Sammeln der Anzeigenberichtsdaten mithilfe eines PowerShell-Cmdlets mit dem Namen Get-ADObjectautomatisieren können. In diesem Artikel erfahren Sie, was das Get-AdObject PowerShell-Cmdlet bewirkt und wie Sie dieses praktische AD PowerShell-Cmdlet zur Automatisierung der Berichterstellung korrekt verwenden.

Inhaltsverzeichnis

Voraussetzungen / Anforderungen

Dieser Artikel ist eine Komplettlösung mit Get-ADObject., Wenn Sie vorhaben, dies zu tun, stellen Sie sicher, dass Sie über die folgenden Voraussetzungen verfügen:

  • Angemeldet auf einem Windows 10-PC mit Domänenzugang als Benutzer mit Rechten zum Abfragen von AD-Benutzern
  • In einer Windows Server 2016-oder höheren Active Directory-Umgebung. Das Labor, mit dem Sie in diesem Artikel arbeiten werden, heißt mylab.lokal.
  • RSAT-Paket (Remote Server Administration Tools)

Quick tip: Wenn Sie RSAT nicht installiert haben und sich auf der neuesten Version von Windows 10 befinden, können Sie es schnell mit dem PowerShell-Befehl installieren.,

Get-ADObject: Es sind Optionen und Parameter

Der Hauptzweck des Cmdlets Get-ADObject besteht darin, eine Verbindung zu einem AD-Domänencontroller oder LDS-Server (Lightweight Directory Service) herzustellen und Informationen zu verschiedenen Active Directory-Objekten zurückzugeben.

Zum Abfragen von AD-Objekten verfügt das Cmdlet Get-ADObject über eine Reihe von Parametern, mit denen Sie eine Verbindung zu verschiedenen Domänencontrollern herstellen, einen globalen Katalog durchsuchen, sich über alternative Anmeldeinformationen authentifizieren und auch LDAP-Filter angeben und Objekte einschränken können, die von scope für eine Suchbasis zurückgegeben werden.,

Beachten Sie, dass das Cmdlet Get-ADObject standardmäßig nur einen einzigen Satz von 1000 Anzeigenobjekten zurückgibt. Die beste Möglichkeit, diese Konfiguration zu überschreiben, besteht darin, den Parameter ResultSetSize zu verwenden, der die maximale Anzahl der zurückzugebenden Objekte angibt. Wenn Sie alle Objekte empfangen möchten, setzen Sie diesen Parameter auf $Null (Nullwert). Dann können Sie Strg+C verwenden, um die Abfrage und Rückgabe von Objekten zu stoppen.,

Weitere Informationen zu den Parametern von Get-ADObjectfinden Sie in der Hilfedokumentation Get-ADObject.

Projektübersicht lernen

In diesem Artikel lernen Sie das Get-ADObject PowerShell-Cmdlet, indem Sie es auf ein reales Szenario anwenden. Sie lernen, indem Sie sich dem in den einleitenden Absätzen erläuterten Szenario nähern.

Das Szenario

In diesem Artikel erfahren Sie, wie Sie mit Get-ADObject zwei Berichte generieren, die an Ihren Manager gesendet werden sollen., Der erste Bericht gliedert alle Benutzerkonten in jeder Abteilung auf. Der Chef möchte separate CSV-Dateien für jede Abteilung. Die zweite Aufgabe fragt alle deaktivierten Benutzerkonten in einer bestimmten OU und ihre untergeordneten OUs ab.,

Am Ende des Artikels können Sie CSV-Dateien generieren, die wie folgt aussehen:

AD Benutzerkonten von OU
Deaktivierte Benutzerkonten

Die Anzeigenumgebung

Die Active Directory-Organisationseinheit (OU) – Struktur, mit der Sie in diesem Artikel arbeiten, sieht wie folgt aus., Sie können sehen, dass wir eine übergeordnete Abteilung OU mit drei untergeordneten OUs namens Accounting, Marketing und IT haben. In jedem dieser Kinder-OUs befinden sich zwei Enkelkind-OUs, die als Benutzer und Computer bezeichnet werden.

  • Abteilung (OU)
    – Buchhaltung (OU)
    – Benutzer
    – Computer
    – Marketing (verschachtelte OU)
    – Benutzer
    – Computer
    – IT (verschachtelte OU)
    – Benutzer
    – Computer

Verknüpfung: Sie können diese OUs mit der New-ADOrganizationalUnit PowerShell Cmdlet. Damit ein Skript schnell funktioniert, überprüfen Sie das Skript Create-OU-Structure.ps1.,

Sie arbeiten auch mit Dutzenden verschiedener AD-Benutzerkonten, die sich in jedem der Benutzer-OUs befinden, wie unten gezeigt. Diese Namen wurden zufällig ausgewählt.

  • Accounting (account_user1-5)
  • Marketing (market_user_user1-5)
  • IT (it_user1-5)

Shortcut: Wenn Sie diese Benutzerkonten innerhalb der oben genannten OUs schnell erstellen möchten, laden Sie das Skript Populate-AD_Accounts.ps1 herunter und führen Sie es aus.,

Erstellen von Active Directory-Berichten mit Get-ADObject

Genug Einführung und Hintergrundinformationen zu Get-ADObject. Lassen Sie uns endlich lernen, wie dieses PowerShell-Cmdlet in der realen Welt funktioniert!

In diesem ersten Beispiel haben Sie die Aufgabe, Ihrem Manager eine CSV-Datei mit einem Bericht für alle Benutzerkonten bereitzustellen, die in der Buchhaltungs -, Marketing-und IT-Abteilung vorhanden sind.,

Filterparameter verstehen

Der einzige erforderliche Parameter desGet-ADObject PowerShell-Cmdlets istFilter. Dies ist ein Parameter ist eine Möglichkeit, die Anzahl der zurückgegebenen Objekte zu begrenzen. Da es sich um einen erforderlichen Parameter handelt, müssen Sie ihn auch dann definieren, wenn Sie alle Objekte mit einem Platzhalterzeichen zurückgeben möchten (*). Dies weist Get-ADObject an, alle Objekte zurückzugeben.

Das einfachste Beispiel für die Verwendung des Parameters Filter besteht darin, alle Objekte in einer gesamten Anzeigendomäne wie unten zurückzugeben.,

PS51> Get-ADObject -Filter *

Sie sehen den Parameter Filter, der verwendet wird, um alle Objekte zurückzugeben und den Umfang der zurückgegebenen Objekte in diesem Artikel zu begrenzen.

Weitere Informationen zur Syntax des Parameters Filter führen Sie Get-Help about_ActiveDirectory_Filter in der PowerShell-Konsole aus.

Begrenzung des Suchbereichs mithilfe des SearchBase-Parameters

Das Beispiel, mit dem Sie arbeiten, ist ein perfekter Anwendungsfall für Get-ADObject‘s SearchBase Parameter., Mit dem Parameter SearchBase können Sie die Suchabfrage und damit die über Get-ADObject zurückgegebenen Objekte einschränken, indem Sie den Bereich auf eine bestimmte OU beschränken.

Durch die Begrenzung des Gültigkeitsbereichs wird die Zeit verkürzt, die für die Ausführung von Get-ADObject benötigt wird, indem andere OUs in AD ausgeschlossen werden und nur auf die spezifische OU abzielen, die für das Abrufen der benötigten Daten relevant ist.

Ziehen Sie in diesem Beispiel alle Anzeigenbenutzer in der übergeordneten Abteilung OU und alle untergeordneten OUs wie unten heraus. Dies gibt alle Benutzer in der Abteilung OU und in allen untergeordneten OUs zurück.,

PS51> Get-ADObject -Filter * -SearchBase 'OU=Department,DC=mylab,DC=local'

Unter Verwendung des Filterparameters

können Sie ab sofort alle Benutzerobjekte in der Abteilungs-OU und alle untergeordneten OUs abfragen. Aber das ist an dieser Stelle nicht erforderlich. Lassen Sie uns stattdessen zuerst alle Buchhaltungsbenutzer herausziehen. Eine Möglichkeit besteht darin, den Parameter Filter zu verwenden, anstatt nur einen Platzhalterwert anzugeben.

Um die Ergebnisse zu begrenzen, verwenden Sie denFilter Wert von Department -eq 'Accounting'., Dadurch werden die Ergebnisse nur auf die Objekte in der Abteilungs-OU begrenzt, für die ein AD-Abteilungsattribut auf Buchhaltung festgelegt ist.

Sie können unten sehen, dass Sie alle Objekte in der Variablen $accounting_users speichern. Dies wird später verwendet.

PS51> $accounting_users = Get-ADObject -SearchBase 'OU=Department,DC=mylab,DC=local' -Filter {Department -eq "Accounting"}

Ausgabe von AD-Objekten in eine CSV-Datei

Nachdem $accounting_users alle anwendbaren Objekte enthält, können Sie nur die Name und Department – Eigenschaften für jedes Objekt an die Export-Csv div > cmdlet., Dieses Cmdlet erstellt eine neue CSV-Datei und speichert jedes Anzeigenobjekt als Zeile.

Sie sollten jetzt eine CSV-Datei namens report_accounting_users.csv auf Ihrem Desktop sieht aus wie der Screenshot unten.

report_accounting_users.csv

Sammeln der anderen Benutzerobjekte

Nachdem Sie nun die Grundlagen der Verwendung von Get-ADObject kennen, erweitern Sie diese, um die Benutzerobjekte für die anderen Abteilungen zu finden. Sie werden das gleiche allgemeine Konzept wie zuvor verwenden.,

Suchen Sie zunächst alle Anzeigenbenutzer im Büro in San Francisco.

report_sanfrancisco_office_users.csv

Suchen Sie als nächstes alle Benutzer, die im Florida Office arbeiten. Dieses Beispiel ist etwas anders, da Sie die berechneten Eigenschaften des Cmdlets Select-Object. Auf diese Weise können Sie den Objekteigenschaftsnamen einfach von st, der von Get-ADObject stammt, in eine beschreibendere State.,

report_florida_state_users.csv

Schließlich sammeln Sie alle IT-Anwender. Verwenden Sie diesmal anstelle des Attributs Department AD den Parameter Filter, um alle Objekte mit einem Namen zu finden, der damit beginnt.

Hinweis: Anstelle von objectClass -eq 'user' im vorherigen Beispiel hätten Sie auch das Cmdlet Get-AdUser verwenden können.,

report_select_users.csv

Deaktivierte Konten mit dem LDAP-Filter

Im vorherigen Beispiel haben Sie den Parameter Filter verwendet, um die von Get-ADObjectzurückgegebenen Objekte zu begrenzen. Eine andere Möglichkeit ist die Verwendung des Parameters LDAPFilter. Dieser Parameter führt dieselbe Aufgabe aus, ermöglicht jedoch die Angabe eines Filters über eine LDAP-Abfragesuchzeichenfolge., Der Parameter LDAPFilter wird als erweiterte Option zum Durchsuchen von Active Directory angesehen.

Erstellen wir nun einen Bericht, um alle deaktivierten Benutzer in Ihrer Organisation mithilfe der Parameter LDAPFilter und SearchBase auf eine bestimmte OU abzuzielen.

Die Einstellung useraccountcontrol:1.2.840.113556.1.4.803:=2 ist ein AD-Attribut, das für alle deaktivierten Benutzer in der Active Directory NTDS-Datenbank angegeben ist. Es ist eine Möglichkeit für AD, Konten zu kennzeichnen, die nicht aktiv sind (Anmeldung ist deaktiviert)., Hier sind weitere Beispiel-LDAP-Abfragen, die Sie möglicherweise nützlich finden.

Der folgende Befehl führt den LDAP-Filterparameter aus, mit dem nur deaktivierte Benutzer angezeigt werden, und erstellt dann einen Bericht mit dem Cmdlet Export-CSV wie zuvor.

report_disabled_users.csv

Das Endergebnis

Sie sollten jetzt fünf CSV-Dateien auf Ihrem Desktop für Ihren Manager bereit haben!,

Zusammenfassung

In diesem Artikel haben Sie gelernt, wie Sie Active Directory mit dem Get-ADObject PowerShell-Cmdlet durchsuchen.

Was kommt als Nächstes?

Um das Gelernte weiter zu bringen, führen Sie diesen Prozess der Erstellung von Anzeigenberichten auf die nächste Ebene, indem Sie die Daten möglicherweise in eine Datenbank exportieren. Sobald Sie sich in einer Datenbank befinden, können Sie auf die Anzeigenberichtsdaten entweder über eine benutzerdefinierte Website oder eine Anwendung wie Microsoft SharePoint zugreifen. Dies ist nur eine Idee. Es gibt unzählige andere!,

Die Möglichkeit, Active Directory zu durchsuchen, ist ein grundlegendes Skillset, das in vielen Organisationen benötigt wird und das letztendlich Zeit für Sie und Ihr Team spart.

Weiter Lesen

  • Active Directory-Skripts in Hülle und fülle: Kommen und Erhalten Es!
  • Microsoft-Dokumentation