So erstellen Sie ein Active Directory-Benutzerkonto mit Powershell

19

Ich richte ständig Forschungs- und Entwicklungsumgebungen ein, die Active Directory-Konten erfordern. Da wir diese Umgebungen in isolierten Netzwerken platzieren, benötigt jede Umgebung ein eigenes Active Directory. Wie kann ich mit Powershell ein neues Active Directory-Konto erstellen?

Rob Murdoch
quelle

Antworten:

19

Ich bin nicht sicher, ob Sie nach einem Skript suchen, das eine Liste mit Namen, Kennwörtern usw. enthält, aber der folgende Befehl kann verwendet werden, um einen neuen Benutzer zu erstellen. UserPrincipalName ist optional. In diesem Fall wird E-Mail nicht verwendet.

New-ADUser -SamAccountName nnn2 -Name "nnn2" -UserPrincipalName nnn2@jj -AccountPassword (ConvertTo-SecureString -AsPlainText "somePassword" -Force) -Enabled $true -PasswordNeverExpires $true -Path 'CN=Users,DC=jjdomain,DC=net'

Wenn Sie einen Benutzer in einer vertrauenswürdigen Domäne erstellen möchten, fügen Sie dem obigen Befehl -server dns.domain hinzu

sejong
quelle
1
Dies ist v2-spezifisch. Rob, benutzt du v1 oder v2?
Doug Chase
4
"PasswordNeverExpires $ true" !!!!!! :-)
pauska
Sie benötigen das PowerShell-Modul, wenn Sie es nicht haben:
northben 06.09.12
1
add-windowsfeature rsat-ad-powershell; ipmo activedirectory
Northben
6

Ich würde empfehlen, die AD-Cmdlets von Quest zu untersuchen:

http://www.quest.com/powershell/activeroles-server.aspx

Ein neuer AD-Benutzer wäre:

new-QADUser -name 'user1' -ParentContainer 'OU=companyOU,DC=company,DC=com' -samAccountName 'user1' -UserPassword 'P@ssword'

Für 'pure' Powershell erspart Shays Vorschlag von Ideras Skripten die Verwendung zusätzlicher Cmdlets. Wohlgemerkt, wenn Sie sich die Mühe machen wollen, die Skripte herunterzuladen, können Sie auch die Quest-Cmdlets herunterladen.

fenster
quelle
5

Ich nahm Brads Antwort oben und fügte unten ein bisschen mehr Details hinzu (danke Brad, dass ich in diese Richtung gedacht habe):

CSV-Datei eingeben:

cn,givenname,sn,sAMAccountName,displayname,UserPrincipalName
Joe Smith,Joe,Smith,jsmith,Joe Smith,jsmith@domain.com
Susan Johnson,Susan,Johnson,sjohnson,Susan Johnson,sjohnson@domain.com

Code:

$inputFile = Import-CSV  <insert filepath here>

foreach($line in $inputFile)
{
    ## need to add quotes around DSN        
    $dsn = "`"cn="+$line.cn+",ou=userou,dc=domain,dc=com`""
    $samid = $line.sAMAccountName
    $ln = $line.sn
    $fn = $line.givenname
    $dn = $line.displayname
    ## need to add quotes around display name
    $dn2 = "`"$dn`""
    $upn = $line.UserPrincipalName

    cmd /c "dsadd user $dsn -samid $samid -ln $ln -fn $fn -display $dn2
    -upn $upn -mustchpwd yes -pwd TempP@assw0rd"

    write-host `n
}    

Viel Glück!

Bobby T
quelle
2

Wenn Sie nur die gleichen Benutzer in verschiedenen Netzwerken / Domänen einrichten, sollte eine einfache alte .cmd-Datei den Trick tun. Rufen Sie einfach den Befehl dsadd für jeden Benutzer auf.

Ein Aufruf von dsadd oder dsmod würde auch mitten in einem Powershell-Skript funktionieren. Sie könnten sogar eine CSV-Datei mit Benutzernamen / Passwörtern haben, die Sie mit einem Powershell-Skript importieren und jede Zeile mit einem Aufruf von dsadd oder dsmod wie folgt durchlaufen können:

$inputFile = Import-CSV  <insert filepath here>

foreach($line in $inputFile)
{
    dsadd user -samid $line.Username -pwd $line.Password
}

Die ds-Befehle (dsadd, dsmod usw.) werden zusammen mit der Active Directory-Rolle installiert, sodass sie verfügbar sind, sobald AD ausgeführt wird.

Brad Lane
quelle