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

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-ADUser

cmdlet เป็นส่วนหนึ่งของโมดูล 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

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