violak
Goto Top

Powershell Import-CSV pflege extensionAttribute

Guten Morgen,

ich möchte gerne aus einer importieren CSV Datei bei meinen AD Usern das extensionAttribute1 pflegen.

Mein Skript schaut so aus:

$import = Import-CSV -Path C:\Temp\User01.csv -Delimiter ";" -Encoding Default  


foreach($user in $import){

Set-ADUser -Identity $user.Benutzername -ADD @{extensionAttribute1 = "$user.extensionattribut1"}  

}


In der CSV sind die Spalten, Name, Nachname, Benutzername, Straße, Ort, PLZ und extensionAttribut1 enthalten.

Wenn ich nun aber das Attribut pflegen will, schreibt er mir den gesamten Inhalt der Zeile vom Benutzer in das Attribut rein.

Wenn ich aber mal mit Write-Host $user.extensionattribut1 arbeite, dann werde mir auch nur die Werte aus der Spalte ausgegeben.

Was mache ich denn da Falsch, dass das passiert?

Hat da jemand von Euch eine Idee zu?

Content-ID: 571079

Url: https://administrator.de/forum/powershell-import-csv-pflege-extensionattribute-571079.html

Ausgedruckt am: 24.12.2024 um 13:12 Uhr

144260
Lösung 144260 12.05.2020 aktualisiert um 09:57:59 Uhr
Goto Top
"$user.extensionattribut1"
Dieser Konstrukt geht so nicht. Du kannst innerhalb von Anführungszeichen keine Eigenschaften eines Objekts direkt so abrufen dazu lässt du hier einfach entweder die Anführungszeichen weg oder kapselst das in eine Subexpression innerhalb der Anführungszeichen (welche hier aber ohnehin überflüssig sind)

@{extensionAttribute1 = $user.extensionattribute1}
oder (Anführungszeichen sind hier aber sowieso überflüssig da es der Abruf einer Variable ist)
@{extensionAttribute1 = "$($user.extensionattribute1)"}  
Wenn ich nun aber das Attribut pflegen will, schreibt er mir den gesamten Inhalt der Zeile vom Benutzer in das Attribut rein.
Der Punkt ist nämlich ein String innerhalb von Anführungszeichen, deswegen muss das bei Benutzung von Anführungszeichen in eine Subexpression.
So wie es jetzt bei dir steht sieht die Powershell nur die Variable $user und als String ".extensionattribut1", und deswegen landet das ganze Objekt im Attribut weil er nur $user expandieren kann ...

Sieht man ja schon an der Syntax-Farbe

screenshot


Grundlagen "Variablen und Objekte" überprungen face-wink?
violak
violak 12.05.2020 um 10:24:24 Uhr
Goto Top
ups was so ein $ doch ausmachen kann ;).

Hab vielen Dank so klappt das face-smile