Что такое remote desktop connection manager
RDCM – это утилита от компании Microsoft, призванная из одного окна удобно управлять большим количеством удаленных RDP подключений к различным серверам:
Causes of remote desktop & activex issues?
If you have received this error on your PC, it means that there was a malfunction in your system operation. Common reasons include incorrect or failed installation or uninstallation of software that may have left invalid entries in your Windows registry, consequences of a virus or malware attack, improper system shutdown due to a power failure or another factor, someone with little technical knowledge accidentally deleting a necessary system file or registry entry, as well as a number of other causes.
More info on
remote desktop & activex issues
РЕКОМЕНДУЕМЫЕ: Нажмите здесь, чтобы исправить ошибки Windows и оптимизировать производительность системы.
Remote connection management

“This is a product that I strongly believe in. Rarely does a tool come along that becomes your entire toolbox. In the course of doing my daily work, I have to make hundreds of connections to remote servers, manage those servers, databases, web sites, application servers and developers. RDM gives me a centralized, single pane of glass from which to do all of it. I can store passwords using my favorite password manager, Keepass, write and assign scripts, manage services, and build custom connections to every device, server and workstation I manage.”
Read More Reviews
Windows xp или vista
В XP можно поднять протокол с 5.1 до 7. Хотфикс
В Vista — c 6 до 7. Хотфикс имеет тот же номер, файлы windows6.0-kb969084-x64.msu или Windows6.0-KB969084-x86.msu
Доступ к rdweb серверу через браузер с поддержкой html5
После того, как вы развернули пакет Web Client на RDS сервере, вы можете запустить браузер на клиентском компьютере. Поддерживаются все последние версии браузеров Edge, IE 11, Google Chrome, Safari и Firefox (пока веб клиент RD работает далеко не на всех мобильных устройствах). Для доступа к RDS серверам из браузера вам достаточно передать пользователям ссылку на сервер RDWeb.
Использование remote desktop shadow из графического gui
Подключиться к сессии пользователя можно с помощью утилиты mstsc.exe или непосредственно из консоли Server Manager. Для этого в консоли Server Manager откройте коллекцию QuickSessionCollection
Щелкнув по сессии интересующего пользователя, выберите в контекстном меню Shadow (Теневая копия).
Как разрешить обычном пользователям использовать теневое подключение
В рассмотренных выше примерах для использования теневого подключения к терминальным сессиям необходимы права локального администратора на RDS сервере. Однако можно разрешить использовать теневое (shadow) подключение для подключения к сессиям пользователей и простым пользователям (не давая им прав локального администратора на сервере).
К примеру, вы хотите разрешить членам группы AllowRDSShadow использовать теневое подключение к сессиям пользователей, выполните команду:
wmic /namespace:\rootCIMV2TerminalServices PATH Win32_TSPermissionsSetting WHERE (TerminalName=’RDP-Tcp’) CALL AddAccount ‘corpAllowRDSShadow’,2
В январе 2021 года после установки обновления KB4056898 (патч Windows против Meltdown и Spectre) пользователи столкнулись, что в Windows Server 2021 R2 перестал работать теневой доступ. При попытке выполнить теневое подключение к чужой сессии появляется сообщение «Неопознанная ошибка» (в логах присутствует ошибка STATUS_BAD_IMPERSONATION_LEVEL). Аналогичная проблема возникала и на RDS ферме на базе Windows Server 2021.
Для решения проблемы нужно установить отдельные обновления:
- для Windows Server 2021 — KB4057142 (от 17 января 2021)
- для Windows Server 2021 R2 — KB4057401 (от 17 января 2021)
Несколько замечаний напоследок
Нюанс 1
О проблемах
XP и Vista
Если проблема возникает на Windows XP или Vista, попробуйте сначала обновить протокол до 7 версии (писал в начале статьи). Обязательно включите поддержку CredSSP. На сайте Microsoft статьи уже удалены, но Интернет помнит.
Если не помогло — «доктор говорит в морг, значит в морг». Что испытала на себе операционная система за последние 15 лет — лучше об этом даже и не думать.
NLA
Иногда помогает отключение NLA на сервере. Выяснить причину не получилось, домашние машины все разные.
NTLM
Некоторые клиенты пытаются авторизоваться с использованием NTLMv1. Причины разные, но исправить на клиенте можно так:
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsa]
"LmCompatibilityLevel"=dword:00000003Перезагрузка обязательна.
Если вы молоды и дерзки ничего не боитесь, то есть более радикальное решение — отключение Channel Binding на Remote Desktop Gateway
HKLMSoftwareMicrosoftWindows NTCurrentVersionTerminalServerGatewayConfigCore
Type: REG_DWORD
Name: EnforceChannelBinding
Value: 0 (Decimal)
Делать так не надо. Но мы делали. 🙂 Для клиента, который настаивал (нет не так, НАСТАИВАЛ) что NTLMv1 на рабочих станциях ему необходим. Не знаю, может там серверы на NT4 без SP еще в работе.
Отключение RDP 8 в Windows 10
Если ничего не помогает, а идеи кончились, можно воспользоваться недокументированным ключом для даунгрейда протокола RDP до 7 версии.
Плюсы/минусы
[ ] Функциональность[ ] Безопасность[ ] Кроссплатформенность[−] Запутанный и не очень удобный интерфейс[−] Ресурсоемкость и длительная выгрузка из памятиРезюме
Таким образом, RDM — это графическая оболочка для ОС Windows, объединяющая в себе множество инструментов, предназначенных для удаленного управления, хранения, передачи файлов и даже виртуализации. Такое суперфункциональное решение несет пользу только при реальной востребованности многих функций в ущерб интуитивности.
[ ] Внушительная функциональность и возможности интеграции[−] Сложный интерфейс[ ] Умеренное быстродействие[ ] Безопасность хранения и передачи конфиденциальных данныхТеневое подключение rds shadow из powershell
Воспользоваться функционалом теневого подключения к сессии пользователя через теневое подключение Remote Desktop Services можно и из Powershell.
В первую очередь покажем, как получить список сессий на терминальном сервере (сессии пользователей будут сгруппированы в группы в зависимости от их статуса):
Требования к инфраструктуре веб клиента remote desktop
Remote Desktop Web Client пока доступен как расширение для роли RD Web Access на RDS серверах под управлением Windows Server 2021/2021.
Перед внедрением RD Web Client нужно убедится, что ваша RDS инфраструктура соответствует следующим требованиям:
Удаленное управление сеансом пользователя windows стандартными средствами
Однажды мне захотелось управлять одним из домашних компьютеров удаленно, но при этом взаимодействовать с текущим пользователем, но компьютер был довольно слабый и при запуске например TeamViewer’а нагрузка процессора поднималась до 98% и компьютер начинал заметно тормозить. Попробовал стандартный RDP, но тогда «выбивался» текущий пользователь и для входа локально приходилось набивать пароль. Но чуть позже мне случайно попалась команда
shadow
.
Наблюдать за другим сеансом служб удаленных рабочих столов.
SHADOW {<имя сеанса> | <ID сеанса>} [/SERVER:<сервер>] [/V]<имя сеанса> Имя сеанса.
<ID сеанса> Идентификатор сеанса.
/SERVER:<сервер> Сервер терминалов (по умолчанию текущий).
/V Отображение информации о выполненных действиях.
Например для управления консольным сеансом(пользователем который непосредственно сидит перед компьютером) текущего терминального сервера достаточно ввести команду выполнить –shadow 0. Выход осуществляется через alt * на обычном компьютере и через ctrl * на терминальном сервере.
Но есть неприятная особенность: эта команда работает только из под rdp сессии. Но мой управляемый компьютер был под управлением windows xp поэтому пришлось расширить его возможности сделав из него терминальный сервер (в интернете полно статей как это можно сделать). Тогда все стало довольно просто, подключаемся любым пользователем с правами администратора по rdp и запускаем команду выполнить –shadow 0 попадаем в консольный сеанс, собственно что мне и нужно было. Для уменьшения аппаратных затрат можно при создании rdp подключения выбрать функцию «При подключении запускать следующую программу» и там набрать shadow 0 как на рисунке.

Тогда получается что запускается всего 2 процесса.

Для того что бы все это работало нам необходимо сначала включить RemoteRPC, например через реестр:
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal Server]“AllowRemoteRPC”=dword:00000001
После этого можно будет через Диспетчер служб удаленных рабочих столов посмотреть какие пользователи залогинены на компьютере, какие у них id и какие процессы запущены (жаль только названия, нет информации о нагрузке).
По умолчанию пользователю будет задаваться вопрос с разрешением управления, можно отключить вопрос или сделать только удаленное наблюдение, меняется через реестр:
[HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindows NTTerminal Services]«Shadow»=dword:0000000x
Где x может иметь значения:
0 — удаленное управление не разрешено
1 -полный контроль с разрешения клиента
2 -полный контроль без разрешения клиента
3 -наблюдение за сеансом с разрешением клиента
4 -наблюдение за сеансом без разрешения клиента
По умолчания этой строчки вообще нет и её нужно будет создавать.
Так же можно включить через групповые политики локальные или доменные. Для включения локально запускаем gpedit.msc — выбираем административные шаблоны — добавление и удаление шаблонов, добавляем System.adm из папки WINDOWSinf
Теперь настраиваем: конфигурация компьютера — административные шаблоны — компоненты windows — службы терминалов — устанавливает правила для удаленного управления. Для windows xp.
И конфигурация компьютера — административные шаблоны — компоненты windows- службы удаленных рабочих столов – узел сеансов удаленных рабочих столов – подключения – устанавливает правила удаленного управления для пользовательских сеансов служб удаленных рабочих столов. Для windows 7.
Все это работает и в домене, если у пользователя есть соответствующие права.
В доменных настройках профиля пользователя тоже есть настройка подобных прав (я встречал эти настройки даже в домене win 2000)
Если рассматривать терминальный сервер, то там через свойства RDP(через конфигурация узла сеансов удаленных рабочих столов) можно выставить любому пользователю права на удаленное управление,

и отдельно настроить взаимодействие или управление удаленным сеансом.

Для удобства можно подключаться через диспетчер задач
Удаленный сеанс отключен, поскольку отсутствуют доступные серверы лицензирования | windows для системных администраторов
У одного из клиентов появилась проблема с развернутой фермой терминальных серверов Remote Desktop Services на базе Windows Server 2021 R2. По какой-то причине RDS сервер перестал выдавать терминальные лицензии пользователям, хотя роль сервера лицензий была установлена и настроена, а RDP CAL активированы.
При попытке пользователя подключиться к терминальному серверу, у него появляется ошибка:
На русской версии Windows ошибка выглядит так:
Удаленный сеанс отключен, поскольку отсутствуют доступные серверы лицензирования удаленных рабочих столов.
Обратитесь к администратору сервера

На самом сервере при этом регистрируется ошибка:
Event ID : 1130
Source : TerminalServices-RemoteConnectionManagerThe Remote Desktop Session Host server does not have a Remote Desktop license server specified. To specify a license server for the Remote Desktop Session Host server, use the Remote Desktop Session Host Configuration tool.
С помощью Server Manager проверим, что сервер лицензирования (Remote Desktop license server) в конфигурации RDSH указан:
Проверку настройки сервера лицензирования также можно выполнить из PowerShell:
Get-RDLicenseConfiguration
Как мы видим, сервер указан, и используется тип лицензирования PerUser.
Утилита RD Licensing Diagnoser также не видит каких-то проблем с настройками сервера RD и лицензиями.
С помощью консоли RD Licensing Manager (licmgr.exe) убедимся, что на сервере имеются свободные лицензии, но сами лицензии по какой-то причине пользователям не выдаются (Issued = 0).
Дальнейший поиск по журналу событий вышел на следующее событие:
EventID: 1128
Source: TerminalServices-RemoteConnectionManagerThe RD Licensing grace period has expired and the service has not registered with a license server with installed licenses. A RD Licensing server is required for continuous operation. A Remote Desktop Session Host server can operate without a license server for 120 days after initial start up.
Судя по всему, RDSH сервер решил, что тестовый период использования терминального сервера истек(grace period – 120 дней), и требуется его продление, либо активация на полноценном сервере лицензий RDS. Похоже на какой-то баг RDS в Windows Server 2021.
Количество дней до окончания RDS Grace Period можно узнать командой:
wmic /namespace:\rootCIMV2TerminalServices PATH Win32_TerminalServiceSetting WHERE (__CLASS !="") CALL GetGracePeriodDays
Для решения данной проблемы нужно на RDS сервере удалить ключ, определяющий льготный период лицензирования (grace period licensing). Дата, определяющая время окончания работы сервера в режиме grace хранится в ключе L$RTMTIMEBOMB (довольно забавное имя –TIME BOMB …. ;), находящемся в ветке реестра:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerRCMGracePeriod
Необходимо удалить ключ L$RTMTIMEBOMB. Однако, для этого у администратора недостаточно прав.
Unable to delete all specified values.
Чтобы удалить этот ключ, нужно предоставить своей учетной записи права владельца ветки и, затем, права на изменение (не буду подробно описывать сам процесс).

Теперь щелкаем ПКМ по ключи L$RTMTIMEBOMB и удаляем его.

Перезагружаем сервер, подключаемся с клиента по RDP. Успешность выдачи лицензии проверяем в консоли Remote Desktop Licensing Manager.
У меня, однако, сразу не заработало. С помощью следующей PowerShell команды, проверим, задан ли сервер лицензирования:
$obj = gwmi -namespace "Root/CIMV2/TerminalServices" Win32_TerminalServiceSetting
$obj.GetSpecifiedLicenseServerList()
Как вы видите, сервер лицензирования RDS не задан (список SpecifiedLSList пуст). С помощью следующей команды укажем сервер лицензий RD.
$obj = gwmi -namespace "Root/CIMV2/TerminalServices" Win32_TerminalServiceSetting
$obj.SetSpecifiedLicenseServerList("msk-rdslic.msconfig.ru")
После этой операции, сервер начал выдавать лицензии RD клиентам.
Установка rd web html5 клиента на windows server 2021 rds
Как мы уже говорили, на данный момент доступна версия RD Web Client для Windows Server 2021 / 2021, однако на текущий момент этот компонент не входит в состав дистрибутива WS 2021 и устанавливается отдельно.
На сервере с ролью RD Web Access необходимо установить модуль PowerShellGet:
Install-Module -Name PowerShellGet -Force
Закройте консоль PoSh и запустите еще раз. Теперь нужно установить модуль RD Web Client Management:
Install-Module -Name RDWebClientManagement
Чтобы принять лицензионное соглашение Microsoft, введите A.
Теперь нужно установить последнюю версию пакета Web Remote Desktop:
Install-RDWebClientPackage
После установки пакета, проверьте его свойства командой:
Get-RDWebClientPackage
Как вы видите, у вас появился пакет rd-html 5.0 версия 1.0.0.
Далее вам нужно с сервера с ролью RDS Broker экспортировать SSL сертификат, использующийся для SSO (Enable Single Sign On) в .cer файл (BASE64) Можно выполнить экспорт из графической оснастки управления сертификатами компьютера certlm.msc, нужный сертификат находится в разделе PersonalCertificates.
Импортируйте сертификат на сервере RD Web:
Import-RDWebClientBrokerCert C:RDBroker.cer
Теперь можно опубликовать клиент RD Web:
Publish-RDWebClientPackage -Type Production -Latest
Установка rdcm 2.7
Установка данного программного обеспечения не должна у вас вызвать каких либо проблем, так как она тривиальна. Я лишь приведу ее для целостности статьи. Устанавливать Remote Desktop Connection Manager я буду в операционной системе Windows 10 1803, на рабочем месте у меня стоит именно она.
Запускаем установку, для этого открываем файл rdcman.msi. У вас откроется мастер инсталляции, на первом шаге вы просто нажимаете “Next”.
Далее вы принимаете лицензионное соглашение, через пункт “I accept the terms in the license agreement” и нажимаете “Next”.
Далее вы задаете каталог установки, по умолчанию, это папка в C:Program Files (x86)MicrosoftRemote Desktop Connection Manager
Ну и последний шаг, это нажатие кнопки установить (install)
Через пару мгновений вы увидите, что все успешно установлено, вы можете посмотреть лог при желании, нажимаем кнопку “Finish.”
Шаг 1
Создадим в Active Directory группу безопасности
RDP_Operators
и включим в нее учётные записи тех пользователей, которым хотим делегировать права:
Шаг 2
Дадим группе права на управление терминальными сессиями на каждом из RDSH-серверов:
Шаг 3
Добавим группу в локальную группу
Пользователи удаленного рабочего стола
на каждом из RDSH-серверов. Если у вас серверы объединены в коллекции сеансов, то делаем это на уровне коллекции:
Шаг 4
Подготовим для «управленцев» такой PS-скрипт:
$Servers = @(
"RDSHost01",
"RDSHost02",
"RDSHost03"
)
function Invoke-RDPSessionLogoff { Param( [parameter(Mandatory=$True, Position=0)][String]$ComputerName, [parameter(Mandatory=$true, Position=1)][String]$SessionID ) $ErrorActionPreference = "Stop" logoff $SessionID /server:$ComputerName /v 2>&1
}
function Invoke-RDPShadowSession { Param( [parameter(Mandatory=$True, Position=0)][String]$ComputerName, [parameter(Mandatory=$true, Position=1)][String]$SessionID ) $ErrorActionPreference = "Stop" mstsc /shadow:$SessionID /v:$ComputerName /control 2>&1
}
Function Get-LoggedOnUser { Param( [parameter(Mandatory=$True, Position=0)][String]$ComputerName="localhost" ) $ErrorActionPreference = "Stop" Test-Connection $ComputerName -Count 1 | Out-Null quser /server:$ComputerName 2>&1 | Select-Object -Skip 1 | ForEach-Object { $CurrentLine = $_.Trim() -Replace "s "," " -Split "s" $HashProps = @{ UserName = $CurrentLine[0] ComputerName = $ComputerName } If ($CurrentLine[2] -eq "Disc") { $HashProps.SessionName = $null $HashProps.Id = $CurrentLine[1] $HashProps.State = $CurrentLine[2] $HashProps.IdleTime = $CurrentLine[3] $HashProps.LogonTime = $CurrentLine[4..6] -join " " $HashProps.LogonTime = $CurrentLine[4..($CurrentLine.GetUpperBound(0))] -join " " } else { $HashProps.SessionName = $CurrentLine[1] $HashProps.Id = $CurrentLine[2] $HashProps.State = $CurrentLine[3] $HashProps.IdleTime = $CurrentLine[4] $HashProps.LogonTime = $CurrentLine[5..($CurrentLine.GetUpperBound(0))] -join " " } New-Object -TypeName PSCustomObject -Property $HashProps | Select-Object -Property UserName, ComputerName, SessionName, Id, State, IdleTime, LogonTime }
}
$UserLogin = Read-Host -Prompt "Введите логин пользователя"
Write-Host "Поиск RDP-сессий пользователя на серверах..."
$SessionList = @()
ForEach ($Server in $Servers) { $TargetSession = $null Write-Host " Опрос сервера $Server" Try { $TargetSession = Get-LoggedOnUser -ComputerName $Server | Where-Object {$_.UserName -eq $UserLogin} } Catch { Write-Host "Ошибка: " $Error[0].Exception.Message -ForegroundColor Red Continue } If ($TargetSession) { Write-Host " Найдена сессия с ID $($TargetSession.ID) на сервере $Server" -ForegroundColor Yellow Write-Host " Что будем делать?" Write-Host " 1 - подключиться к сессии" Write-Host " 2 - завершить сессию" Write-Host " 0 - ничего" $Action = Read-Host -Prompt "Введите действие" If ($Action -eq "1") { Invoke-RDPShadowSession -ComputerName $Server -SessionID $TargetSession.ID } ElseIf ($Action -eq "2") { Invoke-RDPSessionLogoff -ComputerName $Server -SessionID $TargetSession.ID } Break } Else { Write-Host " сессий не найдено" }
}Чтобы PS-скрипт было удобно запускать, сделаем для него оболочку в виде cmd-файла с таким же именем, как у PS-скрипта:
Элемент управления activex удаленного рабочего стола не соответствует версии клиентской оболочки
как-то другая версия этого mstscax.dll теперь находится в папке system32. перейдите в папку system32, найдите mstscax.dll щелкните правой кнопкой мыши на нем перейти к свойствам перейти к предыдущей версии, ждать его, чтобы закончить поиск, если вы видите один, то это собирается заменить существующий. но прежде чем вы сможете это сделать, вы должны взять на себя ответственность за mstscax.DLL-файл, который не работает для того, чтобы переименовать его в mstscax.старый, так что вы будете идти вкладку безопасности и делать все возможное, чтобы взять право собственности на файл. после переименования и скопировать и вставить тот, который вы нашли в предыдущей версии вкладки вы сможете запустить rds снова.
источник




