Useranlage via Powershell
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.
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.
Please also mark the comments that contributed to the solution of the article
Content-ID: 213382
Url: https://administrator.de/contentid/213382
Printed on: December 13, 2024 at 02:12 o'clock
17 Comments
Latest comment
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
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
Hallo Belloci,
das sollte Dir weiterhelfen:
Zum Hinzufügen erweiterter Attribute siehe auch meinen Kommentar hier
Grüße @colinardo
das sollte Dir weiterhelfen:
Import-Module ActiveDirectory
$OU = "CN=Users,DC=Test,DC=local"
$groupname = "TEST"
$givenname = Read-Host -Prompt "Bitte Vornamen eingeben"
$surname = Read-Host -Prompt "Bitte Nachnamen eingeben"
$password = Read-Host -Prompt "Erst-Password des Benutzers eingeben" -assecurestring
#User erstellen
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"}
#User zur Gruppe hinzufügen
Add-ADGroupMember -Identity $groupname -Member "$givenname.$surname"
#Erweiterte Attribute für den User setzen (RemoteDesktop-Profilpfad)
$newUser = [ADSI] "LDAP://cn=$givenname $surname,$OU"
$newUser.psbase.InvokeSet('TerminalServicesProfilePath',"\\dc\profiles\$givenname.$surname")
$newUser.SetInfo()
Zum Hinzufügen erweiterter Attribute siehe auch meinen Kommentar hier
Grüße @colinardo
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
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
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.
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.
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
Grüße Uwe
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.
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.