Jump to content

Script funktioniert nicht richtig


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo @all

 

habe ein Script erstellt um eine .csv auszulesen und neue User in der AD anzulegen

 

Script liest die csv aus aber erstellt keine neuen User

Läuft ohne fehlermeldung durch

kann mir jemand helfen wo ich einen Fehler gemacht habe

 

Danke

 

Script:

 

Import-Module activedirectory

Import-Csv -Delimiter ";" -Path "c:\test\mappe1.csv"

foreach ($User in $ADUsers)
{

$Username = $User.username
$Firstname = $User.firstname
$Lastname = $User.Lastname
$OU = $User.OU

if (Get-ADUser -F {SamAccountName -eq $Username})

{
 New-ADUser `
 -SamAccountName $Username `
 -UserPrincipalName "$Username@Configpoint.de" `
 -Name "$Firstname $Lastname" `
 -Givenname $Firstname `
 -Surname $Lastname `
 -Displayname "$Lastname, $Firstname" `
 -Accountpassword $password `
 -Path $OU `
    }
  }

Link zu diesem Kommentar

Wie testperson schon richtig meint - technisch betrachtet liegt der Fehler in der Zeile:

Import-Csv -Delimiter ";" -Path "c:\test\mappe1.csv"

die sollte so aussehen:

$ADUsers = Import-Csv -Delimiter ";" -Path "c:\test\mappe1.csv"

damit Dein Script wie gewünscht funktioniert.

Hallo Newbie

 

Bringt aber auch nichts er liest mir die csv aus Listet diese aber legt keine neuen User in der AD an

Ob Ich in der Zeile $ADUsers = eintrage oder  nicht das Ergebnis ist das gleiche

Es wird auch kein Fehler ausgegeben

Link zu diesem Kommentar

if (Get-ADUser -F {SamAccountName -eq $Username})

 

Ein Tipp aus meiner Erfahrung ist, nutze für "Get-ADUser" lieber "-like" anstatt "-eq". Manchmal reagiert der "-eq" trotz identischer Angaben nicht so wie gewünscht. Da wir hier eh über STRINGs (Zeichenketten) reden wäre "-like" sowieso der Richtige.

 

https://www.windowspro.de/script/vergleichsoperatoren-powershell-eq-lt-gt-contains-match

 

Des Weiteren ist deine Variable $password nicht gesetzt und der Wert muss vom Typ <SecureString> übergeben werden!

bearbeitet von MurdocX
Link zu diesem Kommentar

Siehste ... da hab ich vorhin gar nicht drauf geachtet. Du fragst in Deinem 'if' das AD ab, ob es den User schon gibt. Und wenn ja, dann willst Du genau diesen User neu anlegen. Soll das so sein? Wenn nicht, sollte die if - Zeile eher so aussehen:

if (-not (Get-ADUser -Filter {SamAccountName -eq $Username}))

und von mir auch noch ein kleiner Tipp: Backtick in Scripten zu benutzen ist gefährlich. Der BackTick ist ein Escape-Zeichen. Und wenn dahinter mal kein Zeilenumbruch kommt, sondern versehentlich ein Leerzeichen, was mann normalerweise nicht sieht, dann funktioniert das Ganze nicht mehr und es ist schwer zu ermitteln warum.

Link zu diesem Kommentar

Falls du die Daten aus Excel raus exportierst, dann solltest du dir auch über die Encodings im klaren sein. Hier werden die Daten mit der "ANSI"-Codierung abgespeichert. Somit musst du, um einen sauberen Import durchzuführen ein "-Encoding Default" anhängen.

$ADUser = Import-Csv -Delimiter ";" -Path "c:\test\mappe1.csv" -Encoding Default

Ohne Angabe, also "per default" ließt das CMDLet im "ASCII"-Encoding ein.

https://msdn.microsoft.com/powershell/reference/5.1/microsoft.powershell.utility/Import-Csv

 

@BOfH_666

Das ist mir als "logischer Fehler" erst gar nicht aufgefallen. Natürlich ist das logisch nur Benutzer anzulegen die noch nicht existieren.

bearbeitet von MurdocX
Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...