Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Useranlage via Powershell

Frage Entwicklung Batch & Shell

Mitglied: Belloci

Belloci (Level 2) - Jetzt verbinden

05.08.2013, aktualisiert 06.08.2013, 6292 Aufrufe, 17 Kommentare

Hallo liebe Admins,

ich bin gerade dabei unsere Benutzeranlage (so weit es geht) einfacher zu gestalten und zwar via Powershell (new-ADUser).

Ziel: Einen Active Directory Benutzer mit unseren gängigen Parametern erstellen.

Welche Parameter werden zwingend benötigt oder sollen gefüllt werden?

1) SamAccountName (Vorname.Nachname)
2) Givenname
3) Surname
4) Displayname (Nachname, Vorname)
5) Path ('CN=Users,DC=Test,DC=local)
6) OtherAttributes @{'personalTitle'=abc; 'personalPager'=def}
7) Die neu angelegten User sollen gleich Mitglied der Gruppe "TEST" sein
8) Remotedesktop-Profil (\\dc\profiles$\%username%) --> das funktioniert nicht, oder? Hatte mich schlau gemacht und da hieß es, dass das Profil unter "userparameters" gespeichert wird und nicht ohne weiteres gefüllt werden kann...

Ist das irgendwie mit der Powershell machbar? Hatte schon einige Versuche gestartet aber so richtig wollte das nicht laufen

Eigentlich benötigt man doch nur 2 Eingaben:

$Givenname = Read-Host "Vorname:"
$Surename = Read-Host "Nachname:"

und dann könnte es schon mit der Anlage losgehen:

new-ADUser -SamAccountName - Givenname -Surname -Displayname -Path -OtherAttributes

Für Anregungen bin ich wie immer sehr dankbar.
Mitglied: Dani
05.08.2013 um 13:52 Uhr
Moin,
wie wäre es wenn du dein Versuchsskript auch posten würdest. Somit müsten wir nicht bei Null anfangen und du arbeitest auch aktiv gleich mit. Ich kann dir natürlich unser Script geben, aber da wirst du nicht glücklich.


Grüße,
Dani
Bitte warten ..
Mitglied: Belloci
05.08.2013 um 14:16 Uhr
Hi Dani,

wie gerne würde ich jetzt ein schon fast fertiges Skript zeigen können wo nur noch ein Fehler ist und du sagst: "ist doch klar, mach das Komma weg, dann läufts". Leider habe ich das nicht weil ich in den Kinderschuhen stecke - wenn überhaupt. Ich erwarte hier kein fertiges Skript. Für einen Denkanstoß oder eine Starthilfe wäre ich schon dankbar.

Gruß
Bitte warten ..
Mitglied: Markus1991
05.08.2013, aktualisiert um 15:06 Uhr
Hallo,

ich war in der selben Situation wie du und habe mich daraufhin etwas schlau gemacht...

Du benötigst zu aller erst erstmal das ActiveDirectory Modul, welches du direkt in der Powershell importieren kannst (auf dem DC versteht sich...)

Import-Module ActiveDirectory

danach legst du die benötigten Variablen fest, in meinem Fall waren es z. B. diese...

$name = (Read-Host "Name")
$vorname = (Read-Host "Vorname")
$beschreibung = (Read-Host "Beschreibung z. B. Abteilung")
$mail = $name+'deineDomain'
$pw = (Read-Host -AsSecureString "Passwort das vergeben werden soll")
$domain = [ADSI] "LDAP://DC=deineDomain,DC=lcl"
$exchange = "Name des Exchange Servers"

mehr Variablen habe ich nicht gebraucht. Und dann geht es mit New-ADUser weiter... hier gibt es alle möglichen Parameter, welche du sehr gut auf der Microsoft Seite nachlesen kannst. Verwende bei den Parametern deine Variablen die du ganz oben deklariert hast. Für die automatische Gruppenaufnahme in die Gruppe "Test" kannst du "Add-ADGroupMember" verwenden!!

Du kannst noch weitergehen und den Usern automatisch noch ein Postfach mit anlegen, oder ein eigenes Homelaufwerk zuordnen und diesen Vollzugriff gewähren...

Ich hoffe ich konnte dir einen kleinen Denkanstoss geben

Gruß
Markus
Bitte warten ..
Mitglied: Belloci
05.08.2013 um 15:13 Uhr
Hi Markus,

danke erstmal für die Nachricht. Zum hinterlegen des Remotedesktop-Profils hast du wahrscheinlich keinen Ratschlag, oder?

Ansonsten, besten Dank für den Anstoß!
Bitte warten ..
Mitglied: colinardo
05.08.2013, aktualisiert um 16:42 Uhr
Hallo Belloci,
das sollte Dir weiterhelfen:
01.
Import-Module ActiveDirectory 
02.
 
03.
$OU = "CN=Users,DC=Test,DC=local" 
04.
$groupname = "TEST" 
05.
 
06.
$givenname = Read-Host -Prompt "Bitte Vornamen eingeben" 
07.
$surname = Read-Host -Prompt "Bitte Nachnamen eingeben" 
08.
$password = Read-Host -Prompt "Erst-Password des Benutzers eingeben" -assecurestring 
09.
 
10.
#User erstellen 
11.
New-ADUser -Name "$givenname $surname" -givenname $givenname -surname "$surname" -SAMAccountName "$givenname.$surname" -DisplayName "$surname, $givenname" -Path $OU -AccountPassword $password -enabled $true -OtherAttributes @{'personalTitle'="abc";'pager'="def"} 
12.
#User zur Gruppe hinzufügen 
13.
Add-ADGroupMember -Identity $groupname -Member "$givenname.$surname" 
14.
 
15.
#Erweiterte Attribute für den User setzen (RemoteDesktop-Profilpfad) 
16.
$newUser = [ADSI] "LDAP://cn=$givenname $surname,$OU" 
17.
$newUser.psbase.InvokeSet('TerminalServicesProfilePath',"\\dc\profiles\$givenname.$surname") 
18.
$newUser.SetInfo()
Zum Hinzufügen erweiterter Attribute siehe auch meinen Kommentar hier

Grüße @colinardo
Bitte warten ..
Mitglied: Dani
05.08.2013 um 15:17 Uhr
Moin,
deine Begriffe einfach bei Google eingegeben und folgenden Microsoft Artikel gefunden. Du bist nicht der Erste der sowas versucht.

Ich kau dir nicht jeden Parameter vor. Wie gesagt ein Ansatz von dir und ich bin der Letzte der dir nicht hilft.


Grüße,
Dani
Bitte warten ..
Mitglied: Belloci
05.08.2013 um 15:29 Uhr
Vielen Dank für Eure Mühe bis hier hin!
Bitte warten ..
Mitglied: Belloci
05.08.2013 um 21:29 Uhr
Guten Abend,

dank des Scripts von Uwe gings es letztlich doch schneller. Nachdem ich mit folgendem Code gestartet war...

01.
$Givenname = Read-Host "Vorname:" 
02.
$Surename = Read-Host "Nachname:" 
03.
 
04.
 
05.
new-ADUser -SamAccountName "$Givenname.$Surename" -Givenname $Givenname -Surname $Surname -Displayname "$Givenname $Surename" -Path 'CN=Users,DC=test,DC=local' -OtherAttributes @{'personalTitle'=abc; 'personalPager'=def}
... und dies viele Fehler hatte und den Anforderungen (s. oben) nicht genügte und ich eure riesige Hilfe bekam sieht das Skript nun wie folgt aus:

01.
              #Active Directory Modul laden 
02.
           Import-Module ActiveDirectory  
03.
            
04.
           $OU = "CN=Users,DC=test,DC=local"  
05.
           $groupname = "Testgruppe" 
06.
           $givenname = Read-Host -Prompt "Bitte Vornamen eingeben"  
07.
              #Umlaute aussortieren 
08.
           $givenname = $givenname -replace (“ä”, “ae”) -replace (“ö”, “oe”) -replace (“ü”, “ue”) -replace (“ß”, “ss”) 
09.
           $surname = Read-Host -Prompt "Bitte Nachnamen eingeben"  
10.
              #Umlaute aussortieren 
11.
           $surname = $surname -replace (“ä”, “ae”) -replace (“ö”, “oe”) -replace (“ü”, “ue”) -replace (“ß”, “ss”) 
12.
           $password = Read-Host -Prompt "Erst-Passwort des Benutzers eingeben" -assecurestring  
13.
            
14.
              #User erstellen 
15.
            
16.
           New-ADUser -Name "$surname, $givenname" -givenname $givenname -surname "$surname" -SAMAccountName "$givenname.$surname" -UserPrincipalName "$givenname.$surname@test.local" -DisplayName "$surname, $givenname" -Path $OU -AccountPassword $password -enabled $true -OtherAttributes @{'personalTitle'="abc";'pager'="def"} 
17.
            
18.
           #User zur Gruppe hinzufügen 
19.
           Add-ADGroupMember -Identity $groupname -Member "$givenname.$surname" 
20.
            
21.
           #Erweiterte Attribute für den User setzen (RemoteDesktop-Profilpfad) 
22.
            
23.
          $newUser = [ADSI] "LDAP://cn=$surname\, $givenname,$OU"  
24.
          $newUser.psbase.InvokeSet('TerminalServicesProfilePath',"\\Server\profiles\$givenname.$surname") 
25.
          $newUser.SetInfo()
Klappt alles soweit prima, entspricht genau meinen Anforderungen --> Fettes DANKE!

Gruß und schönen Abend
Bitte warten ..
Mitglied: Dani
06.08.2013 um 10:27 Uhr
Moin,
hast du den Teil mit den Umlauten getestet?
Unter Windows Server 2012 Powershell funktioniert es nicht.


Grüße,
Dani
Bitte warten ..
Mitglied: Belloci
06.08.2013 um 10:33 Uhr
Hi Dani,

unter Windows 2008R2 läuft das korrekt... Komisch!

Gruß,
Norman
Bitte warten ..
Mitglied: Dani
06.08.2013 um 10:35 Uhr
Wir haben bisher eine Powershellfunktion dazu geschrieben. Da deine Variante aber einfach wäre, wollte ich Sie übernehmen. Aber das läuft nicht...
Bitte warten ..
Mitglied: Belloci
06.08.2013 um 10:42 Uhr
Also ich kann dir soviel dazu sagen, dass hier PS in der Version 2 genutzt wird auf einem Server 2008R2.

Laufen tut es bei uns. Würde da gern für dich mitwirken, habe aber gerade keinen 2012 im Einsatz. Zu Hause kann ich aber gern mal schauen ob ich das irgendwie zum laufen bringe. Wird mich in Zukunft ja auch wieder beschäftigen...


Gruß,
Norman
Bitte warten ..
Mitglied: Spoxss
17.06.2014 um 15:32 Uhr
Auch wenn der Post hier schon etwas älter ist.
Unser PS User Anlage Script ist bereits 1099 Zeilen lang.
Dabei werden die Userdaten, wie Name. Abteilung, Standort, TerminalServices j/n , etc. abgefragt. Wir haben das mit dem einlesen einer Textdatei gelöst. Damit kann ich auch bspw. 200 User gleichzeitig anlegen.
Anhand dieser Daten erstellt unser Script den gewünschten User, berechtigt ihn mit den Standardberechtigungen der jeweiligen Abteilung, legt die persönlichen Shares, wie sein pers. Ordner, TS & Roaming Profil an und berechtigt diese entsprechend.
Zusätzlich werden die ganzen Daten, wie Adresse, Telefonnummer, TS Profilpfad, etc. in das Benutzerobjekt reingeschrieben.
Um das ganze noch abzurunden, findet vorab eine Prüfung statt, ob es das Objekt überhaupt schon gibt.
Lediglich Sonderwünsche müssen wir nur noch von Hand eintragen.
Bitte warten ..
Mitglied: colinardo
17.06.2014, aktualisiert um 15:50 Uhr
Zitat von Spoxss:
Unser PS User Anlage Script ist bereits 1099 Zeilen lang.
Schön für euch, dann lass die Community nicht dumm sterben und poste zumindest etwas produktives daraus. Dann haben alle was davon ...

Grüße Uwe
Bitte warten ..
Mitglied: Spoxss
17.06.2014 um 16:14 Uhr
Also ich weis ja nicht, was du alles wissen willst.
Aber hier mal ein paar Stichworte als Lösungsansatz. Bitte habe Verständnis dafür, das ich unser Script hier nicht poste.

Als erstes wird eine txt Datei mit Import-CSV eingelesen. Darin befinden sich im Header Spaltennamen mit einem Semikolon getrennt.
Der Befehl dazu ist Import-csv "Pfad zur Text Datei" -Delimiter ";" -Encoding Unicode
Wenn man mehrere User anlegen will, kann man da noch ein Schleifchen mir foreach drum binden

Mit einem get-ADUser -Filter {Name -like"administrator"} -properties * kannst Du dir alle Felder mit dem entsprechenden Namen anzeigen lassen.
Oder Du schaust im AD im Reiter Atrtribut-Editor. Dort sind auch alle Felder mit den entsprechenden Namen und Inhalten dargestellt.

Danach werden bei uns erstmal allerhand Varaiblen gebildet und mit den Informationen aus der Textdatei zusammengesetzt.
Mit diesen Variablen kannst Du dann deine Felder entsprechend befüllen.
Mit New-ADUser -SamAccountName $Variable1 - Name $Variable2 -Givenname $_.Vorname -EMailAddress $Variable3 ... usw.
kannst Du dir deinen User selber zusammen bauen.
Bei dem Attribut Givenname hole ich mi zB die Info aus der Textdatei, wo die Spalte eben mit dem Wert "Vorname" bezeichnet ist.
Das wäre mal eben so ein kleiner vllt 10 oder 20 Zeiler.

Meine Textdatei sieht zB so aus:
Vorname;Nachname;Abteilung;Beschreibung;TelNr;
Max;Mustermann;IT;IT-Systemadminsitrator;+43 123/456789-0;

So ausführlich wie das bei uns ist, muss man es nicht haben. Wir ergänzen das auch immer nur so, wenn wir denken, das da noch eine nützliche Funktion wie etwa eine Prüfung auf Umlaute oder eben die Anlage der Verzeichnisse, brauchen.

Ich denke, als sollte erst einmal als Lösungsansatz reichen. Alles nötige findest Du im TechNet.

Und so als Tip am Rande:
Fange mit den einfachen und grundlegenden Sachen, wie "nur" Useranlegen an und baue alles andere dann drum herum.
Bitte warten ..
Mitglied: Dani
17.06.2014 um 16:41 Uhr
Moin,
Auch wenn der Post hier schon etwas älter ist.
Bitte habe Verständnis dafür, das ich unser Script hier nicht poste.
Warum gräbst du überhaupt den alten Thread wieder aus? Das bringt niemand etwas außer das jeder neugierig auf dein Skript ist.


Grüße,
Dani
Bitte warten ..
Mitglied: colinardo
17.06.2014, aktualisiert um 16:44 Uhr
Also ich brauche dazu bestimmt keine Hilfe . Über das simple Thema "Useranlage" bin ich schon lange hinaus bzw. schon zu lange im Geschäft.
Es ging nur darum das du deine Erfahrungen mit anderen Hilfesuchenden teilst die hier vorbei schauen.

Grüße Uwe
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst PowerShell Script Move-Item nach x Tagen (5)

Frage von lupolo zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell - In Textdatei suchen und ersetzen (5)

Frage von Raaja89 zum Thema Batch & Shell ...

Batch & Shell
gelöst PowerShell Domain Join (2)

Frage von Patrick-IT zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...