belloci
Goto Top

CSVDE über Powershell protokollierbar?

Einen schönen Montag wünsche ich,

nachdem mir schon sehr geholfen wurde (Benutzer Massenimport per CSVDE)

habe ich noch 3 (kleine) abschließende Fragen:

1) Lässt sich eine Protokolldatei erstellen wenn man den Import von CSVDE über die Powershell erledigt? Wenn man es nicht mit der PS macht geht es ja, finde aber keine Info wenn man es mit der PS macht... face-sad

2) Gibt es eine Möglichkeit, Fehler zu "ignorieren"? Falls nein, folgendes Szenario: Bei Benutzer 100 ist ein Fehler in der CSV Datei, hat er die ersten 99 User erstellt oder erstellt das System die User erst, wenn alles okay ist?!

3) Kann man in der Excel-Datei (noch keine CSV) zur Übersicht mit leeren Zeilen Arbeiten? Ich möchte wenigstens ein bisschen Übersicht gewährleisten können. Ich würde dann so vorgehen:

Spalte 1 - 5 : User Test1 - Test5 in Ou Test1

Spalte 7 - 20 : User Test6 - Test18 in Ou Test2

Danach CSV erstellen usw...

Hoffe ihr wisst was ich meine...

Dankeschön!
Norman

Content-Key: 205392

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

Printed on: April 20, 2024 at 03:04 o'clock

Member: colinardo
colinardo Apr 22, 2013 updated at 09:15:17 (UTC)
Goto Top
Hi Norman,
ich gehe mal bei deiner Beschreibung davon aus das du in der Powershell nicht die CSVDE.exe benutzen willst.

back-to-topZu Frage 1 und 2)
Du hast bei jedem Powershell CMDLet zwei Optionen die dir bei der Fehlerbearbeitung helfen. Zum einen ist das -ErrorVariable [Variable] oder abgekürzt -EV [Variable]. Diese Variable wird bei Fehlern gefüllt. Zum anderen gibt es die Option -ErrorAction [Aktion] oder -EA [Aktion] mit der du festlegen kannst was im Fehlerfall passieren soll; in deinem Fall ist das -EA Continue (also bei einem Fehler zum nächsten User springen)
Hier ein möglicher Ansatz:
$userData = Import-Csv -Path "Deine.csv" -Delimiter ","  
$counter = 1
$FehlerLog = ""  
foreach ($objUser in $userData){
    if ($objUser.displayName -ne $null){
	new-aduser -EA Continue -EV err -Name $objUser.displayName -SamAccountName $objUser.sAMAccountName -Path $objUser.DN -GivenName $objUser.givenName -DisplayName $objUser.displayName -Type $objUser.objectClass -Description $objUser.description -UserPrincipalName $objUser.userPrincipalName -Homepage $objUser.wWWHomePage -HomePhone $objUser.telephoneNumber -MobilePhone $objUser.mobile -StreetAddress $objUser.streetAddress -City $objUser.l -PostalCode $objUser.postalCode -Department $objUser.department -Company $objUser.company -ScriptPath $objUser.scriptpath -Title $objUser.Position -OtherAttributes @{userAccountControl=$objUser.userAccountControl}
	if ($err.count -gt 0 ){ $Fehlerlog += "Fehler beim Anlegen von User No. $counter `n"}  
	$err = $null
	$counter +=1
   }
}
if ($Fehlerlog -ne ""){echo "Folgende Fehler sind während des Vorganges aufgetreten:" $Fehlerlog}  

back-to-topzu Frage 3)
Das kannst du machen, jedoch verbleiben dann beim Export für jede Leerzeile auch eine Leerzeile in der CSV-Datei. Diese löschst du entweder in einem Texteditor oder du baust dir in Excel per VBA eine Funktion ein die dir die Daten manuell ohne vorhandene Leerzeilen in eine CSV-Datei exportiert.
Du kannst die Leerzeilen auch in der CSV drin lassen da in obigem Code(Zeile 5) diese bereits ausgefiltert werden...

Grüße Uwe
Member: Belloci
Belloci Apr 22, 2013 at 09:18:42 (UTC)
Goto Top
Hi Uwe,

mein Gott machst du dir eine Mühe, so "kompliziert" denke ich gar nicht face-smile

Ich habe mich wohl etwas unverständlich ausgedrückt. Ich möchte es MIT CSVDE machen.

Mein Befehl zum (hoffentlich) Glück:

Import-CSV C:\Massenimport.csv | New-ADUser -AccountPassword (ConvertTo-SecureString –AsPlainText “Pa$$w0rd!” -Force) -Enabled:$true -ChangePasswordAtLogon:$true (Yusuf's Blog).

Funktioniert super. Kann ich dann einfach am Ende noch "-EA Continue" anfügen?!

Danke und Gruß
Norman
Member: colinardo
colinardo Apr 22, 2013 updated at 09:27:20 (UTC)
Goto Top
Zitat von @Belloci:
mein Gott machst du dir eine Mühe, so "kompliziert" denke ich gar nicht face-smile

Ich habe mich wohl etwas unverständlich ausgedrückt. Ich möchte es MIT CSVDE machen.
kein Problem mache gerade verstärkt Dinge mit der Powershell als Übung.

das was du hier aber machst ist nicht CSVDE.exe sondern manuell über die Powershell.
Das hier ist CSVDE => http://technet.microsoft.com/de-de/library/cc771621%28v=ws.10%29.aspx

Import-CSV C:\Massenimport.csv | New-ADUser -AccountPassword (ConvertTo-SecureString –AsPlainText “Pa$$w0rd!”
-Force) -Enabled:$true -ChangePasswordAtLogon:$true (Yusuf's Blog).
Funktioniert super. Kann ich dann einfach am Ende noch "-EA Continue" anfügen?!
Ja, dann überspringt er den jeweiligen User bei Fehlern und macht beim nächsten weiter.

Viel Erfolg
face-wink
Member: Belloci
Belloci Apr 22, 2013 at 18:50:32 (UTC)
Goto Top
Herrlich. Vielen lieben dank und schönen abend.

Gruss norman