Jak utworzyć konto użytkownika usługi Active Directory za pomocą programu PowerShell

19

Ciągle konfiguruję środowiska badawczo-rozwojowe wymagające kont active directory. Ponieważ umieszczamy te środowiska w izolowanych sieciach, każde środowisko potrzebuje własnego katalogu aktywnego. Jak mogę utworzyć nowe konto Active Directory za pomocą programu PowerShell.

Rob Murdoch
źródło

Odpowiedzi:

19

Nie jestem pewien, czy szukasz skryptu, który pobierze listę nazw, haseł itp., Ale następujące polecenie pozwala utworzyć jednego nowego użytkownika. UserPrincipalName jest opcjonalna. W takim przypadku wiadomość e-mail nie jest używana.

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'

Jeśli chcesz utworzyć użytkownika w zaufanej domenie, dodaj -server dns.domain do powyższego polecenia

sejong
źródło
1
Jest to specyficzne dla v2. Rob, używasz v1 czy v2?
Doug Chase,
4
„PasswordNeverExpires $ true” !!!!!! :-)
pauska,
Potrzebujesz modułu PowerShell, jeśli go nie masz:
northben
1
add-windowsfeature rsat-ad-powershell; ipmo activedirectory
northben
6

Polecam sprawdzenie poleceń cmdlet AD AD:

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

Nowym użytkownikiem AD będzie:

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

Jednak dla „czystej” Powershell sugestia Shay'a dotycząca skryptów Idera pozwoliłaby ci zaoszczędzić przy użyciu dodatkowych poleceń cmdlet. Pamiętaj, że jeśli masz problem z pobraniem skryptów, równie dobrze możesz pobrać polecenia cmdlet Quest.

fenster
źródło
5

Wziąłem odpowiedź Brada powyżej i dodałem nieco więcej szczegółów poniżej (dziękuję Brad za nakłonienie mnie do myślenia w tym kierunku):

Wprowadź plik 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

Kod:

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

Powodzenia!

Bobby T.
źródło
2

jeśli konfigurujesz tych samych użytkowników w różnych sieciach / domenach, wystarczy zwykły stary plik .cmd. Po prostu wysyłaj połączenia do dsadd polecenia dla każdego użytkownika.

wywołanie dsadd lub dsmod również działałoby w środku skryptu PowerShell. możesz nawet mieć plik CSV z nazwą użytkownika / hasłem, który możesz zaimportować za pomocą skryptu PowerShell i zapętlić każdą linię za pomocą wywołania dsadd lub dsmod w następujący sposób:

$inputFile = Import-CSV  <insert filepath here>

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

Polecenia ds (dsadd, dsmod itp.) Są instalowane z rolą Active Directory, więc są dostępne, gdy masz AD uruchomione i uruchomione.

brad.lane
źródło