วิธีสร้างบัญชีผู้ใช้ Active Directory ด้วย PowerShell


19

ฉันกำลังตั้งค่าสภาพแวดล้อมการวิจัยและพัฒนาที่จำเป็นต้องมีบัญชีไดเรกทอรีที่ใช้งานอยู่ เนื่องจากเราวางสภาพแวดล้อมเหล่านี้ไว้ในเครือข่ายที่มีการเชื่อมโยงแต่ละสภาพแวดล้อมจึงจำเป็นต้องมีไดเรกทอรีที่ใช้งานอยู่ ฉันจะสร้างบัญชีไดเรกทอรีที่ใช้งานใหม่โดยใช้ powershell ได้อย่างไร

คำตอบ:


19

ฉันไม่แน่ใจว่าคุณกำลังมองหาสคริปต์ที่จะใช้รายการชื่อรหัสผ่านและอื่น ๆ แต่คำสั่งต่อไปนี้ทำงานเพื่อสร้างผู้ใช้ใหม่ UserPrincipalName เป็นทางเลือก ในกรณีนี้จะไม่ใช้อีเมล

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'

หากคุณต้องการสร้างผู้ใช้ในโดเมนที่เชื่อถือได้ให้เพิ่ม-server dns.domainไปยังคำสั่งด้านบน


1
นี่คือเฉพาะ v2 Rob คุณใช้ v1 หรือ v2 หรือไม่
Doug Chase

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

คุณต้องการโมดูล PowerShell หากคุณไม่มี:
northben

1
add-windowsfeature rsat-ad-powershell; ipmo activedirectory
เบ็น

6

ฉันอยากจะแนะนำให้ตรวจสอบ cmdlets ของ Quest:

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

ผู้ใช้โฆษณาใหม่จะเป็น:

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

อย่างไรก็ตามสำหรับ PowerShell ที่ 'บริสุทธิ์' คำแนะนำของ Shay เกี่ยวกับสคริปต์ของ Idera จะช่วยให้คุณประหยัดได้โดยใช้ cmdlets เพิ่มเติม โปรดทราบถ้าคุณต้องไปที่ปัญหาในการดาวน์โหลดสคริปต์คุณอาจดาวน์โหลด Quest cmdlets ด้วยเช่นกัน


5

ฉันรับคำตอบของแบรดข้างต้นและเพิ่มรายละเอียดเพิ่มเติมด้านล่าง (ขอบคุณแบรดที่ทำให้ฉันคิดในทิศทางนี้):

ใส่ไฟล์ 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

รหัส:

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

โชคดี!


2

หากคุณเพียงแค่ตั้งค่าผู้ใช้เดียวกันในเครือข่าย / โดเมนที่ต่างกันไฟล์. cmd แบบเก่าที่ควรทำคือการหลอกลวง เพียงแค่เรียกใช้คำสั่งdsaddสำหรับผู้ใช้แต่ละคน

การเรียกใช้ dsadd หรือ dsmod จะทำงานระหว่างสคริปต์ powershell เช่นกัน คุณสามารถมีไฟล์ CSV ชื่อผู้ใช้ / รหัสผ่านซึ่งคุณสามารถนำเข้าด้วยสคริปต์ PowerShell และวนรอบแต่ละบรรทัดด้วยการโทรไปยัง dsadd หรือ dsmod ดังนี้:

$inputFile = Import-CSV  <insert filepath here>

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

คำสั่ง ds (dsadd, dsmod และอื่น ๆ ) จะได้รับการติดตั้งด้วยบทบาทของไดเรกทอรีที่ใช้งานอยู่ดังนั้นพวกเขาจึงสามารถใช้งานได้เมื่อคุณมี AD และทำงาน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.