Come creare un account utente di Active Directory con PowerShell


19

Creo costantemente ambienti di ricerca e sviluppo che richiedono account di directory attive. Poiché inseriamo questi ambienti in reti isloated, ogni ambiente necessita di una propria directory attiva. Come posso creare un nuovo account di Active Directory usando PowerShell.

Risposte:


19

Non sono sicuro se stai cercando uno script che prenderà un elenco di nomi, password, ecc., Ma il seguente comando funziona per creare un nuovo utente. UserPrincipalName è facoltativo. In questo caso, l'e-mail non viene utilizzata.

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'

Se si desidera creare un utente in un dominio trusted, aggiungere -server dns.domain al comando precedente


1
Questo è specifico per v2. Rob, stai usando v1 o v2?
Doug Chase,

4
"PasswordNeverExpires $ true" !!!!!! :-)
pauska,

È necessario il modulo PowerShell se non lo si possiede:
Northben,

1
add-windowsfeature rsat-ad-powershell; ipmo activedirectory
Northben,

6

Consiglierei di indagare sui cmdlet AD di Quest:

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

Un nuovo utente AD sarebbe:

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

Tuttavia, per Powershell "puro", il suggerimento di Shay per gli script di Idera ti salverebbe usando ulteriori cmdlet. Intendiamoci, se si ha il problema di scaricare gli script, è possibile anche scaricare i cmdlet Quest.


5

Ho preso la risposta di Brad sopra e ho aggiunto un po 'più di dettagli sotto (grazie Brad per avermi fatto pensare in questa direzione):

Inserisci file CSV:

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

Codice:

$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
}    

In bocca al lupo!


2

se stai semplicemente configurando gli stessi utenti su reti / domini diversi, un semplice vecchio file .cmd dovrebbe fare al caso tuo. Basta inviare chiamate al comando dsadd per ciascun utente.

una chiamata a dsadd o dsmod funzionerebbe anche nel mezzo di uno script PowerShell. potresti persino avere un file CSV di nome utente / password che potresti importare con uno script PowerShell e scorrere attraverso ogni linea con una chiamata a dsadd o dsmod in questo modo:

$inputFile = Import-CSV  <insert filepath here>

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

I comandi ds (dsadd, dsmod, ecc.) Vengono installati con il ruolo di active directory, quindi sono disponibili una volta che AD è attivo e in esecuzione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.