it-swarm.asia

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

Active Directory hesapları gerektiren araştırma ve geliştirme ortamlarını sürekli olarak kuruyorum. Bu ortamları ayrılmış ağlara yerleştirdiğimizden, her ortamın kendi Active Directory'sine ihtiyacı vardır. Powershell kullanarak nasıl yeni bir Active Directory hesabı oluşturabilirim.

19
Rob Murdoch

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 [email protected] -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 ekleyin

19
sejong

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 '[email protected]'

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.

6
fenster

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,[email protected]
Susan Johnson,Susan,Johnson,sjohnson,Susan Johnson,[email protected]

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 [email protected]"

    write-Host `n
}    

İyi şanslar!

5
Bobby T

aynı kullanıcıları farklı ağlarda/alan adlarında ayarlıyorsanız, hileyi eski düz bir .cmd dosyası yapmalıdır. Her kullanıcı için dsadd komutunu çağırmanız yeterlidir.

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.) Active Directory rolüyle yüklenir, bu nedenle AD çalışmaya başladıktan sonra kullanılabilirler.

2
brad.lane