lupolo
Goto Top

PS Werte CSV-Datei in AD Attribut

Hallo Leute,

ich komm grad irgendwie nicht weiter. Wir müssten für jeden AD Benutzer ein AD-Attribut (scanPath) mit dem dazugehörigen CN füllen:

Beispiel: CN: Test.Person1
AD Attribut: scanPath
Der Wert soll wie folgt gefüllt werden:: \\SERVER\Scans\Test.Person1

Ohne CSV
$name="Test.Person1"  
Set-ADUser Test.Person1 -Replace @{scanPath=”\\SERVER\Scans\$name”}

Ich würde gerne eine CSV-Datei nutzen, um das für alle 300 User mit einem Klick zu machen:
2016-11-10 14_34_20-usernames.csv - excel

Also dachte ich mir das so:
$name = Import-Csv -Delimiter ";" C:\USERNAMES.csv  
 
foreach ($i in $name){
    Set-ADUser $name -Replace @{scanPath=”\\SERVER\Scans\$name”}
}

Klappt aber leider irgendwie nicht, bekomme das mit der Zählvariable leider nicht so hin face-sad

Hat da jemand eine Idee?

Content-ID: 320535

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

Ausgedruckt am: 22.11.2024 um 04:11 Uhr

131381
131381 10.11.2016 um 14:54:32 Uhr
Goto Top
Falsche Variable benutzt
Set-ADUser $i.username -Replace @{scanPath=”\\SERVER\Scans\$($i.username)"}   
Gruß
lupolo
lupolo 10.11.2016 um 15:35:01 Uhr
Goto Top
Super besten Dank.
Kannst du mir das vielleicht erläutern?

Steht dann i für den Zählwert? Oder ist $i einfach die interne Variable in der Schleife und verweist dann auf den UserName in der .csv Datei?

Grüß
lupo
131381
131381 10.11.2016 aktualisiert um 16:43:35 Uhr
Goto Top
Du importierst eine CSV-Datei als Objekt mit Eigenschaften. Bei einer CSV stellen die Spalten die Eigenschaften dar und Zeilen ein Array aus Objekten mit den Spaltennamen als Eigenschaften.
D.h. also das du mit einer FOR-Schleife über jede Zeile iterierst, und in jedem Durchlauf greifst du per Spaltename auf das jeweilige Feld der Zeile zu.


Ein
$csv = Import-Csv -Delimiter ";" C:\USERNAMES.csv   
$csv | get-member *
Zeigt dir diese Eigenschaften auch.

Denke immer daran das Powershell eine objektorientierte Scriptsprache ist die auf dem NET Framework fußt.

Gruß