Verwijder Alle Java-versies: Een Gids voor PowerShell-scripts

Als je Active Directory (AD) gebruikers in je domein moet vinden, is hier de Powershell Get-Aduser opdracht. Gebruikersaccounts worden toegewezen aan werknemers, serviceaccounts en andere bronnen. Voor je het weet, worden AD-gebruikersaccounts moeilijk te beheren.

Met behulp van de Get-AdUser PowerShell cmdlet, kun je AD-gebruikers op veel verschillende manieren krijgen. In dit artikel ga je een paar van die manieren leren en hoe je deze handige cmdlet kunt gebruiken.

Beheer en Rapporteer Active Directory, Exchange en Microsoft 365 met ManageEngine ADManager Plus. Download Gratis Proefversie!

Vereisten

Om de voorbeelden van de Get-AdUser cmdlet die in dit artikel worden behandeld te gebruiken, zorg ervoor dat je het volgende hebt:

Het vinden van een Gebruikersaccount met Identity

De cmdlet Get-AdUser heeft slechts één doel. Het bestaat om zoveel mogelijk opties te bieden om domeingebruikers te vinden. Als je de gebruikersnaam al weet om op te zoeken, kun je de parameter Identity gebruiken.

De parameter Identity stelt je in staat om een van de vier verschillende identificatoren op te geven.

  • distinguishedName (DN)
  • samAccountName
  • GUID
  • SID

Hieronder zie je enkele voorbeelden van het vinden van een gebruikersaccount met behulp van verschillende identificatoren. Let op dat het een reeks AD-attributen retourneert voor elk gebruikersaccount.

PS> Get-ADUser -Identity abertram


DistinguishedName : CN=Anne Bertram,OU=Marketing,DC=mylab,DC=local
Enabled           : False
GivenName         : Anne
Name              : Anne Bertram
ObjectClass       : user
ObjectGUID        : b98fd0c4-3d5d-4239-8245-b04145d6a0db
SamAccountName    : abertram
SID               : S-1-5-21-4117810001-3432493942-696130396-3142
Surname           : Bertram
UserPrincipalName : abertram@mylab.local



PS> Get-ADUser -Identity 'S-1-5-21-4117810001-3432493942-696130396-3142'


DistinguishedName : CN=Anne Bertram,OU=Marketing,DC=mylab,DC=local
Enabled           : False
GivenName         : Anne
Name              : Anne Bertram
ObjectClass       : user
ObjectGUID        : b98fd0c4-3d5d-4239-8245-b04145d6a0db
SamAccountName    : abertram
SID               : S-1-5-21-4117810001-3432493942-696130396-3142
Surname           : Bertram
UserPrincipalName : abertram@mylab.local



PS> Get-ADUser -Identity 'CN=Anne Bertram,OU=Marketing,DC=mylab,DC=local'


DistinguishedName : CN=Anne Bertram,OU=Marketing,DC=mylab,DC=local
Enabled           : False
GivenName         : Anne
Name              : Anne Bertram
ObjectClass       : user
ObjectGUID        : b98fd0c4-3d5d-4239-8245-b04145d6a0db
SamAccountName    : abertram
SID               : S-1-5-21-4117810001-3432493942-696130396-3142
Surname           : Bertram
UserPrincipalName : abertram@mylab.local

Het meest voorkomende attribuut om te gebruiken voor de parameter Identity is het attribuut samAccountName.

De filter van Get-ADUser

Als je meer dan één domeingebruiker moet vinden of geen identificator kent, gebruik dan een filter. Hiervoor heb je een paar parameters bij de hand genaamd Filter en LDAPFilter.

Elke filterparameter maakt het mogelijk voor een gebruiker om een voorwaardelijke verklaring te geven. Wanneer aan deze voorwaarde is voldaan, zal Get-AdUser gebruikersaccounts retourneren die overeenkomen met die voorwaarde.

De meest voorkomende parameter om gebruikers te filteren is Filter. De Filter parameter stelt je in staat om voorwaarden te creëren die lijken op de PowerShell Where-Object commando-filter syntax.

De parameter Filter gebruikt een taal genaamd PowerShell-expression-taal. Deze taal lijkt een beetje op wat je zou gebruiken met Where-Object, maar toch ook weer niet helemaal. Voor een uitleg over hoe je deze filter kunt gebruiken, bekijk dit artikel over Active Directory- en LDAP-filters.

Hieronder staat een voorbeeld van het gebruik van de Filter-parameter. Dit voorbeeld geeft een AD-attribuut (givenName in dit voorbeeld) en stelt een voorwaarde in. De filter staat alleen toe dat gebruikers worden geretourneerd als ze een givenName hebben die gelijk is aan Adam.

PS> Get-AdUser -Filter "givenName -eq 'Adam'"


DistinguishedName : CN=ADBertram,OU=Accounting,DC=mylab,DC=local
Enabled           : False
GivenName         : Adam
Name              : ADBertram
ObjectClass       : user
ObjectGUID        : 8ec5e2a8-1fda-42cb-9406-b1e6356dd457
SamAccountName    : ADBertram
SID               : S-1-5-21-4117810001-3432493942-696130396-3163
Surname           : Bertram
UserPrincipalName : ADBertram

DistinguishedName : CN=Hughes\, Adam,CN=Users,DC=mylab,DC=local
Enabled           : True
GivenName         : Adam
Name              : Hughes, Adam
ObjectClass       : user
ObjectGUID        : 96778db3-3dbd-4b83-9183-db111caa2791
SamAccountName    : ahughes
SID               : S-1-5-21-4117810001-3432493942-696130396-38201
Surname           : Hughes
UserPrincipalName :

De andere filteroptie is LDAPFilter, maar daar wordt in dit artikel niet op ingegaan. Voor meer informatie over de LDAPFilter en de syntax ervan, bekijk dit artikel over Active Directory- en LDAP-filters.

Het gebruik van Get-AdUser per OU

Door een identiteit of filter op te geven, retourneert PowerShell alle gebruikers in het domein die aan de criteria voldoen. Het beperkt niet op basis van OU. Je moet een “filter” instellen voor Get-AdUser om te filteren op OU met Get-Aduser -SearchBase <OU>.

Het gebruik van de parameter SearchBase stelt je in staat om te beginnen met zoeken naar een gebruikersaccount in een specifieke OU. De parameter SearchBase accepteert de distinguished name (DN) van een OU.

Bijvoorbeeld, je zou alle gebruikers in de MyUsers OU kunnen vinden zoals hieronder wordt weergegeven. Het gebruik van de Filter van * betekent dat alle gebruikersaccounts overeenkomen.

PS> Get-ADUser -Filter * -SearchBase 'OU=MyUsers,DC=domain,DC=local'

Misschien wilt u alleen gebruikersaccounts vinden in een enkele OU en alle onderliggende OUs uitsluiten. In dat geval kunt u de parameters SearchBase en SearchScope gebruiken. De parameter SearchScope bepaalt hoe diep in de OU-hiërarchie u wilt zoeken.

Bijvoorbeeld, als u alle gebruikersaccounts wilt vinden in een OU en alle onderliggende OUs, gebruikt u 1 voor de waarde van SearchScope. Als u wilt zoeken door alle onderliggende OUs en kleinkinderen, gebruikt u 2.

Hieronder staat een voorbeeld van het zoeken naar gebruikersaccounts in de OU MyUsers en alle onderliggende OUs daaronder.

PS> Get-ADUser -Filter * -SearchBase 'OU=MyUsers,DC=domain,DC=local' -SearchScope 2

Het gebruik van alternatieve referenties

Standaard wordt Get-AdUser uitgevoerd onder de context van de ingelogde gebruiker. Maar u kunt ook alternatieve referenties opgeven met de parameter Credential.

Om te authenticeren met alternatieve referenties, maakt u een PSCredential-object met behulp van Get-Credential zoals hieronder:

PS> $cred = Get-Credential
PS> Get-AdUser -Filter * -Credential $cred

Voor meer informatie over referenties, bekijk Hoe de PowerShell Get-Credential-cmdlet te gebruiken en alles over referenties.

De parameter Properties van PowerShell Get-AdUser

Wanneer u Get-AdUser uitvoert, zult u meteen zien dat slechts enkele attributen worden teruggegeven. U zult ook zien dat zelfs wanneer de uitvoer wordt doorgestuurd naar Select-Object -Property *, niet alle attributen nog steeds worden teruggegeven.

Om PowerShell te gebruiken om AD-gebruikersattributen te krijgen, gebruikt u de Property-parameter. Deze parameter accepteert één of meer door komma’s gescheiden attributen om weer te geven met de uitvoer.

Hieronder ziet u een voorbeeld van het gebruik van Get-AdUser om alle eigenschappen te vinden voor alle gebruikersaccounts met een givenName van Adam. De uitvoer is ingekort, maar u zult andere bekende attributen zien zoals e-mailadres, wachtwoordeigenschappen en meer hier.

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


AccountExpirationDate                :
accountExpires                       : 9223372036854775807
AccountLockoutTime                   :
AccountNotDelegated                  : False
AllowReversiblePasswordEncryption    : False
AuthenticationPolicy                 : {}
AuthenticationPolicySilo             : {}
BadLogonCount                        : 0
badPasswordTime                      : 0
badPwdCount                          : 0
CannotChangePassword                 : False
CanonicalName                        : mylab.local/Accounting/ADBertram
........

Beheer en rapporteer Active Directory, Exchange en Microsoft 365 met ManageEngine ADManager Plus. Download de gratis proefversie!

Samenvatting

De Get-ADUser-cmdlet is een handige opdracht om AD-gebruikersaccounts te vinden, rapporten op te bouwen en meer. Het is een geweldige manier om AD-gebruikers uit een domein te halen. Voor een uiteenzetting van Get-AdUser en alle parameters, lees de helptekst door Get-Help Get-AdUser uit te voeren.

Voor vele andere voorbeelden van hoe Get-AdUser te gebruiken, bekijk de blogpost Active Directory Scripts Galore: Come and Get It!.

Source:
https://adamtheautomator.com/get-aduser/