Set-ADUSer: วิธีเปลี่ยนคุณสมบัติผู้ใช้ใน Active Directory ด้วย PowerShell
cmdlet Set-ADUser อนุญาตให้แก้ไขคุณสมบัติผู้ใช้ (แอตทริบิวต์) ใน Active Directory โดยใช้ PowerShell ตามเนื้อผ้า MMC สแน็ปอินแบบกราฟิก
dsa.msc(ผู้ใช้และคอมพิวเตอร์ Active Directory, ADUC) ใช้เพื่อแก้ไขคุณสมบัติของผู้ใช้ AD สามารถใช้สแนปอิน ADUC เพื่อเปลี่ยนคุณสมบัติผู้ใช้หรือแอตทริบิวต์ขั้นสูงในแท็บตัวแก้ไขแอตทริบิวต์ อย่างไรก็ตาม คุณไม่สามารถแก้ไขแอตทริบิวต์ของผู้ใช้จำนวนมากผ่านคอนโซล ADUC ได้ (สามารถทำได้บางส่วนโดยใช้ข้อความค้นหาที่บันทึกไว้ของ AD) ในบทความนี้ เราจะดูตัวอย่างการใช้ Set-ADUser cmdlet เพื่อเปลี่ยนคุณสมบัติผู้ใช้ใน AD
นี้
Set-ADUsercmdlet เป็นส่วนหนึ่งของโมดูล Active Directory สำหรับ Windows PowerShell และต้องติดตั้งโมดูลบนคอมพิวเตอร์ของคุณ บน Windows Server โมดูล RSAT-AD-PowerShell ได้รับการติดตั้งจากคุณลักษณะของ Windows และใน Windows 10 คุณต้องติดตั้งจาก RSAT:
Add-WindowsCapability -online -Name “Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0”การปรับเปลี่ยนคุณสมบัติผู้ใช้ใน Active Directory ด้วย PowerShell
cmdlet Get-ADUSer มีตัวเลือกประมาณ 50 รายการที่เกี่ยวข้องกับแอตทริบิวต์ AD (เมือง บริษัท แผนก คำอธิบาย ที่อยู่อีเมล โทรศัพท์มือถือ องค์กร UserPrincipalName เป็นต้น) คุณสามารถแสดงรายการแอตทริบิวต์ที่ใช้ได้โดยใช้คำสั่งต่อไปนี้:
Get-Help Set-ADUser -Parameter *|ft
ชื่อของผู้ใช้ที่คุณต้องการเปลี่ยนแอตทริบิวต์ AD ระบุไว้ในตัวเลือก ข้อมูลประจำตัว ที่บังคับ (คุณสามารถระบุเป็น sAMAccountName, SID, Distinguished Name หรือ objectGUID)
ตัวอย่างเช่น มารับค่าของแอตทริบิวต์ Title ของผู้ใช้โดยใช้ Get-ADUser cmdlet:
Get-ADUser -Identity M.Becker -Properties title|select-object name,titleจากนั้นเปลี่ยนชื่องานใน AD:
Set-ADuser M.Becker -title “Junior DevOps Engineer”คุณสามารถเปลี่ยนค่าของแอตทริบิวต์หลายรายการพร้อมกันได้ ตัวอย่างเช่น ตั้งค่าที่อยู่อีเมลใหม่และรายชื่อคอมพิวเตอร์ที่ผู้ใช้ได้รับอนุญาตให้เข้าสู่ระบบ:
Set-ADUser M.Becker -EmailAddress M.Becker@a-d.site -LogonWorkstations 'munx32f2r13,munx32f2r15'คำสั่งต่อไปนี้จะปิดใช้งานบัญชีผู้ใช้ในโดเมน:
Set-ADUser M.Becker -Enabled $Falseคุณสามารถเปลี่ยนรูปถ่ายของผู้ใช้ใน AD:
Set-ADUser M.Becker -Replace @{thumbnailPhoto=([byte[]](Get-Content "C:\scripts\ad\m.becker.jpg" -Encoding byte))}คุณสามารถแก้ไขค่าแอตทริบิวต์ของผู้ใช้อื่นๆ (รวมถึงส่วนขยายแอตทริบิวต์และแอตทริบิวต์ที่กำหนดเอง) ใน AD โดยใช้ตัวเลือก Set-ADUSer เหล่านี้:
เพิ่ม - เพิ่มค่าแอตทริบิวต์
-
แทนที่ - แทนที่ค่าแอตทริบิวต์
ล้าง - ล้างค่าแอตทริบิวต์
ลบ — ลบหนึ่งในค่าแอตทริบิวต์
ตัวอย่างเช่น หากต้องการเปลี่ยนหมายเลขโทรศัพท์ของผู้ใช้ คุณอาจใช้คำสั่งนี้:
Set-ADUser M.Becker -MobilePhone $NewNumberหรือ :
Set-ADUser M.Becker -replace @{'MobilePhone' = $($Number) }ในการเพิ่มค่าใหม่ให้กับ extensionAttribute5:
Set-ADUser M.Becker -Add @{extensionAttribute5 = "Test1"}หากต้องการล้างค่าแอตทริบิวต์:
Set-ADUser M.Becker -Clear "extensionAttribute5"คุณสามารถเปลี่ยนค่าของแอตทริบิวต์หลายรายการพร้อมกันได้:
Set-ADUser M.Becker -Replace @{title="Senior DevOps";company="XYZ"}นอกจากนี้ เมื่อใช้ตัวเลือกเหล่านี้ คุณสามารถเปลี่ยนแอตทริบิวต์ที่มีหลายค่าได้ ตัวอย่างเช่น เรามาเพิ่ม ProxyAddresses (ชื่อแทนอีเมล) หลายรายการให้กับผู้ใช้:
Set-ADUser M.Becker -add @{ProxyAddresses="smtp:M.Becker@a-d.site, ,SMTP:moritz.becker@a-d.site " -split ","}จะแก้ไขแอตทริบิวต์ผู้ใช้ Active Directory เป็นกลุ่มได้อย่างไร
คุณสามารถเปลี่ยนแอตทริบิวต์ของผู้ใช้หลายคนพร้อมกันได้ ตัวอย่างเช่น คำสั่งต่อไปนี้จะเปลี่ยนค่าของแอ็ตทริบิวต์ UserAccountControl และบังคับให้ผู้ใช้ทั้งหมดจาก OU ที่ระบุเปลี่ยนรหัสผ่านเมื่อเข้าสู่ระบบครั้งถัดไป:
Get-ADUser -Filter * -SearchBase "OU=Users,OU=DE,DC=a-d,DC=loc" | Set-ADUser -ChangePasswordAtLogon $true
คุณสามารถอัปเดตแอตทริบิวต์ผู้ใช้ AD จำนวนมากด้วยค่าจากไฟล์ CSV ตัวอย่างเช่น คุณมีไฟล์ CSV ที่มีรายชื่อบัญชี ชื่อเรื่อง และหมายเลขโทรศัพท์ (รูปแบบไฟล์คือ: SamAccountName, Title, MobilePhone)
หากต้องการอัปเดตแอตทริบิวต์ของผู้ใช้โดยใช้ค่าจากไฟล์ CSV ให้เรียกใช้คำสั่ง PowerShell ต่อไปนี้:
Import-Csv "C:\scripts\ad\update_ad_users.csv" | foreach {Set-ADUser -Identity $_.SamAccountName -Title $_.Title -MobilePhone $_.MobilePhone}คุณสามารถมอบสิทธิ์ในการอัปเดตแอตทริบิวต์ของผู้ใช้ใน AD ให้กับพนักงานฝ่ายทรัพยากรบุคคล และแม้แต่สอนวิธีการทำงานกับไฟล์ CSV/Excel จาก PowerShell
จะแสดงชื่อผู้ใช้ที่เข้าสู่ระบบคอมพิวเตอร์ใน ADUC ได้อย่างไร
ในบทความก่อนหน้านี้เราได้แสดงวิธีเพิ่มข้อมูลผู้ใช้ลงในคุณสมบัติของคอมพิวเตอร์ใน AD โดยใช้ Set-ADComputer cmdlet ตอนนี้ลองพิจารณาแนวทางอื่นแล้วลองเพิ่มข้อมูลเกี่ยวกับคอมพิวเตอร์ที่ผู้ใช้เข้าสู่ระบบคุณสมบัติผู้ใช้ใน Active Directory
ในการทำเช่นนั้น ก็เพียงพอแล้วที่จะเพิ่มสคริปต์ PowerShell ต่อไปนี้ในการเข้าสู่ระบบ สคริปต์ GPO ที่จะทำงานเมื่อผู้ใช้เข้าสู่ระบบคอมพิวเตอร์ (การกำหนดค่าผู้ใช้ -> นโยบาย -> การตั้งค่า Windows -> สคริปต์ -> การเข้าสู่ระบบแข็งแกร่ง>):
Set-ADUser -identity $env:UserName -Description $env:computernameสคริปต์จะถือว่าโมดูล PowerShell สำหรับ Active Directory ได้รับการติดตั้งบนคอมพิวเตอร์ของผู้ใช้ หากคุณไม่ต้องการติดตั้ง RSAT บนคอมพิวเตอร์ทุกเครื่อง คุณสามารถใช้โมดูล AD PowerShell โดยไม่ต้องติดตั้งโดยการคัดลอกไฟล์ไปยังคอมพิวเตอร์ทุกเครื่องโดยใช้ GPO หรือสคริปต์การเข้าสู่ระบบ
ซึ่งจะช่วยให้คุณค้นหาชื่อคอมพิวเตอร์ที่ผู้ใช้เข้าสู่ระบบได้อย่างรวดเร็ว
ในตัวอย่างนี้ เราบันทึกชื่อคอมพิวเตอร์ปัจจุบันเป็นแอตทริบิวต์ Description มาตรฐาน คุณสามารถใช้แอตทริบิวต์อื่นได้ เช่น ExtensionAttributes



