วิธีสร้างผู้ใช้ 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 และคอมพิวเตอร์ ให้ทำตามขั้นตอนเหล่านี้:
เปิดคอนโซล ADUC ด้วยวิธีใดวิธีหนึ่งต่อไปนี้:
เปิดตัวจัดการเซิร์ฟเวอร์แล้วคลิก เครื่องมือ > ผู้ใช้ Active Directory และคอมพิวเตอร์
คลิกขวาที่ OU ที่คุณต้องการสร้างผู้ใช้ และเลือก ใหม่ > ผู้ใช้:
ระบุรายละเอียดเกี่ยวกับผู้ใช้แล้วคลิก ถัดไป
ระบุรหัสผ่านและเลือกตัวเลือกรหัสผ่านที่ต้องการ จากนั้นคลิก ถัดไป
ตรวจสอบรายละเอียดที่คุณระบุแล้วคลิก เสร็จสิ้น เพื่อสร้างผู้ใช้ใน Active Directory
การสร้างผู้ใช้ AD ด้วย ADAC
ศูนย์การจัดการ Active Directory มีตัวเลือกเพิ่มเติมในระหว่างการสร้างผู้ใช้มากกว่า ADUC ต่อไปนี้เป็นขั้นตอนในการสร้างผู้ใช้ด้วย ADAC:
เปิดคอนโซล ADAC ด้วยวิธีใดวิธีหนึ่งต่อไปนี้:
เปิดตัวจัดการเซิร์ฟเวอร์แล้วคลิก เครื่องมือ > Active Directory Administrative Center
อินเทอร์เฟซ ADAC แสดงอยู่ด้านล่าง อย่างที่คุณเห็น มันมีตัวเลือกมากกว่า ADUC มากมาย เช่น:
- ค้นหา
- การนำทางที่ง่ายดายภายในโดเมน
ลิงก์ด่วนสำหรับดำเนินการทั่วไป (ในบานหน้าต่างด้านขวา)
หากต้องการสร้างผู้ใช้ AD ใหม่ คลิก ใหม่-
ในหน้าต่างสร้างผู้ใช้ ให้ระบุตัวเลือกที่คุณต้องการกำหนดค่าสำหรับผู้ใช้ใหม่ จากนั้นคลิก ตกลง
การสร้างผู้ใช้ 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
- นำเข้าไฟล์ CSV พร้อมรายการคุณสมบัติของออบเจ็กต์เพื่อสร้างออบเจ็กต์แบบกำหนดเองโดยใช้ Import-Csv cmdlet
- จากนั้นสามารถใช้ 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,streetaddressNetwrix สามารถช่วยได้อย่างไร
การจัดสรรผู้ใช้เป็นงานที่ไม่มีวันสิ้นสุด ทุกๆ วัน องค์กรต่างๆ จำเป็นต้อง:
- จัดเตรียมบัญชีผู้ใช้ใหม่ใน 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


























