Frage Erstellen eines Active Directory-Benutzerkontos mit Powershell


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


18
2017-09-01 00:32


Ursprung




Antworten:


Ich bin mir nicht sicher, ob Sie nach einem Skript suchen, das eine Liste mit Namen, Kennwörtern usw. erstellt, aber der folgende Befehl funktioniert, um einen neuen Benutzer zu erstellen. UserPrincipalName ist optional. In diesem Fall wird die 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 hinzu -server DNS-Domäne über obigen Befehl


17
2017-09-01 01:12



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


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'

Bei "reinem" Powershell würde Shays Vorschlag von Ideras Skripts jedoch zusätzliche Cmdlets enthalten. Achtung, wenn Sie sich die Mühe machen, die Skripte herunterzuladen, können Sie auch die Quest-Cmdlets herunterladen.


6
2017-09-02 20:20





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

Eingabe der CSV-Datei:

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!


5
2018-02-27 07:37





Wenn Sie nur die gleichen Benutzer in verschiedenen Netzwerken / Domänen einrichten, sollten Sie eine einfache alte .cmd-Datei verwenden. Nur Anrufe an die dsadd Befehl für jeden Benutzer.

Ein Aufruf von dsadd oder dsmod würde auch in der Mitte eines Powershell-Skripts funktionieren. Sie könnten sogar eine CSV-Datei mit Benutzernamen / Passwörtern haben, die Sie mit einem Powershell-Skript importieren und durch 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 mit der Active Directory-Rolle installiert, sodass sie verfügbar sind, sobald Sie AD aktiviert haben.


2
2017-09-02 21:11