Удаление сервера из фермы Remote Desktop Services

Для удаления RDSH хоста из фермы/кластера Remote Desktop Services можно использовать графическую консоль Server Manager или PowerShell командлет Remove-RDSessionHost.

Для удаления сервера RDSH из фермы RDS с помощью PowerShell используется команда:

Remove-RDSessionHost -SessionHost @("rdsh2.winitpro.ru") -ConnectionBroker rdcb.winitpro.ru –verbose

VERBOSE: The specified RD Session Host server will be removed from the session collection.

Если удаляемый RDSH сервер находится в офлайн режиме (например, если не загружается, физически вышло из железо сервера), то при удалении его из фермы RDS появится ошибка:

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

Remove-RDSessionHost - powershell удаление сервера из RDSH

При попытке удалить такой сервер из хостов с ролью Remote Desktop Services Host с помощью Server Manager появляется ошибка:

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

RDSH не могу удалить сервер 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.winitpro.ru
The servers must be added to the server pool.

Для корректного удаления неисправного хоста RDS, который вы не планируете возвращать в ферму, нужно удалить его метаданные из базы данных RD Connection Broker.

При этом другие хосты RDS не обязательно переводить в режим обслуживания RDSH.

Для этого нужно подключиться к базе данных RDCB с помощью SQL Management Studio.

  • Если у вас используется локальная база Remote Desktop Connection Broker на базе Windows Internal Database (WID), нужно подключиться к инстансу \\.\pipe\MICROSOFT##WID\tsql\query
  • Если ваша база RDCB находится на SQL Server или кластере SQL Server Always On (при использовании высоко доступной роли RD Connection Broker), нужно подключится к соответствующему SQL Listener (можно получить с помощью команды Get-RDConnectionBrokerHighAvailability ).

Запустите SQL Management Studio и подключитесь к базе под учетной запись с правами локального администратора на сервере.

SQL Management Studio подключиться к базе данных RD Connectio Broker

Настоятельно рекомендую сделать внеочередную резервную копию SQL базы данных RD Connection Broker перед внесением изменений.

Разверните базу RDCms и найдите в ней следующие таблицы, в которых хранятся записи о хостах фермы RDS:

  • rds.Server – полный список серверов в ферме Remote Desktop Service
  • rds.RoleRdsh – список серверов с ролью RD Session Host
  • rds.RoleRdcb — Connection Broker
  • rds.RoleRdlsсервер лицензирования RDS License Server)
  • rds.RoleRdvh — Virtualization Host
  • rds.RoleRdwa — Web Access Host

В нашем случае на сервере запущена только роль RDSH, значит нужно удалить записи о нем только из таблиц rds.Server и rds.RoleRdsh.

Найдите в таблице ID сервера RDSH, который вы хотите удалить из фермы RDS. В моем примере это ID 3.

Таблицы с серверами RDS в базе данных RDCB

С помощью следующего T-SQL запроса нужно удалить записи сервера RDSH из обеих таблиц базы Connection Broker:

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

вручную удалить неисправный сервер RDSH из терминальной фермы

Закройте DB и перезапустите консоль Server Manager. Зайдите в консоль RDS, обновите конфигурацию и убедитесь, что удаленный сервер более не отображается в доступных хостах RDSH.

RDS сервер удален из Server Managaer

Также вы можете проверить, что в RDS ферме больше нет этого сервера, выполнив команду:

Get-RDServer

Если нужно перенести роли RD Connection Broker на другой сервер, воспользуйтесь этим гайдом.

Предыдущая статья Следующая статья


Комментариев: 1 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)