Powershell- User Export von Ad und CSV Datei Umbenennen bringt Fehler
Guten Tag an alle,
ich bin ein Anfänger in Powershell und hoffe mal hier im Forum eine Lösung zu finden.
Ich habe Zwei Skripte geschrieben:
- Ein der die User vom Active Directory exportiert, und die in einer CSV-Datei speichert
- Ein der die User von der CSV-Datei in Active Directory importiert nachdem die Datei verändert wurde.
Die beide Skripte funktionieren soweit gut.
Jetzt bekomme ich halt Fehler nachdem ich beim Export, die CSV-Datei Filter nach der Abteilung und speichere in einer zweiten und separate CSV-Datei.
Wenn ich von der Zweite Datei wieder ein Import in Active Directory mache, dann tauscht mal ";" in der CSV_Datei auf und die Inhalt von CSV können nicht gelesen werden.
Ein Debuggen Schritt zu schritt zeigt mir vor jeder Inhalte ein ";".
Ein habe sogar eine Methode hinzugefügt, der die ";" entfernen soll. Damit DisplayName, TelePhoneNumber, etc... gelesen werden. Aber bringt das ganze nicht.
Ich habe viel ausprobiert, immer nichts.
könnt ihr mir sagen, ob es überhaupt möglich nach dem Export, nachdem man gefilter hat. Die CSV-Dateien Name zu ändern? Oder ich was falsche macht.
ich würde mich freuen auf Rückmeldungen und mehr auf eine Lösung. wäre auch bereit die Skripte hochzuladen, wenn das notwendig ist. Danke
Hier ist das Skript für den Export:
<Tag>
$arec = $_.SAMAccountName+",`t`t`t`t`t`t`t"+ $_.DisplayName+",`t`t`t`t`t`t`t"+ $_.EmailAddress+",`t`t`t`t`t`t`t"+"'"+ $_.OfficePhone+",`t`t`t`t`t`t`t"+"'"+ $_.FacsimileTelephoneNumber+",`t`t`t`t`t`t`t"+ $_.StreetAddress+",`t`t`t`t`t`t`t"+ $_.l+",`t`t`t`t`t`t`t"+$_.Postalcode+",`t`t`t`t`t`t`t"+ $_.Department+",`t`t`t`t`t`t`t"+ $_.Description+","
}
</Tag>
Arsene
ich bin ein Anfänger in Powershell und hoffe mal hier im Forum eine Lösung zu finden.
Ich habe Zwei Skripte geschrieben:
- Ein der die User vom Active Directory exportiert, und die in einer CSV-Datei speichert
- Ein der die User von der CSV-Datei in Active Directory importiert nachdem die Datei verändert wurde.
Die beide Skripte funktionieren soweit gut.
Jetzt bekomme ich halt Fehler nachdem ich beim Export, die CSV-Datei Filter nach der Abteilung und speichere in einer zweiten und separate CSV-Datei.
Wenn ich von der Zweite Datei wieder ein Import in Active Directory mache, dann tauscht mal ";" in der CSV_Datei auf und die Inhalt von CSV können nicht gelesen werden.
Ein Debuggen Schritt zu schritt zeigt mir vor jeder Inhalte ein ";".
Ein habe sogar eine Methode hinzugefügt, der die ";" entfernen soll. Damit DisplayName, TelePhoneNumber, etc... gelesen werden. Aber bringt das ganze nicht.
Ich habe viel ausprobiert, immer nichts.
könnt ihr mir sagen, ob es überhaupt möglich nach dem Export, nachdem man gefilter hat. Die CSV-Dateien Name zu ändern? Oder ich was falsche macht.
ich würde mich freuen auf Rückmeldungen und mehr auf eine Lösung. wäre auch bereit die Skripte hochzuladen, wenn das notwendig ist. Danke
Hier ist das Skript für den Export:
<Tag>
- Die Spalten SAMAccountName,DisplayName,EmailAddress,OfficePhone,Department und Description werden in der Variable $alist gespeichern
- Diese Spalten werden auch voneinander mit einer Horizontale-Tabulatur (`t) getrennt
- Hier werden erst alle Daten von AD geholt. Dann gefiltern nach Name,Email,Telefonnummer,Abteilung und Beschreibung
- Die Schleife wird hier benutzt. Damit alle Daten ein nach dem anderen gelesen werden
$arec = $_.SAMAccountName+",`t`t`t`t`t`t`t"+ $_.DisplayName+",`t`t`t`t`t`t`t"+ $_.EmailAddress+",`t`t`t`t`t`t`t"+"'"+ $_.OfficePhone+",`t`t`t`t`t`t`t"+"'"+ $_.FacsimileTelephoneNumber+",`t`t`t`t`t`t`t"+ $_.StreetAddress+",`t`t`t`t`t`t`t"+ $_.l+",`t`t`t`t`t`t`t"+$_.Postalcode+",`t`t`t`t`t`t`t"+ $_.Department+",`t`t`t`t`t`t`t"+ $_.Description+","
- In einer Zeile werden die User-Daten angetragen. Das Zeichen "`n" bedeutet in der nächste Zeile zu gehen und die nächste Benutzer-Daten zu schreiben
- Hier werden alle gelesene Zeile in der Variable $alist gespeichern
}
- Die gelesene Zeile werden dann in einer csv Datei gespeichern. Da muss man nur den Pfad eingeben
</Tag>
Arsene
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 258009
Url: https://administrator.de/contentid/258009
Ausgedruckt am: 26.11.2024 um 11:11 Uhr
14 Kommentare
Neuester Kommentar
Hallo Arsene, Willkommen auf Administrator.de!
Ich hoffe der Nickname ist nicht Programm , hab keine Lust mir die Finger zu veretzen
Ich sag nur eins: Schon mal was von dem CMDLet Export-CSV gehört ? Dann brauchst du keine solche abstrusen Konstrukte für den CSV-Export
Export
Import
Grüße Uwe
Ich hoffe der Nickname ist nicht Programm , hab keine Lust mir die Finger zu veretzen
Ich sag nur eins: Schon mal was von dem CMDLet Export-CSV gehört ? Dann brauchst du keine solche abstrusen Konstrukte für den CSV-Export
Export
Get-ADUser -Filter * -Properties * | Select-Object -Property SAMAccountName,DisplayName,EmailAddress,OfficePhone,FacsimileTelephoneNumber,StreetAddress,l,Postalcode,Department,Description | Sort-Object -Property DisplayName | export-csv 'C:\Users\Administrator\Desktop\Powershell\Exportcopie.csv' -delimiter ";" -NoType -Encoding UTF8
$csv = Import-CSV 'C:\Users\Administrator\Desktop\Powershell\Exportcopie.csv' -delimiter ";"
$csv | %{
# mach hier was mit jedem User in der CSV
$username = $_.SamAccountName
write-host $username
#..........
}
So wie ich's oben beschrieben habe, dann läuft das zuverlässig, vergess den schmu von oben damit bekommst du später sowieso noch mehr Probleme...
Bemühe mal die Suchfunktion, da findest du auch fertige Scripte für Import und Export von Usern via Powershell, das Thema wurde hier schon bis zum Abwinken behandelt:
Bemühe mal die Suchfunktion, da findest du auch fertige Scripte für Import und Export von Usern via Powershell, das Thema wurde hier schon bis zum Abwinken behandelt:
Zitat von @Arsene:
Hier ist eine Zeile mit Kopfspalte
SAMAccountName, DisplayName, EmailAddress,
Administrator, Administrator, admin@yahoo.de,
Trennst du jetzt mit Komma ? denn deine Zeilen weisen noch Tabulatoren auf ! Und das Komma am Ende ist ebenfalls falsch ...Hier ist eine Zeile mit Kopfspalte
SAMAccountName, DisplayName, EmailAddress,
Administrator, Administrator, admin@yahoo.de,
Eine aussagekräftigge Fehlermeldung aus der Powershell würde hier viel mehr helfen als solche Aussagen wie "geht nicht".
Und bitte nutze endlich Code-Tags für deinen Quellcode:
<code> Quellcode </code>
. Merci.