Настройка сессии
Настройка общих параметров RDP сессии, таких как имя и пароль пользователя, используемые раскладки клавиатуры и автозапуск программ.
По умолчанию после подключения к терминальному серверу пользователю терминала в окне "Вход в Windows" придется указать логин, пароль и домен (если терминальный сервер входит в домен). Можно упростить жизнь пользователя, задав некоторые из этих значений в файле конфигурации. Существует два метода задания этих значений:
- Явное указание определенных значений. Те значения, которые вы не укажете, пользователю придется вводить самостоятельно. Используются параметры
user
иdomain
:user = vasyapupkin domain = MYDOMAIN
Можно указать и пароль:user = petja:password
- Есть возможность дать пользователю выбрать из меню реквизиты для входа. Реквизиты указываются любым из cледующих способов:
DOMAIN\user[display_name]:password DOMAIN\user:password user[display_name]:password user:password DOMAIN\user[display_name] DOMAIN\user user
display_name - это имя, которое будет написано на экране в меню. Если не указано, то в меню будет написано имя пользователя. Друг от друга такие блоки отделяются точкой с запятой. Например, такая строка в конфигурационном файле создаст меню из 6 пунктов (пользователи vasja и peter из домена DOMAIN2, у пользователя vasja пароль 'joke', у пользователя john пароль '1'):user = DOMAIN2\vasja[Василий Пупкин]:joke;DOMAIN2\peter;john:1;july;Guest;--new--
Ключевое слово--new--
указывает терминалу оставить поле с именем пользователя пустым. Пунктов меню может быть столько, сколько помещается на экране. Терминал будет автоматически отображать элементы в несколько колонок.
Если сервер не воспринимает пароль - зайдите в Панель управления - Администрирование - Настройка служб терминалов - RDP-Tcp - Параметры входа. Галочка "Требовать пароль только для входа" должна быть убрана.
Можно указать терминалу разрешать работать только пользователям, перечисленным в параметре user=
. Если пользователь вручную введет другой логин и правильный пароль, терминал прервёт сессию. Этот режим включается флагом --only-listed--
:
user = vasya; peter; john; --only-listed--
Можно указать домен (если терминальный сервер входит в домен). Это значение будет подставлено в окне "Вход в Windows" после подключения терминала к терминальному серверу.
domain = MYDOMAIN
Обычно терминальный сервер запускает explorer сразу после того, как пользователь входит на терминальный сервер. Таким образом пользователь получает привычный рабочий стол Windows. Если вам нужно, чтобы вместо рабочего стола запускалась какая-то одна программа, можно воспользоваться параметром shell
. Стоит отметить, что параметр shell
не запрещает излишне опытному пользователю нажать Ctrl-Shift-Esc, запустить "Диспетчер задач Windows" и из него запустить любую другую программу. Запрет на запуск ненужных приложений формируется иным способом с использованием политик Windows или стороннего программного обеспечения. Пример использования shell
, запуск консоли командной строки:
shell = c:\windows\system32\cmd.exe
Еще один пример, запуск Microsoft Word и открытие документа (в конфигурационном файле это должно быть записано одной строкой):
shell = C:\Program Files\Microsoft Office\Office10\winword.exe "c:\temp\document 1.doc"
По умолчанию на Windows Server запрещено запускать произвольные программы. Чтобы параметр shell работал, нужно внести программу в список RemoteApp Manager (remoteprograms.msc).
Другой вариант: в политиках можно разрешить запускать произвольную програму. Запустите gpedit.msc, Computer Configuration, Administrative Templates, Windows Components, Remote Desktop Services, Remote Desktop Session Host, Connections, Allow remote start of unlisted programs.
Чтобы проверить, что сервер настроен запускать нужную программу, создайте на компьютере с Windows файл test.rdp из одной строки:alternate shell:s:c:\windows\system32\calc.exe
Запустите этот файл на Windows. Запустится mstsc.exe и попытается выполнить указанную программу. Если вместо калькулятора будет ошибка, надо настраивать Windows Server как указано выше.
Чтобы запустить опубликованное приложение (RemoteApp), укажите:
shell = ||RMySuperRemoteApp
При использовании параметра shell
может понадобиться задать рабочий каталог запущенной программы. Для этого существует параметр directory
. Например, при запуске консоли с командной строкой через параметр shell
такая строка заставит вместо домашней директории пользователя открыть командную строку в директории c:\windows\temp
:
directory = c:\windows\temp
Язык клавиатуры по умолчанию в окне "Вход в Windows" и раскладку клавиатуры в RDP сессии можно задать параметром keyboard
. Этот параметр работает только внутри RDP сессии. Клавиатура для диалогов логина и пароля, которые рисует WTware, для локального Chrome, для VNC клиента настраивается параметром language
. По умолчанию устанавливается английская раскладка, кроме нее можно задать русскую:
keyboard = ru
Немецкую:
keyboard = de
Или любую другую из списка:
af
(Afrikaans), sq
(Albanian), ar
(Arabic), ar-sa
(Arabic (Saudi Arabia)), ar-iq
(Arabic (Iraq)), ar-eg
(Arabic (Egypt)), ar-ly
(Arabic (Libya)), ar-dz
(Arabic (Algeria)), ar-ma
(Arabic (Morocco)), ar-tn
(Arabic (Tunisia)), ar-om
(Arabic (Oman)), ar-ye
(Arabic (Yemen)), ar-sy
(Arabic (Syria)), ar-jo
(Arabic (Jordan)), ar-lb
(Arabic (Lebanon)), ar-kw
(Arabic (Kuwait)), ar-ae
(Arabic (U.A.E.)), ar-bh
(Arabic (Bahrain)), ar-qa
(Arabic (Qatar)), eu
(Basque), bg
(Bulgarian), be
(Belarusian), ca
(Catalan), zh
(Chinese), zh-tw
(Chinese (Taiwan)), zh-cn
(Chinese (China)), zh-hk
(Chinese (Hong Kong SAR)), zh-sg
(Chinese (Singapore)), hr
(Croatian), cs
(Czech), da
(Danish), nl
(Dutch (Netherlands)), nl-be
(Dutch (Belgium)), en
(English), en-us
(English (United States)), en-gb
(English (United Kingdom)), en-au
(English (Australia)), en-ca
(English (Canada)), en-nz
(English (New Zealand)), en-ie
(English (Ireland)), en-za
(English (South Africa)), en-jm
(English (Jamaica)), en-bz
(English (Belize)), en-tt
(English (Trinidad)), et
(Estonian), fo
(Faeroese), fa
(Farsi), fi
(Finnish), fr
(French (France)), fr-be
(French (Belgium)), fr-ca
(French (Canada)), fr-ch
(French (Switzerland)), fr-lu
(French (Luxembourg)), gd
(Gaelic), de
(German (Germany)), de-ch
(German (Switzerland)), de-at
(German (Austria)), de-lu
(German (Luxembourg)), de-li
(German (Liechtenstein)), el
(Greek), he
(Hebrew), hi
(Hindi), hu
(Hungarian), is
(Icelandic), in
(Indonesian), it Italian
((Italy)), it-ch
(Italian (Switzerland)), ja
(Japanese), ko
(Korean), lv
(Latvian), lv-qwerty
(Latvian QWERTY), lt
(Lithuanian), mk
(FYRO Macedonian), ms
(Malay (Malaysia)), mt
(Maltese), no
(Norwegian (Bokmal)), no
(Norwegian (Nynorsk)), pl
(Polish), pt-br
(Portuguese (Brazil)), pt
(Portuguese (Portugal)), rm
(Rhaeto-Romanic), ro
(Romanian), ro-mo
(Romanian (Moldova)), ru
(Russian), ru-mo
(Russian (Moldova)), sr-cyrillic
(Serbian (Cyrillic)), sr-latin
(Serbian (Latin)), sk
(Slovak), sl
(Slovenian), sb
(Sorbian), es
(Spanish (Traditional Sort)), es-mx
(Spanish (Mexico)), es
(Spanish (International Sort)), es-gt
(Spanish (Guatemala)), es-cr
(Spanish (Costa Rica)), es-pa
(Spanish (Panama)), es-do
(Spanish (Dominican Republic)), es-ve
(Spanish (Venezuela)), es-co
(Spanish (Colombia)), es-pe
(Spanish (Peru)), es-ar
(Spanish (Argentina)), es-ec
(Spanish (Ecuador)), es-cl
(Spanish (Chile)), es-uy
(Spanish (Uruguay)), es-py
(Spanish (Paraguay)), es-bo
(Spanish (Bolivia)), es-sv
(Spanish (El Salvador)), es-hn
(Spanish (Honduras)), es-ni
(Spanish (Nicaragua)), es-pr
(Spanish (Puerto Rico)), sx
(Sutu), sv
(Swedish), sv-fi
(Swedish (Finland)), th
(Thai), ts
(Tsonga), tn
(Tswana), tr
(Turkish), tr-f
(Turkish F), uk
(Ukrainian), ur
(Urdu), vi
(Vietnamese), xh
(Xhosa), ji
(Yiddish), zu
(Zulu)
Также можно установить клавиатуру US International, которая иначе обрабатывает гравис (grave):
keyboard = en-us-int
keyboard = pt-br-int
Кроме указанных в списке раскладок можно указать непосредственно код раскладки клавиатуры:
keyboard = 0xb0060409
Все коды раскладок клавиатур, установленных на сервере, перечислены в ветке реестра:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Keyboard Layouts
По умолчанию при каждом соединении с терминальным сервером индикатор режима NumLock включен. Если вы хотите его выключить, укажите в конфигурационном файле такую строку:
numlock = off
Несколько дополнительных графических возможностей терминала по умолчанию запрещены для повышения быстродействия и снижения нагрузки на сеть. Их можно разрешить, используя параметр graphic
. Значением параметра является строка из одного или нескольких символов. Допустимые символы означают: a
- Фоновый рисунок рабочего столаb
- Отображать содержимое окна при перетаскиванииc
- Визуальные эффекты при отображении меню и оконd
- Темыe
- Отображать тень курсораf
- Сглаживание шрифтовg
- Композиция рабочего стола
Нужно указать в строке символ для каждой опции, которую Вы хотите разрешить. Например, разрешить все:
graphic = abcdefg
Еще пример, разрешить только фоновый рисунок рабочего стола:
graphic = a
Для того, чтобы Windows 2003 Server согласился показывать рисунок рабочего стола, надо выполнить следующую настройку: Пуск > Выполнить > gpedit.msc > Конфигурация компьютера > Административные шаблоны > Компоненты Windows > Службы терминалов > Принудительная отмена фонового рисунка. Должно быть значение "отключен".
В Windows 2016 появились новые кодеки графики и поддержка сжатия h264. Как включить h264 на сервере. Кодеки хорошие, но сложные. Совсем отключить новую графику (и рисовать как рисовал 2012 сервер):
graphic = disable-gfx
Использовать новый кодек грaфики, но отключить h264 в полноэкранном режиме или в окне видео:
graphic = disable-h264-fullscreen graphic = disable-h264-window
Не использовать аппаратный декодер h264:
graphic = disable-h264-hardware
Разные значения указывать через запятую:
graphic = a, disable-h264-fullscreen, disable-h264-window
Можно подключиться к консоли виртуальной машины Hyper-V, RDP по VMBus. Используется порт 2179. В свойствах сервера Hyper-V должен быть разрешен Enhanced Session Mode.
VM ID виртуальной машины покажет запущенная из командной строки на сервере Hyper-V команда:
Get-VM | select Name,Id
В конфигурационный файл WTware скопировать VM ID:
vmconnect = c4355813-ac42-4f09-bb6e-eadf9c792cbe
Без домена подключение к конcоли Hyper-V не работает. Пользователь, подключающийся к консоли Hyper-V, должен входить в группу Hyper-V Administrators.
Разрешение экрана терминала должно в точности совпадать с разрешением экрана виртуальной машины. WTware без лицензии не сможет подклюиться к консоли Hyper-V из-за баннера, уменьшающего ширину экрана. Обратитесь в службу лицензирования WTware
Можно проверить подключение к консоли Hyper-V через mstsc.exe. Создайте текстовый файл из трех строк:
full address:s:192.168.1.1 pcb:s:c4355813-ac42-4f09-bb6e-eadf9c792cbe server port:i:2179
Укажите правильный IP сервера и VM ID. Сохраните с расширением .rdp и запустите. Должен запуститься mstsc.exe. Если mstsc.exe не подключается, следует правильно настроить сервер Hyper-V.
Для подключения к ферме через брокера или к пулу VDI надо использовать параметр loadbalanceinfo=
Посмотрите в .rdp файл на Windows, который используется для подключения. Там написано примерно так:
loadbalanceinfo:s:tsv://MS Terminal Services Plugin.1.NameSC
Вместо NameSC имя вашей Session Collection. В конфигурационном файле WTware надо написать:
loadbalanceinfo = tsv://MS Terminal Services Plugin.1.NameSC
Параметр rdpcompression включает сжатие RDP пакетов:
rdpcompression = on
Это имеет смысл делать только для работы по низкоскоростным линиям. При работе в локальной сети снизит производительность терминалов. По умолчанию отключено.
Масштабирование экрана в RDP сессии, в процентах. Возможные значения: 100 (по умолчанию), 125, 150.
scale_factor = 125