PowerShell ile Active Directory kullanıcı hesabı nasıl oluşturulur


19

Sürekli aktif dizin hesapları gerektiren araştırma ve geliştirme ortamları kuruyorum. Bu ortamları ayrılmış ağlara yerleştirdiğimizden, her ortamın kendi etkin dizinine ihtiyacı vardır. Powershell kullanarak nasıl yeni bir etkin dizin hesabı oluşturabilirim.

Yanıtlar:


19

Adların, parolaların vb. Bir listesini alacak bir komut dosyası arıyorsanız emin değilim, ancak aşağıdaki komut yeni bir kullanıcı oluşturmak için çalışır. UserPrincipalName isteğe bağlıdır. Bu durumda, e-posta kullanılmaz.

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'

Güvenilen bir etki alanında kullanıcı oluşturmak istiyorsanız, yukarıdaki komuta -server dns.domain öğesini ekleyin


1
Bu v2'ye özgüdür. Rob, v1 mi yoksa v2 mi kullanıyorsun?
Doug Chase

4
"PasswordNeverExcelires $ true" !!!!!! :-)
pauska

Eğer yoksa, PowerShell modülüne ihtiyacınız vardır:
northben

1
add-windowsfeature rsat-ad-powershell; ipmo activedirectory
northben

6

Quest'in AD cmdlet'lerini araştırmanızı tavsiye ederim:

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

Yeni bir AD kullanıcısı:

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

Bununla birlikte, 'saf' Powershell için, Shay'in Idera'nın komut dosyaları önerisi sizi ek cmdlet'ler kullanarak kurtaracaktır. Dikkat edin, eğer scriptleri indirmekte zorlanıyorsanız, Quest cmdlet'lerini de indirebilirsiniz.


5

Yukarıda Brad'in cevabını aldım ve aşağıya biraz daha detay ekledim (Brad bu yöne doğru düşünmemi sağladı):

CSV dosyasını girin:

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
}    

İyi şanslar!


2

aynı kullanıcıları farklı ağlarda / alan adlarında ayarlıyorsanız, hileyi eski düz bir .cmd dosyası yapmalıdır. Sadece çağrı sorunu dsadd her kullanıcı için komuta.

dsadd veya dsmod'a yapılan bir çağrı, powershell betiğinin ortasında da işe yarayacaktır. bir powershell betiği ile içe aktarabileceğiniz ve dsadd veya dsmod'a bir çağrı ile her satırdan geçebileceğiniz bir CSV kullanıcı adı / şifresi bile olabilir:

$inputFile = Import-CSV  <insert filepath here>

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

Ds komutları (dsadd, dsmod, vb.) Etkin dizin rolüyle yüklenir, bu nedenle AD açıldığında ve çalıştırıldığında kullanılabilirler.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.