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 do diretório ativo. Como colocamos esses ambientes em redes isoladas, cada ambiente precisa de seu próprio diretório ativo. Como posso criar uma nova conta do Active Directory usando o PowerShell.

Rob Murdoch
fonte

Respostas:

19

Não tenho certeza se você está procurando um script que leve uma lista de nomes, senhas, etc., mas o comando a seguir funciona para criar um novo usuário. UserPrincipalName é opcional. Nesse 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

sejong
fonte
1
Isso é específico da v2. Rob, você está usando a v1 ou a v2?
Doug Chase #
4
"PasswordNeverExpires $ true" !!!!!! :-)
pauska
Você precisa do módulo PowerShell, se não o tiver:
northben 6/09/12
1
add-windowsfeature rsat-ad-powershell; ipmo activedirectory
northben 6/09/12
6

Eu recomendaria investigar os cmdlets do AD do Quest:

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

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 de Idera pouparia você usando cmdlets adicionais. Lembre-se de que, se você tiver o problema de baixar os scripts, faça o download dos cmdlets do Quest.

Fenster
fonte
5

Peguei a resposta de Brad acima e adicionei um pouco mais detalhadamente 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,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
}    

Boa sorte!

Bobby T
fonte
2

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

uma chamada para dsadd ou dsmod também funcionaria no meio de um script do PowerShell. você pode até ter um arquivo CSV de nome de usuário / senhas que você pode importar com um script do PowerShell e percorrer cada linha com uma chamada para dsadd ou dsmod como este:

$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 quando o AD estiver em execução.

brad.lane
fonte