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

วิธีลบโฮสต์เซสชัน RD จากการปรับใช้บริการเดสก์ท็อประยะไกล


ในการลบโฮสต์ RSDH ออกจากคอลเลกชัน/ฟาร์มเซสชันบริการเดสก์ท็อประยะไกล คุณสามารถใช้คอนโซลกราฟิกตัวจัดการเซิร์ฟเวอร์หรือ PowerShell cmdlet Remove-RDSessionHost

คุณสามารถใช้คำสั่ง PowerShell ต่อไปนี้หากคุณต้องการลบโฮสต์เซสชัน RD แบบออนไลน์ออกจากคอลเลกชันเซสชันในฟาร์ม RDS:

Remove-RDSessionHost -SessionHost @("rdsh2.a-d.site") -ConnectionBroker rdcb.a-d.site -verbose
VERBOSE: The specified RD Session Host server will be removed from the session collection.

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

WARNING: Unable to cleanup the RD Session Host server rdsh1.

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

Could not remove the configuration. Object reference not set to an instance of an object.

นอกจากนี้ คุณไม่สามารถจัดการฟาร์ม RDS ของคุณผ่าน Server Manager ได้ เนื่องจากหลังจากลบโฮสต์ RDSH ออกจากคอนโซลแล้ว คุณจะเห็นคำเตือนต่อไปนี้:

The following servers in this deployment are not part of the server pool:
rdsh2.a-d.site
The servers must be added to the server pool.

ในการลบโฮสต์ RDS ที่ล้มเหลวอย่างถูกต้อง คุณจะไม่กลับไปที่ฟาร์มของคุณ คุณต้องลบข้อมูลเมตาออกจากฐานข้อมูล RD Connection Broker (RDCB)

โดยเชื่อมต่อกับฐานข้อมูล RDCB โดยใช้ SQL Management Studio

  • หากคุณกำลังใช้ฐานข้อมูลตัวแทนการเชื่อมต่อเดสก์ท็อประยะไกลในเครื่องที่อิงตามฐานข้อมูลภายในของ Windows (WID) ให้ใช้สตริงการเชื่อมต่อต่อไปนี้เพื่อเชื่อมต่อกับอินสแตนซ์ SQL:

    \\.\pipe\MICROSOFT##WID\tsql\query
  • หากฐานข้อมูล RDCB ของคุณทำงานบน SQL Server หรือในกลุ่ม SQL Server Always On High Availability (หากคุณใช้บทบาทนายหน้าการเชื่อมต่อ RD ที่มีความพร้อมใช้งานสูง) ให้เชื่อมต่อกับ SQL Server Listener ที่เหมาะสม (คุณอาจได้รับโดยใช้คำสั่ง :

    Get-RDConnectionBrokerHighAvailability

    )

เรียกใช้ SQL Management Studio และเชื่อมต่อกับฐานข้อมูลโดยใช้บัญชีที่มีสิทธิ์ของผู้ดูแลระบบภายในบนเซิร์ฟเวอร์

ขอแนะนำให้สำรองฐานข้อมูล SQL ของ RD Connection Broker ก่อนทำการเปลี่ยนแปลงใดๆ

ขยายฐานข้อมูล RDCms และค้นหาตารางต่อไปนี้ที่มีรายการเกี่ยวกับโฮสต์ฟาร์ม RDS:

  • rds.Server - รายการเซิร์ฟเวอร์ทั้งหมดในฟาร์มบริการเดสก์ท็อประยะไกล

  • rds.RoleRdsh - รายการเซิร์ฟเวอร์ที่มีบทบาทโฮสต์เซสชัน RD

  • rds.RoleRdcb — นายหน้าการเชื่อมต่อ

  • rds.RoleRdls — RDS License Serversr

  • rds.RoleRdvh — โฮสต์การจำลองเสมือน

  • rds.RoleRdwa — โฮสต์การเข้าถึงเว็บ

ในกรณีของเรา เฉพาะบทบาท RDSH เท่านั้นที่ทำงานบนเซิร์ฟเวอร์ ซึ่งหมายความว่าเพียงพอที่จะลบรายการจากตาราง rds.Server และ rds.RoleRdsh

ค้นหา ID ของเซิร์ฟเวอร์ RDSH ในตารางที่คุณต้องการลบออกจากการปรับใช้ RDS ในตัวอย่างของฉัน มันคือ ID 3

ใช้เคียวรี T-SQL ต่อไปนี้เพื่อลบเร็กคอร์ด RDSH ออกจากทั้งสองตารางของฐานข้อมูล Connection Broker:

use RDCms;
delete from rds.RoleRdsh where ServerID = '3';
delete from rds.Server where Id = '3';

คุณไม่จำเป็นต้องทำให้โฮสต์ RDSH อื่นอยู่ในโหมดเดรน

ปิดฐานข้อมูลและรีสตาร์ทคอนโซลตัวจัดการเซิร์ฟเวอร์ เปิดคอนโซล RDS อัปเดตการกำหนดค่า และตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ที่นำออกไม่ปรากฏในรายการโฮสต์ RDS ที่มีอีกต่อไป

คุณสามารถตรวจสอบให้แน่ใจว่าไม่มีเซิร์ฟเวอร์ที่ถูกลบในฟาร์ม RDS โดยใช้คำสั่งนี้:

Get-RDServer

หากคุณต้องการย้ายบทบาท RD Connection Broker หรือ RD Web Access ไปยังเซิร์ฟเวอร์อื่น ให้ใช้คำแนะนำนี้

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