Ошибка the server pool does not match the rd connection brokers that are in it. errors

Обновлено 15.08.2023

rds error

Добрый день! Уважаемые читатели и гости IT блога Pyatilistnik.org. Не так давно у нас с вами была интересная тема посвященная системам хранения данных. Двигаемся дальше и сегодня пост будет вновь на тему RDS фермы, она прямо не устает пополнять контент на моем блоге и опыт траблшутинга. Открываю я оснастку управления и что я вижу, ошибку "The server pool does not match the rd connection brokers that are in it. errors". Давайте разбираться в чем дело и как выкручиваться из данной ситуации.

🆘Описание ошибки

Я разворачивал месяц назад Remote Desktop Services High Availability на Windows Server 2022. Все успешно работало. Просыпаюсь я с утра и вижу интересную картину, что при попытке войти в оснастку управления RDS я получаю ошибку:

The server pool does not match the rd connection brokers that are in it. errors: The RD Connection Broker server is not in the server pool but is part ot the cluster. Add it to the server pool

По сути вам сообщают, что ваш посредник подключений. уже не брокер, что очень смущает😂.

Ошибка the server pool does not match the rd connection brokers that are in it. errors

Или еще вот такую:

There are no RD Connection Broker servers in the server pool.

To manage a deployment, you must add all the servers it the deploment to the server pool.

To create a new deployment, run the Add Roles and Features Wizard and select the Remote Services installation option.

To manage a deployment, you must add all the servers it the deploment to the server pool

Как устранять ошибку "The RD Connection Broker server is not in the server pool but is part ot the cluster"

Первое, что вы должны сделать, это проверить есть ли на вашем сбойном RDCB хосте в логах, события, что он все же обрабатывает подключения, или же там много ошибок. Для этого я выкладывал статью "Скрипты RDS" и там приводил вот такой скрипт PowerShell.

#Скрипт с сайта разработал Иван Сёмин, разрешается его копировать на другие сайты только с указанием активной ссылки на источник

$Servers = Get-Content "C:\Temp\rds\servers.txt" #Тут поместите имя вашего сервера
$Events = @()

ForEach ($Server in $Servers) {
$EventLog = Get-WinEvent -LogName Microsoft-Windows-TerminalServices-SessionBroker-Client/Operational -ComputerName $Server -MaxEvents 100 -ErrorAction SilentlyContinue |
Where-Object {$_.TimeCreated -ge [datetime]::Now.AddMinutes(-60)} #За последние 60 минут

ForEach ($Event in $EventLog) {
$Events += [PSCustomObject]@{
Server = $Server
EventID = $Event.Id
Time = $Event.TimeCreated
Message = $Event.Message
}
}
}

#$Events | Format-Table Server, EventID, Time, Message | Out-File "C:\Temp\ntlm.txt"
$Events | Format-Table Server, EventID, Time, Message -AutoSize
#$Events | export-csv "C:\Temp\ntlm.csv" -Append

На выходе вы увидите кучу ошибок, и будите их изучать, или как в моем случае, вы увидите, что брокер подключений активно и успешно перенаправляет пользователей на RDSH хосты.

Remote Desktop Connection Broker Client received request for redirection

Далее я вам советую проверить настройки RDS HA. Для этого в PowerShell в режиме администратора введите:

Get-RDConnectionBrokerHighAvailability -ConnectionBroker rdcb02.root.pyatilistnik.org

Не забудьте только подставить вашего брокера подключений. В итоге я вижу, что мой текущий сбойный брокер является активным держателем настроек.

PowerShell получить настройки RDS

Это еще раз подтверждает, что данная ситуация просто неприятный глюк системы. Давайте искать в чем дело, первое на что требуется обратить внимание, это обновления системы. И правда у меня ночью на моем хосте Windows Server 2022 произошла установка обновлений KB5023705, но перезагрузки не было так как на хосте RDCM была активная сессия.

Еще из наблюдений на данном хосте так же перестал работать BGinfo

Ожидание установки обновления на Windows Server 2022

Так же если вы делали по моей инструкции RDS HA, то должны были воспользоваться SQL Native Client. Запустите его через окно "Выполнить", введя там:

На сбойном хосте справа не видно общей базы данных, на втором хосте она есть. Проверьте что у сбойного хоста RDCB есть права на общую базу данных с настройками. Если нет, выдайте их.

Список БД RDS HA

Если по правам все в порядке, то я вам предлагаю в вечернее время просто произвести перезагрузку системы, главное не забудьте переключить в настройках RDS HA кто сейчас активный брокер, пусть это будет тот на котором проблем нет.

Get-RDConnectionBrokerHighAvailability -ConnectionBroker rdcb02.root.pyatilistnik.org | Set-RDActiveManagementServer -ManagementServer "rdcb01.root.pyatilistnik.org"

Если перезагрузка не помогла

Бывает и такое, тут вам нужно уже через Management Studio зайти на сервер, кто держит вашу базу данных и проверить в каком режиме она находится. Проверьте нет ли там статуса "Pending Recovery". Если ожидается восстановление, то его нужно произвести. Попробуйте перевести БД в Offline, а зачем через минутку в Online. Если выскочит ошибка, то попробуйте выполнить процедуру через минуту. Обязательно еще раз проверьте наличие прав у RDCM хостов.

Ошибка SQL RDS HA

Включение TLS 1 для Windows Server 2016 и ниже

Эта проблема возникает, если вы отключили TLS 1.0 на серверах 2012 R2 и 2016 или ваша база данных находится в режиме ожидания восстановления. Чтобы восстановить TLS 1.0 или лучшее решение, обновите его до версии 2019, которая поддерживает TLS 1.2.

Редактор реестра Windows версии 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ SecurityProviders\Schannel\Protocols\TLS 1.0\Client]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ SecurityProviders\ Schannel\Protocols\TLS 1.0\Server]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001

Неофициальное решение

Для этого решения не используйте IIS crypto tool, так как он не будет настраивать наборы шифров и протоколы по мере необходимости! Вам нужно будет отредактировать реестр вручную.  Поскольку вы имеете дело с правилами PCI, вы можете знать, что в реестре Windows есть 2 основных параметра, где вы можете настроить наборы шифров и протоколы.

  • Одним из них является параметр приоритета набора шифров:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\ Cryptography\Configuration\SSL\00010002.

  • Другой параметр — это параметр SCHANNEL (протоколы и шифры):

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ SecurityProviders\SCHANNEL.

Используя эти параметры реестра, вы можете включить TLS1.0 для внутреннего использования серверными службами, но он не будет обслуживаться для внешних подключений к серверу... поэтому любому, кто подключается к серверу, будет предложено подключение только с использованием TLS1.2. Для этого выполните следующие действия...

В разделе "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Control\SecurityProviders\SCHANNEL" установите:

  1. Ciphers: оставить только совместимые с PCI шифры (AES128 и AES256)
  2. Hashes: оставить включенными SHA, SHA256, SHA384
  3. KeyExchangeAlgorithms: включите ECDH, PKCS и Diffie-Hellman (ВНИМАНИЕ: установите длину ключа DH на 2048! ... Длина ключа DH 1024 не совместима с PCI!) - Протоколы: отключите все, кроме TLS1.0, TLS1.1
    и TLS1.2

В разделе «HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\ Cryptography\Configuration\SSL\00010002»:

    • Использовать только наборы шифров TLS1.2. Таким образом, когда кто-то хочет подключиться к серверу, предлагается использовать только наборы шифров. указано в приоритете. Поскольку эти наборы шифров поддерживаются только TLS1.2, единственным доступным протоколом, предлагаемым клиенту, является TLS1.2.
      Между тем, серверные службы внутри по-прежнему могут использовать все протоколы TLS.

Ошибка There are no RD Connection Broker server in the server pool

Еще на днях встретил вот такую ошибку:

There are no RD Connection Broker server in the server pool.

To manage a deployment, you must add all the servers it the deployment to the server pool.

To create a new deployment, run the Add Roles and Features Wizard and select the Remote Desktop Services installation option

There are no RD Connection Broker server in the server pool

Из наблюдений, на обоих серверах RDCB были установлены обновления Windows и они находились в статусе RebootPending. Оба сервера были поочереди перезагружены, с переносом через PowerShell команды, описанные выше активного посредника подключений. В результате этих действий оснастка RDS восстановила привычную работы и смогла определить состав RDS-фермы.

На этом у меня все, надеюсь, что вы починили свой RDS HA сервис. С вами был Иван Сёмин, автор и создатель IT портала Pyatilistnik.org.

Автор - Сёмин Иван

3 Responses to Ошибка the server pool does not match the rd connection brokers that are in it. errors

  1. Денис:

    Спасибо!

  2. Анна:

    Была такая же ошибка, помогло перепроверить и дать права серверам на бд на чтение\запись и сделать Set-Item WSMan:localhost\client\trustedhosts -value *, там было пусто

  3. Анна:

    Мне помогло дать права серверам на чтение и запись на бд и сделать
    Set-Item WSMan:localhost\client\trustedhosts -value *
    значение value было пустым изначально
    После этого перезапустить службу remote desktop connection broker

Добавить комментарий

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