Задача: Я как администратор сети хочу подключаться к сеансу пользователя со своего ПК. Т.е. со своего ПК с Win10 на ПК юзера с Win10 к его же сеансу.
Все ПК в домене. На всех ПК домена установлена Win10 64
Создаю групповую политику и связываю ее с OU, где находятся ПК домена
Конфигурация компьютераПолитикиАдминистративные шаблоныСлужбы удаленных рабочих столовУзел сеансов удаленных рабочих столовПодключенияРазрешить пользователям удаленное подключение с использованием служб удаленных рабочих столов
— включить
Конфигурация компьютераПолитикиАдминистративные шаблоныСлужбы удаленных рабочих столовУзел сеансов удаленных рабочих столовПодключенияУстановить правила удаленного управления для пользовательских сеансов удаленных рабочих столов — выбрать
нужны вариант
Делаю на ПК gpupdate /force
Далее gpresult /scope:computer /R и в списке политик вижу мою политику с теневым подключением.
Далее в повершелле определяю id сеанса qwinsta /server:11.11.11.11 и пытаюсь подключиться
Mstsc /shadow:1 /v:11.1.11.11 /control /noConsentPrompt
В ответ получаю окно: Ошибка теневого доступа. Неопознанная ошибка
Иду в раздел gpedit.msc а там параметры в разделе Конфигурация компьютераПолитикиАдминистративные шаблоныСлужбы удаленных рабочих столовУзел сеансов удаленных рабочих столовПодключения все со статусом «Не задано».
Получается политика ничего не изменила на ПК?
Нагуглил статью, что январское обновление ломало теневое подключение, но исправляющее эту проблему обновление kb4057401 идет только на WinServer2012r2, а для Win10 его нет.
Можете подсказать как правильно настроить теневое подключение?
Спасибо!
-
Изменено
5 октября 2018 г. 12:30
-
Изменен тип
Anton Sashev Ivanov
30 октября 2018 г. 13:01
Обсуждение
Теневое shadow подключение к RDP/RDS сеансам позволяет администраторам подключиться к сессии любого пользователя для просмотра рабочего стола пользователя и взаимодействия с ним. Режим Remote Desktop Shadowing (теневого подключения) работает во всех современных версиях Windows, начиная с Windows 2012 R2 и Windows 8.1 (кроме версии Windows Server 2012, в которой стек rdp перенесен из режима ядра в пользовательский режим). В этой статье мы рассмотрим, как настроить и использовать RDS Shadowing для подключения к RDP сессиям пользователей в Windows Server 2016 и Windows 10
Содержание:
- Использование Remote Desktop Shadow из графического GUI
- Групповые политики управления теневыми подключениями к RDS сессиям в Windows
- Теневое подключение RDS Shadow из PowerShell
- Как разрешить обычном пользователям использовать теневое подключение?
В Windows Server 2016/Windows 10 в стандартном RDP клиенте (mstsc.exe) есть несколько специальных параметров, которые можно использовать для удаленного теневого (RDS Shadow) подключения к RDP сессии любого пользователя:
Mstsc.exe [/shadow:sessionID [/v:Servername] [/control] [/noConsentPrompt] [/prompt]]
- /shadow:sessionID – подключиться к RDP сессии пользователя по ID;
- /v:servername – можно указать имя удаленного хоста (RDP/RDS терминального сервера). Если имя сервера не указано, выполняется подключение к локальным сеансам на текущем хосте;
- /control – включает возможность взаимодействия с сеансом (рабочим столом) пользователя. Администратор может управлять мышкой пользователя, вводить данные с клавиатуры. Если эта опция не указана, используется режим просмотра сессии пользователя;
- /noConsentPrompt – опция позволяет администратору принудительно подключиться к любой сессии, не запрашивая у пользователя подтверждение на подключение;
- /prompt – позволяет использовать для подключения другую учетную запись, отличную от текущей. Запрашивается имя и пароль пользователя для подключения к сеансу.
Теневые сеансы можно использовать для подключения к сессиям пользователей на компьютерах и серверах как в домене Active Directory, так и в рабочей группе. Кроме того, не обязательно обладать правами администратора на RDS хосте, на котором работает пользователь. Администраторы могут делегировать полномочия RDS Shadowing любым, даже не-административных учетным записям (об этом ниже).
Использование Remote Desktop Shadow из графического GUI
Подключиться к сессии пользователя можно с помощью утилиты mstsc.exe или графической консоли Server Manager. Для этого в консоли Server Manager на RDS сервере перейдите в раздел Remote Desktop Services -> выберите свою коллекцию, например QuickSessionCollection.
В списке справа будет перечислен список пользователей у которых имеются сессии на данном RDS сервере. Щелкните правой кнопкой по сессии нужно пользователя, выберите в контекстном меню Shadow (Теневая копия).
Вы можете подключиться только к активной сессии пользователя. Если сессия находится в состоянии Disconnected (отключена по таймауту), подключиться к такой сессии нельзя:
Shadow Error - The specified session is not connected.
Появится окно c параметрами теневого подключения. Возможен просмотр (View) и управление (Control) сессией. Кроме того, можно включить опцию Prompt for user consent (Запрашивать согласие пользователя на подключение к сессии).
Если выбрана опция «Запрашивать согласие пользователя», в сессии у пользователя появится запрос:
Запрос на удаленное наблюдение/ Remote Monitoring Request Winitproadministrator запрашивает удаленный просмотр вашего сеанса. Вы принимаете этот запрос?
Winitproadministrator is requesting to view your session remotely. Do you accept the request?
Если пользователь подтвердит подключение, то администратор увидит его рабочий стол в режиме просмотра, но не сможет взаимодействовать с ним.
Совет. Для отключения от сессии пользователя и выхода из shadow-режима, нужно нажать ALT+* на рабочей станции или Ctrl+* на RDS сервере (если не заданы альтернативные комбинации).
Если пользователь отклонил административное Shadow RDS подключение, появится окно:
Shadow Error: The operator or administrator has refused the request.
Если попытаться подключиться к сессии пользователя без запроса подтверждения, появится ошибка, сообщающая, что это запрещено групповой политикой:
Shadow Error: The Group Policy setting is configured to require the user’s consent. Verify the configuration of the policy settings.
Если вам нужно вести аудит RDS Shadow подключений к пользователям, используйте в качестве фильтра следующие события из журнала Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational:
- Event ID 20508: Shadow View Permission Granted
- Event ID 20503: Shadow View Session Started
- Event ID 20504: Shadow View Session Stopped
Групповые политики управления теневыми подключениями к RDS сессиям в Windows
Параметры удаленного управлениями RDS сессиями пользователя настраиваются отдельным параметром групповых политик — Set rules for remote control of Remote Desktop Services user sessions (Установить правила удаленного управления для пользовательских сеансов служб удаленных рабочих столов). Данная настройка находится в разделе Policies -> Administrative Templates -> Windows components -> Remote Desktop Services -> Remote Session Host -> Connections (Административные шаблоны –> Компоненты Windows –> Службы удаленных рабочих столов – Узел сеансов удаленных рабочих столов –> Подключения) в пользовательской и компьютерной секциях GPO. Данной политике соответствует DWORD параметр реестра Shadow в ветке HKLMSOFTWAREPoliciesMicrosoftWindows NTTerminal Services (значения этого параметра, соответствующие параметрам политики указаны в скобках).
Этой политикой можно настроить следующие варианты теневого подключения RD Shadow:
- No remote control allowed — удаленное управление не разрешено (значение параметра реестра
Shadow = 0
); - Full Control with users’s permission — полный контроль сессии с разрешения пользователя (
1
); - Full Control without users’s permission — полный контроль без разрешения пользователя (
2
); - View Session with users’s permission – наблюдение за сеансом с разрешением пользователя (
3
); - View Session without users’s permission – наблюдение за сеансом без разрешения пользователя (
4
).
Вы можете настроить правила удаленного подключения в домене из консоли управления GPO
gpmc.msc
с помощью рассмотренного параметра политики, либо групповой политикой, вносящей изменения напрямую в реестр системы (последний вариант позволяет более тонко нацелить политику на компьютеры с помощью Group Policy Item Level Targeting).
Теневое подключение RDS Shadow из PowerShell
Воспользоваться функционалом теневого подключения к сессии пользователя через теневое подключение Remote Desktop Services можно и из Powershell.
В первую очередь нужно получить список пользовательских сессий на терминальном RDS сервере (сессии пользователей будут сгруппированы в группы в зависимости от их статуса):
Get-RDUserSession | ft Username, UnifiedSessionId, SessionState, HostServer, ApplicationType -GroupBy Sessionstate
На данном сервере мы обнаружили три активных RDP сессии пользователей. Чтобы подключиться к сессии пользователя с ID сессии 3, выполните команду:
Mstsc /shadow:3 /control /noConsentPrompt
Также для получения списка всех RDP сессии на сервере (или десктопной редакции Windows 10 к которой разрешены множественные RDP подключения) можно использовать команду:
quser
Или
qwinsta
На экране отобразится список RDP сессий, их ID и статус: активная сессия (Active) или отключенная (Disconnected).
Для получения списка сессий на удалённом сервере выполните команду:
query session /server:servername
Чтобы подключиться к сессии пользователя на удаленном сервере, используйте команду:
Mstsc /v:rdsh2:3389 /shadow:3 /control
Для более удобного теневого подключения к RDP сессиям пользователей можно использовать следующий скрипт. Скрипт предложит ввести имя удаленного компьютера и выведет список всех пользователей с активными RDP сеансами. Вам нужно будет указать ID сеанса, к которому нужно подключится через Shadow сессию:
shadow.bat
@echo off
set /P rcomp="Enter name or IP of a Remote PC: "
query session /server:%rcomp%
set /P rid="Enter RDP user ID: "
start mstsc /shadow:%rid% /v:%rcomp% /control
Можно поместить данный файл в каталог %Windir%System32. В результате для теневого подключения к пользователю достаточно выполнить команду shadow.
Для подключения к консольной сессии можно использовать такой скрипт:
@echo off
set /P rcomp="Enter name or IP of a Remote PC: "
for /f "tokens=3 delims= " %%G in ('query session console /server:%rcomp%') do set rid=%%G
start mstsc /shadow:%rid% /v:%rcomp% /control
Также для теневого подключения можно использовать следующий PowerShell скрипт с простым графическим интерфейсом (rdp_shadow_connection.ps1):
Add-Type -assembly System.Windows.Forms
$Header = "SESSIONNAME", "USERNAME", "ID", "STATUS"
$dlgForm = New-Object System.Windows.Forms.Form
$dlgForm.Text ='Session Connect'
$dlgForm.Width = 400
$dlgForm.AutoSize = $true
$dlgBttn = New-Object System.Windows.Forms.Button
$dlgBttn.Text = 'Control'
$dlgBttn.Location = New-Object System.Drawing.Point(15,10)
$dlgForm.Controls.Add($dlgBttn)
$dlgList = New-Object System.Windows.Forms.ListView
$dlgList.Location = New-Object System.Drawing.Point(0,50)
$dlgList.Width = $dlgForm.ClientRectangle.Width
$dlgList.Height = $dlgForm.ClientRectangle.Height
$dlgList.Anchor = "Top, Left, Right, Bottom"
$dlgList.MultiSelect = $False
$dlgList.View = 'Details'
$dlgList.FullRowSelect = 1;
$dlgList.GridLines = 1
$dlgList.Scrollable = 1
$dlgForm.Controls.add($dlgList)
# Add columns to the ListView
foreach ($column in $Header){
$dlgList.Columns.Add($column) | Out-Null
}
$(qwinsta.exe | findstr "Active") -replace "^[s>]" , "" -replace "s+" , "," | ConvertFrom-Csv -Header $Header | ForEach-Object {
$dlgListItem = New-Object System.Windows.Forms.ListViewItem($_.SESSIONNAME)
$dlgListItem.Subitems.Add($_.USERNAME) | Out-Null
$dlgListItem.Subitems.Add($_.ID) | Out-Null
$dlgListItem.Subitems.Add($_.STATUS) | Out-Null
$dlgList.Items.Add($dlgListItem) | Out-Null
}
$dlgBttn.Add_Click(
{
$SelectedItem = $dlgList.SelectedItems[0]
if ($SelectedItem -eq $null){
[System.Windows.Forms.MessageBox]::Show("Выберите сессию для подключения")
}else{
$session_id = $SelectedItem.subitems[2].text
$(mstsc /shadow:$session_id /control)
#[System.Windows.Forms.MessageBox]::Show($session_id)
}
}
)
$dlgForm.ShowDialog()
Данный скрипт отобразить графическую форму со списком активных RDP сеансов на локальном сервере. Вам останется только выбрать учетную запись пользователя и нажать Connect.
Вы можете использовать теневое подключение к пользователю не только в Windows Server с ролью Remote Desktop Services, но и для подключения к рабочим столам пользователей на компьютерах с Windows 10 .
Как разрешить обычном пользователям использовать теневое подключение?
В рассмотренных выше примерах для использования теневого подключения к RDP сессиям пользователей необходимы права локального администратора на RDS сервере. Однако вы можете разрешить использовать теневое (shadow) подключение и для непривилегированных пользователей (не предоставляя им прав локального администратора на компьютере/сервере).
К примеру, вы хотите разрешить членам доменной группы AllowRDSShadow использовать теневое подключение к RDP сессиям. Выполните команду в cmd.exe с правами администратора:
wmic /namespace:\rootCIMV2TerminalServices PATH Win32_TSPermissionsSetting WHERE (TerminalName='RDP-Tcp') CALL AddAccount 'corpAllowRDSShadow',2
В январе 2018 года после установки обновления KB4056898 (патч Windows против Meltdown и Spectre) пользователи столкнулись, что в Windows Server 2012 R2 перестал работать теневой доступ. При попытке выполнить теневое подключение к чужой сессии появляется сообщение «Неопознанная ошибка» (в логах присутствует ошибка
STATUS_BAD_IMPERSONATION_LEVEL
). Аналогичная проблема возникала и на RDS ферме на базе Windows Server 2016.
Для решения проблемы нужно установить отдельные обновления:
- для Windows Server 2016 — KB4057142 (от 17 января 2018)
- для Windows Server 2012 R2 — KB4057401 (от 17 января 2018)
Содержание
- Ошибка теневого доступа неопознанная ошибка windows 10
- Общие обсуждения
- Все ответы
- Теневое RDP подключение к рабочему столу пользователя в Windows 10
- Ошибка теневого доступа неопознанная ошибка windows 10
- Вопрос
- RDS Shadow – теневое подключение к RDP сеансам пользователей в Windows Server 2016/2019
- Использование Remote Desktop Shadow из графического GUI
- Групповые политики управления теневыми подключениями к RDS сессиям в Windows
- Теневое подключение RDS Shadow из PowerShell
- Как разрешить обычном пользователям использовать теневое подключение?
Ошибка теневого доступа неопознанная ошибка windows 10
Общие обсуждения
- Изменен тип Petko Krushev Microsoft contingent staff, Moderator 21 августа 2015 г. 12:12
Все ответы
При подключении теневого доступа не зависимо от того, для управления ли или для просмотра происходит страшная весчь — быстро появляется и быстро пропадает (буквально мгновения) какое-то окно сообщения и появляется еще одно сообщение «Ошибка теневого доступа. Неопознанная ошибка». Подключаюсь под учеткой доменного админа на своей машине. Всё и все в домене. Как решить ЭТО? Копание на просторах инета ни к чему не привело.
Если бы знать еще в каком журнале смотреть, или в журнале с которого заходят, или в журнале сервера к которому подключаются
Если бы знать еще в каком журнале смотреть, или в журнале с которого заходят, или в журнале сервера к которому подключаются
По логике же если есть возможность — и там, и там, это же стандарт де-факто!
То, что стандарт это неоспоримо, но в каком журнале вопрос актуален.
Блиина . это только у меня что-ли. Может есть еще какие варианты?
Блиина . это только у меня что-ли. Может есть еще какие варианты?
Тоже самая проблема, ответа не нашел.
Кстати поставил сервер на виртуалку, теневая копия запустилась с пол оборота.
В январе 2018 года после установки обновления KB4056898 (патч Windows против Meltdown и Spectre) пользователи столкнулись, что в Windows Server 2012 R2 перестал работать теневой доступ. При попытке выполнить теневое подключение к чужой сессии появляется сообщение «Неопознанная ошибка» (в логах присутствует ошибка STATUS_BAD_IMPERSONATION_LEVEL). Аналогичная проблема возникала и на RDS ферме на базе Windows Server 2016.
Для решения проблемы нужно установить отдельные обновления:
- для Windows Server 2016 — KB4057142 (от 17 января 2018)
- для Windows Server 2012 R2 — KB 4057401 (от 17 января 2018)
Теневое RDP подключение к рабочему столу пользователя в Windows 10
Помимо использования Remote Assistance, вы можете удаленно подключиться к рабочему столу пользователя Windows 10 с помощью теневого RDP подключения (Remote Desktop Shadowing). Большинство администраторов так или иначе пользовались этим функционалом для подключения к сессиям пользователей на терминальных RDS серверах с Windows Server 2012 R2 / Server 2016. Однако далеко не все знают, что теневое подключение можно использовать для удаленного просмотра и взаимодействия с рабочим столом пользователя и на десктопной Windows 10. Рассмотрим, как это работает.
Как вы помните, если попытаться удаленно подключится к компьютеру с Windows 10 через RDP, то сессия пользователя, работающего локально выбивается (даже если вы включите возможность использования нескольких одновременных RDP сессий в Windows 10). Однако вы можете подключится непосредственно подключиться к консольной сессии пользователя без блокировки его сеанса.
Предположим, вам нужно подключиться с сервера Windows Server 2012 R2 к рабочему столу пользователя, работающего локально за рабочей станцией с Windows 10.
Для теневого подключения к сессии пользователя нужно использовать стандартную RDP утилиту mstsc.exe. Формат команды такой:
Mstsc.exe /shadow: /v:
Также можно использовать одну из опций:
- /prompt – запросить имя и пароль пользователя, под которым выполняется подключение (если не указано, подключение выполняется под текущим пользователем).
- /control – режим взаимодействия с сеансом пользователя. Если параметр не задан, вы подключитесь в режиме просмотра (наблюдения) сессии пользователя, т.е. вы не сможете управлять его мышью и вводить данные с клавиатуры;
- /noConsentPrompt – не запрашивать у пользователя подтверждение на подключение к сессии.
Режим теневого подключения (нужно ли запрашивать подтверждение пользователя, и возможно управления в сессии или только наблюдение) настраивается с помощью групповой политики или редактирования реестра.
Политика находится в разделе Конфигурация компьютера ->Административные шаблоны –> Компоненты Windows –> Службы удаленных рабочих столов –> Узел сеансов удаленных рабочих столов –> Подключения (Policies -> Administrative Templates -> Windows components -> Remote Desktop Services -> Remote Session Host -> Connections) и называется «Установить правила удаленного управления для пользовательских сеансов служб удаленных рабочих столов» (Set rules for remote control of Remote Desktop Services user sessions).
Вместо включения политики можно выставить значение dword ключа с именем Shadow в ветке реестра HKLMSOFTWAREPoliciesMicrosoftWindows NTTerminal Services. Допустимые значения:
- – запретить удаленное управление;
- 1 — полный контроль с разрешения пользователя;
- 2 — полный контроль без разрешения пользователя;
- 3 — наблюдение за сеансом с разрешения пользователя;
- 4 — наблюдение за сеансом без разрешения пользователя.
По умолчанию данный ключ не задан и теневое подключение осуществляется в режиме полного контроля с разрешения пользователя.
Чтобы удаленно подключится к компьютеру через теневое подключение, у подключающейся учетной записи должны быть права администратора на компьютере, а в свойствах системы включен удаленный рабочий стол (RDP).
Запросим удаленно список сессий на рабочей станции Windows 10 командой:
qwinsta /server:192.168.11.60
Как вы видите, на данном компьютере имеется одна консольная сессия пользователя с идентификатором >
Итак, попробуем удаленно подключиться к сессии пользователя через теневое подключение. Выполните команду:
Mstsc /shadow:1 /v:192.168.11.60
На экране пользователя Windows 10 появится запрос:
Если пользователь разрешит соединение, вы подключитесь к его консольному сеансу и увидите его рабочий стол. Вы будете видеть все действия пользователя, но не сможете взаимодействовать с его сессией.
Если проверить сетевые соединения с помощью TCPView, можно увидеть, что взаимодействие идет через RemoteRPC (а не по протоколу RDP с портом TCP 3389). Т.е. для подключения используется случайный TCP порт из высокого диапазона RPC. На стороне подключающегося компьютера соединение устанавливает mstsc.exe, на стороне клиента подключение обрабатывает rdpsa.exe или rdpsaproxy.exe (в зависимости от билда Windows 10). Поэтому на клиенте должен быть включен RemoteRPC:
Функционал теневого подключения Remote Desktop Shadowing работает в Windows 10 / 8.1 и Windows Server 2012 R2 /2016. Чтобы теневое подключение работало на клиентах с Windows 7 SP1 (Windows Server 2008 R2) нужен RDP клиент версии 8.1 – поэтому придется установить обновление KB2830477 (требует наличия установленных KB2574819 и KB2857650).
Таким образом Remote Desktop Shadowing можно использовать как аналог Remote Assistance (Удаленный помощник) или TeamViewer для локальной или корпоративной сети.
Ошибка теневого доступа неопознанная ошибка windows 10
Вопрос
Имеется сервер Windows server 2012 R2 в виртуальной среде Hyper-V. На нём поднят контроллер домена и терминальный сервер. Всё работает прекрасно. Была поставлена задача настроить удаленный помощник для подключения к сессиям пользователей и разбора полётов. Был добавлен компонент «Удаленный помощник», включены след. политики:
Computer ConfigurationAdministrative TemplatesWindows ComponentsRemote Desktop ServicesRemote Desktop Session HostConnections
Allow users to connect remotely by using Remote Desktop Services
Set rules for remote control of Remote Desktop Services user sessions
Computer ConfigurationAdministrative TemplatesSystemRemote Assistance
Configure Solicited Remote Assistance
Configure Offer Remote Assistance
В последнюю добавлены администраторы.
Сервер перезагружен и выполнена команда gpupdate /force на всякий случай.
В результате получается подключиться к сессии по файлу приглашения, но через список сессий по пункту «Теневая копия» — ни в какую: выскакивает ошибка теневого доступа «Эта программа заблокирована групповой политикой.»
RDS Shadow – теневое подключение к RDP сеансам пользователей в Windows Server 2016/2019
Теневое shadow подключение к RDP/RDS сеансам позволяет администраторам подключиться к сессии любого пользователя для просмотра рабочего стола пользователя и взаимодействия с ним. Режим Remote Desktop Shadowing (теневого подключения) работает во всех современных версиях Windows, начиная с Windows 2012 R2 и Windows 8.1 (кроме версии Windows Server 2012, в которой стек rdp перенесен из режима ядра в пользовательский режим). В этой статье мы рассмотрим, как настроить и использовать RDS Shadowing для подключения к RDP сессиям пользователей в Windows Server 2016 и Windows 10
В Windows Server 2016/Windows 10 в стандартном RDP клиенте (mstsc.exe) есть несколько специальных параметров, которые можно использовать для удаленного теневого (RDS Shadow) подключения к RDP сессии любого пользователя:
Mstsc.exe [/shadow:sessionID [/v:Servername] [/control] [/noConsentPrompt] [/prompt]]
- /shadow:sessionID – подключиться к RDP сессии пользователя по ID;
- /v:servername – можно указать имя удаленного хоста (RDP/RDS терминального сервера). Если имя сервера не указано, выполняется подключение к локальным сеансам на текущем хосте;
- /control – включает возможность взаимодействия с сеансом (рабочим столом) пользователя. Администратор может управлять мышкой пользователя, вводить данные с клавиатуры. Если эта опция не указана, используется режим просмотра сессии пользователя;
- /noConsentPrompt – опция позволяет администратору принудительно подключиться к любой сессии, не запрашивая у пользователя подтверждение на подключение;
- /prompt – позволяет использовать для подключения другую учетную запись, отличную от текущей. Запрашивается имя и пароль пользователя для подключения к сеансу.
Теневые сеансы можно использовать для подключения к сессиям пользователей на компьютерах и серверах как в домене Active Directory, так и в рабочей группе. Кроме того, не обязательно обладать правами администратора на RDS хосте, на котором работает пользователь. Администраторы могут делегировать полномочия RDS Shadowing любым, даже не-административных учетным записям (об этом ниже).
Использование Remote Desktop Shadow из графического GUI
Подключиться к сессии пользователя можно с помощью утилиты mstsc.exe или графической консоли Server Manager. Для этого в консоли Server Manager на RDS сервере перейдите в раздел Remote Desktop Services -> выберите свою коллекцию, например QuickSessionCollection.
В списке справа будет перечислен список пользователей у которых имеются сессии на данном RDS сервере. Щелкните правой кнопкой по сессии нужно пользователя, выберите в контекстном меню Shadow (Теневая копия).
Появится окно c параметрами теневого подключения. Возможен просмотр (View) и управление (Control) сессией. Кроме того, можно включить опцию Prompt for user consent (Запрашивать согласие пользователя на подключение к сессии).
Если выбрана опция «Запрашивать согласие пользователя», в сессии у пользователя появится запрос:
Если пользователь подтвердит подключение, то администратор увидит его рабочий стол в режиме просмотра, но не сможет взаимодействовать с ним.
Если пользователь отклонил административное Shadow RDS подключение, появится окно:
Если попытаться подключиться к сессии пользователя без запроса подтверждения, появится ошибка, сообщающая, что это запрещено групповой политикой:
Если вам нужно вести аудит RDS Shadow подключений к пользователям, используйте в качестве фильтра следующие события из журнала Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational:
- Event ID 20508: Shadow View Permission Granted
- Event ID 20503: Shadow View Session Started
- Event ID 20504: Shadow View Session Stopped
Групповые политики управления теневыми подключениями к RDS сессиям в Windows
Параметры удаленного управлениями RDS сессиями пользователя настраиваются отдельным параметром групповых политик — Set rules for remote control of Remote Desktop Services user sessions (Установить правила удаленного управления для пользовательских сеансов служб удаленных рабочих столов). Данная настройка находится в разделе Policies -> Administrative Templates -> Windows components -> Remote Desktop Services -> Remote Session Host -> Connections (Административные шаблоны –> Компоненты Windows –> Службы удаленных рабочих столов – Узел сеансов удаленных рабочих столов –> Подключения) в пользовательской и компьютерной секциях GPO. Данной политике соответствует DWORD параметр реестра Shadow в ветке HKLMSOFTWAREPoliciesMicrosoftWindows NTTerminal Services (значения этого параметра, соответствующие параметрам политики указаны в скобках).
Этой политикой можно настроить следующие варианты теневого подключения RD Shadow:
- Noremotecontrolallowed — удаленное управление не разрешено (значение параметра реестра Shadow = 0 );
- FullControlwithusers’spermission — полный контроль сессии с разрешения пользователя ( 1 );
- FullControlwithoutusers’spermission — полный контроль без разрешения пользователя ( 2 );
- ViewSessionwithusers’spermission – наблюдение за сеансом с разрешением пользователя ( 3 );
- ViewSessionwithoutusers’spermission – наблюдение за сеансом без разрешения пользователя ( 4 ).
Вы можете настроить правила удаленного подключения в домене из консоли gpmc.msc с помощью рассмотренного параметра политики, либо групповой политикой, вносящей изменения напрямую в реестр системы (последний вариант позволяет более тонко нацелить политику на компьютеры с помощью Group Policy Item Level Targeting).
Теневое подключение RDS Shadow из PowerShell
Воспользоваться функционалом теневого подключения к сессии пользователя через теневое подключение Remote Desktop Services можно и из Powershell.
В первую очередь нужно получить список пользовательских сессий на терминальном RDS сервере (сессии пользователей будут сгруппированы в группы в зависимости от их статуса):
Get-RDUserSession | ft Username, UnifiedSessionId, SessionState, HostServer, ApplicationType -GroupBy Sessionstate
На данном сервере мы обнаружили три активных RDP сессии пользователей. Чтобы подключиться к сессии пользователя с ID сессии 3, выполните команду:
Mstsc /shadow:3 /control /noConsentPrompt
Также для получения списка всех RDP сессии на сервере (или десктопной редакции Windows 10 к которой разрешены множественные RDP подключения) можно использовать команду:
На экране отобразится список RDP сессий, их ID и статус: активная сессия (Active) или отключенная (Disconnected).
Для получения списка сессий на удалённом сервере выполните команду:
query session /server:servername
Чтобы подключиться к сессии пользователя на удаленном сервере, используйте команду:
Mstsc /v:rdsh2:3389 /shadow:3 /control
Для более удобного теневого подключения к RDP сессиям пользователей можно использовать следующий скрипт. Скрипт предложит ввести имя удаленного компьютера и выведет список всех пользователей с активными RDP сеансами. Вам нужно будет указать ID сеанса, к которому нужно подключится через Shadow сессию:
shadow.bat
@echo off
set /P rcomp=»Enter name or IP of a Remote PC: «
query session /server:%rcomp%
set /P rid=»Enter RDP user ID: «
start mstsc /shadow:%rid% /v:%rcomp% /control
Можно поместить данный файл в каталог %Windir%System32. В результате для теневого подключения к пользователю достаточно выполнить команду shadow.
@echo off
set /P rcomp=»Enter name or IP of a Remote PC: «
for /f «tokens=3 delims= » %%G in (‘query session console /server:%rcomp%’) do set rid=%%G
start mstsc /shadow:%rid% /v:%rcomp% /control
Также для теневого подключения можно использовать следующий PowerShell скрипт с простым графическим интерфейсом (rdp_shadow_connection.ps1):
Add-Type -assembly System.Windows.Forms
$Header = «SESSIONNAME», «USERNAME», «ID», «STATUS»
$dlgForm = New-Object System.Windows.Forms.Form
$dlgForm.Text =’Session Connect’
$dlgForm.Width = 400
$dlgForm.AutoSize = $true
$dlgBttn = New-Object System.Windows.Forms.Button
$dlgBttn.Text = ‘Control’
$dlgBttn.Location = New-Object System.Drawing.Point(15,10)
$dlgForm.Controls.Add($dlgBttn)
$dlgList = New-Object System.Windows.Forms.ListView
$dlgList.Location = New-Object System.Drawing.Point(0,50)
$dlgList.Width = $dlgForm.ClientRectangle.Width
$dlgList.Height = $dlgForm.ClientRectangle.Height
$dlgList.Anchor = «Top, Left, Right, Bottom»
$dlgList.MultiSelect = $False
$dlgList.View = ‘Details’
$dlgList.FullRowSelect = 1;
$dlgList.GridLines = 1
$dlgList.Scrollable = 1
$dlgForm.Controls.add($dlgList)
# Add columns to the ListView
foreach ($column in $Header)<
$dlgList.Columns.Add($column) | Out-Null
>
$(qwinsta.exe | findstr «Active») -replace «^[s>]» , «» -replace «s+» , «,» | ConvertFrom-Csv -Header $Header | ForEach-Object <
$dlgListItem = New-Object System.Windows.Forms.ListViewItem($_.SESSIONNAME)
$dlgListItem.Subitems.Add($_.USERNAME) | Out-Null
$dlgListItem.Subitems.Add($_.ID) | Out-Null
$dlgListItem.Subitems.Add($_.STATUS) | Out-Null
$dlgList.Items.Add($dlgListItem) | Out-Null
>
$dlgBttn.Add_Click(
<
$SelectedItem = $dlgList.SelectedItems[0]
if ($SelectedItem -eq $null)<
[System.Windows.Forms.MessageBox]::Show(«Выберите сессию для подключения»)
>else<
$session_id = $SelectedItem.subitems[2].text
$(mstsc /shadow:$session_id /control)
#[System.Windows.Forms.MessageBox]::Show($session_id)
>
>
)
$dlgForm.ShowDialog()
Данный скрипт отобразить графическую форму со списком активных RDP сеансов на локальном сервере. Вам останется только выбрать учетную запись пользователя и нажать Connect.
Вы можете использовать теневое подключение к пользователю не только в Windows Server с ролью Remote Desktop Services, но и для подключения к рабочим столам пользователей на компьютерах с Windows 10 .
Как разрешить обычном пользователям использовать теневое подключение?
В рассмотренных выше примерах для использования теневого подключения к RDP сессиям пользователей необходимы права локального администратора на RDS сервере. Однако вы можете разрешить использовать теневое (shadow) подключение и для непривилегированных пользователей (не предоставляя им прав локального администратора на компьютере/сервере).
К примеру, вы хотите разрешить членам доменной группы AllowRDSShadow использовать теневое подключение к RDP сессиям. Выполните команду в cmd.exe с правами администратора:
wmic /namespace:\rootCIMV2TerminalServices PATH Win32_TSPermissionsSetting WHERE (TerminalName=’RDP-Tcp’) CALL AddAccount ‘corpAllowRDSShadow’,2
Для решения проблемы нужно установить отдельные обновления:
- для Windows Server 2016 — KB4057142 (от 17 января 2018)
- для Windows Server 2012 R2 — KB4057401 (от 17 января 2018)
Обновлено 15.03.2022
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов по системному администрированию Pyatilistnik.org. В прошлый раз мы с вами разобрали установку Hyper-V в Windows 11. Сегодня я хочу с вами разобрать тему удобной поддержки пользователей встроенными средствами Windows. Речь пойдет, о теневом подключении RDP или Remote Desktop Shadowing. Мы рассмотрим, как она реализована, как предоставляются права и многое другое. Статья получиться большой, но поверьте оно того стоит. Благодаря этому вы сможете сэкономить бюджеты компании, отказавшись от стороннего ПО.
💻 Что такое теневой сеанс Remote Desktop Shadowing?
Все мы прекрасно помним 2020 год, когда массово вводились ограничения и все пользователи переходили на дистанционное положение. Это заставило все компании организовать для сотрудников рабочее окружение, и самое главное это отслеживание и предоставление удаленной помощи, при возникших проблемах. Для удаленной помощи используется много различного программного обеспечения, например teamviewer, VNC, Dameware и многое другое, большая проблема в том, что все они платные для коммерческого использования. Не все компании готовы платить за это деньги, но в Windows есть и встроенная возможность, о которой многие просто не знают.
Режим Shadow (теневой сеанс RDP/RDS) — Это встроенное средство, позволяющее системным администраторам производить подключение в RDP сессию любого пользователя, видя его экран, имея возможность производить любые манипуляции курсором и сеансом, одним словом полное взаимодействие. Remote Desktop Shadowing идет в составе начиная с Windows 8.1, Windows Server 2012 R2 и выше.
Теневое копирование служб удаленных рабочих столов имеет как графический интерфейс, так и утилиту командной строки. Есть две версии функции. Так как устаревшая версия Remote Desktop Services Shadowing несовместима с последней версией утилиты, то я не буду подробно описывать предыдущую версию, а лишь упомяну несколько слов в качестве исторической справки. В более ранних версиях Windows файл shadow.exe позволял пользователю подключаться к удаленному узлу с помощью метода теневого копирования служб удаленных рабочих столов. Короче говоря, это предшественник утилиты mstsc и ее параметра /shadow. Он был представлен в Windows Server 2003 и доступен во многих версиях Windows.
Кроме того, есть два приложения с графическим интерфейсом, и они делают одно и то же: управление службами терминалов (TSAdmin), которое присутствует с Windows Server 2003, и диспетчер служб удаленных рабочих столов (RDSM), который является частью инструментов удаленного администрирования сервера (RSAT) и заменяет TSAdmin в Windows Server 2012.
Ключевое различие между версиями RDS Shadowing заключается в том, что в устаревшей версии вы должны сначала установить соединение RDP, чтобы получить сеанс на удаленном хосте, прежде чем вы сможете затенить чей-либо еще сеанс на этом хосте. В последней версии вы можете затенить сеанс пользователя на удаленном хосте с консоли вашего собственного хоста. В этой статье мы рассмотрим, как настроить и использовать RDS Shadowing для подключения к RDP сессиям пользователей в Windows Server 2022 и Windows 11.
⚙️ Какие порты использует теневое копирование служб удаленных рабочих столов
Функция теневого копирования служб удаленных рабочих столов не использует порт 3389/TCP (RDP), вместо этого он использует порт 445/TCP (SMB) и эфемерные порты, также известные как динамический диапазон портов (RPC). Так же на удаленном компьютере, куда вы будите производить подключения должны быть добавлены правила:
- Первое правило называется «File and Printer Sharing (SMB-In)», которое позволяет подключаться к порту 445/TCP;
- Второй есть «Remote Desktop — Shadow (TCP-In)». Это позволяет %SystemRoot%system32RdpSa.exe двоичному файлу обрабатывать входящие соединения на любом локальном TCP-порту. Динамический диапазон портов в Windows обычно включает TCP-порты с 49152 по 65535.
Какой уровень прав необходим для использования Remote Desktop Services Shadowing
Для того, чтобы вы могли производить теневое подключение к пользователям RDS фермы или отдельным серверам, вам нужны права администратора на конечных серверах, но и это можно обойти, произведя точечное делегирование прав на функцию shadow, не имея при этом административного доступа на конечных серверах. Как это организовать я покажу, немного ниже.
⚒ Настройка групповой политики управления теневыми подключениями к RDS сессиям в Windows
Перед тем, как мы с вами разберем практические методы подключения Remote Desktop Shadow, нам нужно настроить групповую политику, которая будет определять, как оператор, кто будет помогать конечному пользователю, будет с ним взаимодействовать. У системного администратора есть возможность оставить пользователю одобрение подключения или же можно сделать без уведомления, существует пять вариантов политики.
- No remote control allowed — удаленное управление не разрешено (значение параметра реестра 0) — Идет по умолчанию, если политика не задана
- Full Control with users’s permission — полный контроль сессии с разрешения пользователя (значение параметра реестра 1 )
- Full Control without users’s permission — полный контроль без разрешения пользователя (значение параметра реестра 2)
- View Session with users’s permission – наблюдение за сеансом с разрешением пользователя (значение параметра реестра 3)
- View Session without users’s permission – наблюдение за сеансом без разрешения пользователя (значение параметра реестра 4).
Данный ключ реестра можно найти в разделе HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindows NTTerminal Services под названием «Shadow«
Найти данную политику можно по пути:
Конфигурация Компьютера — Политики — Административные шаблоны — Компоненты Windows — Службы удаленных рабочих столов — Узел сеансов удаленных рабочих столов — Подключения (Policies — Administrative Templates — Windows components — Remote Desktop Services — Remote Session Host — Connections)
Она будет иметь название «Установить правила удаленного управления для пользовательских сеансов служб удаленных рабочих столов (Set rules for remote control of Remote Desktop Services user sessions)«
Чтобы получить текущее значение ключа Shadow, вам необходимо на конечном компьютере открыть командную строку и ввести:
reg query «HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindows NTTerminal Services» /v Shadow
Его также можно установить вручную с помощью командной строки, введя следующую команду:
reg add «HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindows NTTerminal Services» /v Shadow /t REG_DWORD /d 4
Чтобы удалить тип теневого ключа:
reg delete «HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindows NTTerminal Services» /v Shadow /f
🌐 Подключение Remote Desktop Shadow из графического интерфейса
Данный метод является наверное самым удобным, так как позволяет визуально все видеть, контролировать. Все, что вам нужно это собранная оснастка по управлению RDS фермой в диспетчере серверов, как это делать смотрите по ссылке слева. В качестве тестового пользователя я буду использовать Барбоскина Геннадия Викторовичу (Barboskin.g). Для начала давайте его найдем, для этого в оснастке выберите нужную коллекцию, в области «Подключения» произведите поиск вашего пользователя. После его нахождения кликните по нему правым кликом, в контекстном меню вы увидите пункт «Теневая копия (Shadow)«.
У вас появится дополнительное окно с параметрами теневой копии:
- Удаленный сеанс — Просмотреть/Управление. Тут либо вы просто наблюдатель, все действия делает сам пользователь или же полный контроль.
- Запрашивать согласие пользователя
У пользователя на удаленном сервере появится окно «Запрос на удаленное наблюдение. Пользователь запрашивает удаленный просмотр вашего сеанса. Вы принимаете этот запрос? (User is requesting to view your session remotely. Do you accept the request?) «, тут он может подтвердить или отказаться.
Хочу напомнить, что вы можете управлять данным окном, будет оно требоваться или нет, через групповые политики.
Если у вас явным образом не задано отсутствие данного окна, то вы получите ошибку, если захотите подключиться без уведомления.
Согласно настройкам групповой политики требуется согласие пользователя. Проверьте настройки групповой политики (The Group Policy setting is configured to require the user’s consent)
Если конечный пользователь подтвердил запрос на удаленное наблюдение, то у вас должно открыться новое RDP окно, где будет отображена сессия удаленного пользователя и с ней можно взаимодействовать.
Если пользователь закроет окно RDP подключения, то он перейдет в статус «Отключен (Disconnected)«, то вас выкинет из сессии теневого копирования. Вы увидите:
Сеанс с теневым доступом был отключен
Подключиться к сеансу в статусе «Отключен (Disconnected)» не получиться, опция «Теневая копия (Shadow)» просто не будет присутствовать в списке
Чтобы завершить сессию пользователя и выйти из shadow-режима, нужно нажать сочетание клавиш ALT+* на рабочей станции или Ctrl+* на RDS сервере (Так же можно переопределить данные комбинации).
Второй вариант, которым я могу пользоваться при теневом копировании к пользователю RDP, это использование бесплатного ПО по работе с RDS. Оно называется Terminal Services Manager, о нем я вам делал подробный обзор. Найдите в списке пользователей нужного вам, кликните по нему правым кликом и выберите пункт «Shadow«.
У вас так же появится окно, где вы должны запросить доступ с нужным уровнем, а далее все как описано выше.
🔍 Логирование сессий теневого копирования
Если у вас появится желание отслеживать данные, о подключениях с использованием теневого копирования, то вам необходимо на сервере куда производилось затемнение сеанса перейти в журнал:
Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational
Вот такая будет последовательность.
- Событие ID 20508
Событие ID 20508: Предоставлено разрешение на теневой просмотр. Пользователь barboskin.g (идентификатор сеанса: 440) предоставил разрешение пользователю Сёмину Ивану
- Событие ID 20503
Событие ID 20503: Запущен теневой просмотр сеанса. Просмотр пользователем (Иван Сёмин) на компьютере c-10-.root.pyatilistnik.org сеанса пользователя ROOTbarboskin.g (идентификатор сеанса: 440)
- Событие ID 20504
Событие ID 20504 : Остановлен теневой просмотр сеанса. Просмотр пользователем (Семин Иван) на компьютере c-10.root.pyatilistnik.org сеанса пользователя ROOTbarboskin.g (идентификатор сеанса: 440)
- Событие ID 20513
Событие ID 20513: Сбой теневого доступа к сеансу. Пользователю (Иван Сёмин) не удалось получить теневой доступ к сеансу пользователя Rootbarboskin.g (идентификатор сеанса: 440) из-за настроек групповой политики.
- Событие ID 20510
Событие ID 20510: Предоставлено разрешение на теневое управление. Пользователь ROOTbarboskin.g (идентификатор сеанса: 440) предоставил разрешение пользователю (Иван Сёмин)
Как использовать теневое подключение через PowerShell и командную строку
Напоминаю, что в качестве клиентской ОС у меня установлена Windows 11, а подключаться я буду к сессия пользователя работающего за Windows Server 2022. Для того, чтобы мы могли из PowerShell или командной строки использовать теневое копирование, мы должны вызвать утилиту mstsc.
mstsc — это по сити встроенный RDP клиент в операционной системе Windows. Запустите оболочку PowerShell и введите:
В результате вы получите полную справку по данной утилите со всеми ключами. Тут нас будут интересовать из всего перечня 4 ключа:
- /prompt — По сути это ключ для запуска процедуры от другого пользователя. Например вы локально сидите под обычной учетной записью, а команду хотите запускать из под административной.
- /shadow:sessionID – подключиться к указанной сессии пользователя по ID;
- /control – Дает вам возможность полного управления мышкой и клавиатурой при теневой сессии.
- noConsentPrompt — Разрешает удаленное управления без согласования пользователем
- /v:servername – можно указать имя удаленного хоста (RDP/RDS терминального сервера). Если имя сервера не указано, выполняется подключение к локальным сеансам на текущем хосте;
Перед использованием RDS Shadowing мне нужно выяснить SessionID клиента к которому буду подключаться, как это сделать я уже рассказывал. Я для своего обзора буду использовать камандлет Get-TSSession.
Get-TSSession -ComputerName Имя сервера
Нужный мне SessionID 517.
Теперь подключаемся к сессии пользователя на удаленном сервере, для этого конструкция будет такой:
mstsc /v:term /shadow:517 /control /prompt
Кстати если будет писать, что не правильное имя компьютера, то уберите в команде номер порта
Если вы запускаете с запросом учетных данных другого пользователя, то появится всплывающее окно с вводом логина и пароля.
У удаленного пользователя работающего по RDP появится всплывающее окно, где он должен подтвердить ваш запрос:
Пользователь запрашивает удаленное управление вашим сеансом. Вы принимаете этот запрос?
Удобный Bat файл для использования Remote Desktop Services Shadowing в командной строке
Создайте из текстового файла batник, поменяв расширение. И добавьте вот такое содержимое, теперь при его запуске будет выводиться список сеансов и удобный запрос ID.
@echo off
mode con:cols=100 lines=30
query session
echo
set /p usersession= Enter the session ID:
mstsc /shadow:%usersession% /control /noconsentprompt
Как дать права на теневые сеансы не администраторам
Как я указывал выше, теневое копирование можно использовать по умолчанию, только администраторам конечного сервера, НО если у вас есть, например техническая поддержка, которая помогает пользователям удаленного рабочего стола устранять через теневые сеансы их проблемы, и вы не хотите их делать администраторами на серверах, то вы можете делегировать им права, только на данный функционал.
И так, режим shadow для непривилегированного пользователя в Windows Server организовывается через PowerShell. Вам необходимо имя группы, для которой будут делегированы права и выполнить команду на конечном сервере. Но для начала давайте посмотрим у кого уже есть такие права. Для этого в оболочке PowerShell выполните:
Get-WmiObject Win32_TSAccount -Namespace rootCIMV2TerminalServices -Filter «TerminalName=’RDP-Tcp'»
Для cmd:
Обратите тут на поле _GENUS — это как раз разрешение. Данная команда вам будет полезна, когда вы добавите группу и проверите, появилась ли она тут. Цифра 2 в конце определяет тип доступа:
- 0 = WINSTATION_GUEST_ACCESS
- 1 = WINSTATION_USER_ACCESS
- 2 = WINSTATION_ALL_ACCESS
Далее я дам права для группы ROOTRDP-SHADOW-SESSION, чтобы она могла использовать Remote Desktop Services Shadowing.
wmic /namespace:\rootCIMV2TerminalServices PATH Win32_TSPermissionsSetting WHERE (TerminalName=»RDP-Tcp») CALL AddAccount «ROOTRDP-SHADOW-SESSION«,2
Не забываем, что вам потребуется произвести перезагрузку сервера, чтобы все вступило в силу
Проверим, что они появились
Чтобы удалить права, выполните:
$Group = @(gwmi —Namespace RootCIMv2TerminalServices —query «select * from Win32_TSAccount where TerminalName=»RDP-TCP» AND AccountName=»ROOTRDP-SHADOW-SESSION«)
$Group.Delete()
Массовая настройка теневого подключения для не администраторов
Если у вас, как в моей компании RDS ферма состоит из 50 и более RDSH хостов, то чтобы вам не ходить по каждому из них, нужно воспользоваться вот таким моим скриптом PowerShell.
function Date {Get-Date -Format «yyyy.MM.dd HH:mm:ss»}
# Тут подгружаем файл со списком серверов
$comps_file = «$PSScriptRootservers.txt»
foreach ($server in (Get-Content $comps_file))
{
«$(Date) Trying to process server $server»
# wmic /namespace:\rootCIMV2TerminalServices PATH Win32_TSPermissionsSetting WHERE (TerminalName =»RDP-Tcp») CALL AddAccount ,2
$status = $null
$rds = Get-WmiObject -Namespace root/cimv2/terminalservices -Class Win32_TSPermissionsSetting -Filter «TerminalName = ‘RDP-Tcp'» -ComputerName $server
$status = $rds.AddAccount(«ROOTRDP-SHADOW-SESSION«,2)
if ($status.ReturnValue -eq 0)
{
«$(Date) All good»
}
else
{
«$(Date) Something went wrong»
}
}
Устранение непредвиденной ошибки
В Windows Server 2012R2-2016 вы можете получить ошибку «Неопознанная ошибка или Произошла внутренняя ошибка» при попытке использования функционала shadow. Тут все дело в том, что у вас не установлены обновления от 2018 года.
в логах вы можете обнаружить события STATUS_BAD_IMPERSONATION_LEVEL
- Windows Server 2016 — KB4057142 (от 17 января 2018)
- Windows Server 2012 R2 — KB4057401 (от 17 января 2018)
Содержание
- Ошибка теневого доступа неправильное имя компьютера
- Общие обсуждения
- Ошибка теневого доступа неправильное имя компьютера
- Вопрос
- Утилита для человеческого shadow подключения неадмина к RDP сессиям пользователей в WinServer 2012R2
- RDS Shadow – теневое подключение к RDP сеансам пользователей в Windows Server 2016/2019
- Использование Remote Desktop Shadow из графического GUI
- Групповые политики управления теневыми подключениями к RDS сессиям в Windows
- Теневое подключение RDS Shadow из PowerShell
- Как разрешить обычном пользователям использовать теневое подключение?
Ошибка теневого доступа неправильное имя компьютера
Общие обсуждения
Задача: Я как администратор сети хочу подключаться к сеансу пользователя со своего ПК. Т.е. со своего ПК с Win10 на ПК юзера с Win10 к его же сеансу.
Все ПК в домене. На всех ПК домена установлена Win10 64
Создаю групповую политику и связываю ее с OU, где находятся ПК домена
Конфигурация компьютераПолитикиАдминистративные шаблоныСлужбы удаленных рабочих столовУзел сеансов удаленных рабочих столовПодключенияРазрешить пользователям удаленное подключение с использованием служб удаленных рабочих столов — включить
Конфигурация компьютераПолитикиАдминистративные шаблоныСлужбы удаленных рабочих столовУзел сеансов удаленных рабочих столовПодключенияУстановить правила удаленного управления для пользовательских сеансов удаленных рабочих столов — выбрать нужны вариант
Делаю на ПК gpupdate /force
Далее gpresult /scope:computer /R и в списке политик вижу мою политику с теневым подключением.
Далее в повершелле определяю id сеанса qwinsta /server:11.11.11.11 и пытаюсь подключиться
Mstsc /shadow:1 /v:11.1.11.11 /control /noConsentPrompt
В ответ получаю окно: Ошибка теневого доступа. Неопознанная ошибка
Иду в раздел gpedit.msc а там параметры в разделе Конфигурация компьютераПолитикиАдминистративные шаблоныСлужбы удаленных рабочих столовУзел сеансов удаленных рабочих столовПодключения все со статусом «Не задано». Получается политика ничего не изменила на ПК?
Нагуглил статью, что январское обновление ломало теневое подключение, но исправляющее эту проблему обновление kb4057401 идет только на WinServer2012r2, а для Win10 его нет.
Можете подсказать как правильно настроить теневое подключение?
Источник
Ошибка теневого доступа неправильное имя компьютера
Вопрос
не удаётся подключиться к сессии пользователя на терминальном сервере (при подключении выходит окно с заголовком «ошибка теневого доступа» и сообщением «неопознанная ошибка»), моя учетная запись является членом группы администраторы домена. сегодня было обновление KB4056895 (но так как это обновление выпущено только в январе 2018 а ошибка на просторах technet’a уже давно, думаю дело не в обновлении). в журнале безопасности регистрируются ошибки:
1) Новому сеансу входа назначены специальные привилегии.
Субъект:
ИД безопасности: ALA30239_admin
Имя учетной записи: 30239_admin
Домен учетной записи: ALA
Код входа: 0x4A1D4DA
Привилегии: SeSecurityPrivilege
SeBackupPrivilege
SeRestorePrivilege
SeTakeOwnershipPrivilege
SeDebugPrivilege
SeSystemEnvironmentPrivilege
SeLoadDriverPrivilege
SeImpersonatePrivilege
2) Вход с учетной записью выполнен успешно.
Уровень олицетворения: Олицетворение
Новый вход:
ИД безопасности: ALA30239_admin
Имя учетной записи: 30239_admin
Домен учетной записи: ALA
Код входа: 0x4A1D4DA
GUID входа:
Данное событие возникает при создании сеанса входа. Оно создается в системе, вход в которую выполнен.
Поля «Субъект» указывают на учетную запись локальной системы, запросившую вход. Обычно это служба, например, служба «Сервер», или локальный процесс, такой как Winlogon.exe или Services.exe.
В поле «Тип входа» указан тип выполненного входа. Самыми распространенными являются типы 2 (интерактивный) и 3 (сетевой).
Поля «Новый вход» указывают на учетную запись, для которой создан новый сеанс входа, то есть на учетную запись, с которой выполнен вход.
В полях, которые относятся к сети, указан источник запроса на удаленный вход. Имя рабочей станции доступно не всегда, и в некоторых случаях это поле может оставаться незаполненным.
Поле «Уровень олицетворения» задает допустимую степень олицетворения для процессов в данном сеансе входа в систему.
3) Запрошен дескриптор объекта.
Субъект:
ИД безопасности: ALA30239_admin
Имя учетной записи: 30239_admin
Домен учетной записи: ALA
ИД входа: 0x4A1D4DA
Объект:
Сервер объекта: WS-Management Listener
Тип объекта: Unknown
Имя объекта: Unknown
Код дескриптора: 0x0
Сведения о процессе:
ИД процесса: 0x518
Имя процесса: C:WindowsSystem32svchost.exe
4) Выполнен выход учетной записи из системы.
Субъект:
ИД безопасности: ALA30239_admin
Имя учетной записи: 30239_admin
Домен учетной записи: ALA
Код входа: 0x4A1D4DA
Данное событие возникает при уничтожении сеанса входа. Его можно однозначно связать с событием входа с помощью значения «Код входа». Коды входа остаются уникальными после перезагрузки, но они уникальны только на одном компьютере.
5) Выполнен выход учетной записи из системы.
Субъект:
ИД безопасности: ALA30239_admin
Имя учетной записи: 30239_admin
Домен учетной записи: ALA
Код входа: 0x4A1D286
Данное событие возникает при уничтожении сеанса входа. Его можно однозначно связать с событием входа с помощью значения «Код входа». Коды входа остаются уникальными после перезагрузки, но они уникальны только на одном компьютере.
6) Новому сеансу входа назначены специальные привилегии.
Субъект:
ИД безопасности: ALA30239_admin
Имя учетной записи: 30239_admin
Домен учетной записи: ALA
Код входа: 0x4A1D567
Привилегии: SeSecurityPrivilege
SeBackupPrivilege
SeRestorePrivilege
SeTakeOwnershipPrivilege
SeDebugPrivilege
SeSystemEnvironmentPrivilege
SeLoadDriverPrivilege
SeImpersonatePrivilege
7) Платформа фильтрации Windows разрешила подключение.
Сведения о приложении:
Идентификатор процесса: 5540
Имя приложения: deviceharddiskvolume2windowssystem32svchost.exe
Сведения о сети:
Направление: Входящие
Адрес источника: 10.1.0.41
Порт источника: 3389
Адрес назначения: 10.1.2.71
Порт назначения: 52982
Протокол: 6
Сведения о фильтре:
Код выполнения фильтра: 67051
Имя уровня: Получить/Принять
Код выполнения уровня: 44
Выполнен выход учетной записи из системы.
Субъект:
ИД безопасности: ALA30239_admin
Имя учетной записи: 30239_admin
Домен учетной записи: ALA
Код входа: 0x4A1D567
Данное событие возникает при уничтожении сеанса входа. Его можно однозначно связать с событием входа с помощью значения «Код входа». Коды входа остаются уникальными после перезагрузки, но они уникальны только на одном компьютере.
9) Логи по пути: Просмотр событий-журналы приложений и служб-Microsoft-Windows-RemoteDesktopServices-RdpCoreTS
Функция обнаружения характеристик сети отключена. Причина: Reason Code: 2(Server Configuration).. код 101,Модуль RemoteFX,
Функция обнаружения характеристик сети отключена. Причина: Reason Code: 1(Client not supported)..код 101,Модуль RemoteFX,
Источник
Утилита для человеческого shadow подключения неадмина к RDP сессиям пользователей в WinServer 2012R2
Проблема в период карантинной работы предприятия стала следующей: действительно нужно минимизировать количество посещений кабинетов специалистами, обслуживающими и консультирующими по прикладному ПО, да и сказать откровенно, пользователи частенько злоупотребляют помощью специалистов не желая вникать в сам вопрос, мол «придут — помогут — сделают, а я пока покурю/попью кофе и т.п.». Консультация по телефону при совместном доступе к серверу эффективнее, если просматривать удаленный экран.
Уже после «изобретения» нашего велосипеда подвернулась вменяемая информация на тему статьи: RDS Shadow – теневое подключение к RDP сессиям пользователей в Windows Server 2012 R2 или Режим shadow непривилегированного пользователя в windows server или Делегируем управление RDP-сеансами. Все они подразумевают применение консоли, даже с элементами простого диалога.
Вся изложенная ниже информация предназначена для тех, кто нормально переносит ненормальные извращения для получения нужного результата, изобретая ненужные способы.
Чтобы «не тянуть кота за хвост», начну с последнего: велосипед работает у обычного пользователя с помощью утилиты AdmiLink, за что ее автору и спасибо.
I. Консоль и shadow RDP.
1. Узнаем RDP id сессии:
Причем «| findstr Administrator» было удобно только когда ты знаешь, что именно Administrator тебе нужен, либо использовать только первую часть для лицезрения всех залогинившихся на сервере.
2. Подключаемся к этой сессии, при условии что в доменных групповых политиках параметр «Устанавливает правила удаленного управления для пользовательских сеансов служб удаленных рабочих столов» выбран параметр как минимум «Наблюдение за сеансом с разрешения пользователя» (подробнее):
Прошу обратить внимание что в списке будут только логины пользователей.
Повторюсь что без админских прав вы получите следующее:
Но для предварительной отладки программы, о которой пойдет речь, я использовал учетку с правами администратора.
Итак постановка задачи: создание некого простого графического интерфейса для подключения к теневому сенсу пользователя с его разрешения, отправка сообщения пользователю. Среда программирования выбрана Lazarus.
1. Получаем полный доменный список пользователей «логин» — «полное имя» у админа, либо опять таки через консоль:
никто не запрещает даже так:
Скажу сразу, что именно у Lazarus оказалось проблема с обработкой этого файла, так как по умолчанию его кодировка UCS-2, поэтому пришлось просто преобразовать вручную в обычный UTF-8. В структуре файла много табуляций, вернее множество пробелов, которые было решено все-таки программно обработать, рано или поздно задачка с кодировкой будет решена, и файл будет программно обновляться.
Итак, в задумке папка, доступная для пользователей программы, например c:test, в которой будет 2 файла: первый с login и fullname, второй с id_rdp и login пользователей. Далее эти данные обрабатываем как можем:).
А пока для ассоциирования со списком сессий переносим это (login и fullname) содержимое в массив:
Прошу извинения за «много кода», следующие пункты будут лаконичнее.
2. Аналогично методом из предыдущего пункта считываем результат обработки списка в элемент StringGrid, при этом приведу «значимый» кусок кода:
2.1 Получаем актуальный список RDP сессий в файл:
2.2 Обрабатываем файл (указан только значимые строки кода):
3. Непосредственно само подключение при клике на строку с пользователем и номером его сеанса:
4. Сделано еще пару украшательств типа сортировки по клику на radiobutton, и сообщения пользователю, либо всем пользователям.
→ Полный исходный код можно увидеть здесь
III. Применение AdminLink — что я увидел:
Источник
RDS Shadow – теневое подключение к RDP сеансам пользователей в Windows Server 2016/2019
Теневое shadow подключение к RDP/RDS сеансам позволяет администраторам подключиться к сессии любого пользователя для просмотра рабочего стола пользователя и взаимодействия с ним. Режим Remote Desktop Shadowing (теневого подключения) работает во всех современных версиях Windows, начиная с Windows 2012 R2 и Windows 8.1 (кроме версии Windows Server 2012, в которой стек rdp перенесен из режима ядра в пользовательский режим). В этой статье мы рассмотрим, как настроить и использовать RDS Shadowing для подключения к RDP сессиям пользователей в Windows Server 2016 и Windows 10
В Windows Server 2016/Windows 10 в стандартном RDP клиенте (mstsc.exe) есть несколько специальных параметров, которые можно использовать для удаленного теневого (RDS Shadow) подключения к RDP сессии любого пользователя:
Mstsc.exe [/shadow:sessionID [/v:Servername] [/control] [/noConsentPrompt] [/prompt]]
Теневые сеансы можно использовать для подключения к сессиям пользователей на компьютерах и серверах как в домене Active Directory, так и в рабочей группе. Кроме того, не обязательно обладать правами администратора на RDS хосте, на котором работает пользователь. Администраторы могут делегировать полномочия RDS Shadowing любым, даже не-административных учетным записям (об этом ниже).
Использование Remote Desktop Shadow из графического GUI
В списке справа будет перечислен список пользователей у которых имеются сессии на данном RDS сервере. Щелкните правой кнопкой по сессии нужно пользователя, выберите в контекстном меню Shadow (Теневая копия).
Появится окно c параметрами теневого подключения. Возможен просмотр (View) и управление (Control) сессией. Кроме того, можно включить опцию Prompt for user consent (Запрашивать согласие пользователя на подключение к сессии).
Если выбрана опция «Запрашивать согласие пользователя», в сессии у пользователя появится запрос:
Если пользователь подтвердит подключение, то администратор увидит его рабочий стол в режиме просмотра, но не сможет взаимодействовать с ним.
Если пользователь отклонил административное Shadow RDS подключение, появится окно:
Если попытаться подключиться к сессии пользователя без запроса подтверждения, появится ошибка, сообщающая, что это запрещено групповой политикой:
Если вам нужно вести аудит RDS Shadow подключений к пользователям, используйте в качестве фильтра следующие события из журнала Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational:
Групповые политики управления теневыми подключениями к RDS сессиям в Windows
Этой политикой можно настроить следующие варианты теневого подключения RD Shadow:
Вы можете настроить правила удаленного подключения в домене из консоли gpmc.msc с помощью рассмотренного параметра политики, либо групповой политикой, вносящей изменения напрямую в реестр системы (последний вариант позволяет более тонко нацелить политику на компьютеры с помощью Group Policy Item Level Targeting).
Теневое подключение RDS Shadow из PowerShell
Воспользоваться функционалом теневого подключения к сессии пользователя через теневое подключение Remote Desktop Services можно и из Powershell.
На данном сервере мы обнаружили три активных RDP сессии пользователей. Чтобы подключиться к сессии пользователя с ID сессии 3, выполните команду:
Mstsc /shadow:3 /control /noConsentPrompt
Также для получения списка всех RDP сессии на сервере (или десктопной редакции Windows 10 к которой разрешены множественные RDP подключения) можно использовать команду:
На экране отобразится список RDP сессий, их ID и статус: активная сессия (Active) или отключенная (Disconnected).
Для получения списка сессий на удалённом сервере выполните команду:
query session /server:servername
Чтобы подключиться к сессии пользователя на удаленном сервере, используйте команду:
Mstsc /v:rdsh2:3389 /shadow:3 /control
Для более удобного теневого подключения к RDP сессиям пользователей можно использовать следующий скрипт. Скрипт предложит ввести имя удаленного компьютера и выведет список всех пользователей с активными RDP сеансами. Вам нужно будет указать ID сеанса, к которому нужно подключится через Shadow сессию:
shadow.bat
@echo off
set /P rcomp=»Enter name or IP of a Remote PC: «
query session /server:%rcomp%
set /P rid=»Enter RDP user ID: «
start mstsc /shadow:%rid% /v:%rcomp% /control
Можно поместить данный файл в каталог %Windir%System32. В результате для теневого подключения к пользователю достаточно выполнить команду shadow.
@echo off
set /P rcomp=»Enter name or IP of a Remote PC: «
for /f «tokens=3 delims= » %%G in (‘query session console /server:%rcomp%’) do set rid=%%G
start mstsc /shadow:%rid% /v:%rcomp% /control
Также для теневого подключения можно использовать следующий PowerShell скрипт с простым графическим интерфейсом (rdp_shadow_connection.ps1):
Данный скрипт отобразить графическую форму со списком активных RDP сеансов на локальном сервере. Вам останется только выбрать учетную запись пользователя и нажать Connect.
Как разрешить обычном пользователям использовать теневое подключение?
В рассмотренных выше примерах для использования теневого подключения к RDP сессиям пользователей необходимы права локального администратора на RDS сервере. Однако вы можете разрешить использовать теневое (shadow) подключение и для непривилегированных пользователей (не предоставляя им прав локального администратора на компьютере/сервере).
К примеру, вы хотите разрешить членам доменной группы AllowRDSShadow использовать теневое подключение к RDP сессиям. Выполните команду в cmd.exe с правами администратора:
wmic /namespace:\rootCIMV2TerminalServices PATH Win32_TSPermissionsSetting WHERE (TerminalName=’RDP-Tcp’) CALL AddAccount ‘corpAllowRDSShadow’,2
Для решения проблемы нужно установить отдельные обновления:
круто, но ты не написал самого главного — как активировать эту функцию =)
У меня её как не было, так и нет.
Хм, этот функционал идет прямо-из-коробки. Насколько я помню ничего включать не нужно. В статье речь идет о версии Windows 2012 R2, возможно ты проверял на простой Windows Server 2012.
Проверь, что в хелпе команды mstsc.exe /? имеется опция /shadow
да, ты прав. Прошу за невнимательность
Приветствую, протестировал, все прекрасно работает.Спасибо за знакомство.
нет такой функции. сервер 2012 r2
установлены роли — лицензирование удаленных рабочих столов
посредник подключений
узел сеансов удаленных рабочих столов
У меня тоже нет, но у меня не домен, а рабочая группа, а в ней как написано работать не будет.
Спасибо. Получилось. Работает. Но в отличие от 2008R2 не удается сделать сеанс на весь экран. Если у меня с пользователем одинаковые разрешения экрана, то теневой сеанс получается немного ужатым.
Есть такая проблема, но как правило, особых неудобств не вызывает
А если я удалил QuickSessionCollection, как мне можно подключаться к пользовательским сессиям из GUI?
Добрый день. Интересует если возможность также подключатся к пользователю(Shadow), только не на терминальном сервере, а на сервере Windows 2012 R2 Hyper-V. И рабочая станция Windows 7
на сервере Windows 2012 R2 Hyper-V
Hyper-V это роль сервера для организации хоста с вируталками. Зачем туда постоянно подключаться?
Если же надо подключиться к одной из виртуалок, развернутых на Hyper-V, в режиме наблюдения за сеансом пользователя то вариант удаленный помощник.
Если же надо подключиться к одной из виртуалок, развернутых на Hyper-V, в режиме наблюдения за сеансом пользователя то вариант удаленный помощник.
Удаленный помощник менее удобен. У гостевой ОС Windows 8.1 есть такая возможность http://social.technet.microsoft.com/wiki/contents/articles/19804.remote-desktop-services-session-shadowing.aspx, ищу решение как прикрутить в Windows 7
«Remote Server Administration Tools (RSAT) позволяет администраторам управлять ролями и функциями на Windows Server 2008 R2 и Microsoft Server 2012 (Core & Full installation) с компьютера на базе Windows 7 и Windows 8 соответственно. RSAT для Windows 7 может работать только на версиях Enterprise, Professional или Ultimate и позволяет управлять Microsoft Hyper-V Server 2012, однако её функционал будет ограничен, в первую очередь будут недоступны новые настройки сети.»
Еще вариант 5nine Manager 4.0 for Hyper-V.
Так что попробовать поставить а там как получится.
Но все таки решение либо с удаленным помощником, либо с тем же VNC удобнее и проще.
Спасибо за отзыв
Сделал по Вашому совету — удаленный помощник.
Проверил у двух клиентов только что…
Итак — все настройки давно сделаны, но ранее точно помню работало так как надо:
На сервере — члене домена AD (но не скажу точно 2008/2008R2/2012) с ролью RDSH c с настройками как в вашей статье
На сервере RDSH я мог msra /offerRA БЕЗ СОГЛАСИЯ пользователей подключатся к их сеансу. А на клиентах — Win7 — согласие требовало. Но как бы этично — на сервере у них RemoteApp (1C) и там нет личной жизни.
Так — все на так темно, есть светлый лучик
mstsc /shadow:3 /control /noConsentPrompt — и моментально, за 1 секунду видим и управляем пользовательской сессией — да, жаль что в маленьком окошке
В политиках стоит «Full Control without users’s permission» — полный контроль без разрешения пользователя.
Получаем список id сессий командой «qwinsta».
При попытке запустить «mstsc /shadow:3 /control /noConsentPrompt» получаю ошибку: Ошибка теневого доступа Отказано в доступе.
Выполнение команды «mstsc /shadow:3» приводт к такой же ошибке.
Подскажите в какую строну копать?
MSRA работает, но при условии что запрос на помощь примут!
мне хватило добавить /noConsentPrompt и заработало
Проверь. Должно быть так:
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp]
«fInheritShadow»=dword:00000000
«Shadow»=dword:00000002
А как вы из ГУИ запускаете теневое подключение?
Возможно ли такое подключение если у меня есть набор рдп файлов настроенных
Как это осуществить
mstsc /shadow:3 /control /noConsentPrompt — работает так как надо! Итого — осталось с MSRA разобраться, или понять, или простить…
Для удобства/быстроты подключения сделал простой ps-скриптик на раб.столе:
PS
Команда quser выполняется моментально в отличие от долгодумающей Get-RDUserSession
При подключении и отключении от сеанса юзера, экран так же мигает как в 2008r2?
При попытке подключится в сессию пользователя через GUI — выдаёт: Неопознанная ошибка.
Подключаетесь с самого сервера? Права администратора имеются?
Подключаюсь с самого сервера от имени доменного админа. У меня несколько терминальных серверов в разных частях страны. Работает на всех, кроме одного. Такая же ошибка даже если запускать через консоль.
Я бы проверил все касающиеся политики и разрешения в свойствах RDP-Tcp подключения (с помощью консоли tsconfig.msc — https://winitpro.ru/index.php/2016/03/02/zapusk-osnastok-tsadmin-msc-i-tsconfig-msc-v-windows-server-2012-r2/).
Возможно стоит попробовать переставить роль RDS
Чтобы разрешить пользователям (членам определенной группы, например,corpRDSSupport) без прав администратора подключаться к сессии других пользователей через shadow нужно выполнить такую команду:
wmic /namespace:\rootCIMV2TerminalServices PATH Win32_TSPermissionsSetting WHERE (TerminalName=»RDP-Tcp») CALL AddAccount «corpRDSSupport»,2
Отсутствует пункт Shadow — таким образом подключившись, работающего пользователя выкидывает из сеанса. Совсем не айс.
А также нет выбора как подключаемся — для просмотра или управления. Только управление.
Сервер р2
1. В каком состоянии в результирующей политике правило Set rules for remote control of Remote Desktop Services user sessions.
2. У подключаещегося пользователя есть права администратора?
3. Подключаетесь из GUI или консолью mstsc с параметрами?
С гипера под управлением 2012R2 подключаюсь к виртуалке под Win7Pro такой командой(на виртуалке активен консольный сеанс):
mstsc /shadow:1 /v 192.168.222.50 /control /noConsentPrompt /prompt
Получаю сообщение:
«В версии Windows, установленной на этом сервере, не поддерживается теневой доступ пользователей».
Речь о самом гипере, т.е. ему не хватает установленных сервисов рабочих столов? Или чего-то не хватает виртуалке?
Это означает, что в версии Win7 не поддерживается теневой доступ.
И чего ей не хватает? Т.е. для Вин7 этот способ в принципе неработоспособен?
Да в win 7 теневое подключение работать не будет. Используйте Remote Assistance (https://winitpro.ru/index.php/2011/04/14/remote-assistance-v-windows-7/)
Столкнулся с проблемой: после отключения теневого подключения к пользователю, у пользователя исчезает языковая панель и не работает переключение раскладки клавиатуры.
Что можно сделать?
Если не поможет, попробуйте в ветке HKLMSystemCurrentControlSetControlKeyboard Layout создать DWORD параметр IgnoreRemoteKeyboardLayout со значением 1.
У знакомого возникла такая же проблема. Нашёл что лечится удалением/добавлением языка и не нужно сессию завершать. И на форуме MS поднимается эта тема, но решения там нет. По идее должен быть какой-нибудь хотфикс. Лично у меня нет времени разбираться и искать что там залипает/повреждается. Сделал ему маленький скрипт — клац по ярлыку и языки переключаются. Если кто-то может написать официальный запрос в MS — создать трабл-тикет… Это проблема MS.
Тоже проблема с теневым подключение Server 2012 R2 после НГ не можем подключиться к людям, пишет не известная ошибка, все что есть в на всех сайтах все перепробовал, уже не знаю куда копать, может кто разобрался в чем проблема подскажет что нибудь.
Слишком мало информации, чтобы вам что-то подсказать.
Все-таки укажите дословно какая ошибка возникает (код). Есть ли какие-то ошибки/предупреждения в системных журналах, достаточно ли прав у подключающегося пользователя, ставились ли за это время какие-то обновления?
Кому интересно, обновление безопасности KB4056898, оно влияет за теневое подключение.Может и еще одно но это надо тестить если что опишусь
Тоже после последних обновлений на Server 2012 R2 перестал работать теневой доступ. пишет «Неопознанная ошибка». До обновлений все работало. В логах пусто.
Действительно, есть такая проблема: теневое подключение (RDS shadowing) в Windows Server 2012 R2 ломается после установки обновления KB4056898 ( патч Windows против Meltdown и Spectre ).
После установки обновления при попытке подключится к чужой сесии появляется ошибка «Unspecified error» (в логах ошибка STATUS_BAD_IMPERSONATION_LEVEL).
Аналогичная проблема на RDS Windows Server 2016
Для решения проблемы нужно установить фиксы:
для Windows Server 2016 — KB4057142 (от 17 января 2018)
для Windows Server 2012 R2 — KB4057401 (от 17 января 2018)
Подскажите, не подключается к клиентам windows10 1709×64. к 32-м битным все норм. обновления установлены накопительные от июня 2018. куда еще копать? встречал информацию, что после того как янарские обновления сломали RDS shadow, помогает только переустановка windows. это правда?
Проверял у себя — нормально подключается c Win Server 2012R2 на Win10x64 1709 и 1803 и между собой.
Последние кумулятивные обновления установлены? Проверяйте права, доступность портов на сетевом уровне, пробуйте отключить антвирус и файервол.
То же самое Windows 10 pro после обновления то же самое.
Теневое подключение неопознанная ошибка.
Откатить не могу новая система прилитело с месячным обновлением
Есть патч этой проблемы на 10?
Хоть и написано что в рабочей группе работать не будет.
У меня на одном из серверов рабтотает под один пользователем, но не работает под другим, хоть пользователи находятся в идентичных группах…
В чем может быть проблема?
Все выяснил…
нужно повершел с правами админа запускать.
как с одного диспетчера серверов настроить подключение к сеансам пользователей нескольких серверов RDS 2012R2 (брокера нет, просто отдельные сервера)
Не пробовал сам, но в теории у утилиты Mstsc есть параметр /v, позволяющий указать сервер, к которому нужно подключится.
Итоговая команда для теневого подключения можут выглядеть так:
Mstsc /v:msk-rdsh2:3389 /shadow:3 /control
Ругается на:
WHERE (TerminalName=”RDP-Tcp”)
хотя
C:>wmic /namespace:\rootCIMV2TerminalServices PATH Win32_TSPermissionsSetting get TerminalName
выдаёт:
wmic /NameSpace:\rootcimv2TerminalServices PATH WIN32_TSPermissionsSetting.TerminalName=»RDP-TCP» call AddAccount «Domainuser»,X
Старая проблема — движок сайта коверкает кавычки. Заменил их на одинарные. Попробуйте так.
Та же проблема, ни с одинарными, ни с двойными не отрабатывает.
Для справки: Х в конце что значит? И чему может быть равен?
Я поставил 2 — работает
Добрый день! а можете дать информацию про эти скрипты в батнике, я новичок в этом… Правила написания и т. д.
Доброго времени!
Не пойму, в чем сложность…. Просто создаете на компьютере новый файл с расширением bat, открываете его в текстом редакторе и вставляете код скрипта. Сохраните bat файл и запустите его под админом. В консольном окне нужно будет ввести имя сервера и указать ID сесии пользователя, к которому нужно подключиться.
В общем запустите файл, и там разберетесь, ничего сложного.
Пропадает что, поясните?
В журнале System есть событие при подключении:
EventID 26: Application popup: Remote Control Request : CORPusername is requesting to control your session remotely. Do you accept the request?
События отключения не нашел….
Как сделать так что бы можно было дать техподдержке возможность подключаться к определенным сеансам без подтверждения?
К группе пользователей привязать политику Set rules for remote control of Remote Desktop Services user sessions = «Full Control without users’s permission » или в реестр пользователей прописать ключ HKLMSOFTWAREPoliciesMicrosoftWindows NTTerminal ServicesShadow =2.
Ну и подключаться с ключом /noConsentPrompt
Сенансы на RDS сервере?
К группе пользователей я так понимаю тех к кому подключаются. Да на RDS
Да, эта настройка для тех, к кому подключаются теневым сеансом.
Добрый день! Всё прекрасно работает! Но хочется ещё и чтобы звук можно было слышать. Пожалуйста, подскажите какие команды надо написать чтобы слышать звук от динамиков пользователя к которому подсоединился по Вашей методике.
При выполненни команды
wmic /namespace:\rootCIMV2TerminalServices PATH Win32_TSPermissionsSetting WHERE (TerminalName=’RDP-Tcp’) CALL AddAccount ‘corpAllowRDSShadow’,2
вылетает ошибка Description = Generic failure
В чем может быть лажа
Проверьте, что группа corpAllowRDSShadow существует в домене. Если группа не существует, у меня тоже появляется ошибка
Executing (\TS-SRVrootCIMV2TerminalServices:Win32_TSPermissionsSettin
g.TerminalName=»RDP-Tcp»)->AddAccount()
ERROR:
Description = Generic failure
А если ошибка «Win32_TSPermissionsSetting — псевдоним не найден.»?
Похоже поврежден WMI класс или служба. Проверьте целостность ОС. Какая платформа?
Теперь выдает следущее: PS C:Usersololo> wmic /namespace:\rootCIMV2TerminalServices PATH Win32_TSPermissionsSetting WHERE (TerminalName=
‘RDP-Tcp’) CALL AddAccount ‘loloAllow_RDS_Shadow’,2
TerminalName=RDP-Tcp : Имя «TerminalName=RDP-Tcp» не распознано как имя командлета, функции, файла сценария или выполня
емой программы. Проверьте правильность написания имени, а также наличие и правильность пути, после чего повторите попыт
ку.
строка:1 знак:86
+ … Setting WHERE (TerminalName=’RDP-Tcp’) CALL AddAccount ‘loloAllow_RDS_Shadow’,2
+
+ CategoryInfo : ObjectNotFound: (TerminalName=RDP-Tcp:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
можно пример что вводить в cmd?
С делегированием обычным пользователям прав на управление терминальной сессии все понятно. Но как сделать, чтобы эти пользователи не могли подключаться к админским сеансам?
Вы запускаете в powershell, а нужно в cmd.exe
Вот реальный пример
C:UsersAdmin>wmic /namespace:\rootCIMV2TerminalServices PATH Win32_TSPermissionsSetting WHERE (TerminalName=’RDP-Tcp’) CALL AddAccount ‘TESTFirst’,2
Executing (\SERVERrootCIMV2TerminalServices:Win32_TSPermissionsSetting.TerminalName=»RDP-Tcp»)->AddAccount()
Method execution successful.
Out Parameters:
instance of __PARAMETERS
<
ReturnValue = 0;
>;
Интересно выходит:
С Win 7 с установленными патчами к Win 8.1 по Shadow подключась
А вот с Win 8.1 к Win 7 с установленными патчами подключиться не могу. Хотя при этом все настройки в реестре выставлены и я батником вижу сессию, к которой хочу зацепиться
Спасибо большое за статью.
Очень помогла информация о том, как добавить разрешение на теневой доступ для пользователей без прав администратора.
Хочу добавить, что это работает и для доменных и для локальных пользователей/групп терминала.
Например:
Есть терминальный сервер TS в домене kontora.local.
Группу AllowRDSShadow мы можем создавать как на контроллере домена (если пользователь, которому планируется давать теневой доступ, доменный) так и на самом сервере (т.е. создавать локальную группу, если планируется дать теневой доступ к сеансам локальному пользователю.).
В этих случаях параметр AddAccount в представленной команде нужно указывать следующим образом:
— для доменной группы: kontoraAllowRDSShadow
— для локальной группы: TSAllowRDSShadow
После успешного выполнения команды wmic, сервер необходимо перезагрузить.
После добавления/удаления пользователя в/из группы AllowRDSShadow для отслеживания эффекта этому пользователю необходимо перезайти в сеанс, чтобы применились изменения списка групп.
Не удаётся подключаться к «свёрнутым» сеансам. То есть если пользователь просто свернул терминальное подключение, не блокируя и не закрывая его, то при попытке перехвата просто отображается серый экран. Как только окно RDP-подключения на пользовательском ПК разворачивается, сразу появляется возможность управления.
Никто не сталкивался? Как исправить?
На клиентской машине необходимо отключить подавление графики в свёрнутом режиме:
В разделы
HKEY_LOCAL_MACHINESoftwareMicrosoftTerminal Server Client
HKEY_LOCAL_MACHINESoftwareWow6432NodeMicrosoftTerminal Server Client
Добавить параметр DWORD с именем:
RemoteDesktop_SuppressWhenMinimized
Возможные значения:
1 = Suppress when minimized
2 = Do not suppress when minimized
Соответственно, ставим 2 и радуемся как я)
А есть подобное в GPO?
Обнаружилась ещё одна проблема.
Теневое подключение нормально не работает в случае мультимониторной конфигурации компьютера, если монитор, на котором открыто подключение по rdp, имеет вертикальную (книжную/портретную) ориентацию.
В этом случае теневое подключение открывается, и на чёрном фоне окна теневого подключения начинают появляться артефакты, какие часто бывают на выходящих из строя видеокартах. По этим артефактам видно, что система пытается построить изображение, но оно не перевёрнутое. Ожидание ни к чему не приводит.
Самое главное, что это не работает только в Windows 10. В Windows 7 все отлично перехватывается во всех ориентациях экрана. Пробовали разные версии драйверов, разные видеокарты и пр. На десятке не работает.
Если у кого-то есть возможность проверить данную ситуацию или вообще имеются какие-то мысли, прошу отозваться.
Не пробовал подключение к ПК с верткальной ориентацией монитора, но с мультимониторными компьютерами под Windows 10 действительно есть проблемы. То изображение слишком мелкое, то какие-то баги с картинкой.
Подскажите в чем проблема? Есть TS на базе WS2012R2, контроллер домена WS2008R2. На контроллере создана группа и в нее добавлен пользователь для теневого подключения на TS команда на добавление группы прошла успешно.
Теперь вопрос.
На машине с Win7Pro установлен RSAT (пользователь из той самой группы), там все сеансы видны но вот пункт меню «Удаленное управление» не активен. Помогите куда копать?
RSAT не причем. Вы сможете подключиться через теневое подключение к TS серверу на WS2012R2 с ПК под Windows 7, если установили на нее RDP клиент 8.1. Для подключения используйте команду mstsc.exe, а не оснаску TSADMIN.msc.
Не тестировал, но мне кажется, не получиться подключить в обратном направлении (Win2012r2->Win7).
RDP 8.1 на Win7 установлен, и через mstsc.exe подключение проходит, но некоторым ЛЮДЯМ это не удобно и они хотят через tsadmin, а там как раз пункт меню не активен.
$Header = «SESSIONNAME», «USERNAME», «ID», «STATUS»
$dlgBttn = New-Object System.Windows.Forms.Button
$dlgBttn.Text = ‘Control’
$dlgBttn.Location = New-Object System.Drawing.Point(15,10)
$dlgForm.Controls.Add($dlgBttn)
Добрый день!
Под русскоязычную версию поправил тут qwinsta.exe | findstr «Активно».
Скрипт запускается, но табличная часть пустая.
Можете помочь?
2var. Думаю у вас проблема с кодировкой. Попробуйте сохранить файл PowerShell скрипта в кодировке UTF8.
Не выходит каменный цветок ((
Добрый день!
В варианте Windows Server 2016 без Active Directory (обычная рабочая группа) все прекрасно работает через два файла:
Управление RDP сессией.bat
@echo off
query session
set /P rid=»Enter RDP user ID: »
start mstsc /shadow:%rid% /control /noConsentPrompt
Просмотр RDP сессии.bat
@echo off
query session
set /P rid=»Enter RDP user ID: »
start mstsc /shadow:%rid% /noConsentPrompt
Может кому пригодится. Спасибо за подсказки в комментариях (взял ваш опыт и собрал в один пост)!
Исправил:
Просмотр RDP сессии.bat
@echo off
query session
set /P rid=»Enter RDP user ID: »
start mstsc /shadow:%rid% /noConsentPrompt
Что-то я уже все перепробовал. Может что упустил? Что еще надо соблюсти чтобы это работало?
Тоже рабочая группа, домена нет.
Пользователи просто подключаются по rdp к серверу.
Смотрю по quser ID пользователя это же оно?
батник такой:
@echo off
query session
set /P rid=19:
start mstsc /shadow:%rid% /noConsentPrompt
Выдает Ошибка теневого доступа: Указанный сеанс не подключен
хотя он подключен.
Разрешил еще в gpo как в статье.
Попробуйте такой код для теневого подключения:
query session
set rid=19
start mstsc /shadow:%rid% /noConsentPrompt
А так отказано в доступе выдает.
А все нормально, спасибо 🙂
Надо его от админа запускать 🙂
Здравствуйте!
Мне схема работы на Windows Server 2008R2 нравилась больше:
1. Можно было отправить сразу нескольким пользователям сообщения
2. Можно было отключитьзавершить сенас сразу группы пользователей.
Такой возможности в Windows Server 2012R2 через GUI я не увидел даже с правами админа. Или я что-то делаю не так?
Добрый день.
Подскажите, пожалуйста, а в 2012 вообще никак нельзя подключиться к сессии пользователя? В групповой политике включено «полный контроль без разрешения пользователя». По gpresult показывает что политика работает. Но ничего не происходит — при правом щелчке по пользователю в диспетчере задач можно выбрать только «подключить» но тогда он запрашивает пароль пользователя.
Сервер просто 2012. не R2.
В Windows Server 2012 (не R2) теневое подключение не работает by design.
Спасибо за ответ. Подскажите, пожалуйста, получается что это в принципе невозможно или есть какие-либо варианты (патчи, заплатки, утилиты, etc)?
Скорее всего теневое подключение на 2012 не заработает ни при каких обстоятельствах. Обновляйтесь до более новой версии Windows Server. Либо посмотрите вариант с Remote Assistance, возможно вам получится как-то его задействовать в вашей конфигурации.
Прошу помощи, а то уже впадаю в отчаяние. Есть ферма из 4х хостов, есть 2 брокера (схема с повышенной доступностью). пробую из-под прав доменного админа. Запускаю шелл с повышенными правами. Команда Get-RDUserSession выдает список по всем хостам, все ок.
вот допустим есть вот такой сеанс:
UserName UnifiedSessionId SessionState HostServer ApplicationType
——— —————- ———— ———- —————
user15 281 STATE_ACTIVE term2.local rdpinit.exe
Запускаю «Mstsc /shadow:281 /control», получаю ошибку «Ошибка теневого доступа. Идентификация сеанса не определяет допустимый сеанс»/. Из GUI все работает ок.
не подскажите куда копать?
Вы локаьно на сервере подключение запускаете? Попробуйте имя сервера указать:
start mstsc /v:term2.local /shadow:281 /noConsentPrompt
запускаю с брокера. в любом другом месте невозможно получить список всех сессий фермы (в ферме 4 терминальных хоста). конечная цель дать возможность разработчикам подключаться к пользователям для помощи. Соответственно, они не могут бегать по всем 4м серверам в поисках сессии нужного пользователя.
PS потрите полное доменное имя в моем и вашем сообщениях, усталый вечером был, не усмотрел. спасибо
слушайте, а помогло указание имени сервера.
Т.е. сперва я получаю список сессий, в списке видно на какой терминалке сеанс. затем запускаю mstsc /v:сервер /shadow:xxx /control и вуаля!
Спасибо вам огромное за сайт и статьи!
осталось разобраться как сделать так, чтобы работало не только с брокера и не только от админа, продолжаю копать
Здраствуйте!
когда пользователю разрешено теневое подключение, как можно запретить подключатся к сессиям Администратора, или же скрыть сессии?
Если вы разрешили пользователям подключаться к rds сессиям других пользователей (зачем?) с помощью команды
wmic /namespace:\rootCIMV2TerminalServices PATH Win32_TSPermissionsSetting WHERE (TerminalName=’RDP-Tcp’) CALL AddAccount ‘corpAllowRDSShadow’,2
Как самый простой вариант для ограничения теневых подключения к сессиям пользователей можно использовать только подключение с появлением запроса (подтверждением) — Full Control with users’s permission.
Либо настройка разных политик с настройками Set rules for remote control of Remote Desktop Services user sessions для разных групп пользователей.
Вам нужно на админа применить отдельную локальную политику с нужными настройками Full Control with users’s permission. Посмотрите здесь:
_https://superuser.com/questions/134066/how-to-apply-group-policy-settings-to-specific-local-accounts-in-windows
мне кажется это вообще не то.
там ограничения идут на самого Админа, а мне не нужно его ограничивать. мне нужно ограничить к НЕМУ доступ в режиме Shadow
Существует ли возможность предоставить пользователям без привилегий администратора права на ЗАВЕРШЕНИЕ удалённого сеанса?
Опытным путём пришёл к тому, что оказывается добавление юзера в группу AllowRDSShadow, разрешает ему не только теневое подключение но и выполнение команды logoff, что очень радует. Вопрос снят.
Подключение к shadow rdp нормально работает в локальной сети. Можно ли подключиться к ПК за nat? на маршрутизаторе стоит переадресация 2014 порт на 3389. По rdp подключаюсь нормально, а вот shadow rdp не работает
Снаружы подключаться через теневое подключение не вариант — нужно открывать rpc диапазон. Совсем несекьюрно.
Как компромиссный вариант, держать за nat отдельный серверкомпьютер с доступным rdp портом, и с него уже подключаться через shadow внутрь сети.
Доброго времени суток.У меня Windows Server 2012 r2.
Пытаюсь подключиться к пользователю с помощью Mstsc /shadow:id /noConsentPrompt все ок, но это просто просмотр.А каким образом к нему подключиться, чтобы не спрашивало его и был доступ к управлению,а не только просмотр?
Для подключения в режиме управления теневой сессией и без запроса пользователя используйте команду:
Mstsc /shadow:id /noConsentPrompt /control
Спасибо большое) помогло!Я думал, использовать параметры /noConsentPrompt и /control нельзя вместе.
Так и не получилось
Ошибка
«В версии Windows, установленной на этом сервере, не поддерживается теневой доступ пользователей»
Скорее всего у вас домашняя версия Windows (Home / Single Language) или что-то подобное. Вам скорее всего придется пользоваться чем то из этого : https://winitpro.ru/index.php/2015/09/02/neskolko-rdp-sessij-v-windows-10/
Такая же ерунда, на одних машинах работает на других нет, наблюдается проблема на версиях Pro как 8.1 так и 10, найти сходу различие между машинами на которых работает и на которых пишет ошибку, не смог…
Настройки параметра Shadow в реестре проверяли? RDP везде включен?
Да, сравнивал, на тех куда подключается и куда нет, одинаковые, получают из одной и той же GP.
Не знаю, будет ли работать в Windows Server 2012 Remote Assistance, но как вариант — попробуйте. Через теневое подключение получается никак.
Пробовал, не канает, тк комп не в домене. А поднимать домен, где 80 процентов машин на линуксе, нафиг надо. Вообщем видимо никаких вариантов нету. Кроме как непосредственно подключаться к машине пользователя прогами типа NoMachine и RMS
wmic /namespace:\rootCIMV2TerminalServices PATH Win32_TSPermissionsSetting WHERE (TerminalName=’RDP-Tcp’) CALL AddAccount ‘corpAllowRDSShadow’,2
Да! Это работает на конкретном компьютере после его перезагрузки (перезапуска службы RDP)
1. А как это включить на всех компьютерах домена?
2. Как просмотреть список «назначенных» на конкретном компе групп которым разрешен Shadow?
1) Логон скриптом
2) Не нашел вменяемого способа посмотреть текущий состав групп с правами Shadow. Пришлось запускать WMI explolore и руками смотреть содержимое класса Win32_TSPermissionsSetting
Вот есть еще vbs скрипт для сброса настроек на дефолтные:
set RDPObj = GetObject(«winmgmts:!Win32_TSPermissionsSetting.TerminalName=’Console’»)RDPobj.RestoreDefaults
или через командную строку wmic:
PATH WIN32_TSPermissionsSetting.TerminalName=»Console» call RestoreDefaults
Добрый день!
Всё по статье получилось, работает.
Но вот необходимо, чтобы и звук весь пробрасывался через такое «тихое незаметное» подключение (крысу ловим)
Есть ли возможность?
Политиками в Device and Resource Redirection включено редирект и запись звука, но не работает
Возможно ли вообще?
Не уверен, что со теневое подключение в принципе умеет забирать звук. На стандартных настройках это не работает. Вероятно вам что-то более продвинутое нужно…
Аудит подключений RDS Shadow
Журнал: Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational
Event id 20510: Предоставлено разрешение на теневое управление
Event id 20506: Запущено теневое управление сеансом
Event id 20507: Остановлено теневое управление сеансом
В неактивную rds сессию не зайти.
Давно не пользуюсь теневым режимом.
Есть более удобная вещь.
Litemanager server ставишь на сервер.
Litemanager viewer добавляешь сервер.
Подключается и выбираешь в списке нужного пользователя. Удобно с удаленного компа подключаться. Плюс куча всего полезного ещё.
Соответствующий раздел групповых политик:
Конфигурация компьютера — Политики — Административные шаблоны — Компоненты Windows — Службы удаленных рабочих столов — Узел сеансов удаленных рабочих столов — Подключения — Устанавливает правила удаленного управления для пользовательских сеансов служб удаленных рабочих столов
Параметр должен быть включён в состояние: Полный контроль без разрешения пользователя.
Спасибо, но этот параметр политики выставил сразу же, но проблема походу не в нем.
В новых виндах запретили подключение без запроса.
Еще одно «улучшение».
Случайно не нашлось решения для новых ОС? уже второй день мучаю
Напишите, в каких версиях теневое подключение работает не так, как раньше.
В 2019 вроде не было изменений…
Речь о WS2022/Windows 11?
В этой версии — подключение без подтверждения не работает.
Версия: 10.0.19043.1052 (21H1)
Кто нибудь знает Win10 — где теневое подключение работает без разрешения пользователя?
1. Есть ли команда для пользователя с которым было установлено теневое подключение типа quser, чтобы можно было понять за ним наблюдают или нет?
2. Есть ли для телефона клиентское ПО с помощью которого можно было бы совершить теневое подключение к удалённому компьютеру?
Скрипт хороший
Но кто поможет подправить немного его
Задача в следующем
есть список с именами компьютеров к которым пользователи могут подключаться, и нужно с каждого узнать какой сеанс у пользователя — консоль или rdp.
Как вот дописать цикл чтобы проверка была по всем компам со списка а потом вывела результат сюда же в окно
Привет всем! Подскажите:
AD, терминалки, в GPO прописано управление сеансами пользователя без подтверждения
При теневом подключении к сеансу, не появляется окно с сансом,
если сделать запрос на подключение с разрешения пользователя появляется окно с разрешением после нажатия ДА пользователем тоже не появляется окно с сеансом, как пофиксить?
Вопрос снят, пытался подключится без установленной службы удаленных рабочих столов
# Define RDS Host here
Param(
[array]$RDSServerName
)
[void] [System.Reflection.Assembly]::LoadWithPartialName(«System.Windows.Forms»)
[void] [System.Reflection.Assembly]::LoadWithPartialName(«System.Drawing»)
$ApplyButton = New-Object System.Windows.Forms.Button
$ApplyButton.Location = New-Object System.Drawing.Size(45,400)
$ApplyButton.Size = New-Object System.Drawing.Size(80,23)
$ApplyButton.Text = «Выполнить»
$objForm.Controls.Add($ApplyButton)
$CancelButton = New-Object System.Windows.Forms.Button
$CancelButton.Location = New-Object System.Drawing.Size(180,400)
$CancelButton.Size = New-Object System.Drawing.Size(75,23)
$CancelButton.Text = «Отмена»
$CancelButton.Add_Click(<$objForm.Close()>)
$objForm.Controls.Add($CancelButton)
$RefreshButton = New-Object System.Windows.Forms.Button
$RefreshButton.Location = New-Object System.Drawing.Size(315,400)
$RefreshButton.Size = New-Object System.Drawing.Size(75,23)
$RefreshButton.Text = «Обновить»
$objForm.Controls.Add($RefreshButton)
$RefreshButton.Add_Click(
<
UpdateList
>)
$objListBox = New-Object System.Windows.Forms.ListBox
$objListBox.Location = New-Object System.Drawing.Size(10,50)
$objListBox.Size = New-Object System.Drawing.Size(450,20)
$objListBox.Height = 220
$objListBox.SelectionMode = «MultiExtended»
$objLabelMessage = New-Object System.Windows.Forms.Label
$objLabelMessage.Location = New-Object System.Drawing.Size(10,315)
$objLabelMessage.Size = New-Object System.Drawing.Size(280,20)
$objLabelMessage.Text = «Сообщение для отправки:»
$objForm.Controls.Add($objLabelMessage)
$objLabelTime = New-Object System.Windows.Forms.Label
$objLabelTime.Location = New-Object System.Drawing.Size(10,270)
$objLabelTime.Size = New-Object System.Drawing.Size(200,20)
$objLabelTime.Text = «Задержка выполнения (сек):»
$objForm.Controls.Add($objLabelTime)
$objWaitforText = New-Object System.Windows.Forms.TextBox
$objWaitforText.Location = New-Object System.Drawing.Size(10,290)
$objWaitforText.Size = New-Object System.Drawing.Size(70,20)
$objForm.Controls.Add($objWaitforText)
Function MirrorSession <
# Проверка версии mstsc version должно быть больше 6.3.9600
Function ScriptActions <
#This function contains the actions to take depending on the selections set by the user
#Imports Remote Desktop module
Import-Module RemoteDesktop
Источник