20 votos

Cómo crear una cuenta de usuario de Active Directory con powershell

Constantemente configuro entornos de investigación y desarrollo que requieren cuentas de directorio activo. Como colocamos estos entornos en redes aisladas, cada entorno necesita su propio directorio activo. Cómo puedo crear una nueva cuenta de active directory usando powershell.

20voto

sejong Puntos 256

No estoy seguro de si estás buscando un script que tome una lista de nombres, contraseñas, etc, pero el siguiente comando funciona para crear un nuevo usuario. UserPrincipalName es opcional. En este caso, el correo electrónico no se utiliza.

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'

Si desea crear un usuario en un dominio de confianza, añada -servidor dns.dominio al comando anterior

1 votos

Esto es específico de la v2. Rob, ¿estás usando la v1 o la v2?

4 votos

¡¡¡¡¡¡"PasswordNeverExpires $true" !!!!!! :-)

0 votos

Necesita el módulo PowerShell si no lo tiene:

6voto

fenster Puntos 381

Yo recomendaría investigar los cmdlets AD de Quest:

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

Un nuevo usuario de AD sería:

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

Sin embargo, para Powershell 'puro', la sugerencia de Shay de los scripts de Idera te ahorraría el uso de cmdlets adicionales. Eso sí, si vas a tomarte la molestia de descargar los scripts también podrías descargar los cmdlets de Quest.

5voto

Bobby T Puntos 41

He tomado la respuesta de Brad de arriba y he añadido un poco más de detalle a continuación (gracias Brad por hacerme pensar en esta dirección):

Archivo CSV de entrada:

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

Código:

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

Buena suerte.

2voto

dmanxiii Puntos 8194

si sólo estás configurando los mismos usuarios en diferentes redes/dominios, un simple archivo .cmd debería funcionar. Sólo hay que hacer llamadas al archivo dsadd para cada usuario.

una llamada a dsadd o dsmod podría funcionar en medio de un powershell script también. incluso podría tener un archivo CSV de nombres de usuario/contraseñas que podría importar con un powershell script y hacer un bucle a través de cada línea con una llamada a dsadd o dsmod como esta:

$inputFile = Import-CSV  <insert filepath here>

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

Los comandos ds (dsadd, dsmod, etc.) se instalan con el rol de directorio activo, por lo que están disponibles una vez que se tiene AD en funcionamiento.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: