tastuser
Goto Top

Powershell Skript AD User deaktivieren und Beschreibung ändern

Hallo!

Ich möchte alle Benutzer aus einer Liste (User.txt) im Activ Directory deaktivieren und deren Beschreibung durch "Neue Beschreibung" ersetzen.

Ist das mit Powershell möglich?
Wenn ja, wie ?

Danke für die Hilfe

Content-Key: 284360

Url: https://administrator.de/contentid/284360

Printed on: April 23, 2024 at 20:04 o'clock

Member: colinardo
Solution colinardo Oct 01, 2015 updated at 12:09:33 (UTC)
Goto Top
Hallo Tastuser,
kein Hexenwerk face-wink
Angenommen deiner Usernamen stehen alle untereinander in der Textdatei:
Import-Module ActiveDirectory
gc 'C:\users.txt' | %{set-aduser $_ -Enabled $false -Description "Neue Beschreibung"}  
Grüße Uwe
Member: Tastuser
Tastuser Oct 01, 2015 at 12:16:55 (UTC)
Goto Top
Sehr gut, danke dir!!!
Kannst du mir das Skript erklären bitte?
Member: colinardo
Solution colinardo Oct 01, 2015 updated at 13:02:16 (UTC)
Goto Top
Zitat von @Tastuser:
Kannst du mir das Skript erklären bitte?
Was gibts da zu erklären face-smile ?

gc 'C:\users.txt'
Lädt die Textdatei in ein Array
Das ganze wird dann an eine For-Each Schleife gepiped:
%{set-aduser $_ -Enabled $false -Description "Neue Beschreibung"}
d.h die Befehle innerhalb der Schleife werden für jeden User ausgeführt
Innerhalb der Schleife steht in $_ der Username. Set-AdUser ändert den Kontostatus auf $false und ändert die Eigenschaft Beschreibung auf deinen neuen Text.

Das wars..
Member: Tastuser
Tastuser Oct 01, 2015 at 13:03:51 (UTC)
Goto Top
Ok danke
Mir kommt jetzt noch eine Frage.
Wenn in der Liste Namen mit ä oder ü sind, werden diese mit einem Fragezeichen dargestellt.
Wie gebe ich die Umlaute aus ?
Am besten wenn ich die Liste pber out-file exportiere
?
Member: colinardo
colinardo Oct 01, 2015 updated at 13:11:00 (UTC)
Goto Top
Zitat von @Tastuser:
Wenn in der Liste Namen mit ä oder ü sind, werden diese mit einem Fragezeichen dargestellt.
Wie gebe ich die Umlaute aus ?
Das File mit dem Parameter -encoding UTF8 einlesen, wenn es denn ein Unicode-File ohne BOM ist
gc 'C:\users.txt' -Encoding UTF8
Viele andere CMDLets wie out-file oder set-content haben den Encoding-Parameter ebenfalls.
Member: Tastuser
Tastuser Oct 01, 2015 at 13:17:21 (UTC)
Goto Top
Funktioniert leider nicht
ich versuche es so:
get-content "D:\Benutzer\Mark\Desktop\Userr.txt" -Encoding UTF8

Kann es sein, dass es nur auf den ersten Eintrag in User.txt angewand wird?
Member: Tastuser
Tastuser Oct 01, 2015 at 13:19:41 (UTC)
Goto Top
Oder muss ich es schon bei Get-ADUser einsetzen, wenn die Namen ausgelesen werden ?
Member: colinardo
Solution colinardo Oct 01, 2015, updated at Oct 08, 2015 at 08:05:50 (UTC)
Goto Top
Zitat von @Tastuser:

Funktioniert leider nicht
ich versuche es so:
get-content "D:\Benutzer\Mark\Desktop\Userr.txt" -Encoding UTF8
Du bindest das aber schon oben in die Pipe ein oder ? Und nehme mal statt UTF8 Default
 get-content "D:\Benutzer\Mark\Desktop\Userr.txt"  -Encoding Default | %{set-aduser $_ -Enabled $false -Description "Neue Beschreibung"}  
Kann es sein, dass es nur auf den ersten Eintrag in User.txt angewand wird?
Nein !

Ansonsten hat dein File ein anderes Encoding !