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-Key: 571079

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

Printed on: April 16, 2024 at 13:04 o'clock

Mitglied: 144260
Solution 144260 May 12, 2020 updated at 07:57:59 (UTC)
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?
Member: violak
violak May 12, 2020 at 08:24:24 (UTC)
Goto Top
ups was so ein $ doch ausmachen kann ;).

Hab vielen Dank so klappt das face-smile