sviluppo-web-qa.it

Come creare un account utente di Active Directory con PowerShell

Creo costantemente ambienti di ricerca e sviluppo che richiedono account di Active Directory. Poiché inseriamo questi ambienti in reti isloated, ogni ambiente ha bisogno del proprio Active Directory. Come posso creare un nuovo account di Active Directory usando PowerShell.

19
Rob Murdoch

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 [email protected] -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 attendibile, aggiungere - server dns.domain al comando sopra

19
sejong

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 '[email protected]'

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

6
fenster

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,[email protected]
Susan Johnson,Susan,Johnson,sjohnson,Susan Johnson,[email protected]

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 [email protected]"

    write-Host `n
}    

In bocca al lupo!

5
Bobby T

se stai semplicemente configurando gli stessi utenti su reti/domini diversi, un semplice vecchio file .cmd dovrebbe fare il trucco. Invia semplicemente le chiamate al comando dsadd per ciascun utente.

una chiamata a dsadd o dsmod funzionerebbe anche nel mezzo di uno script PowerShell. potresti anche 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 quando AD è attivo e in esecuzione.

2
brad.lane