Введение.
Здесь я поделюсь своими групповыми политиками, которые я предпочитаю использовать на терминальных серверах. За счет этого мы не получаем тикетов по работе на ферме и даже новый сотрудник сразу при входе получает полностью готовый и функционирующий профиль.
Таблица с кратким описанием.
Компьютер:
RDS_PC_DeleteUserAppContainersOnLogoff | Очищает записи в брандмауэре, которые создаются пользователями при входе. Иначе переполнение их приводит к деградации сервера, неуправляемости, не рабочей кнопки пуска, черному экрану. |
RDS_PC_Disable_Per-User services | Удаляет не нужные пользовательские сервисы, которые создаются при входе. Приводит к переполнению буфера services.msc и не дает управлять. |
RDS_PC_DisableTaskOffload | Отключает выгрузку задач процессора на сетевой адаптер. |
RDS_PC_DefaultAppAssociations | Ассоциация расширений файлов с программами. |
RDS_PC_IgnoreRemoteKeyboardLayout | Отключение проброса языковой раскладки по RDP с локального ПК. |
RDS_PC_ShadowFullAccess | Разрешение для теневого управления без действия пользователя. |
RDS_PC_StartLayout | Установка макета пуск меню. |
RDS_User Group Policy Loopback Processing mode | Замыкание групповой политики. Применение политик пользователя в OU компьютера. |
RDS_PC_1C_Settings | Прописывание баз 1С. |
Пользователь:
RDS_User_1CClearCacheLogon | Чистка кешью 1С. |
RDS_User_ColorProfile | Исправление бага, когда стандартный просмотрщик изображений говорит о недостаточности оперативной памяти. |
RDS_User_HideLocalDrives | Скрытие локальных дисков. |
RDS_User_HideNetworkIcon | Скрытие значка сети в проводнике. |
RDS_User_HideNotificationArea | Скрытие значка и отключение уведомлений. |
RDS_User_RemoveVolumeIcon | Удаление значка звука. |
RDS_User_SettingsOutlook | Настройки Outlook. |
RDS_User_WindowTitleBarColor | Выделение активного проводника цветом. |
Обзор политик
RDS_PC_DeleteUserAppContainersOnLogoff: 27 ноября 2018 г. — KB4467684 (сборка ОС 14393.2639)
Обсуждение: Windows Servr 2016 RDSH – Firewall rules created at every login.
Обязательно добавляем этот ключ в реестр, чтоб не было проблем с производительностью.
RDS_PC_Disable_Per-User services:
Источник: Службы для отдельных пользователей в Windows 10 и Windows Server
Данные мусорные сервисы создаются динамически при входе пользователя и могут приводить к переполнению некого буфера, который не дает управлять сервисами. Пример моей настройки с помощью групповых политик:
Путь раздела:
SYSTEM\CurrentControlSet\Services\CaptureService
SYSTEM\CurrentControlSet\Services\cbdhsvc
SYSTEM\CurrentControlSet\Services\CDPSvc
SYSTEM\CurrentControlSet\Services\CDPUserSvc
SYSTEM\CurrentControlSet\Services\ConsentUxUserSvc
SYSTEM\CurrentControlSet\Services\DevicePickerUserSvc
SYSTEM\CurrentControlSet\Services\DevicesFlowUserSvc
SYSTEM\CurrentControlSet\Services\PimIndexMaintenanceSvc
SYSTEM\CurrentControlSet\Services\PrintWorkflowUserSvc
SYSTEM\CurrentControlSet\Services\UnistoreSvc
SYSTEM\CurrentControlSet\Services\UserDataSvc
SYSTEM\CurrentControlSet\Services\WpnUserService
Имя параметра: UserServiceFlags
Тип параметра: REG_DWORD
Значение: 00000000
RDS_PC_DisableTaskOffload: Определенные сетевые адаптеры поддерживают обработку некоторых задач процессора. Лично я не доверяю это делать сетевому адаптеру. После выключения я как минимум заметил, что вход по RDP стал происходить быстрей. Пример отключения с помощью групповой политики:
Куст | HKEY_LOCAL_MACHINE |
Путь к разделу | SYSTEM\CurrentControlSet\Services\Tcpip\Parameters |
Имя параметра | DisableTaskOffload |
Тип параметра | REG_DWORD |
Значение | 0x1 (1) |
RDS_PC_DefaultAppAssociations: После установки набора всего нужного программного обеспечения, стоит задача, чтоб у пользователя была по умолчанию ассоциация файлов.
Что я делаю ? Захожу на терминальный сервер со всем установленным ПО, настраиваю в настройках ассоциацию и произвожу экспорт настроек: Экспорт или импорт сопоставлений приложений по умолчанию
Далее в сетевую папку кладу полученный xml файл и настраиваю групповую политику: Установка браузера по умолчанию с помощью групповой политики
Получается некий эталонный конфиг с ассоциацией по умолчанию. Его всегда можно изменять на ходу и пользователи будут обновлять ассоциацию по умолчанию.
RDS_PC_IgnoreRemoteKeyboardLayout: Бывает неприятная ситуация, что при каких-то условиях пробрасывается раскладка клавиатуры с локалки по RDP и у Вас выходит три языка, приходиться дополнительно с помощью сочетания клавиш CTRL+SHIFT и CTRL+SHIFT переключать язык, что не удобно. Ключ в реестре запрещает перенаправлять локальную раскладку по RDP.
Куст | HKEY_LOCAL_MACHINE |
Путь к разделу | SYSTEM\CurrentControlSet\Control\Keyboard Layout |
Имя параметра | IgnoreRemoteKeyboardLayout |
Тип параметра | REG_DWORD |
Значение | 0x1 (1) |
RDS_PC_ShadowFullAccess: Включаем политику, чтоб принудительно можно было управлять чужим сеансом через теневое подключение.
Конфигурация компьютера -> Политики -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Подключения -> Устанавливает правила удаленного управления для пользовательских сеансов служб удаленных рабочих столов.
RDS_PC_StartLayout: Немного украшаем макет панели задач и пуска. Пример моего макета:
Я закрепил некоторые программы на панели задач и в пуске вывел часто используемое ПО. Как это делается ?
Настройка и экспорт макета меню “Пуск” и начального экрана
По аналогии с ассоциацией файлов по умолчанию. Делаете макет, экспортируете и применяете политику: Настройка начального экрана и панели задач Windows 10 с помощью групповой политики
Но это касается только пуска. Для панели задач нужно еще дополнительно добавлять код: Настройка панели задач Windows10
Пример моего xml файла:
<LayoutOptions StartTileGroupCellWidth=”6″ />
<DefaultLayoutOverride>
<StartLayoutCollection>
<defaultlayout:StartLayout GroupCellWidth=”6″>
<start:Group Name=””>
<start:DesktopApplicationTile Size=”2×2″ Column=”0″ Row=”0″ DesktopApplicationLinkPath=”%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Outlook.lnk” />
<start:DesktopApplicationTile Size=”2×2″ Column=”2″ Row=”0″ DesktopApplicationLinkPath=”%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Excel.lnk” />
<start:DesktopApplicationTile Size=”2×2″ Column=”4″ Row=”0″ DesktopApplicationLinkPath=”%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Word.lnk” />
</start:Group>
<start:Group Name=””>
<start:DesktopApplicationTile Size=”2×2″ Column=”0″ Row=”0″ DesktopApplicationLinkPath=”%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Google Chrome.lnk” />
<start:DesktopApplicationTile Size=”2×2″ Column=”2″ Row=”0″ DesktopApplicationID=”Microsoft.InternetExplorer.Default” />
<start:DesktopApplicationTile Size=”2×2″ Column=”4″ Row=”0″ DesktopApplicationID=”1cv8″ />
</start:Group>
<start:Group Name=””>
<start:DesktopApplicationTile Size=”2×2″ Column=”0″ Row=”0″ DesktopApplicationID=”{6D809377-6AF0-444B-8957-A3773F02200E}\Notepad++\notepad++.exe” />
<start:DesktopApplicationTile Size=”2×2″ Column=”2″ Row=”0″ DesktopApplicationLinkPath=”%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Accessories\Paint.lnk” />
<start:DesktopApplicationTile Size=”2×2″ Column=”4″ Row=”0″ DesktopApplicationLinkPath=”%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Accessories\Snipping Tool.lnk” />
</start:Group>
<start:Group Name=””>
<start:DesktopApplicationTile Size=”2×2″ Column=”0″ Row=”0″ DesktopApplicationLinkPath=”%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Accessories\Calculator.lnk” />
<start:DesktopApplicationTile Size=”2×2″ Column=”2″ Row=”0″ DesktopApplicationID=”Microsoft.Windows.ControlPanel” />
<start:DesktopApplicationTile Size=”2×2″ Column=”4″ Row=”0″ DesktopApplicationID=”C:\Taxcom\Docliner\Client\Docliner.exe” />
</start:Group>
</defaultlayout:StartLayout>
</StartLayoutCollection>
</DefaultLayoutOverride>
<CustomTaskbarLayoutCollection PinListPlacement=”Replace”
xmlns:taskbar=”http://schemas.microsoft.com/Start/2014/TaskbarLayout”>
<defaultlayout:TaskbarLayout>
<taskbar:TaskbarPinList>
<taskbar:DesktopApp DesktopApplicationLinkPath=”%APPDATA%\Microsoft\Windows\Start Menu\Programs\System Tools\File Explorer.lnk” />
<taskbar:DesktopApp DesktopApplicationLinkPath=”%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Google Chrome.lnk” />
<taskbar:DesktopApp DesktopApplicationLinkPath=”%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Outlook.lnk” />
<taskbar:DesktopApp DesktopApplicationLinkPath=”%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\1C Предприятие.lnk” />
<taskbar:DesktopApp DesktopApplicationLinkPath=”%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Accessories\Calculator.lnk” />
<taskbar:DesktopApp DesktopApplicationLinkPath=”%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Accessories\Snipping Tool.lnk” />
</taskbar:TaskbarPinList>
</defaultlayout:TaskbarLayout>
</CustomTaskbarLayoutCollection>
</LayoutModificationTemplate>
RDS_User Group Policy Loopback Processing mode: Обработка циклов групповой политики
Данную политику я применяю в режиме слияния, чтоб централизованно хранить в одном OU необходимые мне политики как для пользователя, так и для компьютера, исключительно в рамках терминального сервера.
RDS_PC_1C_Settings: Куда же без нашей любимой 1С и конечно пользователям как-то надо прописывать базы. Есть почитать интернеты, есть не один способ, но я напишу самый универсальный.
Нам нужно заменить конфиг C:\Program Files\1cv8\common\1CESCmn.cfg
Действие | Заменить |
Исходные файлы | \\resoleasing.com\SYSVOL\resoleasing.com\scripts\RDS\1C\1CESCmn* |
Конечная папка | C:\Program Files\1cv8\common |
Подавлять ошибки при действиях с отдельными файлами | Отключено |
В нем указываем путь к конфигу, в котором прописываем базы:
CommonInfoBases=\resoleasing.com\SYSVOL\resoleasing.com\scripts\RDS\1C\ibases.v8i
И соответственно в сетевой папке, лежит ibases.v8i со списком баз. Таким образом мы всегда можем поддерживать актуальный список баз для всех пользователей.
RDS_User_1CClearCacheLogon: Данный скрипт я использую в logon, чтоб чистить кэш 1С. Как знаете, периодически он вызывает различные ошибки при запуске базы, да и накапливает лишний мусор.
Get-ChildItem "C:\$env:HOMEPATH\AppData\Roaming\1C\1cv8\*","C:\$env:HOMEPATH\AppData\Local\1C\1cv8\*" | Where {$_.Name -as [guid]} |Remove-Item -Force -Recurse
RDS_User_ColorProfile: Если не ошибаюсь, с Windows Server 2016 отключили стандартное приложение для просмотра фото, но как знаете, с помощью реестра оно включается. Однако периодически Вы получаете ошибку:
Программа просмотра фотографий Windows не может отобразить это изображение, поскольку на вашем компьютере может быть недостаточно памяти. Закройте некоторые программы, которые вы не используете, или освободите место на жестком диске (если оно почти заполнено), а затем повторите попытку.
Данное изменение в реестре исправляет эту проблему:
Куст | HKEY_CURRENT_USER |
Путь к разделу | Software\Microsoft\Windows NT\CurrentVersion\ICM\RegisteredProfiles |
Имя параметра | sRGB |
Тип параметра | REG_SZ |
Значение | RSWOP.icm |
RDS_User_HideLocalDrives: Я ограничиваю видимость локальных дисков. Пользователю это не зачем и не мешается в проводнике. Использование объектов групповой политики для сокрытия указанных дисков
RDS_User_SettingsOutlook: Я включаю политику:
Автоматическая настройка профиля на основе основного SMTP-адреса Active Directory |
Таким образом, при первом запуске Outlook, он конфигурируется полностью автоматически.
Использовать режим кэширования данных Exchange для новых и существующих профилей Outlook |
Режим кеширования на терминальных серверах я отключаю.
Так же, чтоб служба автообнаружения не спрашивала, доверяю ли я этому серверу, свои сервера я добавляю как доверенные:
Куст | HKEY_CURRENT_USER |
Путь к разделу | SOFTWARE\Microsoft\Office\16.0\Outlook\AutoDiscover\RedirectServers |
Имя параметра | Dattum-ex-01.resoleasing.com |
Тип параметра | REG_SZ |
Значение | 0 |
RDS_User_WindowTitleBarColor: Маленькая, но приятная мелочь. С Windows Server 2016 почему-то проводник стал сливаться с другими папками. Нет границ и когда открыто много папок, это визуально как мне кажется, не приятно. Потому я просто включаю настройку:
С помощью реестра:
Куст | HKEY_CURRENT_USER |
Путь к разделу | Software\Microsoft\Windows\DWM |
Имя параметра | ColorPrevalence |
Тип параметра | REG_DWORD |
Значение | 0x1 (1) |
На этом всё. Здесь я описал как я считаю одни из самых важных политик, которые должны применяться для терминального сервера, чтоб автоматизировать некоторые процессы и не было необходимости дополнительно настраивать что-то в каждом сеансе. Я опустил более подробное некоторых политик, так как они просты, а так же часть, которая используется конкретно под мою инфраструктуру. Интересно было бы послушать, что Вы используете на своих терминальных серверах.
Спасибо, что дочитали. С Уважением, Андрей.
Использую политику макет меню пуск и сопоставление типов файлов,ни работают ни в какую(политики не применяются gpresult /r),политики прямо в том OU где и расположены терминалы
использую для фермы win server 2019 с UPD
В какую сторону копать/cмотреть?
Здравствуйте. А политику для компьютера создаете ? У Вас в одном сайте всё ? Проблем с контроллером нет ? cmd от админа dcdiag /q
политика созданная для пк, находится в OU там где терминалы , через диагностический вывод политика не применилась
Также же политика Закрепить приложения на начальном экране при установке
не отрабатывается