Active Directory-Benutzer in PowerShell abfragen

  1. Installieren Sie das Active Directory-Modul
  2. Verwenden Sie das Cmdlet Get-ADUser, um Active Directory-Benutzer in PowerShell abzufragen
Active Directory-Benutzer in PowerShell abfragen

Windows PowerShell macht die Verwaltung aller Active Directory (AD)-Komponenten mühelos. Wir können alle AD-Funktionen handhaben, einschließlich der Verwaltung von Active Directory-Objekten wie Benutzern, Computern und Gruppen.

In diesem Artikel wird erläutert, wie Sie die Arbeit mit einem der Active Directory-Objekte untersuchen und das Windows PowerShell Active Directory-Modul verwenden, um Active Directory-Benutzer zu verwalten.

Installieren Sie das Active Directory-Modul

Normalerweise sollte beim Ausführen des Windows PowerShell-Befehls Install-Module das Paket von einem Remote-CDN gebracht und auf unserem Computer installiert werden.

Dennoch müssen wir mit dem Active Directory-Modul ein erforderliches Paket namens RSAT oder Remote Server Administration Tools erstellen, damit dies erfolgreich ist.

Um RSAT auf Ihrem Computer oder dem Server zu installieren, führen wir möglicherweise die folgenden PowerShell-Skripts aus.

Installieren Sie RSAT für Windows 10 und höher:

Add-WindowsCapability -Name Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0 -Online

Installieren Sie RSAT für Windows Server (mehrere Builds ab Windows Server 2008):

Install-WindowsFeature -Name "RSAT-AD-PowerShell" -IncludeAllSubFeature

Durch die Installation der RSAT-Funktion auf unserem Computer wird auch das Active Directory-Modul (AD-Modul) für PowerShell installiert, wodurch wir unsere Active Directory-Domänendienste verwalten können.

Verwenden Sie das Cmdlet Get-ADUser, um Active Directory-Benutzer in PowerShell abzufragen

Sobald das Active Directory-Modul installiert ist, können wir nun das Active Directory-Modul mit der folgenden Syntax importieren. Der Befehl Import-Module hat einen Alias namens ipmo, und wir können ihn auch als großartige Alternative beim Importieren von Modulen verwenden.

ipmo activedirectory

Der Befehl Get-ADUser ist ein Befehl, der so viele Optionen und Informationen wie möglich bereitstellt, um Domänenbenutzer zu finden. Wir können den Parameter Identität verwenden, wenn wir die NT-ID oder den zu suchenden Benutzernamen bereits kennen.

Unten sehen Sie einige Beispiele für das Auffinden eines Benutzerkontos mit verschiedenen Kennungen.

Beispielcode:

Get-ADUser -Identity jdoe101

Ausgang:

DistinguishedName : CN=John Doe,OU=IT,DC=pureorg,DC=local
Enabled           : False
GivenName         : John
Name              : John Doe
ObjectClass       : user
ObjectGUID        : b98fd0c4-3d5d-4239-8245-b04145d6a0db
SamAccountName    : jdoe101
SID               : S-1-5-21-4117810001-3432493942-696130396-3142
Surname           : Doe
UserPrincipalName : jdoe101@pureorg.local

AD-Benutzerkonten filtern

Wenn wir mehr als einen Domänenbenutzer finden müssen oder eine Kennung nicht kennen, verwenden Sie einen Filter.

Jeder Filterparameter ermöglicht es uns, bedingte Anweisungen auszuführen, die die Suchanfrage eingrenzen. Wenn diese Bedingung erfüllt ist, zeigt der Befehl Get-ADUser in diesem Fall Benutzerkonten an, die dieser Suchbedingung entsprechen.

Der Parameter zum Filtern von Benutzern wird als Filter-Parameter bezeichnet. Der Filter-Parameter ermöglicht uns aufgrund seines wörtlichen Namens, Bedingungen zu erstellen, die der Cmdlet-Filtersyntax Where-Object von Windows PowerShell sehr ähnlich sind.

Das folgende Beispiel ist ein hervorragendes Beispiel für den Parameter Filter. In diesem Beispiel wird ein Active Directory-Attribut (givenName) angezeigt und als Teil der bedingten Anweisung definiert.

Der Filter lässt Benutzer nur dann zurück, wenn sie einen givenName gleich Albert haben.

Beispielcode:

Get-ADUser -Filter "givenName -eq 'Albert'"

Ausgang:

DistinguishedName : CN=AlBernard,OU=Accounting,DC=mylab,DC=local
Enabled           : False
GivenName         : Albert
Name              :  Bernard
ObjectClass       : user
ObjectGUID        : 8ec5ef2a8-1fdb-42ab-9706-b1e6356dd456
SamAccountName    : AlBernard
SID               : S-1-5-21-4117810001-3432493942-696130396-3163
Surname           : Bernard
UserPrincipalName :  AlBernard

Benutzer in einer Organisationseinheit suchen

PowerShell gibt alle Domänenbenutzer zurück, die den Kriterien entsprechen, indem es eine Identität oder einen Filter bereitstellt. Es ist nicht auf eine Organisationseinheit oder OU beschränkt.

Wir müssen eine bedingte Anweisung für Get-ADUser einrichten, um mit dem Parameter SearchBase nach Organisationseinheit zu filtern.

Der Parameter SearchBase gibt uns die Funktionalität, mit der Suche nach einem Benutzerkonto in einer bestimmten OU zu beginnen. Der Parameter SearchBase nimmt den Distinguished Name (DN) einer Organisationseinheit an.

Beispielsweise könnten wir alle Benutzer in der Organisationseinheit Benutzer finden, wie unten gezeigt. Die Verwendung des Filters von * bedeutet, dass alle Benutzerkonten abgeglichen werden.

Beispielcode:

Get-ADUser -Filter * -SearchBase 'OU=Users,DC=domain,DC=local'

Vielleicht möchten wir nur Benutzerkonten in einer einzelnen OU finden und untergeordnete OUs ausschließen. In diesem Fall könnten wir die Parameter SearchBase und SearchScope verwenden.

Der Parameter SearchScope definiert, wie tief wir in der OU-Hierarchie suchen möchten.

Wenn wir beispielsweise alle Benutzerkonten in einer Organisationseinheit und alle untergeordneten Organisationseinheiten finden möchten, würden wir für den Wert SearchScope 1 verwenden. Wenn wir hingegen alle untergeordneten und Enkel-OUs durchsuchen möchten, würden wir 2 verwenden.

Das folgende Beispiel sucht nach Benutzerkonten in der Organisationseinheit Benutzer und allen untergeordneten OUs darunter.

Beispielcode:

Get-ADUser -Filter * -SearchBase 'OU=Users,DC=domain,DC=local' -SearchScope 2

Holen Sie sich die Eigenschaften eines Benutzers

Wenn wir Get-ADUser ausführen, sehen Sie sofort, dass nur wenige Attribute zurückgegeben werden. Sie werden auch feststellen, dass selbst wenn die Ausgabe an Select-Object -Property * weitergeleitet wird, nicht alle Details zurückgegeben werden.

Wir können den Parameter Property verwenden, um Active Directory-Benutzerattribute von Windows PowerShell abzurufen. Dieser Parameter akzeptiert ein oder mehrere durch Kommas getrennte Features, die mit der Ausgabe angezeigt werden.

Das folgende Beispielcode-Snippet verwendet den Befehl Get-ADUser, um alle Eigenschaften für alle Benutzerkonten mit einem givenName von Adam zu finden. Leider wird die Ausgabe abgeschnitten, aber Sie sehen andere bekannte Attribute wie E-Mail-Adresse, Passworteigenschaften usw.

Beispielcode:

Get-AdUser -Filter "givenName -eq 'Adam'" -Properties *

Ausgang:

AccountExpirationDate                :
accountExpires                       : 9223372036854775807
AccountLockoutTime                   :
AccountNotDelegated                  : False
AllowReversiblePasswordEncryption    : False
AuthenticationPolicy                 : {}
AuthenticationPolicySilo             : {}
BadLogonCount                        : 0
badPasswordTime                      : 0
badPwdCount                          : 0
CannotChangePassword                 : False
CanonicalName                        : mylab.local/Accounting/ADBertram
<SNIP>
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

Verwandter Artikel - PowerShell Directory