MSTSC – клиент служб терминалов Windows.
Утилита mstsc.exe является стандартным программным обеспечением (ПО) современных ОС семейства Windows и предназначена для подключения к удаленным рабочим столам с использованием протокола RDP ( R emote D esktop P rotocol). Кроме выполнения самого подключения, позволяет выполнять изменение, миграцию и сохранение его настроек в файлах конфигурации с расширением .rdp .
Для получения справки по использованию MSTSC выполните команду:
mstsc /help или mstsc /?
Возможности утилиты, ее параметры командной строки, а соответственно, и содержимое справки, зависит от версии Windows (версии RDP) .
Формат командной строки:
mstsc.exe <файл_подключения|/v:сервер[:порт]>[/admin] [/f] [/w:ширина /h:высота] /public /span /multimon /edit файл_подключения /migrate
Параметры командной строки:
файл_подключения — Задает имя файла с расширением .rdp , в котором хранятся параметры подключения к удаленному рабочему столу (терминальному серверу ).
. /v:сервер[:порт] — Задает имя или IP-адрес удаленного компьютера, к которому выполняется подключение. По умолчанию используется TCP порт 3389, но при необходимости, можно указать другой.
/admin — Подключение к удаленному компьютеру в режиме администрирования.
/f — Подключение к удаленному компьютеру в полноэкранном режиме
/w:ширина /h:высота — Указывает размеры экрана удаленного рабочего стола.
/public — запуск сеанса удаленного рабочего стола в общем режиме.
/edit — Открывает указанный файл .rdp для редактирования.
/migrate — Переносит устаревшие файлы подключений, созданные диспетчером клиентских подключений, в новые файлы .rdp.
Примеры использования MSTSC:
mstsc — при запуске без параметров, выполняется подключение к удаленному рабочему столу с использованием содержимого файла Default.rdp из папки ”Мои Документы” профиля пользователя. Обычно, данный файл имеет атрибут ”Скрытый”. Если файл отсутствует, он создается с параметрами, задаваемыми при первом подключении с использованием приложения ”Подключение к удаленному рабочему столу”:
mstsc /v:SERVER — подключение к удаленному рабочему столу компьютера SERVER
mstsc /v:192.168.1.1 — подключение к удаленному рабочему столу компьютера с IP-адресом 192.168.1.1
mstsc /v:SERVER:4389 — подключение к удаленному рабочему столу компьютера SERVER с использованием нестандартного номера порта.
mstsc /v:server /f — подключение к удаленному рабочему столу компьютера server в полноэкранном режиме.
mstsc /w:640 /h:480 — подключение к удаленному рабочему столу с разрешением экрана 640×480
mstsc /edit %USERPROFILE%\Documents\Default.rdp — редактировать настройки файла Default.rdp текущего пользователя.
mstsc /edit D:\RDPFiles\user1.rdp — редактировать параметры удаленного подключения в файле D:\RDPFiles\user1.rdp
В зависимости от версии Windows и версии RDP, возможно использование и других параметров, подсказку по которым можно получить по команде mstsc /?
Основные параметры файлов RDP
Параметры командной строки утилиты mstsc.exe не позволяют в полной мере выполнить тонкие настройки удаленного подключения, необходимость в которых может возникнуть при использовании разных профилей подключения к разным терминальным серверам. Для этой цели используются файлы .rdp , содержимое которых можно редактировать командой mstsc /edit или вручную, с помощью текстового редактора. Пример содержимого RDP-файла:
screen mode id:i:2
use multimon:i:0
desktopwidth:i:1920
desktopheight:i:1080
session bpp:i:16
winposstr:s:0,1,796,77,1782,765
compression:i:1
keyboardhook:i:2
audiocapturemode:i:0
videoplaybackmode:i:1
connection type:i:2
displayconnectionbar:i:1
disable wallpaper:i:1
allow font smoothing:i:0
allow desktop composition:i:0
disable full window drag:i:1
disable menu anims:i:1
disable themes:i:0
disable cursor setting:i:0
bitmapcachepersistenable:i:1
full address:s:Server01.ru
audiomode:i:0
redirectprinters:i:1
redirectcomports:i:0
redirectsmartcards:i:1
redirectclipboard:i:1
redirectposdevices:i:0
redirectdirectx:i:1
autoreconnection enabled:i:1
authentication level:i:2
prompt for credentials:i:0
negotiate security layer:i:1
remoteapplicationmode:i:0
alternate shell:s:
shell working directory:s:
gatewayhostname:s:
gatewayusagemethod:i:4
gatewaycredentialssource:i:4
gatewayprofileusagemethod:i:0
promptcredentialonce:i:1
use redirection server name:i:0
drivestoredirect:s:
screen mode id:i: — 1 — удаленный сеанс выполняется в оконном режиме, 2 — в полноэкранном. Редактируется на вкладке ”Экран” окна ”Параметры” средства ”Подключение к удаленному рабочему столу”.
use multimon:i: — 0 — запрет поддержки нескольких мониторов, 1 — разрешение поддержки нескольких мониторов. Может использоваться в Windows 7 /Windows Server 2008 и более поздних версиях.
desktopwidth:i: — ширина рабочего стола. Выбирается на вкладке ”Экран” окна ”Параметры” средства ”Подключение к удаленному рабочему столу”.
desktopheight:i: — высота рабочего стола. Выбирается на вкладке ”Экран” окна ”Параметры” средства ”Подключение к удаленному рабочему столу”.
session bpp:i: — глубина цвета. Выбирается в группе ”Цвета” на вкладке ”Экран” окна ”Параметры” средства ”Подключение к удаленному рабочему столу”.
winposstr:s: — позиция и размеры окна в формате WINDOWPOS
compression:i: — 0 — не использовать сжатие данных, 1 — использовать.
keyboardhook:i: — Определяет, как интерпретируются сочетания клавиш Windows. Значение этого параметра соответствует настройке в поле ”Клавиатура” на вкладке ”Локальные ресурсы” окна ”Параметры средства ”Подключение к удаленному рабочему столу”. 0 — на локальном компьютере. 1 — на удаленном компьютере. 2 — только в полноэкранном режиме.
audiocapturemode:i: — Определяет, где воспроизводится звук. Значение этого параметра соответствует настройкам ”Удаленный звук” на вкладке ”Локальные ресурсы” окна ”Параметры” средства ”Подключение к удаленному рабочему столу”. 0 — на клиентском компьютере. 1 — на удаленном компьютере. 2 — звук не воспроизводится.
videoplaybackmode:i: — 0 — не использовать RDP efficient multimedia streaming при воспроизведении видео. 1 — использовать.
connection type:i:2 — тип соединения для достижения максимального быстродействия. Соответствует настройкам ”Быстродействие” на вкладке ”Дополнительно” окна ”Параметры” средства ”Подключение к удаленному рабочему столу” Определяется типом выбранной скорости соединения.
Для утилиты mstsc.exe Windows 10 вкладке ”Дополнительно” соответствует вкладка ”Взаимодействие”
displayconnectionbar:i: — Отображение панели подключений при входе в систему удаленного компьютера в полноэкранном режиме. Значение этого параметра соответствует состоянию флажка ”Отображать панель подключений при работе на полном экране” на вкладке ”Экран” окна ”Параметры” средства ”Подключение к удаленному рабочему столу”. 0 — не отображать панель подключений. 1 — отображать панель подключений.
disable wallpaper:i: — запрет отображения фонового рисунка удаленного рабочего стола. Соответствует настройкам в группе ”Быстродействие”- флажок ”Фоновый рисунок рабочего стола” на вкладке ”Дополнительно” окна ”Параметры” средства ”Подключение к удаленному рабочему столу”. 0 — отображать фоновый рисунок. 1 — не отображать фоновый рисунок.
allow font smoothing:i:- разрешение сглаживания шрифтов. Соответствует настройкам в группе ”Быстродействие”- флажок ”Сглаживание шрифтов” на вкладке ”Дополнительно” окна ”Параметры” средства ”Подключение к удаленному рабочему столу”. 0 — не использовать сглаживание. 1 — использовать.
allow desktop composition:i:0 — Соответствует настройкам в группе ”Быстродействие”- флажок ”Сглаживание шрифтов” на вкладке ”Дополнительно” окна ”Параметры” средства ”Подключение к удаленному рабочему столу”. 0 — не использовать сглаживание. 1 — использовать.
disable full window drag:i: — Отображение содержимого папки при перетаскивании. Значение этого параметра соответствует состоянию флажка ”Отображать содержимое окна при перетаскивании” на вкладке ”Дополнительно” окна ”Параметры” средства ”Подключение к удаленному рабочему столу”. 0 — отображать содержимое при перетаскивании. 1 — не отображать.
disable menu anims:i: — запрет визуальных эффектов. Значение этого параметра соответствует состоянию флажка ”Визуальные эффекты при отображении меню и окон” на вкладке ”Дополнительно” окна ”Параметры”. 0 — использовать визуальные эффекты, 1 — не использовать.
disable themes:i: — запрет использования тем. 0 — использовать темы. 1 — не использовать темы.
disable cursor setting:i:0 — запрет настроек курсора. 0 — настройка курсора разрешена. 1 — запрещена.
bitmapcachepersistenable:i:1 — Кэширование точечных рисунков на локальном компьютере. Значение этого параметра соответствует состоянию флажка ”Постоянное кэширование точечных рисунков” на вкладке ”Дополнительно” окна ”Параметры”. 0 — не использовать кэширование. 1 — использовать кэширование.
full address:s: — имя или IP-адрес удаленного компьютера, к которому выполняется подключение по RDP. При необходимости, можно указать номер используемого TCP порта.
audiomode:i: — определяет, где воспроизводится звук. Значение этого параметра соответствует записи в поле ”Удаленный звук” на вкладке ”Локальные ресурсы” окна ”Параметры”. 0 — на клиентском компьютере. 1 На удаленном компьютере. 2 — звук отключен.
redirectprinters:i: — использование принтеров во время удаленного сеанса. Значение этого параметра соответствует состоянию флажка ”Принтеры” на вкладке ”Локальные ресурсы” окна ”Параметры”. 0 — не использовать локальные принтеры во время удаленного сеанса. 1 — использовать автоматическое подключение принтеров.
redirectcomports:i: — использование последовательных портов локального компьютера при подключении к удаленному рабочему столу. 0 — не использовать. 1 — использовать.
redirectsmartcards:i: — использование смарт-карт локального компьютера при подключении к удаленному рабочему столу. 0 — не использовать. 1 — использовать.
redirectclipboard:i: — использовать общий буфер обмена для локального и удаленного компьютера. Значение этого параметра соответствует состоянию флажка ”Буфер обмена” на вкладке ”Локальные ресурсы” окна ”Параметры”. 0 — не использовать общий буфер обмена. 1 — использовать.
redirectposdevices:i: — перенаправления устройств, которые используют Microsoft Point of Service (POS). 0 — не использовать перенаправление. 1 — использовать.
redirectdirectx:i: — перенаправление DirectX. 0 — не использовать перенаправление DirectX. 1 — использовать.
autoreconnection enabled:i:1 — автоматическое подключение при разрыве соединения с удаленным компьютером. Значение этого параметра соответствует состоянию флажка ”Восстановить соединение при разрыве” на вкладке ”Дополнительно” окна ”Параметры”. 0 — не использовать автоматическое восстановление соединения. 1 — использовать.
authentication level:i: — уровень проверки подлинности для удаленного подключения. Определяет действия в случае, когда не удается подтвердить подлинность удаленного компьютера. Определяется настройкой группы ”Проверка подлинности сервера” на вкладке ”Подключение”. В Windows 10 – вкладке ”Подключение” соответствует вкладка ”Взаимодействие”. 0 — если не удалось подтвердить подлинность терминального сервера, то подключаться без предупреждения. 1 — не подключаться. 2 — подключаться с предупреждением.
prompt for credentials:i: — запрос пользователю на подтверждение учетных данных в случае, если они были сохранены ранее. 0 — не запрашивать учетные данные, если они были предварительно сохранены. 1 — всегда запрашивать учетные данные.
negotiate security layer:i: — уровень шифрования сессии RDP. 0 — сессия с шифрованием TLS 1.0 (SSL) будет использоваться в случае поддержки клиентом. Если клиент его не поддерживает, будет использоваться стандартное встроенное шифрование RDP. 1 — удаленная сессия будет использовать шифрование x.224
remoteapplicationmode:i: — режим работы с удаленным приложением. 0 — режим работы с удаленным рабочим столом. 1 — режим работы с удаленным приложением.
alternate shell:s: — имя альтернативной оболочки пользователя.
shell working directory:s: — рабочий каталог оболочки пользователя.
gatewayhostname:s: — имя сервера шлюза удаленных рабочих столов. Значения параметров сервера шлюза определяется группой ”Подключение из любого места” на вкладке ”Подключение” (для Windows 10 – на вкладке ”Дополнительно”).
gatewayusagemethod:i:4 — метод использования сервера шлюза удаленных рабочих столов. 0 — никогда не использовать сервер шлюза удаленных рабочих столов. 1 — всегда использовать сервер шлюза удаленных рабочих столов. 2 — не использовать сервер шлюза удаленных рабочих столов для локальных клиентов. 3 — использовать настройки по умолчанию сервера шлюза удаленных рабочих столов. 4 — не использовать сервер шлюза удаленных рабочих столов, но в настройке ”Подключение из любого места” – ”Параметры” включен флажок ”Не использовать сервер шлюза удаленных рабочих столов для локальных адресов”
gatewaycredentialssource:i:4 — используемый метод авторизации пользователя. 0 — использовать NTLM (запрос пароля) . Соответствует выбору параметра ”Метод входа” – ”Запрашивать пароль (NTLM)” в настройках ”Подключение из любого места” – ”Параметры”. 1 — использовать смарт-карты. Параметры, определяющие использование сервера шлюза удаленных рабочих столов и параметры входа и параметры подключения взаимосвязаны, и изменение одного из них, может вызвать изменение другого.
drivestoredirect:s: — перенаправление дисковых устройств локального компьютера. Значение определяется настройками на вкладке ”Локальные ресурсы” – ”Подробнее”
В данном случае, к удаленному сеансу будут подключены локальные диски C: и D: , что будет соответствовать значению:
Если включить флажок ”Дисководы, которые будут подключены позже”, значение параметра будет следующим:
Поддерживаемые перенаправления периферийных устройств локального компьютера и синтаксис содержимого RDP-файла зависят от версии RDP и могут отличаться в незначительной степени.
Источник
Как сделать работу с Microsoft Remote Desktop лучше
Хочу поделиться несколькими советами по настройке удаленного подключения к рабочим местам по RDP. Расскажу как проапгрейдить древний RPC-HTTP до UDP, похвалю и поругаю Windows 10 и AVC, разберу решение нескольких типичных проблем.
Считаем, что для подключения используется Remote Desktop Gateway (RDGW), а в качестве серверов выступают рабочие станции. Использовать RDGW очень удобно, потому что шлюз становится общей точкой входа для всех клиентов. Это дает возможность лучше контролировать доступ, вести учет подключений и их продолжительность. Даже если VPN позволяет подключиться к рабочим машинам напрямую — это не лучший вариант.
RDGW настраивается быстро, просто, а Let’s Encrypt и win-acme легко решают проблему с доверенным сертификатом.
Есть три транспортных протокола по которым клиент может подключиться с серверу:
RPC-HTTP ( плохо )
HTTP ( лучше )
HTTP+UDP ( отлично )
Под сервером будем понимать рабочую машину, под клиентом — домашнюю.
Первое, с чего стоит начать, это «плохо» превратить в «отлично».
Апгрейд RPC-HTTP до HTTP
Подключение в сессию с использованием RPC-HTTP легко определить по внешнему виду полоски подключения.
Здесь нет значка качества подключения (о нем ниже), а значит мы используем старый RPC, обернутый в TLS — это очень медленно. Дело, конечно, не только в обертке — сам протокол меняется с каждым релизом ОС, меняются кодеки, алгоритмы упаковки изображения. Чем свежее протокол, тем лучше.
Windows XP или Vista
В XP можно поднять протокол с 5.1 до 7. Хотфикс windowsxp-kb969084-x86.exe
Но RDP 7 не работает по HTTP и UDP. Поможет только апгрейд клиента и сервера до Windows 7 и новее.
Сначала надо обновить протокол до RDP 8.1, а затем включить его. Поддержка добавляется обновлениями, которые сгруппированы в один загрузочный пакет:
www.microsoft.com/en-US/download/details.aspx?id=40986
Windows6.1-KB2574819-v2-x64.msu
windows6.1-kb2592687-x64.msu
Windows6.1-KB2830477-x64.msu
Windows6.1-KB2857650-x64.msu Windows6.1-KB2913751-x64.msu (заменен kb2923545)
Так вы получите и свежий клиент mstsc.exe, и поддержку RDP 8.1 серверной части ОС.
Было:
После этого протокол надо включить ключом реестра (для этого можно использовать adm шаблон в комплекте с Windows 7).
Включите поддержку транспорта UDP в групповой политике.
Перезагружаем сервер с Windows 7. Тот самый случай, когда может потребоваться перезагрузиться дважды — значение в реестре должно быть установлено до того, как включился RDP, а групповая политика применяется позже.
Если все получилось, то при подключении к серверу в полоске сессии появится иконка качества подключения (как в телефоне для мобильной сети):
Windows 8 и новее
Протокол работает «из коробки».
Апгрейд HTTP до HTTP+UDP
Если ваша сеть не склонна к потере пакетов, UDP существенно (для CAD — радикально) повышает отзывчивость сервера за счет использования FEC для сокращения ретрансмиссии, а также перехода подтверждения доставки пакетов с уровня системного стека TCP/IP на уровень протокола RDP-UDP.
От каждого клиента подключается одна основная управляющая сессия по HTTP (в этом канале также передается клавиатура/мышь), плюс одна или несколько сессий UDP для передачи картинки или других виртуальных каналов.
Мы коснемся только верхушки айсберга. Есть 3 различных версии протокола RDP-UDP. Кроме того, сам UDP может работать в двух режимах UDP-R (reliable) и UDP-L (lossy). С Microsoft ничего просто не бывает. Но поскольку от нас здесь ничего не зависит, просто имейте в виду — чем новее операционная система, теме более современный протокол используется.
Снаружи RDP-UDP оборачивается в Datagram Transport Layer Security (DTLS) RFC4347, в чем вы можете убедиться открыв Wireshark.
Что же нужно для включения UDP?
RDP-UDP поддерживается начиная с RDP 8.
На клиенте должен быть открыт порт udp/3389. Если вы его закрыли локальным firewall, ACL на свитче или внешнем файрволле — порт надо открыть.
Для сервера Remote Desktop Gateway к порту tcp/443 надо открыть udp/3391.
Порт можно поменять, вот как он настраивается:
Для Windows 7 обязательно должен быть включен NLA (Network Level Authentication).
Можно включить в групповой политике
или через реестр
В чем связь непонятно. Но без NLA на 7-ке не работает, на более свежих релизах NLA для работы UDP не обязателен.
После установления сессии по HTTP, клиент и сервер пробуют согласовать подключение по UDP. Если есть выпадение пакетов или задержки, то сессия UDP не запустится. Точный алгоритм отказа согласования UDP до конца не понятен.
Если все настроено, то после подключения нажмите на кнопку качества связи. В окошке будет указано, что согласован UDP.
На шлюзе это выглядит так:
Если у вас Windows 10 и на сервере, и на клиенте, то это самый быстрый и беспроблемный вариант. В Microsoft активно дорабатывают RDP, и в свежих релизах 10 вы можете рассчитывать на неплохую скорость работы. Коллеги не смогли обнаружить разницу между Citrix и Windows 10 RDP по скорости работы в AutoCAD.
Согласование AVC с аппаратным кодированием можно увидеть в журнале событий (подробнее в статье выше):
Замечу только, что проблема искажений все же есть даже с h.264 4:4:4. Она сразу бросается в глаза если работать в PowerShell ISE — текст ошибок выводится с неприятным искажением. Причем на скриншоте и на фотографии все отлично. Волшебство.
Также косвенным признаком работы AVC являются время от времени появляющиеся зеленые квадраты по углам.
AVC и аппаратное кодирование в свежих билдах должно работать из коробки, но групповая политика никогда не бывает лишней:
С учетом того, что AVC кодируется аппаратно видеокартой, то обновить драйверы видео — хорошая идея.
О проблемах
Если проблема возникает на Windows XP или Vista, попробуйте сначала обновить протокол до 7 версии (писал в начале статьи). Обязательно включите поддержку CredSSP. На сайте Microsoft статьи уже удалены, но Интернет помнит.
Если не помогло — «доктор говорит в морг, значит в морг». Что испытала на себе операционная система за последние 15 лет — лучше об этом даже и не думать.
Иногда помогает отключение NLA на сервере. Выяснить причину не получилось, домашние машины все разные.
Некоторые клиенты пытаются авторизоваться с использованием NTLMv1. Причины разные, но исправить на клиенте можно так:
Если вы молоды и дерзки ничего не боитесь, то есть более радикальное решение — отключение Channel Binding на Remote Desktop Gateway
Делать так не надо. Но мы делали. 🙂 Для клиента, который настаивал (нет не так, НАСТАИВАЛ) что NTLMv1 на рабочих станциях ему необходим. Не знаю, может там серверы на NT4 без SP еще в работе.
Отключение RDP 8+ в Windows 10
Если ничего не помогает, а идеи кончились, можно воспользоваться недокументированным ключом для даунгрейда протокола RDP до 7 версии.
Сам не делал, и вам не советую. Но кому-то, пишут, что помогает.
Компонент Dr.Web SpIDerGate может запретить подключение. В этом случае возвращается ошибка:
В статистике Dr.Web будет запись:
В комментариях к этой статье со мной связался сотрудник Dr.Web и наша проблема решилась в ближайшем обновлении антивирусных баз.
Если у вас такая же ошибка, лучше обратиться в поддержку.
Как временное решение, можно внести URL вашего RDGW в исключения:
И только если не помогло отключить компонент SpIDer Gate полностью.
Встретился списанный компьютер из какой-то компании, где в качестве системного прокси был прописан местный TMG, и подключение к RDGW не работало. Это можно исправить так:
Переключение раскладок клавиатуры
Иногда приезжают лишние раскладки. Можно отключить проброс раскладки с клиента
Масштабирование приходит с клиентской машины, и если на домашнем ноутбуке стоит 125%, то и на рабочей машине будет так же. На серверах это можно отключить, а на рабочих станциях не нашел как. Но в магазине приложений Windows 10 есть «современный» клиент.
В нем можно настроить DPI:
Как мониторить шлюз с RDGW
Есть счетчик производительности «Шлюз служб терминалов\Текущие подключения», который немного глючит, если нет подключений или сервер долго не перезагружался. Он показывает именно число подключений, но как мы помним, для HTTP+UDP их как минимум два, а может быть и больше. Поэтому это не совсем объективный показатель числа подключений сотрудников.
Есть класс WMI Win32_TSGatewayConnection. Его содержимое соответствует тому, что вы видите в разделе «Наблюдение» шлюза удаленных рабочих столов.
С ним число подключений можно посчитать поточнее:
Just for fun есть утилита Remote Display Analyzer. Бесплатная версия мне ничего полезного не показала, но вдруг кому-то пригодится.
А как же тонкий тюнинг, настройка нескольких десятков параметров сессии?
Здесь уместен принцип Парето: 20% усилий дают 80% результата. Если вы готовы инвестировать ваше время в оставшиеся 20% результата — отлично. Только имейте в виду, что когда вы читаете статью о настройке протокола в Windows 7, то не знаете про какой протокол писал автор — 7, 8 или 8.1. Когда читаете про Windows 10 без указания релиза — проблемы те же. Например, пишут что в свежих билдах Windows 10 кодек AVC/h.264 изменился на RDPGFX_CODECID_AVC444V2, а в Windows Server 2016 остался RDPGFX_CODECID_AVC444.
Из всех таких советов мы используем только две настройки:
- 16 bit цвет, об этом можно почитать в статье MS RDP Performance / Bandwidth Usage
- Отключение сглаживания шрифтов font smoothing:i:0 по статье выше или Performance Tuning Remote Desktop Session Hosts
Сомневаюсь, что они дают какой-то ощутимый результат.
Вот мы и подошли к концу статьи. Хотел покороче, а получилось как всегда. Рад, если кому-то эти советы помогут сэкономить время или улучшить настройку своей инфраструктуры.
Источник