PowerShell – Get-ADUser, Get-ADGroup, Get-ADObject – Benutzer, Gruppen und Objekte suchen

Get-ADUser

Mit dem CmdLet Get-ADUser können Sie diverse User Informationen abfragen. Um z.B. alle User einer OU mit Vornamen und Nachnamen zu erhalten, verwenden sie folgende Option:

Get-ADUser -filter * -Searchbase “OU=OUName,DC=Domain,DC=xx” |select surname,givenname

 

Der Parameter -properties * zeigt alle Eigenschaften des Users, bzw. des Objektes. Damit können Sie z.B. den Lastlogon eines Users erhalten:

Get-ADUser Username -Properties * |Select LastLogon*

 

Ein neues Passwort setzen Sie als Securestring:

$Passwort = Read-Host -AsSecureString

************

Get-ADUser Username |Set-ADAccountPasswort -NewPassword $Password -Reset

 

Sie können natürlich die Filterfunktion weiter granulieren. Im folgenden Beispiel erhalten Sie alle gesperrten User einer OU:

Get-ADUser -filter {enabled -eq “False”} -Searchbase “OU=OUName,DC=Domain,DC=xx” |select surname,givenname

Wenn Sie wissen möchten, in welchen Gruppen der User Mitglied ist, dann Fragen sie die ADPrincipalGroupMembership ab

Get-ADuser -Filter {displayname -like “*Langlitz*”} -Properties * |Get-ADPrincipalGroupMembership

Get-ADGroup

Gleiches gilt natürlich auch für Gruppen. Dafür verwenden Sie allerdings das CmdLet Get-ADGroups:

Get-ADGroup -filter * -Searchbase “OU=OUName,DC=Domain,DC=xx”

 

Get-ADObject

Um z.B. Kontakte finden zu können, wählen Sie Get-ADObject:

Get-ADobject -filter {objectclass -eq “contact”} -Searchbase “OU=OUName,DC=Domain,DC=xx”

 

Sie können aber z.B. auch alle Objekte einer OU suchen:

Get-ADobject -filter {(objectclass -eq “contact”) -or (objectclass -eq “user”) -or (objectclass -eq “group”)} -Searchbase “OU=OUName,DC=Domain,DC=xx”

 

Wenn Sie nun alle User und Kontakte einer OU suchen, die den Namen Marco in einer Mailadresse haben, verwenden Sie folgendes:

Get-ADobject -filter {(objectclass -eq “user” -and proxyaddresses -like “*marco*”) -or (objectclass -eq “contact” -and proxyaddresses -like “*marco*”)} -Searchbase “OU=OUName,DC=Domain,DC=xx”

 

Zum Abschluss noch ein kleines Script, mit dem Sie aus einer Liste von Usern den zugehörigen DisplayName, das LastLogonDate und die PrimaryMailAddress bekommen. Die Liste der User ist eine Liste mit SamAccountName.

$list = “User1″,”User2″,”User3″,”User4″,”User5”

$result = @()
$user = “”

$user = $list | % {get-aduser -Properties * -Filter {SamAccountName -like $_}}

$user |% {
$details = “” | select DisplayName,LastLogon,PrimaryeMail
$details.DisplayName = $_.DisplayName
$details.Lastlogon = $_.lastlogondate.toshortdatestring()
$details.primaryemail = ((get-mailbox $_.samaccountname -ea si).emailaddresses | ? {$_.isprimaryaddress -match “True”}).smtpaddress
$result+=$details
}