gabi1305
Goto Top

Powershell: Auslesen einer CSV Datei und danach ändern eines Exchange Attributes für User

Hallo zusammen,

Ich versuche aus einer CSV Datei Namen auszulesen und dann auf einen Exchange Server ein user Attribut zu ändern.

Das Script läuft durch, aber es wird auf dem Exchange nichts geändert und auch kein Fehler ausgegeben.

Ich habe das Script angefügt, vielleicht kann sich jemand das mal anschauen und mir einen Tipp geben.

Vielen Danke

Gruß Stefan


  1. Import AD Module
Import-Module ActiveDirectory

  1. Import CSV into variable $userscsv
#$userscsv = import-csv C:\Temp\UserAccountn.csv
$users = Import-Csv -Path C:\Temp\UserAccountn.csv
  1. Loop through CSV and update users if the exist in CVS file

foreach ($user in $users) {
#Search in specified OU and Update existing attributes
Get-ADUser -Filter "Displayname -eq '$($user.displayname)'" -Properties * | Set-ADObject -replace @{ "msExchUserAccountControl" = "0"} }

Content-Key: 237909

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

Ausgedruckt am: 28.03.2024 um 23:03 Uhr

Mitglied: colinardo
Lösung colinardo 13.05.2014 aktualisiert um 17:47:11 Uhr
Goto Top
Hallo Stefan,
ich vermute stark das der Fehler beim Import mit import-csv liegt. Du gibst hier keinen Delimiter an der in der CSV-Datei verwendet wird. Das habe ich schon öfter erlebt. Fehlermeldungen bleiben hierbei dann nämlich aus!
$users = Import-Csv "C:\Temp\UserAccountn.csv" -delimiter ";"
Grüße Uwe
Mitglied: gabi1305
gabi1305 13.05.2014 um 12:16:39 Uhr
Goto Top
Hallo Uwe,

vielen Dank für den Tipp, werde es mal schnell ausprobieren.

Gruß Stefan
Mitglied: gabi1305
gabi1305 13.05.2014 um 12:18:25 Uhr
Goto Top
Hallo Uwe,

jetzt bekomme ich die Fehlermeldungen:

Import-Csv : Cannot process argument because the value of argument "name" is invalid. Change the value of the "name" ar
gument and run the operation again.
At C:\temp\sgklappt.ps1:6 char:20

back-to-top$users = Import-Csv <<<< -Path C:\Temp\UserAccountn.csv -delimiter ";"

+ CategoryInfo : InvalidArgument: (face-smile [Import-Csv], PSArgumentException
+ FullyQualifiedErrorId : Argument,Microsoft.PowerShell.Commands.ImportCsvCommand

Get-ADUser : The search filter cannot be recognized
At C:\temp\sgklappt.ps1:11 char:12

back-to-topGet-ADUser <<<< -Filter "Displayname -eq '$($user.displayname)'" -Properties * | Set-ADObject -replace @{ "msExchUs

erAccountControl" = "0"} }
+ CategoryInfo : NotSpecified: (face-smile [Get-ADUser], ADException
+ FullyQualifiedErrorId : The search filter cannot be recognized,Microsoft.ActiveDirectory.Management.Commands.Get
ADUser

Vielleicht hast du dafür auch eine Idee.

Gruß Stefan
Mitglied: colinardo
Lösung colinardo 13.05.2014 aktualisiert um 17:47:04 Uhr
Goto Top
ohne deinen kompletten Code und ein Ausschnitt deiner CSV, ist das ein Blick in die Glaskugel, aber bitte bitte bitte benutze Tags zum posten deines Codes, du siehst ja selber wie der hier sonst verunstaltet wird. Danke. Und den Delimiter musst du natürlich an den in deiner CSV-Datei verwendeten, anpassen ... Vermutlich hat deine CSV-Datei auch keine Spalte mit dem Namen Displayname - du siehst sehr viele unbekannt für uns Helfer hier.

Grüße Uwe
Mitglied: gabi1305
gabi1305 13.05.2014 um 13:40:16 Uhr
Goto Top
Das oben ist der Code und mit der CSV Datei muss ich mal schauen.

Danke mit dem Tipp mit den Tags werde ich beherzigen.

Danke für deine Mühe.

Gruß Stefan
Mitglied: colinardo
Lösung colinardo 13.05.2014 aktualisiert um 17:47:01 Uhr
Goto Top
ähm heißt das File wirklich C:\Temp\UserAccountn.csv mit dem "n" vor csv ? oder ist das vielleicht ein Schreibfehler ?
Mitglied: gabi1305
gabi1305 13.05.2014 um 14:21:01 Uhr
Goto Top
Die heißt wirklich so da diese Datei immer wieder bearbeite wird.

Ich habe das mal mit einem einzelnen User ausprobiert und das geht wenn ich das so mache.


Get-ADUser -Filter { displayName -eq "Name, Vorname"} | Set-ADObject -replace @{ "msExchUserAccountControl" = "0"}

Gruß Stefan
Mitglied: gabi1305
gabi1305 13.05.2014 um 17:46:37 Uhr
Goto Top
Hallo,

so es geht jetzt.

Ich habe einen neue CSV Datei gebastelt die nicht getrennt ist mit irgendwelchen Zeichen,

der Displayname wurde in Name geändert.

Gruß Stefan