Настройка RDS 2012 для пользователей

Опубликовано: 25.03.2015
Автор: Виталий Бочкарев
Поддержать автора статьи по этой ссылке

Для настройки терминального сервера Windows Server 2012 перед публикацией его для приема сессий пользователей необходимо настроить рабочий стол сервера, чтобы пользователи не смогли:
- изменить конфигурацию сервера,
- запустить ненужные программы,
- загрузить сервер непрофильными задачами,
- замусорить диск сервера,
- и тому подобное.

Региональные настройки

Для начала необходимо настроить часовой пояс сервера, например установить Московский часовой пояс (UTC+3:00)

RDS 2012 End user tuning

Далее необходимо настроить языки. Обычно я выбираю русский язык как дополнительный, а английский (США) по умолчанию.

RDS 2012 End user tuning

Так же я рекомендую выставить дополнительные языковые параметры
- "разный метод ввода для каждого приложения" - то есть поставить галочку "Let me set a different input method for each app window",
- "показывать языковую панель" - то есть поставить галочку "Use the desktop language bar when it's available".

RDS 2012 End user tuning

Сочетание клавиш для переключения языка нужно выставить такое же, какое обычно установлено на пользовательских компьютерах. В моем примере это CTRL+SHIFT.

RDS 2012 End user tuning

Региональные настройки рекомендуется выставить российские.

RDS 2012 End user tuning

Расположение - Россия.

RDS 2012 End user tuning

Язык для не-юникодовых программ - Русский.

RDS 2012 End user tuning

Когда все региональные параметры установлены, а сервер перезагружен, то необходимо скопировать выставленные параметры для пользователя по умолчанию, чтобы все новые пользователи терминального сервера получали только что сконфигурированные параметры локализации.

RDS 2012 End user tuning
Групповые политики

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

Групповые политики ветки Computer configuration \ Policies \ Administrative templates накладываются на систему, то есть устанавливают настройки для всех пользователей.

RDS 2012 End user tuning
Путь Параметр Состояние Значение
Настройка учетной записи пользователей
Control Panel\User Accounts Apply the default user logon picture to all users Enabled  
Настройка применения политики к пользователям
System\Group Policy User Group Policy loopback processing mode Enabled Replace
Настройка службы удаленного рабочего стола
Windows Components\Remote Desktop Services\
Remote Desktop Session Host\
Connections
Restrict Remote Desktop Services users to a single Remote Desktop Services session Enabled  
Windows Components\Remote Desktop Services\
Remote Desktop Session Host\
Device and Resource Redirection
Allow audio and video playback redirection Disabled  
Windows Components\Remote Desktop Services\
Remote Desktop Session Host\
Device and Resource Redirection
Allow audio recording redirection Disabled  
Windows Components\Remote Desktop Services\
Remote Desktop Session Host\
Device and Resource Redirection
Do not allow clipboard redirection Disabled  
Windows Components\Remote Desktop Services\
Remote Desktop Session Host\
Device and Resource Redirection
Do not allow COM port redirection Disabled  
Windows Components\Remote Desktop Services\
Remote Desktop Session Host\
Device and Resource Redirection
Do not allow drive redirection Enabled  
Windows Components\Remote Desktop Services\
Remote Desktop Session Host\
Device and Resource Redirection
Do not allow LPT port redirection Enabled  
Windows Components\Remote Desktop Services\
Remote Desktop Session Host\
Device and Resource Redirection
Do not allow supported Plug and Play device redirection Enabled  
Windows Components\Remote Desktop Services\
Remote Desktop Session Host\
Printer Redirection
Redirect only the default client printer Enabled  
Windows Components\Remote Desktop Services\
Remote Desktop Session Host\
Temporary folders
Do not delete temp folder upon exit Disabled  
Windows Components\Remote Desktop Services\
Remote Desktop Session Host\
Temporary folders
Do not use temporary folders per session Disabled  

Групповые политики ветки User configuration \ Policies \ Administrative templates накладываются на пользователя, входящего на компьютер, на который наложена данная политика, при условии, что параметр User Group Policy loopback processing mode включен.

RDS 2012 End user tuning
Путь Параметр Состояние Значение
Настройка панели управления
Control Panel Prohibit access to the Control Panel Disabled  
Control Panel Show only specified Control Panel items Enabled Internet Options
Language
Region
Devices and Printers
Control Panel\Personalization Prevent changing desktop background Enabled  
Control Panel\Personalization Prevent changing screen saver Enabled  
Control Panel\Printers Prevent addition of printers Enabled  
Control Panel\Printers Prevent deletion of printers Enabled  
Настройка рабочего стола
Desktop Do not add shares of recently opened documents to Network Locations Enabled  
Desktop Hide Network Locations icon on desktop Enabled  
Desktop Prevent adding, dragging, dropping and closing the Taskbar's toolbars Enabled  
Desktop Prohibit adjusting desktop toolbars Enabled  
Desktop Prohibit User from manually redirecting Profile Folders Enabled  
Desktop Remove Properties from the Computer icon context menu Enabled  
Desktop Remove Recycle Bin icon from desktop Enabled  
Desktop Remove the Desktop Cleanup Wizard Enabled  
Настрока меню Пуск и Панели задач
Start Menu and Taskbar Add Logoff to the Start Menu Enabled  
Start Menu and Taskbar Prevent changes to Taskbar and Start Menu Settings Enabled  
Start Menu and Taskbar Prevent grouping of taskbar items Enabled  
Start Menu and Taskbar Remove access to the context menus for the taskbar Enabled  
Start Menu and Taskbar Remove and prevent access to the Shut Down, Restart, Sleep, and Hibernate commands Enabled  
Start Menu and Taskbar Remove Clock from the system notification area Disabled  
Start Menu and Taskbar Remove drag-and-drop and context menus on the Start Menu Enabled  
Start Menu and Taskbar Remove Favorites menu from Start Menu Enabled  
Start Menu and Taskbar Remove Games link from Start Menu Enabled  
Start Menu and Taskbar Remove Help menu from Start Menu Enabled  
Start Menu and Taskbar Remove links and access to Windows Update Enabled  
Start Menu and Taskbar Remove Network Connections from Start Menu Enabled  
Start Menu and Taskbar Remove Recent Items menu from Start Menu Enabled  
Start Menu and Taskbar Remove Run menu from Start Menu Enabled  
Start Menu and Taskbar Remove Search link from Start Menu Enabled  
Start Menu and Taskbar Turn off personalized menus Enabled  
Настройка Диспетчера задач
System\Ctrl+Alt+Del Options Remove Task Manager Enabled  
Настройка браузера Internet Explorer
Windows Components\Internet Explorer\
Internet Control Panel
Disable the Advanced page Enabled  
Windows Components\Internet Explorer\
Internet Control Panel
Disable the Content page Enabled  
Windows Components\Internet Explorer\
Internet Control Panel
Disable the Privacy page Enabled  
Windows Components\Internet Explorer\
Internet Control Panel
Disable the Programs page Enabled  
Настройка использования остасток
Windows Components\
Microsoft Management Console\
Restricted/Permitted snap-ins
Computer Management Enabled  
Настройка создания сетевых папок
Windows Components\Network Sharing Prevent users from sharing files within their profile. Enabled  
Настройка службы удаленного рабочего стола
Windows Components\Remote Desktop Services\
Remote Desktop Session Host\Session Time Limits
Set time limit for active but idle Remote Desktop Services sessions Enabled 2 hours
Windows Components\Remote Desktop Services\
Remote Desktop Session Host\Session Time Limits
Set time limit for active Remote Desktop Services sessions Enabled Never
Windows Components\Remote Desktop Services\
Remote Desktop Session Host\Session Time Limits
Set time limit for disconnected sessions Enabled 15 minutes
Windows Components\Remote Desktop Services\
Remote Desktop Session Host\Session Time Limits
Set time limit for logoff of RemoteApp sessions Enabled 5 munutes
Windows Components\Remote Desktop Services\
Remote Desktop Session Host\Session Time Limits
Terminate session when time limits are reached Enabled  
Настройка Проводника Windows
Windows Components\Windows Explorer Do not move deleted files to the Recycle Bin Enabled  
Windows Components\Windows Explorer Hide these specified drives in My Computer Enabled Restrict all except G, H, I, J, K
Windows Components\Windows Explorer Hides the Manage item on the Windows Explorer context menu Enabled  
Windows Components\Windows Explorer No Computers Near Me in Network Locations Enabled  
Windows Components\Windows Explorer No Entire Network in Network Locations Enabled  
Windows Components\Windows Explorer Remove "Map Network Drive" and "Disconnect Network Drive" Enabled  
Windows Components\Windows Explorer Remove Shared Documents from My Computer Enabled  
Windows Components\Windows Explorer Remove Windows Explorer's default context menu Enabled  
Windows Components\Windows Explorer Turn off Windows+X hotkeys Enabled  
Примечание. Для скрытия определенных дисков в параметре Windows Components\Windows Explorer\Hide these specified drives in My Computer используется шаблон, описанный в заметке Скрытие дисков в Windows Explorer через GPO. Параметр Start Menu and Taskbar\Remove Run menu from Start Menu запрещает пользователю набирать путь к сетевому ресурсу в адресной строке проводника.

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

RDS 2012 End user tuning
Скрипты

Следующим пунктом настройки терминального сервера является создание логон-скриптов для пользователей.

RDS 2012 End user tuning

Эти скрипты будут настраивать меню Пуск, Панель задач и вид папок Проводника.

RDS 2012 End user tuning

По умолчанию профиль пользователя содержит набор папок Контакты, Загрузки, Видео и т.п. Так как на сервере пользователь не должен пользоваться этими папками, то предлагается скрыть их, установив на них атрибуты "скрытый" и "системный". Для того, чтобы скрыть папки я использую следующий скрипт, который помещен в групповую политику в раздел User configuration \ Policies \ Windows Settings \ Scripts.

Set oShell = CreateObject("WScript.Shell")
Set oFSO = CreateObject("Scripting.FileSystemObject")
vRootFolder =  "C:\Users"
vUserName =  oShell.ExpandEnvironmentStrings("%USERNAME%")
arrSubFolders = Array("AppData", "Contacts", "Downloads", "Favorites", "Links","Music", "Pictures", _
 "Saved Games", "Searches", "Videos" )
For i = LBound(arrSubFolders) to UBound(arrSubFolders)
 vPath = vRootFolder + "\" +  vUserName + "\" +  arrSubFolders(i)
 If oFSO.FolderExists(vPath) Then
   Set objFolder = oFSO.GetFolder(vPath)
   If ((objFolder.Attributes AND 2) = 0) Then
     ' Folder is Not Hidden now
     objFolder.Attributes = objFolder.Attributes + 2
   End If
   If ((objFolder.Attributes AND 4) = 0) Then
     ' Folder is Not System now
     objFolder.Attributes = objFolder.Attributes + 4
   End If
 End If
Next

В этом скрипте в параметре arrSubFolders нужно указать имена папок, которые нужно скрыть. Так как выставляются сразу 2 параметра: "скрытый" и "системный", то проводник не будет показывать папки, так как по умолчанию в настройках проводника установлен параметр "Скрывать защищенные системные файлы".

В моем примере для пользователя остаются доступными только Рабочий стол и Мои Документы, а остальные папки скрыты от использования, но доступ к ним можно получить, написав полный путь к нужной папке.

RDS 2012 End user tuning

Для того, чтобы настроить Панель задач для всех пользователей, нужно сделать шаблонную настройку Панели задач на одном пользователе и скопировать ее остальным. То есть конфигурация Панели задач проводится в несколько этапов:
1. У текущего пользователя создается шаблонная Панель задач, на которой создаются и закрепляются необходимые ярлыки.
2. Экспортируется содержание папки %APPDATA%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar текущего пользователя.
3. Экспортируется ветка реестра HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband текущего пользователя.
4. Логон-скриптом в профиль пользователя копируются ярлыки Панели задач, экспортированные ранее.
5. В групповую политику добавляется экспортированные ранее ключи реестра.

Этот скрипт удаляет ярлыки Панели задач из профиля пользователя и копирует в него шаблонные ярлыки, которые сохранены в подпапке Taskband из папки скрипта.

On error resume next

Set oShell = CreateObject("WScript.Shell")
' Source folder
mWorkDir = Left(WScript.ScriptFullName,Len(WScript.ScriptFullName)-Len(WScript.ScriptName))
mTaskbandSource = mWorkDir & "Taskband"
' Destination folder
mUsersFolder =  "C:\Users"
mUserName =  oShell.ExpandEnvironmentStrings("%USERNAME%")
mTaskbarDestination = mUsersFolder & "\" & mUserName & _
  "\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar"
' Deleting old files
oShell.Run "cmd.exe /C del /S /F /Q """ & mTaskbarDestination & "\*""", 0, True
' Copying new files
oShell.Run "cmd.exe /C xcopy.exe """ & mTaskbandSource & """ """ _
 & mTaskbarDestination & """ /R /Y /I", 0, True

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

RDS 2012 End user tuning

Для того, чтобы настроить меню Пуск для всех пользователей, нужно сделать шаблонную настройку меню Пуск у одного пользователя и скопировать ее остальным. То есть конфигурация меню Пуск проводится в несколько этапов:
1. У текущего пользователя создается шаблонное меню Пуск.
2. Экспортируется файл appsFolder.itemdata-ms из папки %USERPROFILE%\AppData\Local\Microsoft\Windows текущего пользователя.
3. Логон-скриптом в профиль пользователя копируются файл appsFolder.itemdata-ms, экспортированный ранее.

Примечание. Если у шаблонного файла appsFolder.itemdata-ms выставить атрибут "только чтение", то пользователь не сможет изменить меню Пуск. Хотя эта функция неактульна ввиду того, что при каждом входе в систему файл appsFolder.itemdata-ms в профиле пользователя перезаписывается шаблонным, и меню Пуск опять становится стандартным.

Этот скрипт перезаписывает файл appsFolder.itemdata-ms в профиле пользователя, используя шаблонный файл, который сохранен в подпапке StartScreen из папки скрипта. В этом скрипте используется утилита xcopy.exe, чтобы форсировать перезапись системных файлов и файлов только для чтения.

On error resume next

Set oShell = CreateObject("WScript.Shell")
' Source folder
mWorkDir = Left(WScript.ScriptFullName,Len(WScript.ScriptFullName)-Len(WScript.ScriptName))
mStartScreenSource = mWorkDir & "StartScreen"
' Destination folder
mUsersFolder =  "C:\Users"
mUserName =  oShell.ExpandEnvironmentStrings("%USERNAME%")
mStartScreenDestination = mUsersFolder & "\" & mUserName & _
  "\AppData\Local\Microsoft\Windows"
' Copying new files
oShell.Run "cmd.exe /C xcopy.exe """ & mStartScreenSource & """ """ _
 & mStartScreenDestination & """ /R /Y /I", 0, True
Ключи реестра

Для того, чтобы убрать из проводника ненужные секции Избранное, Библиотеки, Сеть, нужно внести следующие изменения в реестр сервера (для того, чтобы изменить нижеприведенные ключи реестра, нужно дать администратору права на изменение реестра).

Избранное:

[HKEY_CLASSES_ROOT\CLSID\{323CA680-C24D-4099-B94D-446DD2D7249E}\ShellFolder]
"Attributes"=DWORD:A9400100

Библиотеки:

[HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\ShellFolder]
"Attributes"=DWORD:B090010D

Сеть:

[HKEY_CLASSES_ROOT\CLSID\{F02C1A0D-BE21-4350-88B0-7367FC96EF3C}\ShellFolder]
"Attributes"=DWORD:B0940064

Другой вариант скрытия ненужных секций проводника - это груповые политики для пользователя (для этих ключей не нужно изменять права доступа к секциям реестра):

Сеть:

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\NonEnum]
"{F02C1A0D-BE21-4350-88B0-7367FC96EF3C}"=DWORD:00000001

Библиотеки:

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\NonEnum]
"{031E4825-7B94-4dc3-B131-E946B44C8DD5}"=DWORD:00000001

Избранное:

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\NonEnum]
"{D34A6CA6-62C2-4C34-8A7C-14709C1AD938}"=DWORD:00000001

Помимо ненужных секций Проводника, рекомендуется так же внести изменения в следующие параметры:

Отключить визуальные эффекты для улучшения быстродействия сервера и быстрой передачи упрощенной графики по сети:

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects]
"VisualFXSetting"=DWORD:00000002

Показывать расширения файлов:

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"HideFileExt"=DWORD:00000000

Отображать элементы Панели управления в виде маленьких значков, а не группами:

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel]
"AllItemsIconView"=DWORD:00000001

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel]
"StartupPage"=DWORD:00000001

Отключить группировку программ на Панели задач:

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"TaskbarGlomLevel"=DWORD:00000001
RDS 2012 End user tuning
RDS 2012 End user tuning
Сетевые диски

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

RDS 2012 End user tuning
RDS 2012 End user tuning
Примечание. При подключении сетевых дисков через групповую политику нужно учесть ньюанс, что диск надо подключать с правами пользователя, то есть на вкладке свойств сетевого диска нужно установить параметр "Run in logged-on use's security contex"
Логотип компании

Последней настрокой рабочего пространства терминального сервера будет установка логотипа компании в качестве значка пользователя.

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

Имя файла Размер файла
user.bmp 448 x 448
user.png 448 x 448
user-200.png 200 x 200
user-40.png 40 x 40

Готовые файлы логотипов нужно скопировать на терминальный сервер в папку %ProgramData%\Microsoft\User Account Pictures.

Чтобы установленные картинки применились для учетных записей пользователей, нужно в групповой политике компьютера задать следующий параметр Control Panel\User Accounts\Apply the default user logon picture to all users (этот параметр был сконфигурирован выше по тексту в таблице настроек политик компьютера).

Тест

После того, как
- групповая политика создана,
- в ней применены все вышеописанные настройки,
- эта политика наложена на контейнер, где расположен терминальный сервер,
- сервер получил групповую политику и был перезагружен,
можно считать, что задача по настройке рабочего стола сервера Windows Server 2012 для конечных пользователей завершена.

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

RDS 2012 End user tuning

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

RDS 2012 End user tuning

Панель задач и Проводник так же будут выглядеть одинаково для всех пользователей. А вот Рабочий стол будет индивидуальным для каждого пользователя за исключением файлов, которые расположены в папке %PUBLIC%\Desktop. Файлы и ярлыки из этой папки будут опубликованы для всех пользователей без возможности изменения.

RDS 2012 End user tuning

Настройка и тест сервера закончены.

Все заметки о службе терминалов в моем блоге можно найти по тегу RDS.