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.