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

PowerShell: การกำหนดค่านโยบายรหัสผ่านแบบละเอียด (PSO)


ตั้งแต่ Windows Server 2008 ผู้ดูแลระบบโดเมนสามารถกำหนดค่านโยบายรหัสผ่านต่อผู้ใช้และต่อกลุ่มได้ บทความนี้แสดงวิธีตั้งค่านโยบายรหัสผ่าน (ออบเจ็กต์การตั้งค่ารหัสผ่าน) ด้วย PowerShell

ข้อกำหนดเบื้องต้น

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

Get-ADDomain | Select-Object Domainmode

หากต้องการเปลี่ยนโหมดโดเมน ให้เรียกใช้ Set-ADDomainMode ไม่ต้องกังวลเกี่ยวกับชื่อโดเมน เราได้รับชื่อจากตัวแปรสภาพแวดล้อม ตัวอย่าง (โหมดโดเมน Windows Server 2016):

Set-ADDomainMode -Identity $env:userdnsdomain -DomainMode Windows2016Domain

การแนะนำ

นโยบายโดเมนเริ่มต้น

แน่ใจว่าคุณทราบวัตถุประสงค์ของนโยบายรหัสผ่านเริ่มต้นซึ่งเป็นส่วนหนึ่งของนโยบายโดเมนเริ่มต้น:

Get-ADDefaultDomainPasswordPolicy

นโยบายนี้มีผลบังคับใช้สำหรับผู้ใช้ Active Directory ทั้งหมด มากำหนดค่านโยบายใหม่สำหรับผู้ใช้และ/หรือกลุ่มเฉพาะกัน

ศูนย์การจัดการ Active Directory (dsac.exe)

ก่อนอื่น: แน่นอน คุณสามารถกำหนดค่านโยบายรหัสผ่านได้โดยใช้อินเทอร์เฟซแบบกราฟิก เรียกใช้ dsac เพื่อเปิด Active Directory Administrative Center ไปที่ระบบ - คอนเทนเนอร์การตั้งค่ารหัสผ่านแล้วคลิกใหม่ ที่นี่คุณสามารถกำหนดการตั้งค่ารหัสผ่านของคุณโดยใช้อินเทอร์เฟซแบบกราฟิก

แต่ในบทความนี้เป็นเรื่องเกี่ยวกับ PowerShell ? ผู้ชายแท้ไม่คลิก

การกำหนดค่านโยบายรหัสผ่านแบบละเอียดด้วย PowerShell

สมมติว่าเป็นเป้าหมายในการกำหนดค่านโยบายที่เข้มงวดมากขึ้นสำหรับสมาชิกของกลุ่มทรัพยากรบุคคล เราต้องการตั้งค่าความยาวรหัสผ่านขั้นต่ำเป็น 10 ตัวอักษร (ค่าเริ่มต้น: 7) ในการทำเช่นนั้น เราสามารถใช้ New-ADFineGrainedPasswordpolicy cmdlet

New-ADFineGrainedPasswordPolicy -Name "HR_length_10" -MinPasswordLength 10 -Precedence 1

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

การเพิ่มนโยบายรหัสผ่านแบบละเอียดให้กับผู้ใช้หรือกลุ่ม

ขณะนี้ จะต้องกำหนดออบเจ็กต์รหัสผ่านที่กำหนดค่าไว้ก่อนหน้านี้ให้กับกลุ่ม HR

Add-ADFineGrainedPasswordPolicySubject "HR_length_10" -Subjects "HR"

กำลังตรวจสอบการกำหนดค่า

ตอนนี้เรากำลังจะทำการตรวจสอบบางอย่าง

รับ-ADFineGrainedPasswordPolicy

มาดูกันว่าเราได้กำหนดค่าอะไรบ้าง

Get-ADFineGrainedPasswordPolicy "HR_length_10"

รับ-ADGroup

Get-ADGroup "HR" -properties * | Select-Object msDS-PSOApplied

นั่นดูดี. นโยบายถูกกำหนดให้กับกลุ่มทรัพยากรบุคคล

การเล่นกับลำดับความสำคัญ (msDS-ResultantPSO)

ตามที่กล่าวไว้ เราสามารถใช้ลำดับความสำคัญได้ ยิ่งตัวเลขยิ่งต่ำ ลำดับความสำคัญก็จะยิ่งสูงขึ้น มากำหนดค่า PSO อื่นสำหรับกลุ่ม HR และตั้งค่าลำดับความสำคัญเป็น 10 และกำหนดค่าความยาวรหัสผ่านเป็น 20

New-ADFineGrainedPasswordPolicy -Name "HR_length_20" -MinPasswordLength 20 -Precedence 10
Add-ADFineGrainedPasswordPolicySubject "HR_length_20" -Subjects "HR"

ตอนนี้เราได้กำหนดค่านโยบายรหัสผ่าน 2 รายการแล้ว ทั้งสองได้รับมอบหมายให้เป็น HR

ใช้อันไหน? โปรดจำไว้ว่า Petra เป็นสมาชิกของกลุ่มทรัพยากรบุคคล มาดูบัญชี Petras กันดีกว่า และผู้ชนะคือ …

Get-ADUserResultantPasswordPolicy petra

หรือตรวจสอบแอตทริบิวต์ msDS-ResultantPSO ดังนี้

ยิ่งตัวเลขยิ่งต่ำ ลำดับความสำคัญก็จะยิ่งสูง...

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

ขอให้สนุกกับการเล่นนโยบายรหัสผ่าน!

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