RDS Shadow – теневое подключение к RDP сеансам пользователей в Windows Server 2016/2019
Источник: winitpro.ru
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 (Теневая копия).
Shadow Error - The specified session is not connected.
Появится окно c параметрами теневого подключения. Возможен просмотр (View) и управление (Control) сессией. Кроме того, можно включить опцию Prompt for user consent (Запрашивать согласие пользователя на подключение к сессии).
Если выбрана опция «Запрашивать согласие пользователя», в сессии у пользователя появится запрос:
Запрос на удаленное наблюдение/ Remote Monitoring Request Winitpro\administrator запрашивает удаленный просмотр вашего сеанса. Вы принимаете этот запрос?
Winitpro\administrator is requesting to view your session remotely. Do you accept the request?
Если пользователь подтвердит подключение, то администратор увидит его рабочий стол в режиме просмотра, но не сможет взаимодействовать с ним.
Если пользователь отклонил административное 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 в ветке HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal 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:\\root\CIMV2\TerminalServices PATH Win32_TSPermissionsSetting WHERE (TerminalName='RDP-Tcp') CALL AddAccount 'corp\AllowRDSShadow',2
STATUS_BAD_IMPERSONATION_LEVEL
). Аналогичная проблема возникала и на RDS ферме на базе Windows Server 2016.Для решения проблемы нужно установить отдельные обновления:
- для Windows Server 2016 — KB4057142 (от 17 января 2018)
- для Windows Server 2012 R2 — KB4057401 (от 17 января 2018)
круто, но ты не написал самого главного — как активировать эту функцию =)
У меня её как не было, так и нет.
Хм, этот функционал идет прямо-из-коробки. Насколько я помню ничего включать не нужно. В статье речь идет о версии Windows 2012 R2, возможно ты проверял на простой Windows Server 2012.
Проверь, что в хелпе команды mstsc.exe /? имеется опция /shadow
да, ты прав. Прошу за невнимательность
Приветствую, протестировал, все прекрасно работает.Спасибо за знакомство.
нет такой функции. сервер 2012 r2
установлены роли — лицензирование удаленных рабочих столов
посредник подключений
узел сеансов удаленных рабочих столов
У меня тоже нет, но у меня не домен, а рабочая группа, а в ней как написано работать не будет.
Спасибо. Получилось. Работает. Но в отличие от 2008R2 не удается сделать сеанс на весь экран. Если у меня с пользователем одинаковые разрешения экрана, то теневой сеанс получается немного ужатым.
Есть такая проблема, но как правило, особых неудобств не вызывает
А если я удалил QuickSessionCollection, как мне можно подключаться к пользовательским сессиям из GUI?
Добрый день. Интересует если возможность также подключатся к пользователю(Shadow), только не на терминальном сервере, а на сервере Windows 2012 R2 Hyper-V. И рабочая станция Windows 7
Hyper-V это роль сервера для организации хоста с вируталками. Зачем туда постоянно подключаться?
Если же надо подключиться к одной из виртуалок, развернутых на Hyper-V, в режиме наблюдения за сеансом пользователя то вариант удаленный помощник.
«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) и там нет личной жизни.
Сейчас : изменилась версия — Server 2012R2 msra , настройки GPO в домене и настройки Локальной политики на самом Server 2012R2 RDSH позволяют «Полный контроль без разрешения клиента», но так как надо — без уведомления и разрешения работает только из GUI (Диспетчер серверов-Службы удаленных рабочих столов-Коллекции-Подключения нужный сеанс — правой клавишей Теневая копия)
Почему,
черт поберикарамба!, это перестал работать через msra работает, но запрашивает уведомление о подключений пользователя и потом разрешение на управление… то есть я запускаю в RDP сессии находясь по RDP на RDSH msra подключаюсь к нему-же (к серверу на котором нахожусь) выбираю сеанс пользователя — и у пользователя выскакивает — «Разрешить пользователю Админ подключение к вашему компьютеру»И совсем грустно, что mstsc /shadow:3 /control не работает — Ошибка теневого доступа Отказано в доступе.
Не понимаю. Ведь из GUI работает !!!
Так — все на так темно, есть светлый лучик
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_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]
"fInheritShadow"=dword:00000000
"Shadow"=dword:00000002
А как вы из ГУИ запускаете теневое подключение?
Возможно ли такое подключение если у меня есть набор рдп файлов настроенных
Как это осуществить
mstsc /shadow:3 /control /noConsentPrompt — работает так как надо! Итого — осталось с MSRA разобраться, или понять, или простить…
Для удобства/быстроты подключения сделал простой ps-скриптик на раб.столе:
Write-Host »
»
quser
$user = Read-Host -Prompt »
Enter ID»
mstsc /shadow:$user /control /noConsentPrompt
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
Чтобы разрешить пользователям (членам определенной группы, например,corp\RDSSupport) без прав администратора подключаться к сессии других пользователей через shadow нужно выполнить такую команду:
wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TSPermissionsSetting WHERE (TerminalName=»RDP-Tcp») CALL AddAccount «corp\RDSSupport»,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/)
Столкнулся с проблемой: после отключения теневого подключения к пользователю, у пользователя исчезает языковая панель и не работает переключение раскладки клавиатуры.
Что можно сделать?
Если пользователь после отключения руками запустит ctfmon.exe, панель возвращается?
Попробуйте в панели управления того пользователя, к которому подключаетесь выставить галку Control Panel\All Control Panel Items\Language\Advanced settings -> Let me set a different input method for each app window.
Если не поможет, попробуйте в ветке HKLM\System\CurrentControlSet\Control\Keyboard 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:\\root\CIMV2\TerminalServices PATH Win32_TSPermissionsSetting get TerminalName
выдаёт:
wmic /NameSpace:\\root\cimv2\TerminalServices PATH WIN32_TSPermissionsSetting.TerminalName="RDP-TCP" call AddAccount "Domain\user",X
Старая проблема — движок сайта коверкает кавычки. Заменил их на одинарные. Попробуйте так.
Та же проблема, ни с одинарными, ни с двойными не отрабатывает.
Для справки: Х в конце что значит? И чему может быть равен?
Я поставил 2 — работает
Добрый день! а можете дать информацию про эти скрипты в батнике, я новичок в этом… Правила написания и т. д.
Доброго времени!
Не пойму, в чем сложность…. Просто создаете на компьютере новый файл с расширением bat, открываете его в текстом редакторе и вставляете код скрипта. Сохраните bat файл и запустите его под админом. В консольном окне нужно будет ввести имя сервера и указать ID сесии пользователя, к которому нужно подключиться.
В общем запустите файл, и там разберетесь, ничего сложного.
win 10 -> win10 на некоторых компах работает на других после попытки подключения все пропадает, подскажите что могло случиться?
Какие логи смотреть?
Пропадает что, поясните?
В журнале System есть событие при подключении:
EventID 26: Application popup: Remote Control Request : CORP\username 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 » или в реестр пользователей прописать ключ HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\Shadow =2.
Ну и подключаться с ключом /noConsentPrompt
Сенансы на RDS сервере?
К группе пользователей я так понимаю тех к кому подключаются. Да на RDS
Да, эта настройка для тех, к кому подключаются теневым сеансом.
Добрый день! Всё прекрасно работает! Но хочется ещё и чтобы звук можно было слышать. Пожалуйста, подскажите какие команды надо написать чтобы слышать звук от динамиков пользователя к которому подсоединился по Вашей методике.
При выполненни команды
wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TSPermissionsSetting WHERE (TerminalName=’RDP-Tcp’) CALL AddAccount ‘corp\AllowRDSShadow’,2
вылетает ошибка Description = Generic failure
В чем может быть лажа
Server 2012R2
Проверьте, что группа corp\AllowRDSShadow существует в домене. Если группа не существует, у меня тоже появляется ошибка
Executing (\\TS-SRV\root\CIMV2\TerminalServices:Win32_TSPermissionsSettin
g.TerminalName="RDP-Tcp")->AddAccount()
ERROR:
Description = Generic failure
А если ошибка «Win32_TSPermissionsSetting — псевдоним не найден.»?
Похоже поврежден WMI класс или служба. Проверьте целостность ОС. Какая платформа?
Win Server 12R2
Теперь выдает следущее: PS C:\Users\ololo> wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TSPermissionsSetting WHERE (TerminalName=
‘RDP-Tcp’) CALL AddAccount ‘lolo\Allow_RDS_Shadow’,2
TerminalName=RDP-Tcp : Имя «TerminalName=RDP-Tcp» не распознано как имя командлета, функции, файла сценария или выполня
емой программы. Проверьте правильность написания имени, а также наличие и правильность пути, после чего повторите попыт
ку.
строка:1 знак:86
+ … Setting WHERE (TerminalName=’RDP-Tcp’) CALL AddAccount ‘lolo\Allow_RDS_Shadow’,2
+ ~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (TerminalName=RDP-Tcp:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Через cmd надААА
можно пример что вводить в cmd?
С делегированием обычным пользователям прав на управление терминальной сессии все понятно. Но как сделать, чтобы эти пользователи не могли подключаться к админским сеансам?
Вы запускаете в powershell, а нужно в cmd.exe
Вот реальный пример
C:\Users\Admin>wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TSPermissionsSetting WHERE (TerminalName='RDP-Tcp') CALL AddAccount 'TEST\First',2
Executing (\\SERVER\root\CIMV2\TerminalServices: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 в представленной команде нужно указывать следующим образом:
— для доменной группы: kontora\AllowRDSShadow
— для локальной группы: TS\AllowRDSShadow
После успешного выполнения команды wmic, сервер необходимо перезагрузить.
После добавления/удаления пользователя в/из группы AllowRDSShadow для отслеживания эффекта этому пользователю необходимо перезайти в сеанс, чтобы применились изменения списка групп.
Не удаётся подключаться к «свёрнутым» сеансам. То есть если пользователь просто свернул терминальное подключение, не блокируя и не закрывая его, то при попытке перехвата просто отображается серый экран. Как только окно RDP-подключения на пользовательском ПК разворачивается, сразу появляется возможность управления.
Никто не сталкивался? Как исправить?
Вопрос снят.
На клиентской машине необходимо отключить подавление графики в свёрнутом режиме:
В разделы
HKEY_LOCAL_MACHINE\Software\Microsoft\Terminal Server Client
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Terminal 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, а там как раз пункт меню не активен.
Теневое подключение это функционал Windows 8.1 (2012 R2) и выше. Подключение к терминальной сесии через tsadmin от Windows 7 (2008 R2), это немного другая технология.
Вам проще сделать для пользователя простенький PowerShell скрипт для вывода всех терминальных сесий. Затем пользователь просто выбирает из списка сенанс, к которому нужно подключиться.
Пример скрипта:
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()
Спасибо, попробую.
Добрый день!
Под русскоязычную версию поправил тут qwinsta.exe | findstr «Активно».
Скрипт запускается, но табличная часть пустая.
Можете помочь?
2var. Думаю у вас проблема с кодировкой. Попробуйте сохранить файл PowerShell скрипта в кодировке UTF8.
Не выходит каменный цветок ((
надо отредактировать строку
$(qwinsta.exe |?{$_ -match "Активно"}) -replace "^[\s>]" -replace "\s+",","| ConvertFrom-Csv -Header $Header| ForEach-Object {
Помогите. Не видит сесий. Server2019
Добрый день!
В варианте 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 как в статье.
Что не так то?