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:
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?
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?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 571079
Url: https://administrator.de/forum/powershell-import-csv-pflege-extensionattribute-571079.html
Ausgedruckt am: 24.12.2024 um 13:12 Uhr
2 Kommentare
Neuester Kommentar
"$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}
@{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
Grundlagen "Variablen und Objekte" überprungen ?