Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Windows Server

วิธีเปลี่ยนรหัสผ่านที่หมดอายุผ่าน Remote Desktop Web Access บน Windows Server

ในบทความนี้ เราจะแสดงวิธีที่ผู้ใช้ระยะไกลสามารถเปลี่ยนรหัสผ่านที่หมดอายุของพวกเขาโดยใช้ฟอร์มเว็บพิเศษบนเซิร์ฟเวอร์ Remote Desktop Services (RDS) ที่มีบทบาท RD Web Access บน Windows Server 2022/2019/2016/2012 R2

ไม่สามารถเปลี่ยนรหัสผ่านที่หมดอายุจากเซสชัน Remote Desktop

ใน Windows Server 2012 R2 และใหม่กว่า NLA (Network Level Authentication) ถูกเปิดใช้งานสำหรับการเชื่อมต่อ Remote Desktop ตามค่าเริ่มต้น NLA ป้องกันไม่ให้ผู้ใช้เชื่อมต่อกับโฮสต์ RDP/RDS หากรหัสผ่านของพวกเขาหมดอายุหรือมีตัวเลือก "User must change password at first Logon" เปิดใช้งานในแอตทริบิวต์ useraccountcontrol ของผู้ใช้ คุณสามารถปิดใช้งาน NLA ได้ (ref1, ref2) แต่สิ่งนี้ไม่ดีในแง่ของความปลอดภัย เมื่อคุณพยายามเชื่อมต่อกับเซิร์ฟเวอร์ RDSH (Remote Desktop Session Host) ภายใต้บัญชีผู้ใช้ที่มีรหัสผ่านหมดอายุ ข้อความข้อผิดพลาดต่อไปนี้จะปรากฏ:

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 Interactive logon: Prompt user to change password before expiration บนโฮสต์ RDS (Computer Configuration → Windows Settings → Local Policies → Security Options) แต่ไม่ได้ทำงานเสมอไปเนื่องจากความลืมของผู้ใช้ทั่วไป

ใน Windows 2012 R2 และใหม่กว่า ผู้ใช้ระยะไกลสามารถรีเซ็ตรหัสผ่านด้วยตนเอง (รหัสผ่านปัจจุบันหรือรหัสผ่านที่หมดอายุ) ผ่านหน้าเว็บพิเศษบนเซิร์ฟเวอร์ที่มีบทบาท Remote Desktop Web Access เพื่อเปลี่ยนรหัสผ่าน ผู้ใช้ต้องรับรองความถูกต้องผ่านหน้าเว็บล็อกอิน RDS-WebAccess และเปลี่ยนรหัสผ่านโดยใช้ฟอร์ม aspx พิเศษ

หมายเหตุ ใน Windows Server 2003 ผู้ใช้โดเมนสามารถเปลี่ยนรหัสผ่านที่หมดอายุได้โดยใช้เว็บแอปพลิเคชันขนาดเล็ก IISADMPWD (แม้จะไม่ได้รับการสนับอย่างเป็นทางการ)

วิธีอนุญาตให้ผู้ใช้ระยะไกลรีเซ็ตรหัสผ่านที่หมดอายุบนโฮสต์ RDWeb Access

ตัวเลือกการเปลี่ยนรหัสผ่านระยะไกลพร้อมใช้งานบนเซิร์ฟเวอร์ที่มีบทบาท 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 เวอร์ชันเฉพาะภาษา (โดยไม่มี language pack) เส้นทางไปยังไฟล์ password.aspx จะแตกต่างออกไปและมีลักษณะดังนี้:

  • C:\Windows\Web\RDWeb\Pages\fr-FR – สำหรับ Windows Server รุ่นฝรั่งเศส
  • C:\Windows\Web\RDWeb\Pages\de-DE – สำหรับรุ่นเยอรมัน

เพื่อเปิดใช้งานตัวเลือกเปลี่ยนรหัสผ่าน คุณต้องรันคอนโซล IIS Manager (inetmgr) บนเซิร์ฟเวอร์ที่มีบทบาท RD Web Access ที่กำหนดค่าแล้ว ไปที่ [Server Name] → Sites → Default Web Site → RDWeb → Pages และเปิดส่วน Application Settings

ในหน้าต่างด้านขวา ให้ค้นหาพารามิเตอร์ PasswordChangeEnabled และเปลี่ยนค่าเป็น true

นอกจากนี้ คุณสามารถตั้งค่าพารามิเตอร์ PasswordChangeEnabled เป็น True ในไฟล์กำหนดค่า IIS C:\Windows\Web\RDWeb\Pages\Web.config

พารามิเตอร์ PasswordChangeEnabled อนุญาตให้ผู้ใช้ Active Directory เปลี่ยนรหัสผ่านที่หมดอายุผ่านพอร์ทัล RD Web Access ตัวเลือกนี้ไม่ได้อนุญาตให้เปลี่ยนรหัสผ่านของผู้ใช้ท้องถิ่นบนโฮสต์ RDS ในสภาพแวดล้อม Workgroup (โดยไม่มีโดเมน)

รีสตาร์ทเว็บเซิร์ฟเวอร์ IIS จากคอนโซลหรือใช้คำสั่ง:

iisreset

เพื่อตรวจสอบความพร้อมใช้งานของหน้าเปลี่ยนรหัสผ่าน ให้ไปที่หน้าเว็บต่อไปนี้:

https://lonSrvRDS1/RDWeb/Pages/en-US/password.aspx

RD Web Access ต้องมีใบรับรอง SSL ที่ถูกต้องติดตั้งแล้ว คุณสามารถใช้ใบรับรอง Let's Encrypt ฟรีใน IIS

ป้อนชื่อผู้ใช้ รหัสผ่านเก่า และรหัสผ่านใหม่สองครั้ง

หลังจากเปลี่ยนรหัสผ่านของผู้ใช้สำเร็จ ข้อความต่อไปนี้ควรปรากฏ:

Your password has been successfully changed.

คลิก OK และผู้ใช้จะถูกเปลี่ยนเส้นทางไปยังหน้าล็อกอิน RD Web หากรหัสผ่านของผู้ใช้ไม่ตรงตามนโยบายรหัสผ่านของโดเมน ข้อความเตือนจะปรากฏ:

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 ได้ก็ต่อเมื่อ Forms Authentication ถูกเปิดใช้งานบน IIS บนเซิร์ฟเวอร์ RDWA คุณจะไม่สามารถเปลี่ยนรหัสผ่านผ่านฟอร์มเว็บ RD ได้หากใช้วิธี Windows Authentication

คุณสามารถแสดงรายการและเปลี่ยนประเภทการรับรองความถูกต้องที่รองรับได้ในคอนโซล IIS Manager เลือก Sites → Default Web Sites → RDWeb → Pages ในหน้าต่างด้านขวา เลือก Forms Authentication

ตอนนี้ เมื่อพยายามเชื่อมต่อกับเซิร์ฟเวอร์ RD Web Access ด้วยรหัสผ่านที่หมดอายุ ผู้ใช้จะถูกเปลี่ยนเส้นทางไปยังหน้าเว็บ password.aspx และได้รับการเสนอให้เปลี่ยนรหัสผ่านของเขา

เพิ่มลิงก์เปลี่ยนรหัสผ่านในฟอร์มล็อกอิน RD Web Access

คุณสามารถเพิ่มลิงก์ไปยังฟอร์มเปลี่ยนรหัสผ่านโดยตรงในฟอร์มล็อกอิน Remote Desktop WebAccess ซึ่งจะช่วยให้ผู้ใช้เปลี่ยนรหัสผ่านได้ทุกเมื่อโดยไม่ต้องรอจนหมดอายุ

แทรกลิงก์ไปยังไฟล์ password.aspx ลงในหน้าล็อกอิน RDWeb (สร้างสำเนาสำรองของไฟล์ password.aspx ก่อนแก้ไข)

  1. บนเซิร์ฟเวอร์ RDWeb ให้ค้นหาและเปิดไฟล์ C:\Windows\Web\RDWeb\Pages\en-US\login.aspx ในเครื่องมือแก้ไขข้อความใดๆ (ผมชอบ Notepad++)
  2. ไปที่บรรทัด 429 (ใน Windows Server 2022 ตั้งอยู่หลังบล็อก HTML ต่อไปนี้ <tr id="trPasswordExpiredNoChange" <%=strErrorMessageRowStyle%> > … </tr> ) และวางโค้ดต่อไปนี้:
  3. <!-- 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 -->
  4. บันทึกการเปลี่ยนแปลงในไฟล์ login.aspx รีสตาร์ทเว็บไซต์ IIS และตรวจสอบว่าลิงก์ไปยังหน้าเปลี่ยนรหัสผ่านปรากฏบนหน้าล็อกอินของเซิร์ฟเวอร์ RD Web

ผู้ใช้ระยะไกลสามารถเปลี่ยนรหัสผ่านที่หมดอายุบนเซิร์ฟเวอร์ RDS ของคุณได้แล้วโดยไม่ต้องมีการแทรกแซงของผู้ดูแลระบบ โปรดทราบว่าหากคุณใช้ Cached Credentials ของโดเมนเพื่อล็อกอินเข้าคอมพิวเตอร์ท้องถิ่น พวกเขาจะไม่ได้รับการอัปเดตหลังจากที่คุณเปลี่ยนรหัสผ่าน Active Directory ผ่าน RDWebAccess