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

Mitglied: Festus94

Festus94 (Level 1) - Jetzt verbinden

15.05.2012, aktualisiert 23:05 Uhr, 18748 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
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 2 TagenWindows 105 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 2 TagenAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 3 TagenHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 3 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Router & Routing
Router auf Orginal Firmware zurück flashen mit Tftpd
Frage von ILeonardRouter & Routing21 Kommentare

Hallo, Ich habe zwei Router, einmal TP-Link 841n v11 und TP-Link 940N v5. Ich wollte fragen, ob jemand mir ...

Router & Routing
WRT keine Verbindung zum Web Interface
gelöst Frage von ILeonardRouter & Routing18 Kommentare

Hallo, Ich habe einen TP-Link WR841n mit wrt geflasht, das Problem ist ich kann mich mit 192.168.1.1 nicht verbinden. ...

Windows Server
Standortvernetzung zu einem Strato VServer (Windows)
Frage von matzefratze81Windows Server10 Kommentare

Moin, ich komme aus einem Enterprise-Umfeld und habe den Fehler gemacht, dass ich mich auf ein kleines Unternehmen eingelassen ...

TK-Netze & Geräte
Telefonie zweier Fritzboxen mit je eigenem DSL Anschluss verbinden
Frage von hannsgmaulwurfTK-Netze & Geräte10 Kommentare

Hallo zusammen, ich habe hier einen Haushalt mit zwei Anschlüssen. Einmal ISDN, einmal DSL. An jedem Anschluss hängt eine ...