TheCracked 13 Geschrieben 23. Februar 2018 Melden Geschrieben 23. Februar 2018 Hallo Zusammen, meine CSV sieht so aus: #TYPE Selected.Microsoft.ActiveDirectory.Management.ADUser;;;;; name;samaccountname;officephone;ipphone;mobile;fax User1;User1;+49 111111;+49 11111;; User2;User2;+49 222222;+49 22222;+49 222222;+49 222222 mein Einzeiler sieht so aus: (Es wird eine CSV importiert und div. Felder werden neu beschrieben) Import-Csv -Path C:\Users\bla\Desktop\test-import.csv -Delimiter ";" | ForEach-Object {Set-ADUser -Identity $_.samaccountname -officephone $($_.officephone) -mobile $($_.mobile) -ipphone $($_.ipphone) -fax $($_ .fax)} Das Problem an meinem Import ist, dass wenn ich NULL Felder in meiner CSV habe, bekomme ich einen Fehler beim Importieren für diesen User: Set-ADUser : replace At line:1 char:90 + ... ach-Object {Set-ADUser -Identity $_.samaccountname -officephone $($_. ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (User1:ADUser) [Set-ADUser], ADInvalidOperationException + FullyQualifiedErrorId : ActiveDirectoryServer:0,Microsoft.ActiveDirectory.Management.Commands.SetADUser Gibt es eine Möglichkeit, diesen Einzeiler so zu ändern, dass die NULL Felder einfach ignoriert werden, oder muss ich hierzu mir ein Script bauen, mit jeweils einer Prüfung (wie auch immer die aussehen mag), ob das Feld was kommt NULL ist? Da ich noch nicht so viel Ahnung davon habe, hätte ich es gern in diesem Einzeiler.. Viele Grüße TC
BOfH_666 586 Geschrieben 23. Februar 2018 Melden Geschrieben 23. Februar 2018 Hast Du schon mal versucht, danach zu googeln? Du kannst Dir bestimmt vorstellen, dass Du nicht der Erste mit dieser Aufgabe bist, oder? Powershell to ignore blank or NULL entries in import-csv Bulk update of AD users properties Skip Blank Values in Import-CSV
TheCracked 13 Geschrieben 23. Februar 2018 Autor Melden Geschrieben 23. Februar 2018 Ach genau die gibt es ja auch noch :) *Memo an mich: Erst googeln* Da bei mir nur Mobile oder Fax leer sein können in der CSV nur die IF Prüfung der beiden.. Import-Csv -Path C:\Users\bla\Desktop\testimport.csv -Delimiter ";" | ForEach-Object { if($_.mobile -eq "") {$mobilee = $NULL} else {$mobilee = $_.mobile} if($_.fax -eq "") {$faxe = $NULL} else {$faxe = $_.fax} Set-ADUser -Identity $_.samaccountname -officephone $($_.officephone) -mobile $mobilee -replace @{ipphone=$($_.ipphone)} -fax $faxe}
tesso 384 Geschrieben 23. Februar 2018 Melden Geschrieben 23. Februar 2018 Das Problem sind die Leerzeichen bei den Telefonnummern. Import-Csv -Path C:\Users\bla\Desktop\test-import.csv -Delimiter ";" | ForEach-Object {Set-ADUser -Identity "$_.samaccountname" -officephone "$($_.officephone)" -mobile "$($_.mobile)" -ipphone "$($_.ipphone)" -fax "$($_.fax)"} Ist ungetestet.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden