Remote Desktop 2019 — профили и миграция. Часть 2


Как я уже упоминал (Remote Desktop 2019 — профили и миграция), обновление терминального сервера с множеством профилей это не рабочий вариант. Процесс обновления сервера с более чем 2000 профелей тянулся целый месяц. Затем рухнул. Откат прошёл криво. Сервер переустановлен. Вот такой результат эксперимента.

Рабочий вариант это использовать перенаправление папок. Перед началом миграции все профили с сервера удаляются. После миграции пользователь получает новый профиль и прежние перенаправленные папки со своей информацией.

Реклама

Remote Desktop 2019 – Проблема с перемещаемыми профилями


После обновления терминальной фермы до версии 2019 появилась небольшая, но неприятная проблема синхронизации профилей.

Как это проявляется:

— при завершении сеанса пользователи стали получать сообщение, что их профиль не до конца синхронизирован

— в логах появились сообщения User Profile General с номером Event Id 1509 и Winlogon с номером Event Id 6001

Windows cannot copy file \\?\C:\Users\user\AppData\Roaming\Microsoft\Search\Data\Applications\S-1-5-21-538639244-1736677612-1463291260-1131 to location \\?\UNC\domain\share\user.BIS.V6\AppData\Roaming\Microsoft\Search\Data\Applications\S-1-5-21-538639244-1736776612-1463291260-1131. This error may be caused by network problems or insufficient security rights.

 DETAIL — Access is denied.

Причина

Причина в том, что на серверах версии Windows Server 2012 R2 нет предустановленного сервиса Windows Search (если он нужен, то необходимо установить эту дополнительную компоненту), а с версии Windows Server 2016 этот сервис установлен. Только на 2016 он по умолчанию выключен, а на 2019 он включен. После обновления до 2019 мы внезапно получаем запущенный Windows Search сервис. Этот сервис создает в профиле пользователя индексные файлы и не закрывает их, когда пользователь закрывает сеанс, и, более того, ставит на них особые права доступа, в результате эти индексные файлы не могут быть скопированы на шару во время синхронизации профиля.

Лечение

  1. Выключить сервис Windows Search групповой политикой.
    1. Если ферма новая, то этого достаточно, т.к. профили пользователей не будут содержать индексных файлов.
    2. Если профили уже созданы, то они содержат индексные файлы и проблема остается – нужно создавать политику/скрипт удаления этих паразитных файлов.
  2. Настроить исключения (рекомендую)
    1. Выключение сервиса Windows Search может быть неудобно, если пользователи используют меню Старт и некоторые программы, которые требуют запущенного Windows Search. Если ферма используется для работы с Office и другими офисными программами, то Windows Search становится критически необходимым для удобной работы пользователей.
    2. Поэтому с помощью групповой политики настраиваем исключения папок, которые не должны копироваться при синхронизации профилей с шарой: User Configuration – Administrative Templates – System – User Profiles Prevent the following directories from roaming with the profile. Указываем AppData\Roaming\Microsoft\Search и применяем политику.
    3. После применения групповой политики она действует сразу без перезагрузки.

Remote Desktop – миграция на Windows Server 2019


  1. В документации как-то двусмысленно написано про обновление брокеров в конфигурации active-active: в одном месте – исключите из развертывания все брокеры кроме одного, в другом – обновляйте офлайн. Обновили так: у одного выключили сеть и обновили офлайн (включили только после завершения обновления второго брокера), второго обновили онлайн (с подключенной сетью) – никаких манипуляций с конфигурацией развертывания не делали.
  2. После обновления выяснилоcь, что сервис Remote Desktop сыпется и перезапускается со страшной скоростью. Это какая-то бага. Проблема провоцируется подключением к серверу брокера по RDP. Обходной путь: запретить через GPO протокол UPD в Remote Desktop Host на брокерах. После этого сервис перестал падать при подключении с Windows 10 (хотя вроде падает при подключении с Windows 7). Проблема отслеживается на форуме Technet.

Полезные ссылки (для 2016, но актуальны):

  1. https://blogs.technet.microsoft.com/tip_of_the_day/2017/01/30/rds-tip-of-the-day-upgrading-your-remote-desktop-services-deployments-to-windows-server-2016/
  2. https://docs.microsoft.com/en-us/windows-server/remote/remote-desktop-services/upgrade-to-rds

PS:

Ошибка падения сервиса:

Log Name:      Application
Source:        Application Error
Date:          04.02.2019 9:48:10
Event ID:      1000
Task Category: (100)
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      rdcb1.bis.bashtel.ru
Description:
Faulting application name: svchost.exe_TermService, version: 10.0.17763.1, time stamp: 0xb900eeff
Faulting module name: ntdll.dll, version: 10.0.17763.1, time stamp: 0xa369e897
Exception code: 0xc0000374
Fault offset: 0x00000000000fb349
Faulting process id: 0x1a64
Faulting application start time: 0x01d4bc421689ed0b
Faulting application path: C:\WINDOWS\System32\svchost.exe
Faulting module path: C:\WINDOWS\SYSTEM32\ntdll.dll
Report Id: 3dd20b15-d2e1-48b5-ab57-cf1cb821eb1b
Faulting package full name: 
Faulting package-relative application ID: 
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Application Error" />
    <EventID Qualifiers="0">1000</EventID>
    <Level>2</Level>
    <Task>100</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2019-02-04T04:48:10.524513800Z" />
    <EventRecordID>3268</EventRecordID>
    <Channel>Application</Channel>
    <Computer>rdcb1.bis.bashtel.ru</Computer>
    <Security />
  </System>
  <EventData>
    <Data>svchost.exe_TermService</Data>
    <Data>10.0.17763.1</Data>
    <Data>b900eeff</Data>
    <Data>ntdll.dll</Data>
    <Data>10.0.17763.1</Data>
    <Data>a369e897</Data>
    <Data>c0000374</Data>
    <Data>00000000000fb349</Data>
    <Data>1a64</Data>
    <Data>01d4bc421689ed0b</Data>
    <Data>C:\WINDOWS\System32\svchost.exe</Data>
    <Data>C:\WINDOWS\SYSTEM32\ntdll.dll</Data>
    <Data>3dd20b15-d2e1-48b5-ab57-cf1cb821eb1b</Data>
    <Data>
    </Data>
    <Data>
    </Data>
  </EventData>
</Event>

Log Name:      Application
Source:        Application Error
Date:          04.02.2019 9:21:40
Event ID:      1000
Task Category: (100)
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      rdcb1.bis.bashtel.ru
Description:
Faulting application name: svchost.exe_TermService, version: 10.0.17763.1, time stamp: 0xb900eeff
Faulting module name: RDPBASE.dll, version: 10.0.17763.1, time stamp: 0x2e058d64
Exception code: 0xc0000005
Fault offset: 0x00000000000de496
Faulting process id: 0xf04
Faulting application start time: 0x01d4bc40fa908148
Faulting application path: C:\WINDOWS\System32\svchost.exe
Faulting module path: C:\WINDOWS\system32\RDPBASE.dll
Report Id: 045e21ce-373b-402e-bad2-aca8a3af462d
Faulting package full name: 
Faulting package-relative application ID: 
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Application Error" />
    <EventID Qualifiers="0">1000</EventID>
    <Level>2</Level>
    <Task>100</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2019-02-04T04:21:40.086665100Z" />
    <EventRecordID>2864</EventRecordID>
    <Channel>Application</Channel>
    <Computer>rdcb1.bis.bashtel.ru</Computer>
    <Security />
  </System>
  <EventData>
    <Data>svchost.exe_TermService</Data>
    <Data>10.0.17763.1</Data>
    <Data>b900eeff</Data>
    <Data>RDPBASE.dll</Data>
    <Data>10.0.17763.1</Data>
    <Data>2e058d64</Data>
    <Data>c0000005</Data>
    <Data>00000000000de496</Data>
    <Data>f04</Data>
    <Data>01d4bc40fa908148</Data>
    <Data>C:\WINDOWS\System32\svchost.exe</Data>
    <Data>C:\WINDOWS\system32\RDPBASE.dll</Data>
    <Data>045e21ce-373b-402e-bad2-aca8a3af462d</Data>
    <Data>
    </Data>
    <Data>
    </Data>
  </EventData>
</Event>