Hoe verwijder ik de RD-sessiehost uit de instellingen van Remote Desktop Services?

Het verwijderen van een RSDH-host uit je Remote Desktop Services (RDS)-configuratie kan soms lastig zijn, vooral als deze offline is of niet meewerkt. Je kunt de grafische interface via Server Manager gebruiken, maar eerlijk gezegd bieden PowerShell of zelfs directe aanpassingen in de database vaak de oplossing. Meestal krijgen gebruikers foutmeldingen zoals “Kan niet verwijderen” wanneer ze een offline server proberen te verwijderen via Server Manager, of erger nog, die vreemde foutmelding “Objectverwijzing is niet ingesteld op een instantie van een object”.Dat komt omdat Windows in de war raakt als de server niet meer werkt of als de databasemetadata niet correct is opgeschoond. Om dit op een nette manier te doen, zijn er vaak een paar extra stappen nodig in SQL Server of WID, wat ingewikkeld klinkt, maar met de nodige zorgvuldigheid wel degelijk mogelijk is. Kortom, als de server niet werkt of niet reageert, is simpelweg op “Verwijderen” klikken niet voldoende en blijf je achter met waarschuwingen en fouten. De oplossing? Je moet rechtstreeks in de RDCB-database duiken en de resterende informatie verwijderen. Het hele proces omvat het verbinden met de database, het vinden van de vermeldingen voor uw RDSH en het handmatig verwijderen ervan. Windows moet het natuurlijk ingewikkelder maken dan nodig is, nietwaar? Het belangrijkste is dat u een back-up van de database maakt voordat u ermee aan de slag gaat, anders kunt u uw hele farmconfiguratie beschadigen. Nadat u de database hebt opgeschoond, start u Server Manager opnieuw en controleert u dit met opdrachten zoals ` Get-RDServer`. Hiermee kunt u controleren of de host daadwerkelijk is verwijderd. Voor de databaseverbinding geldt dat als het WID betreft, u verbinding maakt met `\\.\pipe\MICROSOFT##WID\tsql\query`; voor SQL Server maakt u verbinding met de juiste netwerklistener. Houd er rekening mee dat het wijzigen van de SQL-database officieel niet wordt ondersteund door Microsoft, maar het is een veelgebruikte techniek om hardnekkige, offline hosts te verwijderen. Het is enigszins riskant, dus zorg ervoor dat u back-ups hebt en dat u weet hoe u SQL-query’s moet uitvoeren. Controleer ook de tabellen zoals `rds. Server`, `rds. RoleRdsh` en dergelijke, en verwijder de specifieke server-ID’s om de spookhosts te verwijderen. Daarna zou de server uit de farm verdwenen moeten zijn en kunt u verdergaan met uw gebruikelijke RDS-beheer- of migratieplannen. En ja, soms helpt het om de server na de opruiming opnieuw op te starten. Ik weet niet zeker waarom het werkt, maar in sommige configuraties is het wel zo. Als u een korte samenvatting wilt, dit is wat de meeste mensen uiteindelijk doen:

  • Maak een back-up van je RDCB SQL-database. Want natuurlijk moet Windows het weer eens lastiger maken.
  • Maak verbinding met de database (WID of SQL Server).
  • Zoek de vermeldingen in `rds. Server` en `rds. RoleRdsh`.
  • Verwijder de specifieke serverrecords met T-SQL-opdrachten zoalsdelete from rds. RoleRdsh where ServerID='X'; delete from rds. Server where Id='X';
  • Herstart Server Manager en controleer met ` Get-RDServer`.

Een offline RDS-host verwijderen uit een implementatie

Methode 1: SQL Management Studio gebruiken en servermetadata verwijderen

Dit is de meest betrouwbare methode als de host niet meer werkt en niet op de normale manier kan worden verwijderd. Door de servergegevens rechtstreeks uit de RDCB-database te verwijderen, worden alle verwijzingen gewist en worden toekomstige fouten of waarschuwingen over ontbrekende hosts voorkomen. Dit is van toepassing wanneer de server offline is of is uitgevallen en dit als een fout of waarschuwing in uw console wordt weergegeven.

  • Maak eerst verbinding met de RDCB-database. Voor een WID-instantie gebruikt u \\.\pipe\MICROSOFT##WID\tsql\query.
  • Als u SQL Server gebruikt, maak dan verbinding met uw SQL Server-instantie waarop de RDCB-database zich bevindt, waarschijnlijk via SQL Management Studio.
  • Voordat u verdergaat, maak een back-up van de RDCB-database. Dit is cruciaal, aangezien dit een ingrijpende wijziging betreft.
  • Zoek de ID van de host in de tabel ` rds. Server` en verwijder vervolgens de bijbehorende records uit ` rds. RoleRdsh` en ` rds. Server`. Voorbeeld T-SQL:
    use RDCms; delete from rds. RoleRdsh where ServerID='3'; delete from rds. Server where Id='3';
  • Sluit de database en herstart Server Manager om de lijst met servers te vernieuwen. De spookhost zou nu verdwenen moeten zijn en je zou geen waarschuwingen meer moeten zien.

Methode 2: PowerShell gebruiken om de verwijdering weer te geven en te bevestigen

Zodra de database is opgeschoond, kunt u de volgende opdracht uitvoeren Get-RDServerin PowerShell. Deze geeft een lijst weer van alle servers die momenteel in uw implementatie aanwezig zijn. Als alles goed is gegaan, zou de offline server niet meer in de lijst moeten staan. Dit is meer een controle dan een oplossing, maar het is handig om te zien of alles correct is opgeruimd.

  • Open PowerShell als beheerder.
  • Voer het programma uit Get-RDServeren controleer of de hostnaam nog steeds wordt weergegeven. Als deze nog steeds wordt weergegeven, is er mogelijk iets misgegaan — misschien is een vernieuwing nodig of is de database niet correct opgeschoond.

De belangrijkste truc is eigenlijk het direct verwijderen van de metadata. Het is een beetje een rommelige klus, maar soms de enige manier als de server niet soepel via de grafische interface wil stoppen. Vergeet niet om back-ups te maken. Want in tegenstelling tot de grafische interface kun je in SQL Server gemakkelijk alles verpesten als je de verkeerde gegevens verwijdert.

Hopelijk geeft dit een duidelijker beeld van wat er moet gebeuren bij hardnekkige offline hosts. Het wijkt wel een beetje af van rechtstreeks GUI-beheer, maar het werkt – in de meeste gevallen tenminste.