Cara membuat akun pengguna Active Directory dengan PowerShell

19

Saya terus-menerus menyiapkan lingkungan penelitian dan pengembangan yang memerlukan akun direktori aktif. Karena kami menempatkan lingkungan ini dalam jaringan yang tertutup, setiap lingkungan membutuhkan direktori aktifnya sendiri. Bagaimana saya bisa membuat akun direktori aktif baru menggunakan PowerShell.

Rob Murdoch
sumber

Jawaban:

19

Saya tidak yakin apakah Anda mencari skrip yang akan mengambil daftar nama, kata sandi, dll, tetapi perintah berikut berfungsi untuk membuat satu pengguna baru. UserPrincipalName adalah opsional. Dalam hal ini, email tidak digunakan.

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'

Jika Anda ingin membuat pengguna di domain tepercaya, tambahkan -server dns.domain ke perintah di atas

sejong
sumber
1
Ini spesifik v2. Rob, apakah Anda menggunakan v1 atau v2?
Doug Chase
4
"PasswordNeverExpires $ true" !!!!!! :-)
pauska
Anda memerlukan modul PowerShell jika Anda tidak memilikinya:
northben
1
add-windowsfeature rsat-ad-powershell; ipmo activedirectory
northben
6

Saya akan merekomendasikan menyelidiki cmdlet AD Quest:

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

Pengguna AD baru adalah:

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

Namun, untuk Powershell 'murni', saran Shay tentang skrip Idera akan menyelamatkan Anda menggunakan cmdlet tambahan. Pikiran Anda, jika Anda ingin pergi ke masalah mengunduh skrip Anda mungkin juga mengunduh cmdlet Quest.

fenster
sumber
5

Saya mengambil jawaban Brad di atas dan menambahkan sedikit lebih detail di bawah ini (terima kasih Brad karena membuat saya berpikir ke arah ini):

Input file 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

Kode:

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

Semoga berhasil!

Bobby T
sumber
2

jika Anda hanya mengatur pengguna yang sama di jaringan / domain yang berbeda, file .cmd biasa akan melakukan trik. Hanya mengeluarkan panggilan ke perintah dsadd untuk setiap pengguna.

panggilan ke dsadd atau dsmod akan bekerja di tengah skrip PowerShell juga. Anda bahkan dapat memiliki file CSV nama pengguna / kata sandi yang dapat Anda impor dengan skrip PowerShell dan loop melalui setiap baris dengan panggilan ke dsadd atau dsmod seperti ini:

$inputFile = Import-CSV  <insert filepath here>

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

Perintah ds (dsadd, dsmod, dll) diinstal dengan peran direktori aktif, sehingga tersedia setelah Anda menjalankan dan menjalankan AD.

brad.lane
sumber