ค้นหาเว็บไซต์

วิธีสร้างผู้ใช้ Active Directory ใหม่ด้วย PowerShell


วิธีที่ง่ายที่สุดในการสร้างผู้ใช้ใหม่ในโดเมน Active Directory คือการใช้สแน็ปอิน MMC ผู้ใช้ Active Directory และคอมพิวเตอร์ (ADUC) หรือ Active Directory Administrative Center (ADAC) แต่จะเกิดอะไรขึ้นหากไม่มีเครื่องมือเหล่านี้หรือคุณต้องทำงานที่ซับซ้อนมากขึ้น เช่น การสร้างบัญชีผู้ใช้หลายบัญชีพร้อมกัน? เข้าสู่ PowerShell ซึ่งเป็นเครื่องมือที่ทรงพลังและยืดหยุ่นสำหรับการสร้างบัญชี Active Directory และอื่นๆ อีกมากมาย

บล็อกนี้จะทบทวนกระบวนการสร้างผู้ใช้ Active Directory ใหม่ด้วย ADUC และ ADAC จากนั้นเจาะลึกลงใน PowerShell cmdlet New-ADUser เราจะกล่าวถึงกรณีการใช้งานยอดนิยมสำหรับ cmdlet นี้ และจัดเตรียมไวยากรณ์แบบเต็มเพื่อให้คุณสามารถสำรวจเพิ่มเติมได้

การสร้างผู้ใช้ AD ด้วย ADUC

เมื่อต้องการสร้างผู้ใช้ใหม่ใน Active Directory โดยใช้สแน็ปอินผู้ใช้ Active Directory และคอมพิวเตอร์ ให้ทำตามขั้นตอนเหล่านี้:

  1. เปิดคอนโซล ADUC ด้วยวิธีใดวิธีหนึ่งต่อไปนี้:

    • พิมพ์ dsa.msc ในกล่องโต้ตอบเรียกใช้ และคลิก ตกลง

    • เปิดตัวจัดการเซิร์ฟเวอร์แล้วคลิก เครื่องมือ > ผู้ใช้ Active Directory และคอมพิวเตอร์

  2. คลิกขวาที่ OU ที่คุณต้องการสร้างผู้ใช้ และเลือก ใหม่ > ผู้ใช้:

  3. ระบุรายละเอียดเกี่ยวกับผู้ใช้แล้วคลิก ถัดไป

  4. ระบุรหัสผ่านและเลือกตัวเลือกรหัสผ่านที่ต้องการ จากนั้นคลิก ถัดไป

  5. ตรวจสอบรายละเอียดที่คุณระบุแล้วคลิก เสร็จสิ้น เพื่อสร้างผู้ใช้ใน Active Directory

การสร้างผู้ใช้ AD ด้วย ADAC

ศูนย์การจัดการ Active Directory มีตัวเลือกเพิ่มเติมในระหว่างการสร้างผู้ใช้มากกว่า ADUC ต่อไปนี้เป็นขั้นตอนในการสร้างผู้ใช้ด้วย ADAC:

  1. เปิดคอนโซล ADAC ด้วยวิธีใดวิธีหนึ่งต่อไปนี้:

    • พิมพ์ dsac.exe ในกล่องโต้ตอบเรียกใช้

    • เปิดตัวจัดการเซิร์ฟเวอร์แล้วคลิก เครื่องมือ > Active Directory Administrative Center

  2. อินเทอร์เฟซ ADAC แสดงอยู่ด้านล่าง อย่างที่คุณเห็น มันมีตัวเลือกมากกว่า ADUC มากมาย เช่น:

    • ค้นหา
    • การนำทางที่ง่ายดายภายในโดเมน
    • ลิงก์ด่วนสำหรับดำเนินการทั่วไป (ในบานหน้าต่างด้านขวา)
      หากต้องการสร้างผู้ใช้ AD ใหม่ คลิก ใหม่

  3. ในหน้าต่างสร้างผู้ใช้ ให้ระบุตัวเลือกที่คุณต้องการกำหนดค่าสำหรับผู้ใช้ใหม่ จากนั้นคลิก ตกลง

การสร้างผู้ใช้ AD ด้วย PowerShell

การใช้ ADUC และ ADAC ทำให้การเพิ่มผู้ใช้รายเดียวเป็นเรื่องง่าย แต่ทั้งสองขาดฟังก์ชันในการสร้างผู้ใช้จำนวนมาก PowerShell นำเสนอหลายวิธีที่ไม่เพียงแต่สร้างผู้ใช้รายเดียวเท่านั้น แต่ยังสร้างออบเจ็กต์ผู้ใช้ Active Directory จำนวนมากอีกด้วย เริ่มต้นด้วยการตรวจสอบไวยากรณ์และพารามิเตอร์ของ cmdlet ที่เราจะใช้: New-ADUser

คุณสามารถใช้พารามิเตอร์บางตัวกับคำสั่ง New-ADUser เพื่อเติมข้อมูลคุณสมบัติผู้ใช้ทั่วไปได้

  • การใช้พารามิเตอร์ OtherAttributes คุณสามารถเปลี่ยนค่าคุณสมบัติที่ไม่เกี่ยวข้องกับพารามิเตอร์ cmdlet ได้ ตรวจสอบให้แน่ใจว่าได้ใส่ชื่อแอตทริบิวต์ไว้ในเครื่องหมายคำพูดเดี่ยวเมื่อใช้พารามิเตอร์นี้
  • หากต้องการสร้างผู้ใช้ คุณต้องระบุพารามิเตอร์ SamAccountName
  • คอนเทนเนอร์หรือหน่วยองค์กร (OU) สำหรับผู้ใช้ใหม่จะถูกระบุโดยพารามิเตอร์เส้นทาง เมื่อไม่ได้ใช้ตัวเลือก เส้นทาง cmdlet จะสร้างวัตถุผู้ใช้ในคอนเทนเนอร์วัตถุผู้ใช้เริ่มต้นของโดเมน

เทคนิคต่อไปนี้อธิบายวิธีการต่างๆ ในการสร้างวัตถุโดยใช้ cmdlet นี้:

  • ด้วยคำสั่ง New-ADUser ให้ระบุพารามิเตอร์และค่าที่ใช้โดยทั่วไป และตั้งค่าเพิ่มเติมใดๆ โดยใช้พารามิเตอร์ OtherAttributes
  • คุณยังสามารถสร้างผู้ใช้ใหม่จากเทมเพลตได้อีกด้วย ใช้พารามิเตอร์อินสแตนซ์เพื่อสร้างผู้ใช้ใหม่หรือคัดลอกผู้ใช้ที่มีอยู่ไปยังออบเจ็กต์ใหม่ วัตถุที่ใช้ในพารามิเตอร์อินสแตนซ์ถูกใช้เป็นเทมเพลต
  • หากต้องการสร้างออบเจ็กต์ผู้ใช้ Active Directory จำนวนมาก ให้รวม Import-Csv cmdlet กับ New-ADUser cmdlet

    1. นำเข้าไฟล์ CSV พร้อมรายการคุณสมบัติของออบเจ็กต์เพื่อสร้างออบเจ็กต์แบบกำหนดเองโดยใช้ Import-Csv cmdlet
    2. จากนั้นสามารถใช้ cmdlet ADUser ใหม่เพื่อสร้างวัตถุผู้ใช้โดยส่งวัตถุเหล่านี้ผ่านไปป์ไลน์

ก่อนที่เราจะเริ่ม เราต้องเปิดใช้งานโมดูล Active Directory PowerShell ที่สร้างไว้ใน Microsoft Windows Server 2008R2/2012 ขึ้นไปโดยการรันคำสั่งนี้:

Cmdlet ADUser ใหม่: ไวยากรณ์

ตอนนี้เรามาตรวจสอบไวยากรณ์ของ New-ADUser cmdlet:

Get-Command New-ADUser –Syntax

นี่คือข้อมูลเดียวกันในรูปแบบที่คุณสามารถคัดลอกและแก้ไขได้ตามความต้องการของคุณ:

New-ADUser   [-WhatIf]   [-Confirm]   [-AccountExpirationDate <DateTime>]   [-AccountNotDelegated <Boolean>]   [-AccountPassword <SecureString>]   [-AllowReversiblePasswordEncryption <Boolean>]   [-AuthenticationPolicy <ADAuthenticationPolicy>]   [-AuthenticationPolicySilo <ADAuthenticationPolicySilo>]   [-AuthType <ADAuthType>]   [-CannotChangePassword <Boolean>]
   [-Certificates <X509Certificate[]>]   [-ChangePasswordAtLogon <Boolean>]   [-City <String>]
   [-Company <String>]   [-CompoundIdentitySupported <Boolean>]   [-Country <String>]
   [-Credential <PSCredential>]   [-Department <String>]   [-Description <String>]   [-DisplayName <String>]   [-Division <String>]   [-EmailAddress <String>]   [-EmployeeID <String>]   [-EmployeeNumber <String>]   [-Enabled <Boolean>]   [-Fax <String>]   [-GivenName <String>]
   [-HomeDirectory <String>]   [-HomeDrive <String>]   [-HomePage <String>]   [-HomePhone <String>]
   [-Initials <String>]   [-Instance <ADUser>]   [-KerberosEncryptionType <ADKerberosEncryptionType>]   [-LogonWorkstations <String>]   [-Manager <ADUser>]   [-MobilePhone <String>]   [-Name] <String>   [-Office <String>]   [-OfficePhone <String>]
   [-Organization <String>]   [-OtherAttributes <Hashtable>]   [-OtherName <String>]   [-PassThru]
   [-PasswordNeverExpires <Boolean>]   [-PasswordNotRequired <Boolean>]   [-Path <String>]
   [-POBox <String>]   [-PostalCode <String>]   [-PrincipalsAllowedToDelegateToAccount <ADPrincipal[]>]   [-ProfilePath <String>]   [-SamAccountName <String>]   [-ScriptPath <String>]
   [-Server <String>]   [-ServicePrincipalNames <String[]>]   [-SmartcardLogonRequired <Boolean>]
   [-State <String>]   [-StreetAddress <String>]   [-Surname <String>]   [-Title <String>]   [-TrustedForDelegation <Boolean>]   [-Type <String>]   [-UserPrincipalName <String>]

ใหม่ ADUser: พารามิเตอร์

New-ADUser cmdlet มีพารามิเตอร์มากกว่า 60 รายการ แต่คุณไม่จำเป็นต้องรู้พารามิเตอร์ทั้งหมดทันที ต่อไปนี้คือบัญชีที่ใช้กันมากที่สุดในการสร้างบัญชีผู้ใช้ AD:

Parameter

ใช้เพื่อ

AccountExpirationDate

ระบุวันหมดอายุของบัญชี

AccountPassword

ระบุรหัสผ่านของบัญชี

AuthType

เลือกประเภทการรับรองความถูกต้องเมื่อรันคำสั่ง

CannotChangePassword

ป้องกันไม่ให้เจ้าของบัญชีเปลี่ยนรหัสผ่าน (มักใช้สำหรับบัญชีบริการ)

ChangePasswordAtLogon

บังคับให้ผู้ใช้เปลี่ยนรหัสผ่านบัญชีเมื่อเข้าสู่ระบบครั้งถัดไป

City

ระบุเมืองสำหรับบัญชีผู้ใช้

Company

ระบุบริษัทสำหรับบัญชีผู้ใช้

Confirm

รับพร้อมท์การยืนยันเพื่อเรียกใช้ cmdlet

Country

ระบุประเทศสำหรับบัญชีผู้ใช้

Credential

รันคำสั่งด้วยข้อมูลรับรองอื่น

Department

ระบุแผนกของผู้ใช้

Description

ระบุคำอธิบายสำหรับบัญชีผู้ใช้

DisplayName

ระบุชื่อที่แสดงของบัญชี

EmailAddress

ระบุที่อยู่อีเมลของบัญชี

EmployeeID

ระบุรหัสพนักงานของผู้ใช้

Enabled

เปิดใช้งานบัญชีผู้ใช้

Instance

สร้างบัญชีผู้ใช้ตามบัญชีที่มีอยู่ เช่น บัญชีที่มีคุณสมบัติแผนกและชื่อเดียวกันกับบัญชีที่คุณกำลังสร้าง

Manager

ระบุผู้จัดการของบัญชีผู้ใช้

Office

ระบุแอตทริบิวต์ office ของบัญชีผู้ใช้

Organization

ระบุองค์กรของผู้ใช้

OtherAttributes

ระบุค่าสำหรับแอตทริบิวต์ที่ไม่มีพารามิเตอร์ที่สอดคล้องกันใน cmdlet เช่นแอตทริบิวต์ extensionAttribute1 ถึง 15

PasswordNeverExpires

บังคับให้รหัสผ่านของบัญชีไม่มีวันหมดอายุ

PasswordNotRequired

ระบุว่าบัญชี เช่น บัญชีบริการ ไม่จำเป็นต้องมีรหัสผ่าน

Path

ระบุเส้นทาง OU เพื่อสร้างบัญชีผู้ใช้

SamAccountName

ระบุแอตทริบิวต์ SAMAccountName ของบัญชี ซึ่งเป็นชื่อเข้าสู่ระบบที่ใช้เพื่อรองรับไคลเอ็นต์และเซิร์ฟเวอร์ที่ใช้ Windows เวอร์ชันก่อนหน้า เช่น Windows NT 4.0, Windows 95 หรือ LAN Manager

Server

เชื่อมต่อกับ DC สำรองในขณะที่รันคำสั่ง

State

ระบุสถานะสหรัฐอเมริกาของผู้ใช้

StreetAddress

ระบุที่อยู่ของผู้ใช้

Title

ระบุชื่อของผู้ใช้

Type

ระบุประเภทของออบเจ็กต์ผู้ใช้ เช่น ผู้ใช้ปกติหรือผู้ใช้ inetOrgPerson

UserPrincipalName

ระบุ userPrincipalName (UPN) ของบัญชี ซึ่งโดยทั่วไปจะเป็นชื่อที่ผู้ใช้จะใช้เข้าสู่ระบบ

WhatIf

ดูว่าผลลัพธ์ของ cmdlet จะเป็นอย่างไรโดยไม่ต้องรันจริง

สถานการณ์ทั่วไปสำหรับการสร้างผู้ใช้ด้วย PowerShell

ตอนนี้เรามาดูวิธีหลักบางประการที่คุณอาจใช้ PowerShell เพื่อจัดเตรียมบัญชีผู้ใช้:

  • สร้างบัญชีผู้ใช้ใหม่
  • สร้างบัญชีผู้ใช้ใน OU เฉพาะ
  • สร้างผู้ใช้และตั้งค่าแอตทริบิวต์ที่ไม่ครอบคลุมโดยพารามิเตอร์ของ cmdlet
  • สร้างผู้ใช้ inetOrgPerson
  • สร้างผู้ใช้ใหม่ตามผู้ใช้ AD ที่มีอยู่
  • สร้างผู้ใช้จำนวนมากโดยใช้สคริปต์ PowerShell
  • สร้างผู้ใช้จำนวนมากโดยการนำเข้าแอตทริบิวต์จากไฟล์ CSV
  • สร้างบัญชีผู้ใช้หลายบัญชีโดยใช้ไฟล์ CSV

สร้างบัญชีผู้ใช้ใหม่

ตัวอย่างที่ 1: ระบุเฉพาะชื่อบัญชี

เริ่มจากกรณีที่ง่ายที่สุด: สร้างบัญชีผู้ใช้ใหม่โดยระบุเฉพาะแอตทริบิวต์ชื่อเท่านั้น ตัวอย่างเช่น:

New-ADUser B.Johnson

การเรียกใช้สิ่งนี้จะสร้างผู้ใช้ แต่จะไม่แสดงผลใด ๆ หากต้องการตรวจสอบว่าเพิ่มผู้ใช้สำเร็จหรือไม่ เราสามารถแสดงรายการผู้ใช้ Active Directory ทั้งหมดโดยใช้สคริปต์ต่อไปนี้:

Get-ADUser -Filter * -Properties samAccountName | select samAccountName

มาแล้วค่ะ ตัวสุดท้ายในรายการ!

อย่างไรก็ตาม โปรดทราบว่าผู้ใช้ที่เราเพิ่งสร้างขึ้นมีคุณสมบัติมากกว่าแค่ชื่อ คุณลักษณะต่อไปนี้ถูกตั้งค่าตามค่าเริ่มต้น:

  • บัญชีถูกสร้างขึ้นในคอนเทนเนอร์ "ผู้ใช้"
  • บัญชีถูกปิดใช้งาน
  • บัญชีนี้เป็นสมาชิกของกลุ่มผู้ใช้โดเมน
  • ผู้ใช้จะต้องรีเซ็ตรหัสผ่านเมื่อเข้าสู่ระบบครั้งแรก

ไม่มีการเติมแอตทริบิวต์ที่ต้องการจำนวนมาก โดยเฉพาะอย่างยิ่งไม่มีการตั้งรหัสผ่าน

ตัวอย่างที่ 2: ระบุแอตทริบิวต์เพิ่มเติม

ดังนั้น เรามาสร้างบัญชีใหม่ที่ใช้งานได้จริงโดยระบุแอตทริบิวต์เพิ่มเติม:

New-ADUser -Name "Jack Robinson" -GivenName "Jack" -Surname "Robinson" -SamAccountName "J.Robinson" -UserPrincipalName "J.Robinson@enterprise.com" -Path "OU=Managers,DC=enterprise,DC=com" -AccountPassword(Read-Host -AsSecureString "Input Password") -Enabled $true

พารามิเตอร์ Read-Host จะขอให้คุณป้อนรหัสผ่านใหม่ โปรดทราบว่ารหัสผ่านควรเป็นไปตามข้อกำหนดด้านความยาว ความซับซ้อน และประวัติของนโยบายความปลอดภัยของโดเมนของคุณ

ตอนนี้เรามาดูผลลัพธ์ด้วยการเรียกใช้ cmdlet ต่อไปนี้:

Get-ADUser J.Robinson -Properties CanonicalName, Enabled, GivenName, Surname, Name, UserPrincipalName, samAccountName, whenCreated, PasswordLastSet  | Select CanonicalName, Enabled, GivenName, Surname, Name, UserPrincipalName, samAccountName, whenCreated, PasswordLastSet

ตัวอย่างที่ 3: ระบุแอตทริบิวต์เพิ่มเติม

หากต้องการสร้างบัญชีผู้ใช้ที่มีคุณสมบัติครบถ้วนให้ใช้คำสั่งต่อไปนี้

New-ADUser -Name "Jason Bourne" -GivenName "Jason" -Surname "Bourne" -SamAccountName "Jason-Bourne" -AccountPassword (ConvertTo-SecureString -AsPlainText “webdir123R” -Force) -ChangePasswordAtLogon $True -Company "Versacorp" -Title "CEO" -State "California" -City "San Francisco" -Description "Test Account Creation" -EmployeeNumber "45" -Department "Engineering" -DisplayName "Jason Bourne" -Country "US" -PostalCode "94001" -Enabled $True

มาดูคุณลักษณะของผู้ใช้ใหม่บางส่วนกัน:

Get-ADUser -Identity Jason-bourne -Properties * | select name,samaccountname,company,title,department,city,state,country,description,employeenumber,postalcode

สร้างบัญชีผู้ใช้ใน OU เฉพาะ

ตามที่ระบุไว้ข้างต้น โดยค่าเริ่มต้น New-ADUser cmdlet จะสร้างผู้ใช้ใหม่ในคอนเทนเนอร์ "ผู้ใช้" ในโดเมน หากต้องการสร้างผู้ใช้ใน OU อื่น ให้ใช้พารามิเตอร์ -Path พร้อมด้วยชื่อที่แตกต่างของ OU ที่ต้องการ:

New-ADUser -Name "Jason Bourne" -Path "OU=NBC,DC=milkyway,DC=local" -GivenName "Jason" -Surname "Bourne" -SamAccountName "Jason-Bourne" -AccountPassword (ConvertTo-SecureString -AsPlainText “webdir123R” -Force ) -ChangePasswordAtLogon $True -DisplayName "Jason Bourne" -Enabled $True

สร้างผู้ใช้และตั้งค่าคุณสมบัติให้เกินกว่าพารามิเตอร์ ADUser ใหม่

พารามิเตอร์ 60+ ของ New-ADUser cmdlet ครอบคลุมคุณลักษณะทั่วไปของผู้ใช้ใหม่ แต่ยังมีแอตทริบิวต์ที่ใช้กันทั่วไปน้อยกว่าอีกมากมาย คุณสามารถเติมข้อมูลเหล่านั้นได้โดยใช้พารามิเตอร์ -OtherAttributes ในตัวอย่างนี้ เราเติม extensionattribute1 และแอตทริบิวต์ที่กำหนดเอง carlicense:

New-ADUser -Name "Jason Bourne" -Path "OU=NBC,DC=milkyway,DC=local" -GivenName "Jason" -Surname "Bourne" -SamAccountName "Jason-Bourne" -AccountPassword (ConvertTo-SecureString -AsPlainText “webdir123R” -Force ) -ChangePasswordAtLogon $True -DisplayName "Jason Bourne" -Enabled $True -OtherAttributes @{'extensionattribute1'="director";'carlicense'="LWG3852"}

มาตรวจสอบผลลัพธ์โดยใช้คำสั่ง Get-ADUser ดังที่แสดงด้านล่าง

Get-ADUser -Identity Jason-bourne -Properties * | select name,extensionattribute1,carlicense

สร้างผู้ใช้ inetOrgPerson

ออบเจ็กต์ผู้ใช้ส่วนใหญ่ใน Active Directory มีคลาส ผู้ใช้ แต่คุณยังสามารถสร้างอ็อบเจ็กต์ผู้ใช้ด้วยคลาส inetOrgPerson ซึ่งมีผู้ใช้เป็นคลาสพาเรนต์ คลาส inetOrgPerson อำนวยความสะดวกในการทำงานร่วมกับแอปพลิเคชันบางตัว และทำให้การย้ายอ็อบเจ็กต์ผู้ใช้บางอย่างไปยัง Active Directory ง่ายขึ้น

หากต้องการสร้างบัญชีผู้ใช้ inetOrgPerson เพียงใส่พารามิเตอร์ -Type และระบุ inetOrgPerson เป็นค่า:

New-ADUser -Name "Benedict Cumberbatch" -Path "OU=NBC,DC=milkyway,DC=local" -GivenName "Benedict" -Surname "Cumberbatch" -SamAccountName "Benedict.Cumberbatch" -AccountPassword (ConvertTo-SecureString -AsPlainText “webdir123R” -Force ) -ChangePasswordAtLogon $True -DisplayName "Benedict Cumberbatch" -Enabled $True -Type iNetOrgPerson

ในภาพหน้าจอต่อไปนี้ ให้สังเกตประเภทของผู้ใช้ใหม่ Benedict Cumberbatch และประเภทของผู้ใช้ Jason Bourne ที่เราสร้างไว้ก่อนหน้านี้:

สร้างบัญชีผู้ใช้ Active Directory ใหม่ด้วยรหัสผ่าน

บัญชีถูกสร้างขึ้นด้วยคุณสมบัติเริ่มต้นดังต่อไปนี้:

  • บัญชีถูกสร้างขึ้นในคอนเทนเนอร์ "ผู้ใช้"
  • บัญชีถูกปิดใช้งาน
  • บัญชีเป็นสมาชิกของกลุ่มผู้ใช้โดเมน
  • ไม่มีการตั้งรหัสผ่าน
  • ผู้ใช้จะต้องรีเซ็ตรหัสผ่านเมื่อเข้าสู่ระบบครั้งแรก

ดังนั้น ในการสร้างบัญชีใหม่ที่ใช้งานได้จริง เราจำเป็นต้องเปิดใช้งานโดยใช้ Enable-ADAccount cmdlet และให้รหัสผ่านโดยใช้ Set-ADAccountPassword cmdlet

ดังนั้นเรามาสร้างบัญชีใหม่ด้วยคุณสมบัติดังต่อไปนี้:

ชื่อ - แจ็ค โรบินสัน

ชื่อจริง - แจ็ค

นามสกุล - โรบินสัน

ชื่อบัญชี - เจ.โรบินสัน

ชื่อหลักของผู้ใช้ - J.Robinson@enterprise.com

ที่อยู่เส้นทาง - “OU=Managers,DC=enterprise,DC=com”

การป้อนรหัสผ่าน

สถานะ - เปิดใช้งานแล้ว

นี่คือสคริปต์ที่เราจะใช้:

New-ADUser -Name "Jack Robinson" -GivenName "Jack" -Surname "Robinson" -SamAccountName "J.Robinson" -UserPrincipalName "J.Robinson@enterprise.com" -Path "OU=Managers,DC=enterprise,DC=com" -AccountPassword(Read-Host -AsSecureString "Input Password") -Enabled $true

พารามิเตอร์ Read-Host จะขอให้คุณป้อนรหัสผ่านใหม่ โปรดทราบว่ารหัสผ่านควรเป็นไปตามข้อกำหนดด้านความยาว ความซับซ้อน และประวัติของนโยบายความปลอดภัยของโดเมนของคุณ

ตอนนี้เรามาดูผลลัพธ์ด้วยการเรียกใช้ cmdlet ต่อไปนี้:

Get-ADUser J.Robinson -Properties CanonicalName, Enabled, GivenName, Surname, Name, UserPrincipalName, samAccountName, whenCreated, PasswordLastSet  | Select CanonicalName, Enabled, GivenName, Surname, Name, UserPrincipalName, samAccountName, whenCreated, PasswordLastSet

สร้างผู้ใช้ใหม่ตามผู้ใช้ที่มีอยู่

บางครั้ง คุณต้องการสร้างผู้ใช้ใหม่ที่มีคุณสมบัติเหมือนกันเกือบทั้งหมดของผู้ใช้ที่มีอยู่ ขั้นแรก เราต้องสร้างเทมเพลตตามผู้ใช้ที่มีอยู่ ที่นี่ เราสร้างเทมเพลตที่มีคุณสมบัติ 5 ประการของผู้ใช้ Benedict Cumberbatch บรรทัดที่สองตั้งค่าสำหรับ userPrincipalName เป็น null เนื่องจากแอตทริบิวต์นั้นไม่ซ้ำกันทั่วทั้งฟอเรสต์ เทมเพลตถูกจัดเก็บไว้ในตัวแปร $temp_UserAccount

$temp_UserAccount = Get-ADUser -Identity Benedict.Cumberbatch -Properties State,Department,Country,City,title
$temp_UserAccount.UserPrincipalName = $null

ตอนนี้เราสามารถสร้างผู้ใช้ใหม่ที่จะมีคุณสมบัติ 5 รายการจากเทมเพลตของเรา (โดยการระบุพารามิเตอร์อินสแตนซ์ด้วยค่า $temp_UserAccount) รวมถึงคุณลักษณะอื่นๆ อีกหลายรายการที่เราระบุ:

New-ADUser -Instance $temp_UserAccount -Name 'Nelson Mendela' -SamAccountName 'Nelson.Mendela' -AccountPassword (Read-Host -AsSecureString "Input User Password") -Enabled $True

เราสามารถใช้คำสั่ง Get-ADUser เพื่อดูผู้ใช้ใหม่:

Get-ADUser -Identity Nelson.Mendela -Properties * | select `name,department,city,country,title,state

โปรดสังเกตว่าคุณสมบัติที่เราระบุไว้จะเหมือนกันสำหรับผู้ใช้ใหม่และ Benedict Cumberbatch:

สร้างผู้ใช้จำนวนมากด้วยสคริปต์ PowerShell

ตอนนี้ มาใช้สคริปต์ PowerShell เพื่อสร้างบัญชี Active Directory ที่คล้ายกันจำนวน 10 บัญชีเป็นกลุ่ม พวกเขาทั้งหมดจะมีชื่อผู้ใช้เกือบเหมือนกัน ยกเว้นตัวเลขต่อท้ายที่จะเพิ่มขึ้นสำหรับผู้ใช้แต่ละคน เราจะตั้งรหัสผ่านเริ่มต้นเดียวกัน (P@ssw0rd) สำหรับแต่ละรหัสผ่าน โดยส่งให้อยู่ในสถานะที่ได้รับการป้องกันโดยใช้พารามิเตอร์ ConvertTo-SecureString นี่คือสคริปต์ที่จะใช้และผู้ใช้สองคนแรกที่สร้างขึ้น:

$path="OU=IT,DC=enterprise,DC=com"
$username="ITclassuser"
$count=1..10
foreach ($i in $count)
{ New-AdUser -Name $username$i -Path $path -Enabled $True -ChangePasswordAtLogon $true  `

-AccountPassword (ConvertTo-SecureString "P@ssw0rd" -AsPlainText -force) -passThru }

ตอนนี้มาทำให้สคริปต์ของเรามีความยืดหยุ่นมากขึ้นโดยการเพิ่มพารามิเตอร์ Read-Host ซึ่งจะแจ้งให้เราระบุชื่อผู้ใช้ Stem ที่จะใช้และจำนวนผู้ใช้ที่จะสร้าง:

$path="OU=IT,DC=enterprise,DC=com"
$username=Read-Host "Enter name"
$n=Read-Host "Enter Number"
$count=1..$n
foreach ($i in $count)
{ New-AdUser -Name $username$i -Path $path -Enabled $True -ChangePasswordAtLogon $true  `

-AccountPassword (ConvertTo-SecureString "P@ssw0rd" -AsPlainText -force) -passThru }

สร้างผู้ใช้จำนวนมากด้วยการนำเข้า CSV

อีกทางเลือกหนึ่งสำหรับการสร้างผู้ใช้จำนวนมากคือการนำเข้าแอตทริบิวต์จากไฟล์ CSV ตัวเลือกนี้เหมาะมากเมื่อคุณมีรายชื่อผู้ใช้ที่มีรายละเอียดส่วนบุคคลที่กำหนดไว้ล่วงหน้า เช่น ชื่อ แผนก และ OU

ไฟล์ CSV จะต้องอยู่ในการเข้ารหัส UTF8 และมีลักษณะดังนี้:

สคริปต์ต่อไปนี้จะสร้างออบเจ็กต์ผู้ใช้ที่เปิดใช้งานสำหรับผู้ใช้ใดๆ ใน CSV ที่ยังไม่มีบัญชีใน Active Directory ตัวเลือก “รีเซ็ตรหัสผ่านเมื่อเข้าสู่ระบบครั้งถัดไป” จะเปิดใช้งานสำหรับบัญชีใหม่ ดังนั้นคุณสามารถใช้รหัสผ่านเริ่มต้นของคุณได้:

#Define path to your import CSV file location in a variable as shown in below line.
$AD_Users = Import-csv C:\scripts\newusers.csv

foreach ($User in $AD_Users)
{

       $User_name    = $User.username
       $User_Password    = $User.password
       $First_name   = $User.firstname
       $Last_name    = $User.lastname
    $User_Department = $User.department
       $User_OU           = $User.ou

       #Below if-else condition will check if the user already exists in Active Directory.
       if (Get-ADUser -F {SamAccountName -eq $User_name})
       {
               #Will output a warning message if user exist.
               Write-Warning "A user $User_name has already existed in Active Directory."
       }
       else
       {
              #Will create a new user, if user is not available in Active Directory.
          
        #User account will be created in the OU listed in the $User_OU variable in the CSV file; it is necessary to change the domain name in the"-UserPrincipalName" variable in the script below.
              New-ADUser `
            -SamAccountName $User_name `
            -UserPrincipalName "$Username@example.com"
            -Name "$First_name $Last_name"
            -GivenName $First_name `
            -Surname $Last_name `
            -Enabled $True `
            -ChangePasswordAtLogon $True `
            -DisplayName "$Last_name, $First_name" `
            -Department $User_Department `
            -Path $User_OU `
            -AccountPassword (convertto-securestring $User_Password -AsPlainText -Force)

       }
}

หลังจากรันสคริปต์แล้ว เรามีผู้ใช้ใหม่สองคนคือ Edward Franklin และ Bill Jackson ในโดเมน Active Directory ของเรา:

สร้างบัญชีผู้ใช้เป็นกลุ่มด้วยไฟล์ CSV

บ่อยครั้ง จำเป็นต้องสร้างผู้ใช้เป็นรายวันหรือรายสัปดาห์ สมมติว่าแผนกทรัพยากรบุคคลของคุณให้รายละเอียดสำหรับผู้ใช้แต่ละคนในรูปแบบไฟล์ CSV ที่มีลักษณะดังนี้:

หากต้องการสร้างผู้ใช้จากไฟล์นี้ ก่อนอื่นเราจะนำเข้าไฟล์ CSV ลงในตัวแปร $import_users โดยให้แต่ละระเบียนแยกบรรทัด:

$import_users = Import-Csv -Path c:\bulkuser.csv

จากนั้นเราสร้างผู้ใช้โดยใช้สคริปต์ด้านล่าง โปรดทราบว่าระบบจะใช้รหัสผ่านของผู้ใช้แต่ละคนจากไฟล์ต้นฉบับ แปลงเป็นสตริงที่ปลอดภัยและเข้ารหัส

$import_users | ForEach-Object {New-ADUser -Name $($_.First + " " + $_.Last) -GivenName $_.First -Surname $_.Last -Department $_.Department -State $_.State -EmployeeID $_.EmployeeID -DisplayName $($_.First + " " + $_.Last) -Office $_.OfficeName -UserPrincipalName $_.UserPrincipalName -SamAccountName $_.samAccountName -AccountPassword $(ConvertTo-SecureString $_.Password -AsPlainText -Force) -City $_.City -StreetAddress $_.Address -Title $_.Title -Company $_.Company -EMailAddress $_.Email -Path $_.OU -Enabled $True}

เราสามารถใช้คำสั่งต่อไปนี้เพื่อตรวจสอบผู้ใช้ใหม่และคุณสมบัติของพวกเขา:

Get-ADUser -Filter 'Name -like "*"' -SearchBase "OU=BaseOU,DC=milkyway,DC=local" -Properties * | select name,samaccountname,title,department,city,state,employeeid,userprincipalname,mail,streetaddress

Netwrix สามารถช่วยได้อย่างไร

การจัดสรรผู้ใช้เป็นงานที่ไม่มีวันสิ้นสุด ทุกๆ วัน องค์กรต่างๆ จำเป็นต้อง:

  • จัดเตรียมบัญชีผู้ใช้ใหม่ใน Active Directory
  • อัปเดตบัญชีผู้ใช้เมื่อผู้ใช้เปลี่ยนชื่อ สลับแผนก และอื่นๆ
  • เพิ่มผู้ใช้และลบผู้ใช้ออกจากกลุ่มความปลอดภัยเพื่อให้แน่ใจว่าพวกเขามีสิทธิ์ที่ถูกต้อง
  • ยกเลิกการจัดสรรและปิดใช้งานบัญชีเมื่อผู้ใช้ออกจากองค์กร

นอกจากนี้ เพื่อให้มั่นใจในความปลอดภัยและประสิทธิภาพการทำงานของผู้ใช้ งานทั้งหมดเหล่านี้จำเป็นต้องทำให้เสร็จสิ้นอย่างถูกต้อง เชื่อถือได้ และรวดเร็ว

Netwrix GroupID ช่วยให้การจัดการกลุ่มและผู้ใช้สำหรับ Active Directory, Azure AD และ Microsoft 365 ง่ายขึ้น โดยเฉพาะอย่างยิ่ง คุณสามารถจัดเตรียมและยกเลิกการจัดสรรผู้ใช้ AD ผ่านการซิงค์ข้อมูลอัตโนมัติแบบสองทิศทางกับระบบ HR ของคุณ เช่น ฐานข้อมูล SQL หรือ Oracle มาดูภาพหน้าจอบางส่วนที่แสดง Synchronize GUI กัน

  • ภาพหน้าจอต่อไปนี้แสดงผู้ให้บริการที่สามารถใช้เป็นแหล่งข้อมูลในงานซิงโครไนซ์ได้

  • ภาพหน้าจอต่อไปนี้แสดงว่า Active Directory ถูกเลือกเป็นผู้ให้บริการปลายทางสำหรับการสร้างออบเจ็กต์ผู้ใช้ ผู้ติดต่อ กล่องจดหมาย และผู้ใช้ที่เปิดใช้งานจดหมายภายนอก ในฐานะผู้ให้บริการต้นทาง เราสามารถใช้ที่เก็บข้อมูลแบบธรรมดา (เช่น ข้อความหรือ CSV) ไปจนถึงที่เก็บข้อมูลที่ซับซ้อน (เช่น Microsoft SQL Server หรือ Oracle Server)

  • ภาพหน้าจอต่อไปนี้แสดงให้เห็นว่าคุณสามารถเลือกที่จะสร้างออบเจ็กต์ต่างๆ ได้ (เช่น ผู้ใช้ที่เปิดใช้งานกล่องจดหมาย ผู้ใช้ที่เปิดใช้งานจดหมาย และผู้ติดต่อ) ที่ปลายทาง คุณยังสามารถอัปเดตออบเจ็กต์เหล่านี้ที่ปลายทางได้เมื่อมีการเปลี่ยนแปลงในผู้ให้บริการต้นทาง

  • ปุ่มตัวเลือกสร้างช่วยให้คุณสร้างออบเจ็กต์ที่เกี่ยวข้องที่ปลายทางได้
  • ปุ่มตัวเลือกข้ามช่วยให้คุณสามารถอัปเดตออบเจ็กต์ที่เกี่ยวข้องที่ปลายทางได้

บทสรุป

ตอนนี้คุณได้เห็นวิธีสร้างผู้ใช้ใน Active Directory โดยใช้ PowerShell แล้ว ให้ลองใช้คำสั่งและสคริปต์ที่แสดงที่นี่ในสภาพแวดล้อมของคุณเอง และสำรวจพารามิเตอร์อื่นๆ มากมายของ New -ADUser cmdlet

จากนั้นอย่าลืมตรวจสอบ Netwrix GroupID โดยผสมผสานคุณประโยชน์ของ ADAC และ PowerShell โดยนำเสนอ GUI ที่ใช้งานง่ายสำหรับดำเนินการและทำให้การจัดเตรียมและยกเลิกการจัดเตรียมผู้ใช้ของคุณเป็นแบบอัตโนมัติ

คำถามที่พบบ่อย

ถาม: ADUser ใหม่ใน Active Directory คืออะไร

A: New-ADUser คือคำสั่ง PowerShell สำหรับการสร้างผู้ใช้ Active Directory

ถาม: ฉันจะใช้ ADUser PowerShell cmdlet ใหม่ได้อย่างไร

A: หากต้องการใช้ New-ADUser ให้ระบุพารามิเตอร์ได้มากเท่าที่คุณต้องการ ดังในคำสั่งตัวอย่างนี้:

New-ADUser -Name "Jason Bourne" -GivenName "Jason" -Surname "Bourne" -SamAccountName "Jason-Bourne" -AccountPassword (ConvertTo-SecureString -AsPlainText “webdir123R” -Force) -ChangePasswordAtLogon $True -Company "Versacorp" -Title "CEO" -State "California" -City "San Francisco" -Description "Test Account Creation" -EmployeeNumber "45" -Department "Engineering" -DisplayName "Jason Bourne" -Country "US" -PostalCode "94001" -Enabled $True

ถาม: ฉันจะสร้างผู้ใช้ใหม่ใน Active Directory ได้อย่างไร

ตอบ: คุณสามารถสร้างผู้ใช้ใหม่ได้อย่างง่ายดายโดยใช้ผู้ใช้ Active Directory และคอมพิวเตอร์ แต่คุณอาจไม่สามารถเติมคุณสมบัติผู้ใช้ทั้งหมดที่คุณต้องการได้ และคุณไม่สามารถสร้างบัญชีผู้ใช้จำนวนมากได้ ทางเลือกที่ทรงพลังและยืดหยุ่นกว่าคือ PowerShell นี่คือตัวอย่างวิธีที่คุณสามารถใช้ New-ADUser cmdlet เพื่อสร้างผู้ใช้ใน Active Directory และเติมข้อมูลแอตทริบิวต์ทั่วไปจำนวนมาก:

New-ADUser -Name "Mike Hussey" -GivenName "Mike" -Surname "Hussey" -SamAccountName "Mike-Hussey" -AccountPassword (ConvertTo-SecureString -AsPlainText “Sas123R” -Force) -ChangePasswordAtLogon $True -Company "DeltaCorp" -Title "COO" -State "California" -City "San Jose" -Description "Test Account Creation-2" -EmployeeNumber "46" -Department "Operations" -DisplayName "Mike Hussey" -Country "US" -PostalCode "94089" -Enabled $True

ถาม: ฉันจะสร้างผู้ใช้ 1,000 รายใน Active Directory ได้อย่างไร

ตอบ: คุณสามารถใช้ PowerShell cmdlet New-ADUser เพื่อสร้างบัญชีผู้ใช้จำนวนมากโดยอิงจากไฟล์ CSV ที่มีรายละเอียดสำหรับผู้ใช้แต่ละราย ตัวเลือกที่ง่ายยิ่งขึ้นไปอีกคือการใช้ Netwrix GroupID ซึ่งมีวิซาร์ดที่ใช้งานง่ายและยอมรับอินพุตไม่ใช่แค่ไฟล์ CSV แต่จากฐานข้อมูล SQL Server และ Oracle

บทความที่เกี่ยวข้อง