1000+ инструкций в блоге SoftComputers
0 0 голоса
Рейтинг

Функция RDS Shadow (теневое подключение) в Windows Server и Windows 10 позволяет администраторам подключаться к активным RDP-сеансам пользователей для просмотра или управления их рабочим столом. Эта возможность доступна начиная с Windows Server 2012 R2 и Windows 8.1 (кроме Windows Server 2012 из-за изменений в стеке RDP). В статье описано, как настроить и использовать RDS Shadowing через mstsc.exe, Server Manager, PowerShell и скрипты, а также как делегировать права обычным пользователям.

Приобрести оригинальные ключи активации Windows Server можно у нас в каталоге от 1190

Что такое RDS Shadowing?

RDS Shadow позволяет администратору подключиться к RDP-сеансу пользователя для наблюдения или управления. Основные параметры команды mstsc.exe для теневого подключения, например:

Mstsc.exe [/shadow:sessionID [/v:Servername] [/control] [/noConsentPrompt] [/prompt]]

/shadow:sessionID: подключение к сеансу по ID

/v:servername: имя RDS-сервера (по умолчанию — локальный хост)

/control: включение управления (мышь, клавиатура)

/noConsentPrompt: подключение без запроса согласия пользователя

/prompt: использование другой учетной записи для подключения

Теневое подключение работает в домене Active Directory и рабочих группах. Права администратора на RDS-хосте не обязательны — их можно делегировать.

Подключение через графический интерфейс

1. Откройте Server Manager на RDS-сервере.

2. Перейдите в «Remote Desktop Services» -> выберите коллекцию (например, QuickSessionCollection).

3. В списке пользователей щелкните правой кнопкой по активной сессии и выберите «Shadow» (Теневая копия).

4. Укажите режим:

View: только просмотр

Control: управление сеансом

Prompt for user consent: запрос согласия пользователя

Если сеанс в состоянии «Disconnected», подключение невозможно, появится ошибка:

«The specified session is not connected.»

При включенном запросе согласия пользователь увидит уведомление:

«softcomputers\administrator запрашивает удаленный просмотр вашего сеанса. Вы принимаете этот запрос?»

Если пользователь подтвердит подключение, то администратор увидит его рабочий стол в режиме просмотра, но не сможет взаимодействовать с ним.

Если пользователь отклонил административное Shadow RDS подключение, появится окно:

Для выхода из теневого режима нажмите Alt+* (на клиенте) или Ctrl+* (на сервере).

Настройка групповых политик для RDS Shadow

Настройка теневых подключений выполняется через групповую политику:

Политики -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Подключения -> Настройка правил удаленного управления сеансами служб удаленных рабочих столов

Соответствующий параметр реестра:

HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\Shadow (DWORD).

Варианты настройки:

0: Удаленное управление запрещено

1: Полный контроль с разрешения пользователя

2: Полный контроль без разрешения

3: Просмотр с разрешения пользователя

4: Просмотр без разрешения

Примените политику:

gpupdate /force

Для точечной настройки используйте Group Policy Item Level Targeting.

Аудит теневых подключений

Для отслеживания RDS Shadow подключений включите журнал:

Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational.

Ключевые события:

Event ID 20508: Разрешение на просмотр

Event ID 20503: Начало теневого сеанса

Event ID 20504: Завершение теневого сеанса

Теневое подключение через PowerShell

1. Получите список активных RDP-сеансов:


Get-RDUserSession | Format-Table Username, UnifiedSessionId, SessionState, HostServer, ApplicationType -GroupBy SessionState

2. Подключитесь к сеансу (например, ID 3):

mstsc /shadow:3 /control /noConsentPrompt

3. Для удаленного сервера:

mstsc /v:rdsh2:3389 /shadow:3 /control

Альтернативные команды для списка сеансов:


quser
qwinsta
query session /server:servername

Скрипты для упрощения подключения

Batch-скрипт (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.

PowerShell-скрипт с GUI (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)
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)
}
})
$dlgForm.ShowDialog()

Для запуска скрипта настройте политику выполнения PowerShell:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned

Данный скрипт отобразить графическую форму со списком активных RDP сеансов на локальном сервере. Вам останется только выбрать учетную запись пользователя и нажать Connect.

Делегирование прав на RDS Shadow

Чтобы разрешить теневые подключения непривилегированным пользователям (например, группе corp\AllowRDSShadow):

1. Запустите командную строку с правами администратора.

2. Выполните:


wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TSPermissionsSetting WHERE (TerminalName='RDP-Tcp') CALL AddAccount 'corp\AllowRDSShadow',2

Значение 2 соответствует полному контролю.

Рекомендации

— Используйте /noConsentPrompt только при наличии соответствующих политик, чтобы избежать ошибок.

— Настройте аудит событий для отслеживания теневых подключений.

— Для отключенных сеансов сначала подключите пользователя к активной сессии.

— В доменной среде применяйте GPO для централизованного управления настройками.

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

RDS Shadow — мощный инструмент для управления RDP-сеансами в Windows Server 2016 и Windows 10. Используйте mstsc.exe, Server Manager или PowerShell для подключения, настраивайте политики для контроля доступа и делегируйте права непривилегированным пользователям. Скрипты упрощают процесс, делая управление сеансами удобным и эффективным.

author avatar
copywriter
banner for Windows Server
Лицензионный ключ активации Windows Server от
1190 ₽ Купить
0 0 голоса
Рейтинг
Подписаться
Уведомить о
guest
     
0 отзывов
475
Межтекстовые Отзывы
Посмотреть все комментарии