ในบทความนี้ เราจะแสดงวิธีที่ผู้ใช้ระยะไกลของคุณสามารถเปลี่ยนรหัสผ่านที่หมดอายุได้โดยใช้เว็บฟอร์มพิเศษบนเซิร์ฟเวอร์ Remote Desktop Services (RDS) ที่มีบทบาท RD Web Access บน Windows Server 2022/2019/2016/2012 R2
เปลี่ยนรหัสผ่านที่หมดอายุจากเซสชันเดสก์ท็อประยะไกลไม่ได้
ใน Windows Server 2012 R2 และใหม่กว่า NLA (การตรวจสอบระดับเครือข่าย) ถูกเปิดใช้งานสำหรับการเชื่อมต่อเดสก์ท็อประยะไกลโดยค่าเริ่มต้น NLA ป้องกันไม่ให้ผู้ใช้เชื่อมต่อกับโฮสต์ RDP/RDS หากรหัสผ่านหมดอายุหรือผู้ที่มี “ผู้ใช้ต้องเปลี่ยนรหัสผ่านเมื่อเข้าสู่ระบบครั้งแรก ” เปิดใช้งานตัวเลือกในแอตทริบิวต์ผู้ใช้ useraccountcontrol คุณสามารถปิดใช้งาน NLA (ref1, ref2) ได้ แต่สิ่งนี้ไม่ดีในแง่ของความปลอดภัย เมื่อคุณพยายามเชื่อมต่อกับเซิร์ฟเวอร์ RDSH (โฮสต์ของเซสชันเดสก์ท็อประยะไกล) ภายใต้บัญชีผู้ใช้ที่มีรหัสผ่านที่หมดอายุ ข้อความแสดงข้อผิดพลาดต่อไปนี้จะปรากฏขึ้น:
An authentication error has occurred. The Local Security Authority cannot be contacted Remote computer: lonSrvRDS1 This could be due to an expired password Please update your password if it has expired.
เมื่อใช้ NLA ผู้ใช้ RDP ระยะไกลจะไม่สามารถเปลี่ยนรหัสผ่านที่หมดอายุได้หากไม่มีวิธีอื่นในการเข้าถึงเครือข่ายขององค์กรนอกเหนือจากโครงสร้างพื้นฐาน RDS แน่นอน คุณสามารถขอให้ผู้ใช้เปลี่ยนรหัสผ่านได้โดยตรงในเซสชัน RDP ล่วงหน้า หรือโดยการเปิดใช้งานการเข้าสู่ระบบแบบโต้ตอบ:แจ้งให้ผู้ใช้เปลี่ยนรหัสผ่านก่อนหมดอายุ ตัวเลือก GPO โฮสต์ RDS (การกำหนดค่าคอมพิวเตอร์ -> การตั้งค่า Windows -> นโยบายในเครื่อง -> ตัวเลือกความปลอดภัย) แต่อาจไม่ได้ผลเสมอไปเนื่องจากผู้ใช้มักหลงลืม
ใน Windows 2012 R2 และใหม่กว่า ผู้ใช้ระยะไกลสามารถรีเซ็ตรหัสผ่านด้วยตนเอง (รหัสผ่านปัจจุบันหรือรหัสผ่านที่หมดอายุ) ผ่านหน้าเว็บพิเศษบนเซิร์ฟเวอร์ด้วย การเข้าถึงเว็บเดสก์ท็อประยะไกล บทบาท. ในการเปลี่ยนรหัสผ่าน ผู้ใช้ต้องตรวจสอบสิทธิ์ผ่านหน้าเว็บลงชื่อเข้าใช้ RDS-WebAccess และเปลี่ยนรหัสผ่านโดยใช้แบบฟอร์ม aspx พิเศษ
หมายเหตุ . ใน Windows Server 2003 ผู้ใช้โดเมนสามารถเปลี่ยนรหัสผ่านที่หมดอายุได้โดยใช้เว็บแอปพลิเคชันขนาดเล็กIISADMPWD
(แม้ว่าจะไม่ได้รับการสนับสนุนอย่างเป็นทางการ) จะอนุญาตให้ผู้ใช้ระยะไกลรีเซ็ตรหัสผ่านที่หมดอายุบนโฮสต์การเข้าถึง RDWeb ได้อย่างไร
ตัวเลือกการเปลี่ยนรหัสผ่านระยะไกลพร้อมใช้งานบนเซิร์ฟเวอร์ที่มีบทบาท Remote Desktop Web Access (RD Web Access) แต่ฟีเจอร์นี้ถูกปิดใช้งานโดยค่าเริ่มต้น
หากคุณมีเซิร์ฟเวอร์ฟาร์ม RDS ที่ปรับใช้ คุณสามารถค้นหาเซิร์ฟเวอร์ที่มีบทบาทการเข้าถึง RDS-WEB-Access โดยเชื่อมต่อการกำหนดค่าการปรับใช้บนโฮสต์ RD Connection Broker:
Get-RDServer -ConnectionBroker rdcb1.woshub.com| where {$_.roles -eq "RDS-WEB-ACCESS"}
ในการเปลี่ยนรหัสผ่าน ให้ใช้สคริปต์ใน password.aspx ไฟล์ที่อยู่ใน C:\Windows\Web\RDWeb\Pages\en-US .
หากคุณกำลังใช้ Windows Server เวอร์ชันแปลภาษา (ไม่มีชุดภาษา) เส้นทางไปยังไฟล์ password.aspx จะแตกต่างออกไปและมีลักษณะดังนี้:- C:\Windows\Web\RDWeb\Pages\fr-FR – สำหรับ Windows Server รุ่นภาษาฝรั่งเศส
- C:\Windows\Web\RDWeb\Pages\de-DE – สำหรับฉบับภาษาเยอรมัน
หากต้องการเปิดใช้งานตัวเลือกการเปลี่ยนรหัสผ่าน คุณต้องเรียกใช้ ตัวจัดการ IIS คอนโซล (inetmgr
) บนเซิร์ฟเวอร์ที่มีบทบาท RD Web Access ที่กำหนดค่าไว้ ไปที่ [ชื่อเซิร์ฟเวอร์] –> ไซต์ –> เว็บไซต์เริ่มต้น –> RDWeb –> หน้า และเปิด การตั้งค่าแอปพลิเคชัน มาตรา.
ในบานหน้าต่างด้านขวา ให้ค้นหา PasswordChangeEnabled พารามิเตอร์และเปลี่ยนค่าเป็น จริง .
นอกจากนี้ คุณยังสามารถตั้งค่าพารามิเตอร์ PasswordChangeEnabled เป็น True ในไฟล์กำหนดค่า IIS C:\Windows\Web\RDWeb\Pages\Web.config.
PasswordChangeEnabled พารามิเตอร์อนุญาตให้ผู้ใช้ Active Directory เปลี่ยนรหัสผ่านที่หมดอายุผ่านพอร์ทัล RD Web Access ตัวเลือกนี้ไม่อนุญาตให้เปลี่ยนรหัสผ่านของผู้ใช้ภายในเครื่องบนโฮสต์ RDS ในสภาพแวดล้อมของเวิร์กกรุ๊ป (ไม่มีโดเมน)
รีสตาร์ทเว็บเซิร์ฟเวอร์ IIS จากคอนโซลหรือใช้คำสั่ง:
iisreset
หากต้องการตรวจสอบความพร้อมใช้งานของหน้าเปลี่ยนรหัสผ่าน ให้ไปที่หน้าเว็บต่อไปนี้:
https://lonSrvRDS1/RDWeb/Pages/en-US/password.aspx
RD Web Access ต้องติดตั้งใบรับรอง SSL ที่ถูกต้อง คุณสามารถใช้ใบรับรอง Let's Encrypt ฟรีใน IISป้อนชื่อผู้ใช้ รหัสผ่านเก่า และรหัสผ่านใหม่สองครั้ง
หลังจากเปลี่ยนรหัสผ่านของผู้ใช้สำเร็จแล้ว ข้อความต่อไปนี้ควรปรากฏขึ้น:
Your password has been successfully changed.
คลิกตกลงและผู้ใช้จะถูกเปลี่ยนเส้นทางไปยังหน้าเข้าสู่ระบบเว็บ RD หากรหัสผ่านของผู้ใช้ไม่ตรงกับนโยบายรหัสผ่านของโดเมน ข้อความเตือนจะปรากฏขึ้น:
Your new password does not meet the length, complexity, or history requirements of your domain. Try choosing a different new password.
คุณสามารถใช้วิธีการเปลี่ยนรหัสผ่านนี้บนเซิร์ฟเวอร์ Remote Desktop Web Access ได้ก็ต่อเมื่อ การตรวจสอบสิทธิ์ของฟอร์ม ถูกเปิดใช้งานบน IIS บนเซิร์ฟเวอร์ RDWA คุณจะไม่สามารถเปลี่ยนรหัสผ่านผ่านเว็บฟอร์ม RD ได้หากการตรวจสอบสิทธิ์ของ Windows ใช้วิธีการ
คุณสามารถแสดงรายการและเปลี่ยนประเภทการรับรองความถูกต้องที่รองรับได้ในคอนโซล IIS Manager เลือก Sites -> Default Web Sites -> RDWeb -> Pages ในบานหน้าต่างด้านขวา เลือก Forms Authentication .
ขณะนี้ เมื่อพยายามเชื่อมต่อกับเซิร์ฟเวอร์ RD Web Access ด้วยรหัสผ่านที่หมดอายุ ผู้ใช้จะถูกเปลี่ยนเส้นทางไปยังหน้าเว็บ password.aspx และเสนอให้เปลี่ยนรหัสผ่าน
เคล็ดลับ . คุณสามารถเปลี่ยนรหัสผ่านที่หมดอายุใน Windows Server 2008 R2 ด้วย RD Web Access Role หลังจากติดตั้งการอัปเดตพิเศษ KB2648402 .
การเพิ่มลิงก์เปลี่ยนรหัสผ่านไปยังแบบฟอร์มการเข้าสู่ระบบ RD Web Access
คุณสามารถเพิ่มลิงก์ไปยังแบบฟอร์มการเปลี่ยนรหัสผ่านได้โดยตรงในแบบฟอร์มการลงชื่อเข้าใช้ Remote Desktop WebAccess ซึ่งจะทำให้ผู้ใช้สามารถเปลี่ยนรหัสผ่านได้ตลอดเวลาโดยไม่ต้องรอจนหมดอายุ
แทรกลิงก์ไปยังไฟล์ password.aspx ลงในหน้าลงชื่อเข้าใช้ RDWeb (สร้างสำเนาสำรองของไฟล์ password.aspx ก่อนแก้ไข)
- บนเซิร์ฟเวอร์ RDWeb ค้นหาและเปิดไฟล์ C:\Windows\Web\RDWeb\Pages\en-US\login.aspx ในโปรแกรมแก้ไขข้อความใด ๆ (ฉันชอบ Notepad++);
- ไปที่บรรทัดที่ 429 (ใน Windows Server 2022 จะอยู่หลังบล็อก HTML ต่อไปนี้
<tr id="trPasswordExpiredNoChange" <%=strErrorMessageRowStyle%> > … </tr>
) และวางโค้ดต่อไปนี้: <!-- Begin: Add Change Password Link -->
<tr>
<td align="right"> <a href="password.aspx" title="Change AD User Password">Click here </a>to change your password.
</td>
</tr>
<!-- End: Add Change Password Link -->- บันทึกการเปลี่ยนแปลงในไฟล์ login.aspx เริ่มต้นเว็บไซต์ IIS ใหม่ และตรวจสอบให้แน่ใจว่าลิงก์ไปยังหน้าการเปลี่ยนรหัสผ่านปรากฏบนหน้าลงชื่อเข้าใช้ของเว็บเซิร์ฟเวอร์ RD
ผู้ใช้ระยะไกลสามารถเปลี่ยนรหัสผ่านที่หมดอายุบนเซิร์ฟเวอร์ RDS ของคุณได้โดยไม่ต้องมีการแทรกแซงจากผู้ดูแลระบบ โปรดทราบว่าหากคุณใช้โดเมน Cached Credentials เพื่อเข้าสู่ระบบคอมพิวเตอร์ของคุณ ข้อมูลเหล่านี้จะไม่ได้รับการอัปเดตหลังจากที่คุณเปลี่ยนรหัสผ่าน Active Directory ผ่าน RDWebAccess