78370
10.04.2018, aktualisiert am 12.04.2018
7901
13
0
AD User anpassen mittels Powershell und Dateiquelle (CSV)
Hallo Forum,
nach langer Zeit hab ich mal wieder eine Frage, die mich zum verzweifeln bringt. Google und Co hat mir bis jetzt leider nicht helfen können.
Folgender Sachverhalt: Ich habe aus dem AD eine CSV gezogen mit den aktuellen Userdaten und benötigten Feldern. Diese wurde dann von der Personalabteilung bearbeitet und soll jetzt korrigiert zurück ins AD. Die Dateiquelle ist eine CSV Datei, wie beim Export. Es sollen alle Felder im AD einfach überschrieben werden.
Folgendes Script hab ich erstellt:
Dieses generiert dann folgenden Fehler:
Set-ADUser : Unter "DC=XXX-dom,DC=XXXXX,DC=de" kann kein Objekt mit der ID "XXXXX" gefunden werden.
Der User existiert natürlich im AD, es gibt auch keinen Schreibfehler in der CSV Datei, mit anderen Usern erscheint die gleiche Fehlermeldung. Die Domäne in der er sucht ist auf jeden Fall die Richtige, die Powershell ISE führe ich als DomainAdmin aus.
Habt ihr ne Idee, woran es liegt? Vielen Dank im Voraus für die Hilfe.
nach langer Zeit hab ich mal wieder eine Frage, die mich zum verzweifeln bringt. Google und Co hat mir bis jetzt leider nicht helfen können.
Folgender Sachverhalt: Ich habe aus dem AD eine CSV gezogen mit den aktuellen Userdaten und benötigten Feldern. Diese wurde dann von der Personalabteilung bearbeitet und soll jetzt korrigiert zurück ins AD. Die Dateiquelle ist eine CSV Datei, wie beim Export. Es sollen alle Felder im AD einfach überschrieben werden.
Folgendes Script hab ich erstellt:
$cv = Import-CSV c:\temp\test.csv -delimiter ';'
foreach ($User in $cv){
Set-ADUser $User.name -Add @{title = $User.title; department = $User.department; mail = $User.mail; telephoneNumber = $User.telephoneNumber; facsimileTelephoneNumber = $User.facsimileTelephoneNumber; mobile = $User.mobile; company = $User.company; streetAddress = $User.streetAddress; postalCode = $User.postalCode}
}
Dieses generiert dann folgenden Fehler:
Set-ADUser : Unter "DC=XXX-dom,DC=XXXXX,DC=de" kann kein Objekt mit der ID "XXXXX" gefunden werden.
Der User existiert natürlich im AD, es gibt auch keinen Schreibfehler in der CSV Datei, mit anderen Usern erscheint die gleiche Fehlermeldung. Die Domäne in der er sucht ist auf jeden Fall die Richtige, die Powershell ISE führe ich als DomainAdmin aus.
Habt ihr ne Idee, woran es liegt? Vielen Dank im Voraus für die Hilfe.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 370650
Url: https://administrator.de/contentid/370650
Ausgedruckt am: 22.11.2024 um 18:11 Uhr
13 Kommentare
Neuester Kommentar
$User.name
Nutze den SamAccountName statt dem Namen und statt -Add nutze besser -Replace und !Achtung! Wenn die Felder leer sein sollten bringen diese dir Fehler, die musst du dann mit dem Parameter -Clear behandeln!!Gruß Schnuffi
Zitat von @78370:
In der CSV hab ich aber nur das Feld "name", ist der SammAccountName nicht ein anderes Feld im AD oder beinhaltet es den selben Wert?
Nein das sind zwei unterschiedliche Felder!In der CSV hab ich aber nur das Feld "name", ist der SammAccountName nicht ein anderes Feld im AD oder beinhaltet es den selben Wert?
Ich wollte -Add genau aus dem Grund nutzen, weil ich gelesen hab das es mit Replace bei leeren Feldern zu Problemen kommt. Wie funktioniert dann das -Replace genau im zusammenhang mit dem Befehl -Clear? Hast Du da ein Beispiel für mich?
Set-ADUser -Instance $obj
zurückzuschreiben. Simple but effective .
Hallo BOfH,
Der name ist nur eine Eigenschaft des SAMAccountName.
grüße from it-frosch
In der CSV hab ich aber nur das Feld "name", ist der SammAccountName nicht ein anderes Feld im AD oder beinhaltet es den selben Wert?
Lies dir doch mal für einen ADUser alle Felder aus dem AD aus, ich denke dann findest du die Antwort.get-aduser SAMAccountName Properties *
Der name ist nur eine Eigenschaft des SAMAccountName.
grüße from it-frosch
Kein wunder das das nicht klappt ...wenn du die Eigenschaften des Objekts durch die des Objekts selbst ersetzt .
Hier findest du alles was du brauchst ...
New-ADUser (optional Parameter)
Hier findest du alles was du brauchst ...
New-ADUser (optional Parameter)
@{title = $User.title;
Guck doch mal genau hin, du nimmst als Daten nicht die Eigenschaften der CSV sonder die des aktuellen Objekts im AD !Noch kein Kaffee gehabt ?
Wieder falsch, ein String hat keine Eigenschaften, die Eigenschaften der Schleife fragst du mit $_.Eigenschaft ab! Genau so steht es ja eigentlich auch in dem Beitrag wo du es kopiert hast!
Du siehst Copy n' Paste bringt dich nicht weiter.
Sorry das wird mir jetzt zu blöd, ich bin raus.
Viel Erfolg, ciao.
Du siehst Copy n' Paste bringt dich nicht weiter.
Sorry das wird mir jetzt zu blöd, ich bin raus.
Viel Erfolg, ciao.