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

เปลี่ยนรหัสผ่านผู้ใช้ในเซสชัน RDP บน Windows


ในบทความนี้ เราจะแสดงวิธีเปลี่ยนรหัสผ่านผู้ใช้ในเซสชัน RDP บนคอมพิวเตอร์ Windows ระยะไกล ในฐานะโฮสต์ระยะไกล คุณอาจมี Windows Server ที่มีบทบาทบริการเดสก์ท็อประยะไกล (RDSH) ที่กำหนดค่าไว้ หรืออนุญาตให้ใช้เวิร์กสเตชัน Windows 10 ที่มีการเชื่อมต่อ RDP หนึ่งหรือหลายการเชื่อมต่อ

ปัญหาหลักที่ผู้ใช้พบคือคุณไม่สามารถเปิดกล่องโต้ตอบเปลี่ยนรหัสผ่านมาตรฐานโดยใช้คีย์ผสม Ctrl + Alt + Delete ในเซสชันเดสก์ท็อประยะไกล (RDP) ทางลัดนี้ไม่ได้ส่งผ่านไปยังเซสชัน RDP เนื่องจากทำงานบนระบบปฏิบัติการภายในเครื่องของคุณ

ใน Windows Server 2003/2008 คุณสามารถเปลี่ยนรหัสผ่านผู้ใช้ใน RDP ได้โดยการคลิกปุ่มเริ่ม และเลือก ความปลอดภัยของ Windows -> เปลี่ยนรหัสผ่าน

ในรุ่นที่ใหม่กว่า รวมถึง Windows Server 2016/2019/2022 และ Windows 10/11 จะไม่มีรายการความปลอดภัยของ Windows ในเมนูเริ่ม ดังนั้นวิธีการเปลี่ยนรหัสผ่านผู้ใช้นี้จึงใช้ไม่ได้

เปลี่ยนรหัสผ่านผู้ใช้ใน RDP ด้วย CTRL + ALT + END

ใน Windows เวอร์ชันปัจจุบัน คุณต้องใช้คีย์ผสม Ctrl + Alt + End เพื่อเปิดกล่องโต้ตอบความปลอดภัยของ Windows ในเซสชัน RDP ทางลัดจะเหมือนกับ Ctrl + Alt + Delete แต่ใช้งานได้ในหน้าต่าง RDP เท่านั้น เลือก เปลี่ยนรหัสผ่านในเมนู

ตอนนี้คุณสามารถเปลี่ยนรหัสผ่านในกล่องโต้ตอบมาตรฐาน (ป้อนรหัสผ่านปัจจุบันและตั้งรหัสผ่านใหม่สองครั้ง)

การเปลี่ยนรหัสผ่านโดยใช้แป้นพิมพ์บนหน้าจอ

หากคุณเชื่อมต่อกับเดสก์ท็อประยะไกลของโฮสต์ Windows ผ่านห่วงโซ่ของเซสชัน RDP คุณจะไม่สามารถใช้ CTRL+ALT+END เพื่อเปลี่ยนรหัสผ่านผู้ใช้ได้ หน้าต่าง RDP แรกจะสกัดกั้นแป้นพิมพ์ลัด ในกรณีเหล่านี้ คุณสามารถใช้ Windows On-Screen Keyboard ในตัวเพื่อเปลี่ยนรหัสผ่านของผู้ใช้ได้

  1. เรียกใช้แป้นพิมพ์บนหน้าจอในเซสชัน RDP เป้าหมาย (ทำได้ง่ายกว่าโดยการพิมพ์

    osk.exe

    ในเมนูเริ่ม);

  2. คุณจะเห็นแป้นพิมพ์บนหน้าจอ

  3. กด

    CTRL+ALT

    บนแป้นพิมพ์จริง (ในเครื่อง) ของคุณ (ควรแสดงบนหน้าจอ) จากนั้นคลิก

    Del

    ปุ่มบนแป้นพิมพ์บนหน้าจอ

  4. ดังนั้นการกดแป้น Ctrl+Alt+Del จะถูกส่งไปยังเซสชัน RDP ระยะไกล และกล่องโต้ตอบความปลอดภัยของ Windows มาตรฐานจะปรากฏขึ้นในตำแหน่งที่คุณสามารถเปลี่ยนรหัสผ่านได้

โปรดจำไว้ว่าเมื่อคุณเปลี่ยนรหัสผ่านของผู้ใช้ รหัสผ่านนั้นต้องเป็นไปตามข้อกำหนดนโยบายรหัสผ่านในเครื่องหรือโดเมนของคุณ

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

Unable to update the password. The value provided for the new password does not meet the length, complexity, or history requirements of the domain.

โปรดทราบว่าหากกำหนดค่า อายุรหัสผ่านขั้นต่ำ ในนโยบายโดเมน (หรือในนโยบายรหัสผ่านแบบละเอียด - PSO) สิ่งนี้อาจป้องกันไม่ให้ผู้ใช้เปลี่ยนรหัสผ่านบ่อยกว่าที่ระบุไว้ใน การตั้งค่า GPO
คุณสามารถดูเมื่อรหัสผ่านผู้ใช้หมดอายุโดยใช้ PowerShell:

Get-ADUser -Identity jsmith -Properties msDS-UserPasswordExpiryTimeComputed | select-object @{Name="ExpirationDate";Expression= {[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed") }}

สคริปต์ VBS/PowerShell เพื่อเปลี่ยนรหัสผ่านในเซสชัน RDP

คุณสามารถเรียกใช้กล่องโต้ตอบความปลอดภัยของ Windows ในเซสชัน RDP โดยใช้เครื่องมือ Windows ในตัว: VBScript, PowerShell หรือทางลัดของเชลล์

ตัวอย่างเช่น สร้างไฟล์ข้อความ WindowsSecurity.vbs ด้วยรหัส VBScript ต่อไปนี้บนเดสก์ท็อปของคุณ:

set objShell = CreateObject("shell.application")
objshell.WindowsSecurity

หากคุณคลิกสองครั้งที่ไฟล์ VBS คุณจะเห็นแบบฟอร์มมาตรฐานสำหรับเปลี่ยนรหัสผ่านของคุณ

คุณสามารถวางไฟล์ VBS นี้บนเดสก์ท็อปที่ใช้ร่วมกันบนโฮสต์ RDS ของคุณ (

%SystemDrive%\Users\Public\Desktop\

) หรือคัดลอกไฟล์ไปยังเดสก์ท็อปของผู้ใช้โดยใช้ GPO

ในทำนองเดียวกัน คุณสามารถเปิดหน้าต่างเปลี่ยนรหัสผ่านจาก PowerShell ใช้คำสั่งด้านล่าง:

New-Object -COM Shell.Application).WindowsSecurity()

มีตัวเลือกในการสร้างทางลัด Windows File Explorer ด้วยลิงก์ต่อไปนี้:

C:\Windows\explorer.exe shell:::{2559a1f2-21d7-11d4-bdaf-00c04f60b9f0}

การเปลี่ยนรหัสผ่านผ่าน Remote Desktop Web Access (RDWEB)

หากคุณเข้าถึงเซิร์ฟเวอร์ RDP ของคุณผ่านโฮสต์ที่มีบทบาท Remote Desktop Web Access (RDWA) คุณสามารถอนุญาตให้เปลี่ยนรหัสผ่านที่หมดอายุในหน้าเข้าสู่ระบบ RDWA (มีรายละเอียดอธิบายไว้ที่นี่)< br />

CredSSP NLA และการเปลี่ยนรหัสผ่านใน RDP

มีคุณสมบัติที่สำคัญในการเปลี่ยนรหัสผ่านผู้ใช้ที่หมดอายุใน RDP ที่เกี่ยวข้องกับโปรโตคอล Network Level Authentication (NLA) และ Credential Security Support Provider (CredSSP) ตามค่าเริ่มต้น CredSSP ที่มี NLA สำหรับ RDP จะเปิดใช้งานบน Windows Server 2012/Windows 8 และใหม่กว่า NLA ปกป้องเซิร์ฟเวอร์ RDP โดยตรวจสอบผู้ใช้ก่อนที่จะสร้างเซสชัน RDP กับโฮสต์

หากรหัสผ่านของผู้ใช้หมดอายุหรือผู้ดูแลระบบ AD ได้เปิดใช้งานตัวเลือก userAccountControl “ผู้ใช้ต้องเปลี่ยนรหัสผ่านเมื่อเข้าสู่ระบบครั้งถัดไป” (ส่วนใหญ่มักจะเปิดใช้งานสำหรับบัญชี AD ใหม่) คุณจะเห็นข้อผิดพลาดต่อไปนี้ เมื่อเข้าสู่ระบบโดยใช้ RDP:

Remote Desktop Connection

You must change your password before logging on the first time. Please update your password or contact your system administrator or technical support.

ส่งผลให้ผู้ใช้ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์โดยใช้ RDP และเปลี่ยนรหัสผ่านได้

ในกรณีนี้ หากต้องการอนุญาตให้ผู้ใช้ระยะไกลเปลี่ยนรหัสผ่านได้ คุณสามารถ:

  • กำหนดค่าบทบาท RDWA ด้วยหน้าเปลี่ยนรหัสผ่านตามที่อธิบายไว้ข้างต้น

  • ปิดใช้งาน NLA บนโฮสต์ RDP ของคุณ (ไม่แนะนำ!!! เนื่องจากลดระดับความปลอดภัยของการเชื่อมต่อ RDP ลงอย่างมาก) และใช้ไฟล์ .rdp กับบรรทัด

    enablecredsspsupport:i:0

    สำหรับการเชื่อมต่อ

  • ใช้โฮสต์ RDP แยกต่างหากเพื่อเปลี่ยนรหัสผ่านของผู้ใช้ คุณไม่จำเป็นต้องติดตั้งบทบาทโฮสต์เซสชันเดสก์ท็อประยะไกลบนโฮสต์นี้หรือเพิ่มผู้ใช้ลงในกลุ่มผู้ใช้เดสก์ท็อประยะไกลในเครื่อง แต่คุณต้องปิดใช้งาน NLA จากนั้นผู้ใช้จะสามารถเปลี่ยนรหัสผ่านได้ แต่จะไม่สามารถเข้าสู่ระบบเซิร์ฟเวอร์ผ่าน RDP

  • ผู้ใช้สามารถเปลี่ยนรหัสผ่านจากระยะไกลได้โดยใช้ PowerShell (หากมีการเข้าถึงเครือข่ายไปยังตัวควบคุมโดเมน)

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