Powershell ADUser Properties ändern

k0ntr

Commodore
Registriert
Okt. 2007
Beiträge
4.232
Ich habe eine Excel Datei mit AD Usern. Ihr country soll von A zu B geändert werden. Bevor 400 Einträge manuell mache, dachte ich "hey, ein Powershell Script hilft da bestimmt".

Ich kenne mich nur null aus :D Habt ihr mir eine nützliche Seite, womit ich ein Script schreiben kann. Es soll lediglich die Zeilen aus der Excel durchgehen -> überprüfen ob country schon auf B ist, wenn nicht, dann den Eintrag setzen und die nächste Zeile im Excel überprüfen.

Vielen Dank.

PS: Ich bin kein Schüler, somit auch keine Hausaufgabe :D möchte mir gerne selber auch für die Zukunft behilflich sein und frage nur nach ob jemand mit Erfahrung mir einen Tipp geben kann bevor ich stundenlange im Internet suche.
 
Im Endeffekt benötigt dein Skript folgende PS-Befehle :
1. "Import-CSV" um den Inhalt der CSV in ein Array zu importieren (Doku)
2. "Foreach"-Schleife um jeden Eintrag des Arrays zu bearbeiten (Doku)
3. "If"-Schleife um den Wert des Attributs Country zu prüfen (Doku)
4. "Set-ADUSER" CMDlet um den Wert ggf in den Benutzer zu schreiben. (Doku)

Da nur du das Format deiner Excel kennst musst du das selbst zusammenbauen.
Grundsätzlich wird die Excel ggf. auch einfach aus Powershell exportiert worden sein.

Wenn die Anzahl der AD-Konten nicht zu groß ist und du nur Wert B im Country hast (oder alle Benutzerobjekte unterhalb einer bestimmten OU nur Wert B im Countryattribut haben) kannst du das aber auch einfacher und ohne If Statements erledigen. Beispielsweise alle unterhalb der OU "Deutschland" bekommen einfach einmal den Wert geschrieben.
 
Ich habe mich falsch ausgedrückt.

Ich habe eine Excel Datei mit allen falschen countrys.

Alle country Einträge müssen zu B geändert werden. Somit fällt das IF Befehl aus.
 
kann das sein?

Import-Csv "PFAD" | foreach {Set-ADUser -Identity $_zeilenname -replace @{country="B"}
Ergänzung ()

den befehl habe ich soweit. importieren kann ich auch. mir fehlt nur noch beim foreach der richtige befehl, damit er aus der richtigen zeile alle weiteren user wiederholt.

Wenn ich in der Exceldatei eine Spalte mit BENUTZER habe. Wie sage ich im foreach, dass er nur die Spalte BENUTZER fokusieren soll und alle weiteren Zeilen bearbeiten?
Ergänzung ()

Import-Csv "PFAD" | foreach {Set-ADUser -Identity $_.spaltename -replace @{country="B"}}

hiermit hat es geklappt. Vielen Dank
 
Zuletzt bearbeitet:
Zurück
Oben