Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows 7

วิธีการล้างประวัติการเชื่อมต่อ RDP ใน Windows?

ไคลเอ็นต์ Windows Remote Desktop Connection (RDP) ในตัว (mstsc.exe ) บันทึกชื่อคอมพิวเตอร์ระยะไกล (หรือที่อยู่ IP) และชื่อผู้ใช้ที่ใช้ในการเข้าสู่ระบบหลังจากเชื่อมต่อคอมพิวเตอร์ระยะไกลสำเร็จในแต่ละครั้ง ในการเริ่มต้นครั้งถัดไป ไคลเอ็นต์ RDP จะเสนอให้ผู้ใช้เลือกหนึ่งในการเชื่อมต่อที่เคยใช้ก่อนหน้านี้ ผู้ใช้สามารถเลือกชื่อของโฮสต์ RDS/RDP จากรายการ และไคลเอนต์จะกรอกชื่อผู้ใช้ที่ใช้ก่อนหน้าสำหรับการเข้าสู่ระบบโดยอัตโนมัติ

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

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

วิธีการล้างประวัติการเชื่อมต่อ RDP ใน Windows?

ในบทความนี้ เราจะแสดงตำแหน่งที่ Windows จัดเก็บประวัติและข้อมูลรับรองที่บันทึกไว้ของการเชื่อมต่อเดสก์ท็อประยะไกล วิธีลบรายการออกจากหน้าต่าง mstsc และล้างบันทึก RDP

สารบัญ:

  • จะลบ RDP Connection Cache ออกจาก Registry ได้อย่างไร
  • สคริปต์เพื่อล้างประวัติการเชื่อมต่อ RDP
  • จะป้องกันไม่ให้ Windows บันทึกประวัติการเชื่อมต่อ RDP ได้อย่างไร
  • จะล้างแคชบิตแมปเดสก์ท็อประยะไกลได้อย่างไร
  • การล้างข้อมูลรับรอง RDP ที่บันทึกไว้
  • การลบบันทึกเหตุการณ์ที่เกี่ยวข้องกับ RDP บนโฮสต์ระยะไกล

จะลบแคชการเชื่อมต่อ RDP ออกจากรีจิสทรีได้อย่างไร

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

  1. เรียกใช้ Registry Editor (regedit.exe ) และเรียกดูคีย์รีจิสทรี HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client ;
  2. คุณต้องมีรีจิสตรีคีย์สองตัวในส่วนนี้:ค่าเริ่มต้น (เก็บประวัติการเชื่อมต่อ 10 RDP ล่าสุด) และ เซิร์ฟเวอร์ (ประกอบด้วยรายชื่อเซิร์ฟเวอร์และชื่อผู้ใช้ RDP ทั้งหมดที่ใช้ในการเข้าสู่ระบบก่อนหน้านี้); วิธีการล้างประวัติการเชื่อมต่อ RDP ใน Windows?
  3. ขยายคีย์รีจิสทรี HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default ซึ่งมีรายการที่อยู่ IP 10 หรือชื่อ DNS ของคอมพิวเตอร์ระยะไกลที่ใช้ล่าสุด (MRU - ที่ใช้ล่าสุด) ชื่อ (หรือที่อยู่ IP) ของเซิร์ฟเวอร์เดสก์ท็อประยะไกลถูกเก็บไว้ในค่าของ MRU* . พารามิเตอร์. หากต้องการล้างประวัติการเชื่อมต่อ RDP ล่าสุด ให้เลือกพารามิเตอร์ทั้งหมดที่มีชื่อ MRU0-MRU9 ให้คลิกขวาและเลือก ลบ; วิธีการล้างประวัติการเชื่อมต่อ RDP ใน Windows?
  4. ตอนนี้ขยายคีย์ HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers . ประกอบด้วยรายการการเชื่อมต่อ RDP ทั้งหมดที่เคยสร้างโดยผู้ใช้รายนี้ ขยายคีย์ reg ด้วยชื่อ (หรือที่อยู่ IP) ของโฮสต์ใดก็ได้ ให้ความสนใจกับค่าของ UsernameHint พารามิเตอร์. มันแสดงชื่อผู้ใช้ที่ใช้เชื่อมต่อกับโฮสต์ RDP/RDS ชื่อผู้ใช้นี้จะถูกใช้เพื่อเชื่อมต่อกับโฮสต์ RDP โดยอัตโนมัติ นอกจากนี้ CertHash ตัวแปรมีรหัสประจำตัวใบรับรอง SSL ของเซิร์ฟเวอร์ RDP (ดูบทความ "การกำหนดค่าใบรับรอง TLS/SSL ที่เชื่อถือได้สำหรับ RDP"); วิธีการล้างประวัติการเชื่อมต่อ RDP ใน Windows?
  5. ในการล้างประวัติการเชื่อมต่อ RDP ทั้งหมดและชื่อผู้ใช้ที่บันทึกไว้ คุณต้องล้างเนื้อหาของคีย์รีจิสทรีของเซิร์ฟเวอร์ เนื่องจากไม่สามารถเลือกรีจิสตรีคีย์ที่ซ้อนกันทั้งหมดในคราวเดียว การลบเซิร์ฟเวอร์ทั้งหมดจึงง่ายกว่า คีย์แล้วสร้างใหม่ด้วยตนเอง วิธีการล้างประวัติการเชื่อมต่อ RDP ใน Windows?
  6. ถัดไป คุณต้องลบไฟล์การเชื่อมต่อ RDP เริ่มต้น (ซึ่งมีข้อมูลเกี่ยวกับเซสชัน rdp ล่าสุด) – Default.rdp (ไฟล์นี้เป็นไฟล์ที่ซ่อนอยู่ใน เอกสาร ไดเรกทอรี)
  7. Windows ยังบันทึกการเชื่อมต่อเดสก์ท็อประยะไกลล่าสุดในรายการทางลัด หากคุณพิมพ์ mstsc ในช่องค้นหาของ Windows 10 การเชื่อมต่อ RDP ที่ใช้ก่อนหน้านี้จะปรากฏในรายการ คุณสามารถปิดใช้งานไฟล์และตำแหน่งของ Windows 10 ล่าสุดในรายการทางลัดด้วยพารามิเตอร์ dword ของรีจิสทรี Start_TrackDocs ในคีย์ reg HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced (ตั้งค่าเป็น 0 ) หรือคุณสามารถล้างรายการ Resent Items โดยการลบไฟล์ในไดเร็กทอรี %AppData%\Microsoft\Windows\Recent\AutomaticDestinations . วิธีการล้างประวัติการเชื่อมต่อ RDP ใน Windows?
หมายเหตุ . วิธีการที่อธิบายไว้สำหรับการล้างประวัติการเชื่อมต่อของเดสก์ท็อประยะไกลนั้นใช้ได้กับเดสก์ท็อป Windows ทุกรุ่น (ตั้งแต่ Windows XP ไปจนถึง Windows 10) และสำหรับ Windows Server

สคริปต์เพื่อล้างประวัติการเชื่อมต่อ RDP

ด้านบนเราได้แสดงวิธีล้างประวัติการเชื่อมต่อ RDP ใน Windows ด้วยตนเอง อย่างไรก็ตาม การดำเนินการด้วยตนเอง (โดยเฉพาะในคอมพิวเตอร์หลายเครื่อง) นั้นใช้เวลานาน ดังนั้นเราจึงขอเสนอสคริปต์ขนาดเล็ก (ไฟล์ BAT) ที่ช่วยให้สามารถล้างประวัติ RDP ได้โดยอัตโนมัติ

ในการล้างประวัติ RDP โดยอัตโนมัติ คุณสามารถวางสคริปต์นี้ในการเริ่มต้น Windows หรือเรียกใช้บนคอมพิวเตอร์ของผู้ใช้ผ่านสคริปต์ออกจากระบบ GPO

@echo off
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default" /va /f
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers" /f
reg add "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers"
attrib -s -h %userprofile%\documents\Default.rdp
del %userprofile%\documents\Default.rdp
del /f /s /q /a %AppData%\Microsoft\Windows\Recent\AutomaticDestinations

ลองพิจารณาการกระทำทั้งหมดของสคริปต์:

  1. ปิดการแสดงผลข้อมูลไปยังคอนโซล
  2. ลบพารามิเตอร์ทั้งหมดในรีจิสตรีคีย์ HKCU\Software\Microsoft\Terminal Server Client\Default (ล้างรายการการเชื่อมต่อ RDP ล่าสุด)
  3. ลบคีย์ reg ทั้งหมด HKCU\Software\Microsoft\Terminal Server Client\Servers (ล้างรายการการเชื่อมต่อ RDP ทั้งหมดและชื่อผู้ใช้ที่บันทึกไว้)
  4. สร้างรีจิสตรีคีย์ที่ลบไปก่อนหน้านี้อีกครั้ง
  5. เปลี่ยนแอตทริบิวต์ของไฟล์ Default.rdp ในไดเร็กทอรีโปรไฟล์ของผู้ใช้ปัจจุบัน (โดยค่าเริ่มต้นคือ Hidden และ System)
  6. ลบไฟล์ Default.rdp;
  7. ล้างรายการการเชื่อมต่อเดสก์ท็อประยะไกลจากรายการข้ามรายการล่าสุด

นอกจากนี้ คุณสามารถล้างประวัติการเชื่อมต่อ RDP โดยใช้สคริปต์ PowerShell ต่อไปนี้:

Get-ChildItem "HKCU:\Software\Microsoft\Terminal Server Client" -Recurse | Remove-ItemProperty -Name UsernameHint -Ea 0
Remove-Item -Path 'HKCU:\Software\Microsoft\Terminal Server Client\servers' -Recurse  2>&1 | Out-Null
Remove-ItemProperty -Path 'HKCU:\Software\Microsoft\Terminal Server Client\Default' 'MR*'  2>&1 | Out-Null
$docs = [environment]::getfolderpath("mydocuments") + '\Default.rdp'
remove-item  $docs  -Force  2>&1 | Out-Null

หมายเหตุ . อย่างไรก็ตาม คุณลักษณะของการล้างข้อมูลประวัติ RDP นั้นมีอยู่ใน “ตัวล้างข้อมูล” ของระบบและรีจิสทรี เช่น CCleaner เป็นต้น

จะป้องกันไม่ให้ Windows บันทึกประวัติการเชื่อมต่อ RDP ได้อย่างไร

ถ้าคุณไม่ต้องการให้ Windows บันทึกประวัติการเชื่อมต่อ RDP คุณต้องปฏิเสธการเขียนคีย์รีจิสทรี HKCU\Software\Microsoft\Terminal Server Client สำหรับบัญชีผู้ใช้ทั้งหมด ขั้นแรก ปิดใช้งานการสืบทอดสิทธิ์บนคีย์ reg ที่ระบุ (สิทธิ์ -> ขั้นสูง -> ปิดใช้งานการสืบทอด) จากนั้นเปลี่ยน ACL คีย์รีจิสทรีโดยทำเครื่องหมายที่ ปฏิเสธ ตัวเลือกสำหรับผู้ใช้ (แต่คุณควรเข้าใจว่านี่เป็นการกำหนดค่าที่ไม่รองรับ)

วิธีการล้างประวัติการเชื่อมต่อ RDP ใน Windows?

ด้วยเหตุนี้ mstsc.exe จึงไม่สามารถเขียนข้อมูลการเชื่อมต่อ RDP ไปยังรีจิสทรีได้

จะล้างแคชบิตแมปเดสก์ท็อประยะไกลได้อย่างไร

ไคลเอ็นต์การเชื่อมต่อเดสก์ท็อประยะไกลมีคุณลักษณะการแคชบิตแมปแบบถาวรของรูปภาพ ไคลเอ็นต์ RDP จะบันทึกส่วนต่างๆ ของหน้าจอระยะไกลที่แทบไม่เปลี่ยนแปลงเป็นแคชรูปภาพแรสเตอร์ ด้วยเหตุนี้ ไคลเอ็นต์ mstsc.exe จึงโหลดส่วนต่างๆ ของหน้าจอที่ไม่มีการเปลี่ยนแปลงตั้งแต่การเรนเดอร์ครั้งล่าสุดจากแคชของไดรฟ์ในเครื่อง คุณลักษณะแคช RDP นี้ช่วยลดปริมาณข้อมูลที่ส่งผ่านเครือข่าย

แคช RDP เป็นไฟล์สองประเภทในไดเรกทอรี %LOCALAPPDATA%\Microsoft\Terminal Server Client\Cache :

  • *.bmc
  • ถัง

วิธีการล้างประวัติการเชื่อมต่อ RDP ใน Windows?

ไฟล์เหล่านี้เก็บบิตแมปหน้าจอ RDP ดิบในรูปแบบของไทล์ 64 × 64 พิกเซล การใช้สคริปต์ PowerShell หรือ Python อย่างง่าย (ค้นหาได้ง่ายๆ ด้วย RDP Cached Bitmap Extractor ข้อความค้นหา) คุณสามารถรับไฟล์ PNG ด้วยชิ้นส่วนของหน้าจอเดสก์ท็อประยะไกล และใช้เพื่อรับข้อมูลที่ละเอียดอ่อนได้ ขนาดของไทล์มีขนาดเล็ก แต่เพียงพอที่จะให้ข้อมูลที่เป็นประโยชน์แก่บุคคลที่ศึกษาแคช RDP

วิธีการล้างประวัติการเชื่อมต่อ RDP ใน Windows?

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

วิธีการล้างประวัติการเชื่อมต่อ RDP ใน Windows?

บางครั้งเมื่อใช้แคช RDP อาจได้รับความเสียหาย:

Bitmap Disk Cache Failure. Your disk is full or the cache directory is missing or corrupted.  Some bitmaps may not appear.

ในกรณีนี้ คุณต้องล้างไดเร็กทอรีแคช RDP หรือปิดใช้งานตัวเลือก Bitmap Caching

กำลังล้างข้อมูลรับรอง RDP ที่บันทึกไว้

หากเมื่อสร้างการเชื่อมต่อ RDP ระยะไกลใหม่ ก่อนป้อนรหัสผ่าน ผู้ใช้จะเลือกตัวเลือก จดจำฉัน จากนั้นชื่อผู้ใช้และรหัสผ่านจะถูกบันทึกไว้ใน Windows Credential Manager ครั้งต่อไปที่คุณเชื่อมต่อกับคอมพิวเตอร์เครื่องเดียวกัน ไคลเอนต์ RDP จะใช้รหัสผ่านที่บันทึกไว้ก่อนหน้านี้โดยอัตโนมัติสำหรับการตรวจสอบสิทธิ์บนโฮสต์ระยะไกล

วิธีการล้างประวัติการเชื่อมต่อ RDP ใน Windows?

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

รายละเอียดเพิ่มเติมเกี่ยวกับวิธีการทำงานของรหัสผ่านที่บันทึก RDP ในบทความที่ลิงค์

วิธีการล้างประวัติการเชื่อมต่อ RDP ใน Windows?

หรือคุณสามารถลบรหัสผ่าน RDP ที่บันทึกไว้ได้โดยตรงจาก Windows Credential Manager ไปที่ส่วน Control Panel\User Accounts\Credential Manager เลือก จัดการข้อมูลรับรอง Windows และในรายการรหัสผ่านที่บันทึกไว้ ให้ค้นหาชื่อคอมพิวเตอร์ (ในรูปแบบต่อไปนี้ TERMSRV/192.168.1.100 ). ขยายรายการที่พบและคลิกปุ่ม ลบ ปุ่ม.

วิธีการล้างประวัติการเชื่อมต่อ RDP ใน Windows?

ในสภาพแวดล้อมโดเมน Active Directory คุณสามารถปิดใช้งานการบันทึกรหัสผ่านสำหรับการเชื่อมต่อ RDP ได้โดยใช้ GPO พิเศษ – การเข้าถึงเครือข่าย:ไม่อนุญาตให้จัดเก็บรหัสผ่านและข้อมูลรับรองสำหรับการตรวจสอบสิทธิ์เครือข่าย (ดูบทความ)

การลบบันทึกเหตุการณ์ที่เกี่ยวข้องกับ RDP บนโฮสต์ระยะไกล

บันทึกการเชื่อมต่อจะถูกบันทึกไว้ที่ฝั่งโฮสต์ RDP/RDS ด้วย คุณสามารถค้นหาข้อมูลเกี่ยวกับประวัติการเชื่อมต่อ RDP ได้ในบันทึก Event Viewer:

  • การรักษาความปลอดภัย
  • บันทึกการใช้งานและบริการ -> Microsoft -> Windows -> TerminalServices-RemoteConnectionManager -> Operational;
  • TerminalServices-LocalSessionManager -> ผู้ดูแลระบบ

วิธีการล้างประวัติการเชื่อมต่อ RDP ใน Windows?

อ่านเพิ่มเติมเกี่ยวกับการวิเคราะห์บันทึกการเชื่อมต่อ RDP ในบทความ

คุณสามารถล้างบันทึกเหตุการณ์บนเซิร์ฟเวอร์ RDP โดยใช้ wevtutil หรือ PowerShell