So ändern Sie Benutzereigenschaften in Active Directory mithilfe von PowerShell

Die manuelle Bearbeitung von Active Directory-Benutzerattributen über das Snap-In ( dsa.msc ) kann extrem frustrierend sein, insbesondere bei Massenänderungen oder Automatisierungsversuchen. Zwar lassen sich einzelne Benutzerprofile in der GUI anpassen, doch das ist mühsam, wenn Dutzende oder Hunderte von Konten aktualisiert werden müssen. Hier kommt PowerShell ins Spiel – genauer gesagt das Set-ADUserCmdlet. Es mag etwas ungewöhnlich klingen, ermöglicht aber Massenbearbeitungen und, noch wichtiger, deren Ausführung per Skript. Bei manchen Systemen funktioniert dies sofort, bei anderen muss die Modulinstallation möglicherweise zuerst überprüft werden. Glauben Sie mir, Windows macht es einem manchmal unnötig kompliziert.

So beheben Sie Probleme mit Änderungen an Active Directory-Benutzerattributen in PowerShell

Methode 1: Sicherstellen, dass das Active Directory-Modul installiert und geladen ist

Falls die Befehle nicht funktionieren, überprüfen Sie zunächst, ob das Active Directory-Modul für PowerShell auf Ihrem Rechner installiert ist. Unter Windows Server ist es üblicherweise Teil der RSAT-AD-PowerShell- Funktion, die Sie über den Server-Manager hinzufügen. Unter Windows 10 oder neuer müssen Sie das Modul wahrscheinlich über die Befehlszeile installieren.

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

Dieser Befehl lädt das benötigte Modul herunter und installiert es. Starten Sie anschließend PowerShell neu und überprüfen Sie die Installation mit folgendem Befehl:

Import-Module ActiveDirectory

Wenn das Modul fehlerfrei geladen wird, können Sie loslegen. Falls Fehlermeldungen auftreten oder die Cmdlets nicht gefunden werden, fehlt etwas oder das Modul ist nicht korrekt installiert. In manchen Fällen müssen Sie PowerShell als Administrator ausführen oder den Computer nach der Installation neu starten. Typisch Windows, dass es einem das Leben unnötig schwer macht.

Methode 2: Verfügbare Attribute prüfen und ändern

Sobald das entsprechende Modul bereit ist, können Sie mit der Bearbeitung der Benutzerattribute beginnen. Der Get-Help Set-ADUser -Parameter *Befehl ist hilfreich, um zu sehen, was Sie ändern können. Um beispielsweise das Attribut „Titel“ eines bestimmten Benutzers zu überprüfen, führen Sie folgenden Befehl aus:

Get-ADUser -Identity M. Becker -Properties Title | Select-Object Name, Title

Um diesen Titel zu ändern, gehen Sie einfach wie folgt vor:

Set-ADUser -Identity M. Becker -Title "Junior DevOps Engineer"

Hier wird es praktisch: Sie können mehrere Attribute gleichzeitig aktualisieren, indem Sie verschiedene Parameter hinzufügen, wie z. B.E-Mail-Adresse, Abteilung oder sogar Anmeldebeschränkungen:

Set-ADUser -Identity M. Becker -EmailAddress "[email protected]" -LogonWorkstations "munx32f2r13, munx32f2r15"

Wenn Sie ein Benutzerkonto vorübergehend deaktivieren möchten, funktioniert Folgendes:

Set-ADUser -Identity M. Becker -Enabled $False

Möchten Sie ein Foto aktualisieren? Der folgende Befehl liest eine JPEG-Datei in ein Byte-Array ein und lädt sie hoch:

Set-ADUser -Identity M. Becker -Replace @{thumbnailPhoto=([byte[]](Get-Content "C:\scripts\ad\m.becker.jpg" -Encoding byte))}

Methode 3: Mehrwertige Attribute und erweiterte Bearbeitungen

Wenn Sie mehrere Elemente in einem Attribut mit mehreren Werten hinzufügen oder entfernen müssen, ist auch das möglich. Zum Beispiel das Hinzufügen mehrerer Proxy-E-Mail-Adressen:

Set-ADUser -Identity M. Becker -Add @{ProxyAddresses="smtp:[email protected]", "SMTP:[email protected]"}

Und wenn Sie ein bestimmtes Attribut löschen oder entfernen möchten, gehen Sie wie folgt vor:

Set-ADUser -Identity M. Becker -Clear "extensionAttribute5"

Das Ersetzen der Werte funktioniert folgendermaßen:

Set-ADUser -Identity M. Becker -Replace @{Title="Senior DevOps"; Company="XYZ Corp"}

So bearbeiten Sie mehrere Benutzer gleichzeitig

Wenn Sie dachten, das sei schon für einen einzelnen Benutzer umständlich, warten Sie erst, bis Sie die Optionen für die Massenbearbeitung sehen. Sie können eine gefilterte Benutzerliste an die entsprechende Funktion übergeben Set-ADUser. Um beispielsweise alle Benutzer einer bestimmten Organisationseinheit (OU) beim nächsten Anmelden zum Ändern ihres Passworts zu zwingen, gehen Sie wie folgt vor:

Get-ADUser -Filter * -SearchBase "OU=Users, OU=DE, DC=woshub, DC=loc" | Set-ADUser -ChangePasswordAtLogon $true

Um Benutzerattribute per CSV-Datei in großen Mengen zu aktualisieren – was die Verwaltung großer Gruppen revolutioniert –, erstellen Sie eine CSV-Datei mit Spalten wie SamAccountName, Titel, Mobiltelefon usw.und führen dann Folgendes aus:

Import-Csv "C:\scripts\ad\update_ad_users.csv" | ForEach-Object { Set-ADUser -Identity $_. SamAccountName -Title $_. Title -MobilePhone $_. MobilePhone }

Beachten Sie, dass diese Art der Stapelverarbeitung die Delegierung erleichtert, sodass die Personalabteilung oder andere Administratoren Aktualisierungen vornehmen können, ohne versehentlich die Domäne zu beeinträchtigen.

Wie man Informationen über den angemeldeten Computer des Benutzers erhält

Nun zu einer interessanten Funktion: Sie können Informationen über den Computer, an dem ein Benutzer angemeldet ist, direkt in sein AD-Profil einfügen. Dies ist eine nützliche Möglichkeit, nachzuverfolgen, wo Benutzer ihre Zeit verbringen. Sie können ein einfaches PowerShell-Skript zu einem Anmeldeskript hinzufügen (konfigurierbar unter Gruppenrichtlinie -> Benutzerkonfiguration -> Richtlinien -> Windows-Einstellungen -> Skripts -> Anmeldung ):

Set-ADUser -Identity $env:UserName -Description $env:COMPUTERNAME

Dadurch wird der Name des aktuellen Computers in das Attribut „Beschreibung“ des Benutzers übernommen, sodass man leicht erkennen kann, wer wo angemeldet ist. Wichtig: Auf den Benutzercomputern muss das Active Directory-Modul installiert oder über das Anmeldeskript zugänglich sein. Typisch Windows, dass es selbst die einfachsten Dinge kompliziert macht.

Bei manchen Konfigurationen empfiehlt sich die Verwendung eines anderen Attributs, beispielsweise eines der Erweiterungsattribute, falls die Beschreibung nicht ausreicht. In jedem Fall bietet es eine schnelle Möglichkeit, die Standorte der Benutzer besser einzusehen, ohne Protokolle durchsuchen oder manuelle Prüfungen durchführen zu müssen.

Zusammenfassend lässt sich sagen, dass die Verwendung von PowerShell und diesen Techniken bei richtiger Anwendung enorm viel Zeit sparen kann – insbesondere in größeren Umgebungen, wo manuelle Änderungen extrem aufwendig sind. Es ist zwar nicht perfekt, aber deutlich besser, als Dutzende von Benutzerprofilen einzeln durchzuklicken.