Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Anlegen von Usern mit PowerShell

Frage Entwicklung

Mitglied: Festus94

Festus94 (Level 1) - Jetzt verbinden

15.05.2012, aktualisiert 23:05 Uhr, 18439 Aufrufe, 12 Kommentare

Ich scheitere beim Versuch mittels PowerShell User im AD anzulegen, welche aus einer CSV-Datei stammen.

Guten Abend,

ich sitze nun schon einige Stunden vor einem PowerShell-Skript und werde aus den Fehlermeldungen einfach nicht schlau genug, um das Skript ans Laufen zu bringen.

Ich möchte mit PowerShell aus einer CSV-Datei User ins AD importieren, jedoch erhalte ich immer folgende Fehlermeldung:

Fehlender Ausdruck nach dem unären Operator "-".

Mein Skript sieht so aus:

Import-Module ActiveDirectory

while(Import-CSV users.csv){
New-ADUser
-SamAccountName $_.SamAccountName
-Surname $_.Surname
-GivenName $_.GivenName
-DisplayName $_.DisplayName
-Description $_.Description
-AccountPassword $_.AccountPassword
-ChangePasswordAtLogon: $true
-Enabled: $true
-PasswordNeverExpires: $true
-Path "LDAP://OU=OU1,OU=OU2,DC=DOMÄNE,DC=local"

Add-ADGroupMember
-Identity "LDAP://CN=CN1,OU=OU1,OU=OU2,DC=DOMÄNE,DC=local"
-Members $_.SamAccountName
}

Meine CSV-Datei:

GivenName;Surname;SamAccountName;AccountPassword;Description;DisplayName;Path
Max;Mustermann;MMustermann;passwort;Test;"Max Mustermann";"OU:Users,DC=SCHULADMIN,DC=local"
Ellen;Bogen;EllenBogen;password;User;"Ellen Bogen";"OU:Users,DC=SCHULADMIN,DC=local"


Könnt Ihr mir helfen den Fehler zu finden ?


Vielen Dank im Vorraus !!!


tbnwadm
Mitglied: lenny4me
16.05.2012 um 07:44 Uhr
Hallo,

sind die Zeilenumbrüche für bessere lesbarkeit oder sieht Dein Script wirklich so aus?
Bitte warten ..
Mitglied: NeverEnds
16.05.2012 um 07:54 Uhr
Moin,

schau dir das mal an.

http://gallery.technet.microsoft.com/scriptcenter/New-User-Creation-too ...

Ich habe zwar dieses Script noch nicht ausprobiert, aber ich nutze 2 andere von Rich Prescott. Der ist gut...



Ich sag immer warum das Rad neuerfinden....


Gruß
Never!
Bitte warten ..
Mitglied: mak-xxl
16.05.2012 um 09:19 Uhr
Moin tbnwadm,

wenn Dein Script genauso aussieht, dann erscheint der Fehler bei der Option -ChangePasswordAtLogon und den folgenden - Doppelpunkte sind hier nicht vorgesehen.

Freundliche Grüße von der Insel - Mario
Bitte warten ..
Mitglied: Festus94
16.05.2012 um 13:02 Uhr
Hallo,

ja, mein Skript sieht exakt so aus.

@Never: Danke für den Tipp, aber das sieht mir viel zu komoliziert aus. Ich würde mir das gerne so einfach wie möglich halten und nach Möglichkeit selbst zur Lösung kommen, um dabei auch was zu lernen. ;)

@Mario: Danke, aber meine PS sagt, der Fehler liegt noch davor. Ich habe de Doppelpunkte entfernt.

Ich habe jetzt zur Sicherheit mal alle Leerzeichen aus dem Skript entfernt. Meine PS gibt mir folgenden Fehler:

Fehlender Ausdruck nach dem unären Operator "-".
Bei C:\Users\<Mein Benutzername>\Desktop\add.ps1:4 Zeichen:7

- <<<< SamAccountName $_.SamAccountName

+ CategoryInfo : ParserError: (-:String) [], ParseException
+ FullyQualifiedErrorId : MissingExpressionAfterOperator

Allerding sieht das für mich richtig aus. Habt Ihr eine Idee ?

Danke !!!


Gruß
tbnwadm


EDIT: Die eine Zeile steht da natürlich nicht so fett und groß, da beißt sich wohl was mit der Administrator.de-Syntax...
Bitte warten ..
Mitglied: Goalie
16.05.2012 um 14:06 Uhr
Hallo tbnwadm,

ich denke, dass die Werte nicht korrekt aus der CSV-Datei ausgelesen werden.

Ungetestet könnte es etwa so funktionieren (der "New-ADUser"-Teil fehlt noch):

01.
Import-Csv .\users.csv -Delimiter ';' | ForEach-Object { New-ADUser ... }
Gruß

Goalie
Bitte warten ..
Mitglied: Festus94
16.05.2012 um 14:18 Uhr
Hi Goalie,

danke für die Hilfe.
Ich habe es gerade jedoch soweit, dass ich nun die Fehlermeldung erhalte, dass das Kennwort nicht den Anforderungen der Domäne entspricht. Die einzige Vorraussetzung ist jedoch eine Länge von fünf Zeichen und das erfülle ich ja. Ich kann mein Passwort aber ebenfalls nicht ändern, da dort ebenfalls eine solche Fehlermeldung kommt. Per CMD geht's (net user ...).

Woran kann das liegen ? Es sind nirgendwo Kenwort-Einschränkungen bis auf die Mindestlänge gesetzt. Der Rest ist abgestellt.

Danke !


tbnwadm
Bitte warten ..
Mitglied: Festus94
16.05.2012 um 17:49 Uhr
Okay, ich bin nun schon deutlich weiter:

New-ADUser -SamAccountName $_.SamAccountName -Name "$_.DisplayName" -Surname $_.Surname -GivenName $_.GivenName -DisplayName $_.DisplayName -Description $_.Description -AccountPassword (ConvertTo-SecureString "$_.AccountPassword" -AsPlainText –Force) -ChangePasswordAtLogon $true -Enabled $true -Path "OU=OU1,OU=OU2,DC=DOMÄNE,DC=local" -ProfilePath "\\SERVER\Profiles$\$_.Name"

Meine Fehlermeldung heißt so:

New-ADUser : Ein Wert für das Attribut befindet sich nicht im zulässigen Bereich

Habt Ihr eine Idee, was das noch sein kann ? Das Problem soll bei Zeichen 13 liegen, aber das macht keinen Sinn.


Grüße
tbnwadm
Bitte warten ..
Mitglied: mak-xxl
16.05.2012 um 18:03 Uhr
Moin tbnwadm,

Zitat von Festus94:
... Das Problem soll bei Zeichen 13 liegen, aber das macht keinen Sinn.

Doch, das ist schon eine sinnvoller Hinweis - bei Zeichen 13 beginnt der Parameter 'SamAccountName' - Du solltest den Inhalt von '$_.SamAccountName' mal ausgeben lassen und kontrollieren. Und bevor das nächste, ähnliche Problem auftaucht - am besten alle Variablen lokal ausgeben und kontrollieren (Leerzeichen?).

Einen schönen Feiertag wünscht mit freundlichen Grüßen von der Insel - Mario
Bitte warten ..
Mitglied: Festus94
16.05.2012 um 18:10 Uhr
Hi Mario,

die Ausgabe bringt mir "MMustermann" (ohne Anführungszeichen). Das ist auch richtig so. Ich habe auch $_.DisplayName ausprobiert, wo korrekt "Max Mustermann" rauskommt, dazu $_.Surname und $_.GivenName. Alles problemlos. Nur bei $_.DisplayName ist also ein Leerzeichen vorhanden.

Meine CSV:

GivenName;Surname;SamAccountName;AccountPassword;Description;DisplayName
Max;Mustermann;MMustermann;passwort;Test;"Max Mustermann"
Ellen;Bogen;EllenBogen;Pa$$w0rd;User;"Ellen Bogen"

Sehe ich den Wald vor lauter Bäumen nicht ?

Dir auch einen schönen Feiertag !

Viele Grüße
tbnwadm
Bitte warten ..
Mitglied: mak-xxl
16.05.2012 um 18:30 Uhr
Moin tbnwadm,

ich sehe auch nur Wald und keinen Fehler - überprüfe doch nochmals akribisch die einzelnen Attribute für die Parameter, so wie es lt. obigem Link sein soll. Und beachte doppelte Literale, wenn Du in der csv-Datei schon welche setzt - besser ausschließlich die Variable in solche ...

Viel Erfolg und freundliche Grüße von der Insel - Mario
Bitte warten ..
Mitglied: Festus94
16.05.2012 um 22:42 Uhr
Ich habe es jetzt nochmals geprüft und bin bei folgendem Ergebnis:

Import-Module ActiveDirectory

Import-CSV users.csv -Delimiter ";" | ForEach-Object{
New-ADUser -SamAccountName "$_.SamAccountName" -UserPrincipalName "$_.SamAccountName@SCHULADMIN.local" -Name "$_.DisplayName" -Surname "$_.Surname" -GivenName "$_.GivenName" -DisplayName "$_.DisplayName" -Description "$_.Description" -AccountPassword (ConvertTo-SecureString "$_.AccountPassword" -AsPlainText –Force) -ChangePasswordAtLogon $true -Enabled $true -Path "OU=Schüler,OU=Schule,DC=SCHULADMIN,DC=local" -ProfilePath "\\SRVDC\Profiles$\$_.SamAccountName"

Add-ADGroupMember -Identity $_.Typ -Members $_.SamAccountName
}

Meine CSV sieht so aus:

GivenName;Surname;DisplayName;SamAccountName;AccountPassword;Description
Maximilian;Mustermann;Maximilian Mustermann;MMustermann;passwort123;Schüler

Fehlermeldung:

New-ADUser : Der angegebene Name hat ein falsches Format für einen Kontennamen

Testweise habe ich schon -SamAccountName und -UserPrincipalName weggelassen, aber das hat nicht geholfen.


Viele Grüße
tbnwadm
Bitte warten ..
Mitglied: Festus94
01.06.2012 um 23:00 Uhr
Ich habe das Skript nun soweit, dass es wunderbar funktioniert.
Hier meine funktionierende Lösung:

Import-Module ActiveDirectory

Import-CSV users.csv -Delimiter ";" | ForEach-Object{
$sUPN = -join ($_.UserPrincipalName, "@", "<DOMÄNEN-NAME>")
$sPath = -join ("OU=", $_.Typ, ",OU=<OU>,DC=<DC-TEIL 1>,DC=<DC-TEIL 2>")
$sProfilePath = -join ("<FREIGABE-PFAD>", $_.SamAccountName)

New-ADUser -Name $_.DisplayName -SamAccountName $_.SamAccountName -UserPrincipalName $sUPN -Surname $_.Surname -GivenName $_.GivenName -DisplayName $_.DisplayName -Description $_.Description -AccountPassword (ConvertTo-SecureString $_.AccountPassword -AsPlainText –Force) -ChangePasswordAtLogon $true -Enabled $true -Path $sPath -ProfilePath $sProfilePath

$sIdentity = -join ("CN=", $_.Typ, ",OU=<OU>,DC=<DC-TEIL 1>,DC=<DC-TEIL 2>")

Add-ADGroupMember -Identity $sIdentity -Members $_.SamAccountName
}


Ich danke Euch für Eure Hilfe !



Viele Grüße
tbnwadm
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Printerport mit Powershell anlegen
gelöst Frage von Druide83Batch & Shell12 Kommentare

Morgen allerseits, habe mal wieder ein Skriptproblem. Will remote einen Drucker auf einem Printserver anlegen. Dies mit folgendem Code: ...

Windows Userverwaltung
Powershell Ordner mit Berechtigungen anlegen
Frage von IT-CoreWindows Userverwaltung3 Kommentare

Guten Tag, Ich schreibe ein Script um einen Ablauf zu automatisieren. Bei mir werden immer wieder mehrere Datein in ...

Batch & Shell
Recursiv Unterordner anlegen Powershell
gelöst Frage von VoiperBatch & Shell2 Kommentare

Moin, folgendes Problem: Ich habe eine Ordnerstruktur, bei der in jedem Unterordner der Order "00_Archiv" anlegt wird. Leider ist ...

Batch & Shell
E-Mail Adresse anlegen am angelegten User Powershell
gelöst Frage von patrickebertBatch & Shell5 Kommentare

Hallo Liebe Leute, bin gerade dabei ein PowershellScript zu schreiben welches an einem angelegten User die E-Mail Adresse am ...

Neue Wissensbeiträge
Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 6 StundenInternet3 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registierunf von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Verschlüsselung & Zertifikate

19 Jahre alter Angriff auf TLS funktioniert immer noch

Information von BassFishFox vor 13 StundenVerschlüsselung & Zertifikate1 Kommentar

Interessant zu lesen. Der Bleichenbacher-Angriff gilt unter Kryptographen als Klassiker, trotzdem funktioniert er oft noch. Wie wir herausgefunden haben, ...

Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 1 TagWindows 103 Kommentare

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 1 TagSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

LAN, WAN, Wireless
Von rj11 auf rj45
Frage von jensgebkenLAN, WAN, Wireless17 Kommentare

Hallo Gemeinschaft, könnt ihr mir vielleicht bei der anfertigung eines Kabels helfen - habe ein rj 11 stecker und ...

Netzwerkmanagement
NAS über zwei weitere Ethernet Anschlüsse verbinden
gelöst Frage von Sibelius001Netzwerkmanagement16 Kommentare

Sorry - ich bin hier wahrscheinlich als kompetter IT Trottel unterwegs. Aber eventuell kann mir jemand ganz einfach helfen: ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...