คำตอบสั้น ๆ: ตั้ง Windows LAPS ที่มากับ Windows Server ให้หมุนรหัส Local Administrator ทุกเครื่องอัตโนมัติ เก็บแบบเข้ารหัสใน Active Directory และสั่งเปลี่ยนรหัสได้ทันที
คู่มือนี้อธิบาย Windows LAPS ทีละขั้นตอน พร้อมคำสั่งที่ใช้ได้จริงและปัญหาที่พบบ่อย
Windows LAPS (Windows Local Administrator Password Solution) คือฟีเจอร์ที่มากับ Windows Server และ Windows รุ่นปัจจุบัน ทำหน้าที่ตั้งรหัสผ่านบัญชี Local Administrator ของแต่ละเครื่องให้ไม่ซ้ำกัน หมุนรหัสใหม่ตามรอบอัตโนมัติ และเก็บรหัสไว้ใน Active Directory หรือ Microsoft Entra ID ปัญหาที่ Windows LAPS แก้คือการใช้รหัสแอดมินชุดเดียวกันทุกเครื่อง ซึ่งเมื่อเครื่องหนึ่งโดนเจาะ ผู้โจมตีก็ใช้รหัสเดียวกันเดินไปเครื่องอื่นต่อได้ทันที
คู่มือนี้เหมาะกับผู้ดูแลที่มี Windows Server หลายเครื่องอยู่ใน Active Directory domain บนคลาวด์ เมื่อทำครบ คุณจะได้ schema ที่รองรับ Windows LAPS สิทธิ์บน OU ที่ถูกต้อง GPO ที่บังคับใช้กับเซิร์ฟเวอร์ รหัสที่เข้ารหัสเก็บใน AD และรู้วิธีดึงรหัสออกมาใช้ตอนฉุกเฉินพร้อมสั่งเปลี่ยนรหัสทันทีหลังใช้เสร็จ
สิ่งที่ต้องเตรียม
- เครื่องที่จะจัดการต้องเป็น Windows Server 2019 ที่ติดตั้งอัปเดตตั้งแต่เมษายน 2023 ขึ้นไป หรือ Windows Server 2022 และ 2025 ซึ่งมี Windows LAPS อยู่แล้ว Windows Server 2016 ไม่รองรับ
- เครื่องทุกเครื่อง join domain แล้ว Windows LAPS เก็บรหัสได้เฉพาะใน AD หรือ Entra ID เท่านั้น เครื่องเดี่ยวแบบ Workgroup ใช้ขั้นตอนในคู่มือนี้ไม่ได้ ถ้ายังไม่มีโดเมน ดูคู่มือติดตั้ง Active Directory Domain Services
- บัญชีที่อยู่ในกลุ่ม Schema Admins สำหรับขยาย schema หนึ่งครั้ง และ Domain Admins สำหรับตั้งสิทธิ์และสร้าง GPO
- Domain Functional Level 2016 ขึ้นไป ถ้าต้องการเข้ารหัสรหัสผ่านใน AD ซึ่งควรเปิดเสมอ ตรวจได้ด้วย
(Get-ADDomain).DomainMode - OU ที่รวมเซิร์ฟเวอร์ไว้ เช่น
OU=Servers,DC=corp,DC=example,DC=comและกลุ่มผู้ดูแลที่จะอนุญาตให้อ่านรหัส เช่นCORP\LAPS-Readers
ขั้นตอนที่ 1: ตรวจว่าเครื่องพร้อมใช้ Windows LAPS
บนเครื่องปลายทางทุกรุ่น ตรวจว่ามีโมดูล LAPS ของ PowerShell แล้ว ถ้าคำสั่งด้านล่างแสดงรายการ cmdlet เช่น Get-LapsADPassword และ Invoke-LapsPolicyProcessing แปลว่าเครื่องรองรับ Windows LAPS ถ้าไม่มี ให้ติดตั้งอัปเดตสะสมล่าสุดก่อน
Get-Command -Module LAPS | Select-Object -ExpandProperty Name
ถ้าองค์กรเคยใช้ Microsoft LAPS ตัวเก่าที่ติดตั้งจากไฟล์ MSI ให้วางแผนย้ายก่อน อย่าให้ทั้งสองระบบจัดการบัญชีเดียวกันพร้อมกัน วิธีที่ดูแลง่ายคือสร้าง GPO ของ Windows LAPS ใหม่ ทดสอบกับ OU ทดลอง เมื่อรหัสถูกเก็บใน attribute ใหม่เรียบร้อยแล้วจึงถอน GPO และ MSI ของตัวเก่าออก
ขั้นตอนที่ 2: ขยาย Active Directory schema
Windows LAPS ใช้ attribute ใหม่ใน AD จึงต้องขยาย schema หนึ่งครั้งต่อ forest รันบน Domain Controller ที่เป็น Windows Server 2019 ขึ้นไป หรือเครื่องสมาชิกที่มีโมดูล LAPS ด้วยบัญชีที่อยู่ใน Schema Admins
Update-LapsADSchema -Verbose
การขยาย schema ย้อนกลับไม่ได้ แต่เป็นการเพิ่ม attribute ที่ Microsoft กำหนดไว้ ไม่กระทบ attribute เดิม ถ้าองค์กรมี Domain Controller หลายเครื่อง ให้รอ replication ให้ครบก่อนไปขั้นถัดไป ตรวจสถานะได้ด้วย repadmin /replsummary
ขั้นตอนที่ 3: ให้สิทธิ์บน OU
เครื่องแต่ละเครื่องต้องมีสิทธิ์เขียนรหัสของตัวเองลง AD และผู้ดูแลต้องได้สิทธิ์อ่าน รันคำสั่งต่อไปนี้กับ OU ที่เก็บเซิร์ฟเวอร์
$ou = "OU=Servers,DC=corp,DC=example,DC=com"
Set-LapsADComputerSelfPermission -Identity $ou
Set-LapsADReadPasswordPermission -Identity $ou -AllowedPrincipals "CORP\LAPS-Readers"
Set-LapsADResetPasswordPermission -Identity $ou -AllowedPrincipals "CORP\LAPS-Readers"
Find-LapsADExtendedRights -Identity $ou
คำสั่งสุดท้ายแสดงว่าใครมีสิทธิ์ extended rights บน OU นี้ ซึ่งอ่าน attribute ลับได้ทุกตัว รวมถึงรหัสของ Windows LAPS ผลที่ปลอดภัยคือมีแค่ NT AUTHORITY\SYSTEM และ Domain Admins ถ้าเห็นกลุ่มอื่น เช่น กลุ่ม helpdesk ที่ถูกให้สิทธิ์ไว้นานแล้ว ให้ทบทวนและถอดออก กลุ่ม Domain Admins มีสิทธิ์อ่านและถอดรหัสโดยค่าเริ่มต้นอยู่แล้ว
ขั้นตอนที่ 4: สร้าง GPO สำหรับ Windows LAPS
เปิด Group Policy Management สร้าง GPO ใหม่ชื่อ LAPS-Servers แล้วลิงก์กับ OU Servers คลิกขวา Edit ไปที่ Computer Configuration > Policies > Administrative Templates > System > LAPS ถ้าใช้ Central Store ต้องคัดลอกไฟล์ LAPS.admx จาก C:\Windows\PolicyDefinitions และ LAPS.adml จากโฟลเดอร์ภาษา เช่น C:\Windows\PolicyDefinitions\en-US ไปไว้ใน Central Store เอง เพราะ Windows Update ไม่คัดลอกให้ ตั้งค่าดังนี้
- Configure password backup directory: Enabled แล้วเลือก Backup Directory เป็น Active Directory ถ้าไม่ตั้งข้อนี้ ค่าเริ่มต้นคือ Disabled และ Windows LAPS จะไม่ทำงานเลย
- Password Settings: ค่าเริ่มต้นคือความซับซ้อนแบบตัวใหญ่ ตัวเล็ก ตัวเลข และอักขระพิเศษ ยาว 14 ตัวอักษร อายุ 30 วัน แนะนำเพิ่มความยาวเป็น 20 ขึ้นไป
- Enable password encryption: Enabled เพื่อเข้ารหัสรหัสผ่านก่อนเก็บใน AD ต้องใช้ DFL 2016 ขึ้นไป
- Configure authorized password decryptors: ใส่
CORP\LAPS-Readersถ้าไม่ตั้ง จะถอดรหัสได้เฉพาะ Domain Admins - Do not allow password expiration time longer than required by policy: Enabled เพื่อกันไม่ให้ใครยืดวันหมดอายุของรหัสเกินนโยบาย
- Post-authentication actions: ค่าเริ่มต้นคือหลังมีคนล็อกอินด้วยบัญชีนี้ 24 ชั่วโมง ระบบจะเปลี่ยนรหัสและ sign out บัญชีนั้น ปรับ Grace period ให้สั้นลงได้ถ้าต้องการให้รหัสที่ถูกดึงไปใช้หมดอายุเร็วขึ้น
ไม่ต้องตั้ง Name of administrator account to manage ถ้าจะจัดการบัญชี Administrator ตัวที่มากับระบบ เพราะ Windows LAPS หาบัญชีนี้จาก RID เองแม้จะเปลี่ยนชื่อไปแล้ว ถ้าจะจัดการบัญชีแอดมินที่สร้างเอง ให้ใส่ชื่อบัญชีนั้น และต้องสร้างบัญชีไว้ก่อน Windows LAPS ไม่สร้างให้ ยกเว้น Windows Server 2025 ที่มีนโยบาย automatic account management เพิ่มเข้ามา
ระวังเรื่องความยาวและความซับซ้อนที่ขัดกับ password policy ของโดเมนหรือของเครื่อง ถ้า Windows LAPS สร้างรหัสที่ผ่านนโยบายไม่ได้ จะบันทึกเหตุการณ์ 10027 ในล็อกและไม่เปลี่ยนรหัส