Como criar uma conta de usuário do Active Directory com o PowerShell

19

Estou constantemente configurando ambientes de pesquisa e desenvolvimento que exigem contas de diretório ativas. Como colocamos esses ambientes em redes isloated, cada ambiente precisa de seu próprio diretório ativo. Como posso criar uma nova conta de diretório ativo usando o powershell.

    
por Rob Murdoch 01.09.2009 / 02:32

4 respostas

18

Não tenho certeza se você está procurando um script que tenha uma lista de nomes, senhas etc., mas o seguinte comando funciona para criar um novo usuário. UserPrincipalName é opcional. Neste caso, o email não é usado.

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 você deseja criar um usuário em um domínio confiável, adicione -server dns.domain ao comando acima

    
por 01.09.2009 / 03:12
6

Eu recomendaria investigar os cmdlets do AD da Quest:

link

Um novo usuário do AD seria:

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

No entanto, para o Powershell 'puro', a sugestão de Shay dos scripts da Idera salvaria você usando cmdlets adicionais. Lembre-se, se você tiver que fazer o download dos scripts, você pode baixar os cmdlets do Quest.

    
por 02.09.2009 / 22:20
5

Eu peguei a resposta de Brad acima e adicionei mais detalhes abaixo (obrigado Brad por me fazer pensar nessa direção):

Arquivo CSV de entrada:

cn,givenname,sn,sAMAccountName,displayname,UserPrincipalName
Joe Smith,Joe,Smith,jsmith,Joe Smith,[email protected]
Susan Johnson,Susan,Johnson,sjohnson,Susan Johnson,[email protected]

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
}    

Boa sorte!

    
por 27.02.2012 / 08:37
2

Se você está apenas configurando os mesmos usuários em redes / domínios diferentes, um arquivo .cmd simples e simples deve resolver o problema. Basta fazer chamadas para o comando dsadd para cada usuário.

uma chamada para dsadd ou dsmod também funcionaria no meio de um script PowerShell. Você poderia até mesmo ter um arquivo CSV de nome de usuário / senhas que você poderia importar com um script powershell e fazer um loop através de cada linha com uma chamada para dsadd ou dsmod assim:

$inputFile = Import-CSV  <insert filepath here>

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

Os comandos ds (dsadd, dsmod, etc) são instalados com a função de diretório ativo, para que estejam disponíveis assim que você tiver o AD em funcionamento.

    
por 02.09.2009 / 23:11