lemonjuice
Goto Top

Powershell - User aus OU in eine andere OU mit Variable verschieben

Hallo Zusammen


Ich bin gerade dabei ein Powershell Script zu schreiben. Es geht darum, nicht mehr benötigte User mit dem Script zu deaktivieren und dann in das Archiv zu verschieben welche die gleiche Baumstruktur hat wie die normale OU

Beispiel:
User aktueller Standort
CN: Yvonne, OU=Haus1, OU=Benutzer, DC=contoso, DC=com

soll nach verschoben werden

CN: Yvonne, OU= Haus1, OU= Benutzer, OU=Archiv, DC=Contoso, DC=com

Die Frage ist, wie kann ich den DN so in eine Variable packen und mit Archiv anhängen damit dies via Script läuft.

Zurzeit sieht mein Script so aus:

Vorher wird der Name durch eine Textbox eingegeben und danach führt der Script folgendes aus:

Disable-ADAccount -Identity $name
get-aduser $name| move-adobject -targetpath "ou=Archiv,ou=Benutzer,dc=do-ekkh,dc=local"

Content-ID: 278533

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

Ausgedruckt am: 26.11.2024 um 14:11 Uhr

122990
Lösung 122990 28.07.2015, aktualisiert am 29.07.2015 um 08:26:37 Uhr
Goto Top
Moin,
du nimmst den alten DN und ersetzt mit Replace den DC-Part durch einen Null-String, dann nimmst du des Weiteren noch z.B. durch Split den CN-Teil am Anfang weg.
Nun hast du den reinen Baumpfad an den du den String ",ou=Archiv,ou=Benutzer,dc=contoso,dc=com" anhängst, fertig ...

Gruß grexit
colinardo
Lösung colinardo 28.07.2015, aktualisiert am 29.07.2015 um 08:26:35 Uhr
Goto Top
Hallo Lemonjuice,
das könnte z.B. so aussehen:
$domain = 'dc=contoso,dc=com'  
$newtree = 'OU=Archiv,dc=contoso,dc=com'  
get-aduser (read-host 'Geben sie den Benutzernamen ein') | %{  
    Move-ADObject $_.DistinguishedName -TargetPath ($_.DistinguishedName -replace "(CN=[^,]*,)(.*?)$domain",('$2' + $newtree))  
}
Grüße Uwe
Lemonjuice
Lemonjuice 29.07.2015 um 08:27:04 Uhr
Goto Top
Vielen Dank euch beiden. Ich werde dies mal in den Code miteinbeziehen.