Das Modul
»ActiveDirectory
«
bringt 76 Cmdlets für Active Directory mit. Um jene auszufiltern, die für die Arbeit mit Benutzerkonten nützlich sind, können Sie die Powershell selber um Hilfe bitten. Das Cmdlet
»Get-Command
«
bietet mit der Wildcard-Suche sowie dem Parameter
»Type
«
eine Filterfunktion an:
get-command *user* -type cmdlet | format-table -autosize
Das Ergebnis dieser Abfrage liefert fünf Cmdlets zurück (
Listing 2
). Mit Ausnahme von
»Get-ADUserResultantPasswordPolicy
«
, das eine Ergebnissatz-Abfrage (RSOP) zu den Kennwortrichtlinien für einen Benutzer durchführt, können Sie die anderen Cmdlets für die Arbeit mit den Benutzerobjekten einsetzen. Zum Beispiel legt das Cmdlet
»New- ADUser
«
einen neuen User an. Für Änderungen von Benutzereigenschaften verwenden Sie
»Set-ADUser
«
.
Listing 2
Kommandos *user* filtern
Der folgende Befehl legt als Beispiel ein neues Benutzerkonto für den Mitarbeiter Mark Eting in der Organizational Unit Marketing an:
New-ADUser -Name "Mark Eting" -SamAccountName"MarkEting" -GivenName "Mark" -Surname "Eting"-DisplayName "Mark Eting" -Path 'OU=Marketing,OU=NYC,DC=WoodgroveBank,DC=com' -OtherAttributes@{'msDS-PhoneticDisplayName'="EtingMark"}
Der Schalter
»Name
«
übergibt den Wert für den
»CommonName
«
(CN) des Benutzers. Den angezeigten Namen legt der Schalter
»DisplayName
«
fest. Um mit dem Benutzerobjekt zu arbeiten, führen Sie das Cmdlet
»Get-ADUser
«
aus und speichern das Objekt in einer Variablen:
$User = Get-ADUser MarkEting -Properties *
Über die einzelnen Attribute des Objekts können sie jetzt auf die Werte zugreifen. Zum Beispiel überprüft
»$User.PasswordExpired
«
, ob das Kennwort des Benutzers abgelaufen ist. Das Löschen von Benutzerkonten ist entweder durch direkte Übergabe eines eindeutigen Namens oder durch Übergabe an die Pipeline möglich. Der Schalter
»Confirm
«
unterdrückt den Bestätigungsdialog des Löschvorgangs.
Remove-ADUser MarkEting -Confirm:$false Get-ADUser MarkEting | Remove-ADUser -Confirm:$false
Genau wie bei den Cmdlets für die Arbeit mit Benutzerkonten, empfiehlt es sich, die Cmdlets für die Arbeit mit den Active-Directory-Gruppen zu ermitteln. Wieder hilft das
»Get-Command
«
, dieses Mal mit dem Schalter
»Module
«
, der die Suche auf Cmdlets aus diesem Modul begrenzt. Das Ergebnis fällt umfangreicher aus als bei den Benutzerkonten (
Listing 3
).
Listing 3
Kommandos für *group*
Um zum Beispiel die Mitglieder der Gruppe
»NYC_MarketingGG
«
mit ihrem
»CommonName
«
aufzulisten, verwenden Sie diesen Befehl:
Get-ADGroupMember -Identity NYC_MarketingGG| %{$_.Name}
Um eine neuen Gruppe anzulegen, verwenden Sie das Cmdlet
»New-ADGroup
«
. Vergessen Sie dabei den Schalter
»-GroupType
«
nicht, sonst werden Sie mit einem Dialog ohne Auswahlmöglichkeiten konfrontiert. Die möglichen Werte für den Schalter sind
»Global
«
,
»Universal
«
und
»DomainLocal
«
:
New-ADGroup -GroupScope DomainLocal -Name NYC_all
Sehr einfach ist es auch, neue Mitglieder zu bestehenden Gruppen hinzuzufügen. Hier empfiehlt es sich, zuerst mit dem Cmdlet
»Get-ADUser
«
das gewünschte Benutzerkonto zu holen, um es danach mit der Pipeline an das Cmdlet
»Add-ADGroupMember
«
zu übergeben:
Get-ADUser MarkEting | %{Add-ADGroupMember NYC_MarketingGG $_}
Einfacher ist es allerdings, direkt im Aufruf des Cmdlet den Benutzernamen zu verwenden:
Add-ADGroupMember NYC_MarketingGG MarkEting
Genau so problemlos ist es, Mitglieder aus Gruppen zu entfernen:
Remove-ADGroupMember NYC_MarketingGG MarkEting -confirm:$false
Wie beim Löschen von Benutzern unterdrückt der Schalter
»Confirm
«
den Bestätigungsdialog.