Computer >> 컴퓨터 >  >> 체계 >> Windows Server

RDS Windows Server 2016/2019에서 사용자의 RDP 세션을 섀도잉(원격 제어)하는 방법은 무엇입니까?

그림자 세션 모드 RDS 관리자가 사용자의 데스크톱을 보고 상호 작용할 수 있습니다. 원격 데스크톱 섀도잉 모드는 Windows Server 2012 R2 및 Windows 8.1부터 시작하는 모든 최신 버전의 Windows에서 작동합니다(RDP 스택이 커널에서 사용자 모드로 전송되기 때문에 Windows Server 2012 제외). 이 기사에서는 RDS 섀도잉을 구성하고 사용하여 Windows Server 2016 및 Windows 10에서 활성 RDP 사용자 세션을 연결하고 관리하는 방법을 살펴보겠습니다.

내용:

  • Windows RDP 클라이언트의 그림자 연결 옵션(mstsc.exe)
  • Windows GUI에서 원격 데스크톱 섀도우 사용
  • GPO를 사용하여 Windows에서 RDS 섀도우 규칙 구성
  • PowerShell을 사용한 RDP 세션 섀도잉
  • 관리자가 아닌 사용자가 RDS 세션을 섀도잉하도록 허용하는 방법

Windows RDP 클라이언트의 그림자 연결 옵션(mstsc.exe)

Windows Server 2016/Windows 10에서 기본 제공 RDP 클라이언트(mstsc.exe )에는 모든 사용자의 활성 RDP 세션에 원격으로 섀도 ​​연결하는 데 사용할 수 있는 몇 가지 특수 옵션이 있습니다.

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

RDS Windows Server 2016/2019에서 사용자의 RDP 세션을 섀도잉(원격 제어)하는 방법은 무엇입니까?

  • /shadow:ID – 지정된 ID로 사용자의 RDP 세션에 연결합니다.
  • /v:서버 이름 – 원격 RDP/RDS 호스트의 호스트 이름 또는 IP 주소를 지정할 수 있습니다. 설정하지 않으면 현재 호스트의 로컬 사용자 세션에 연결됩니다.
  • /제어 – 사용자 세션(데스크톱)과 상호 작용할 수 있습니다. 관리자는 사용자의 마우스를 제어하고 키보드에서 데이터를 입력할 수 있습니다. 이 매개변수가 설정되지 않으면 사용자의 세션 보기 모드가 사용됩니다.
  • /noConsentPrompt – 이 옵션을 사용하면 관리자가 사용자에게 연결 확인을 요청하지 않고 모든 세션에 강제로 연결할 수 있습니다.
  • /prompt – 다른 자격 증명과 연결할 수 있습니다. 원격 컴퓨터에 연결하려면 사용자 이름과 암호가 필요합니다.

섀도 세션을 사용하여 Active Directory 도메인과 작업 그룹 모두에 있는 컴퓨터와 서버의 사용자 세션에 연결할 수 있습니다. 또한 사용자의 RDP 세션이 실행 중인 RDS 호스트에 대한 관리자 권한이 필요하지 않습니다. 관리자는 관리자가 아닌 경우에도 모든 사용자 계정에 RDS 섀도잉 권한을 위임할 수 있습니다(자세한 내용은 아래 참조).

Windows GUI에서 원격 데스크톱 섀도우 사용

mstsc.exe를 사용하여 사용자 세션에 연결할 수 있습니다. 또는 서버 관리자 그래픽 콘솔에서 직접. 이를 수행하려면 RDS 서버에서 서버 관리자 콘솔을 열고 원격 데스크톱 서비스 섹션으로 이동하여 컬렉션을 선택합니다(예:QuickSessionCollection). .

RDS Windows Server 2016/2019에서 사용자의 RDP 세션을 섀도잉(원격 제어)하는 방법은 무엇입니까?

오른쪽 목록에는 이 RDS 서버에 세션이 있는 사용자 목록이 포함됩니다. 원하는 사용자 세션을 마우스 오른쪽 버튼으로 클릭하고 그림자를 선택합니다. 드롭다운 메뉴에서.

RDS Windows Server 2016/2019에서 사용자의 RDP 세션을 섀도잉(원격 제어)하는 방법은 무엇입니까?

활성 사용자 세션에만 연결할 수 있습니다. 세션이 연결이 끊긴 상태인 경우(RDS 세션 제한/시간 초과 설정으로 인해) 해당 세션에 연결할 수 없습니다.

Shadow Error - The specified session is not connected.

RDS Windows Server 2016/2019에서 사용자의 RDP 세션을 섀도잉(원격 제어)하는 방법은 무엇입니까?

Shadow 연결 매개변수가 있는 창이 나타납니다. 다음 중 하나를 수행할 수 있습니다. 보기 또는 제어 사용자의 RDP 세션. 사용자 동의 확인을 확인할 수도 있습니다. 옵션.

RDS Windows Server 2016/2019에서 사용자의 RDP 세션을 섀도잉(원격 제어)하는 방법은 무엇입니까?

이 옵션을 선택하면 사용자의 RDP 세션에 다음 요청이 나타납니다.

Remote Monitoring Request
woshub\administrator is requesting to view your session remotely. Do you accept the request?

RDS Windows Server 2016/2019에서 사용자의 RDP 세션을 섀도잉(원격 제어)하는 방법은 무엇입니까?

사용자가 연결을 확인하면 관리자는 보기에서 자신의 데스크톱을 볼 수 있습니다. 모드이지만 상호 작용할 수 없습니다.

RDS Windows Server 2016/2019에서 사용자의 RDP 세션을 섀도잉(원격 제어)하는 방법은 무엇입니까?

도움말. 사용자 세션 연결을 끊고 섀도우 모드를 종료하려면 ALT+* 워크스테이션 또는 Ctrl+* RDS 서버에서(대체 조합이 설정되지 않은 경우).

사용자가 관리 Shadow RDS 연결을 거부하면 다음 메시지가 나타납니다.

Shadow Error: The operator or administrator has refused the request.

RDS Windows Server 2016/2019에서 사용자의 RDP 세션을 섀도잉(원격 제어)하는 방법은 무엇입니까?

최신 버전의 Windows Server에서 RDP 세션에 대한 섀도 연결에 Windows Server 2008 R2의 tsadmin.msc 그래픽 스냅인을 사용할 수 없습니다.
확인을 요청하지 않고 사용자 세션에 연결하려고 하면 다음 메시지가 나타납니다. 오류 메시지:

Shadow Error: The Group Policy setting is configured to require the user’s consent. Verify the configuration of the policy settings.

RDS Windows Server 2016/2019에서 사용자의 RDP 세션을 섀도잉(원격 제어)하는 방법은 무엇입니까?

사용자 세션에 대한 RDS 섀도 연결 이벤트를 감사해야 하는 경우 Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational에서 다음 필터링된 이벤트를 사용합니다. 로그:

  • 이벤트 ID 20508 :그림자 보기 권한이 부여되었습니다.
  • 이벤트 ID 20503 :Shadow View 세션이 시작되었습니다.
  • 이벤트 ID 20504 :Shadow View 세션이 중지되었습니다.

RDS Windows Server 2016/2019에서 사용자의 RDP 세션을 섀도잉(원격 제어)하는 방법은 무엇입니까?

GPO를 사용하여 Windows에서 RDS 섀도우 규칙 구성

RDS 사용자 세션에 대한 원격 연결 설정은 그룹 정책 매개변수 원격 데스크톱 서비스 사용자 세션의 원격 제어를 위한 규칙 설정을 사용하여 구성됩니다. , GPO의 사용자 및 컴퓨터 섹션 아래에 있습니다. 정책 -> 관리 템플릿 -> Windows 구성 요소 -> 원격 데스크톱 서비스 -> 원격 세션 호스트 -> 연결. 이 정책은 DWORD 그림자에 해당합니다. 레지스트리 키 HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services 아래의 매개변수 (정책 설정에 해당하는 이 매개변수의 값은 대괄호로 지정됩니다.)

이 정책을 사용하여 다음 RD 섀도 연결 옵션을 구성할 수 있습니다.

  • 리모컨 허용 안 됨 (레지스트리 매개변수 Shadow = 0의 값에 해당 );
  • 사용자 권한이 있는 모든 권한 (1 );
  • 사용자의 허가 없이 모든 권한 (2 );
  • 사용자 권한으로 세션 보기 (3 );
  • 사용자의 허가 없이 세션 보기 (4 ).
레지스트리를 통해 이 정책의 매개변수를 직접 설정하려면 다음 명령을 사용할 수 있습니다.

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v Shadow /t REG_DWORD /d 4

RDS Windows Server 2016/2019에서 사용자의 RDP 세션을 섀도잉(원격 제어)하는 방법은 무엇입니까?

세션 섀도우 동작을 변경한 후 RDP/RDS 호스트에서 그룹 정책 설정을 업데이트하십시오.

gpmc.msc에서 AD 도메인의 원격 섀도 연결에 대한 규칙을 구성할 수 있습니다. 위에서 설명한 정책 매개변수를 사용하거나 레지스트리 매개변수를 직접 수정하는 그룹 정책 기본 설정을 사용하여 콘솔에 액세스할 수 있습니다(후자의 옵션을 사용하면 그룹 정책 항목 수준 대상 지정을 사용하여 특정 컴퓨터에 정책을 보다 정확하게 대상으로 지정할 수 있음).

PowerShell을 사용한 RDP 세션 섀도잉

원격 데스크톱 서비스 섀도우 기능을 사용하여 PowerShell에서 사용자 세션에 연결할 수도 있습니다. 우선, RDS 호스트에서 세션 목록을 가져와야 합니다(사용자 세션은 상태에 따라 그룹화됩니다):
Get-RDUserSession | ft Username, UnifiedSessionId, SessionState, HostServer, ApplicationType -GroupBy Sessionstate
RDS Windows Server 2016/2019에서 사용자의 RDP 세션을 섀도잉(원격 제어)하는 방법은 무엇입니까?

이 서버에는 세 개의 활성 RDP 사용자 세션이 있습니다. 세션 ID가 3인 사용자 세션에 연결해 보겠습니다.
Mstsc /shadow:3 /control

또한 서버(또는 여러 RDP 연결이 허용되는 Windows 10 데스크톱)의 모든 RDP 세션 목록을 보려면 다음 명령을 사용할 수 있습니다.

quser

또는

qwinsta

화면에 RDP 사용자 세션, 해당 ID 및 상태 목록이 표시됩니다. Active 또는 Disconnected .

RDS Windows Server 2016/2019에서 사용자의 RDP 세션을 섀도잉(원격 제어)하는 방법은 무엇입니까?

원격 서버의 세션 목록을 표시하려면 다음 명령을 실행하십시오.

query session /server:servername

원격 서버의 사용자 세션에 연결하려면 다음 명령을 사용하십시오.

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

RPC(동적 포트 범위) 49152 ~ 65535는 기본 TCP/3389 RDP 포트 대신 원격 섀도 연결 세션을 설정하는 데 사용됩니다.

RDP 사용자 세션에 대한 보다 편리한 섀도 연결을 위해 다음 배치 스크립트를 사용할 수 있습니다. 원격 RDS 서버의 이름을 입력하라는 메시지가 표시되고 모든 세션 목록이 표시되며 연결할 세션(ID)을 지정하라는 메시지가 표시됩니다.

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를 실행하기만 하면 됩니다. 섀도우 연결을 시작하는 명령입니다.

콘솔 세션에 연결하려면 다음 스크립트를 사용할 수 있습니다.
shadow_console.bat
@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
시작

간단한 GUI(shadow_user_rdp_session.ps1 ) 섀도 연결의 경우:

Add-Type -assembly System.Windows.Forms
$Header = "SESSIONNAME", "USERNAME", "ID", "STATUS"
$gForm = New-Object System.Windows.Forms.Form
$gForm.Text ='Shadow Session Connect'
$gForm.Width = 400
$gForm.AutoSize = $true
$dBttn = New-Object System.Windows.Forms.Button
$dBttn.Text = 'Control'
$dBttn.Location = New-Object System.Drawing.Point(15,10)
$gForm.Controls.Add($dBttn)
$dList = New-Object System.Windows.Forms.ListView
$dList.Location = New-Object System.Drawing.Point(0,50)
$dList.Width = $gForm.ClientRectangle.Width
$dList.Height = $gForm.ClientRectangle.Height
$dList.Anchor = "Top, Left, Right, Bottom"
$dList.MultiSelect = $False
$dList.View = 'Details'
$dList.FullRowSelect = 1;
$dList.GridLines = 1
$dList.Scrollable = 1
$gForm.Controls.add($dList)
foreach ($column in $Header){
$dList.Columns.Add($column) | Out-Null
}
$(qwinsta.exe | findstr "Active") -replace "^[\s>]" , "" -replace "\s+" , "," | ConvertFrom-Csv -Header $Header | ForEach-Object {
$dListItem = New-Object System.Windows.Forms.ListViewItem($_.SESSIONNAME)
$dListItem.Subitems.Add($_.USERNAME) | Out-Null
$dListItem.Subitems.Add($_.ID) | Out-Null
$dListItem.Subitems.Add($_.STATUS) | Out-Null
$dList.Items.Add($dListItem) | Out-Null
}
$dBttn.Add_Click(
{
$SelectedItem = $dList.SelectedItems[0]
if ($SelectedItem -eq $null){
[System.Windows.Forms.MessageBox]::Show("Select a user session to connect ")
}else{
$session_id = $SelectedItem.subitems[2].text
$(mstsc /shadow:$session_id /control)
#[System.Windows.Forms.MessageBox]::Show($session_id)
}
}
)
$gForm.ShowDialog()

이 스크립트는 로컬 호스트의 활성 RDP 세션 목록과 함께 간단한 그래픽 형식을 표시합니다. 사용자 계정을 선택하고 연결을 클릭하기만 하면 됩니다. 버튼.

컴퓨터에서 PowerShell 스크립트(*.ps1)를 실행하려면 PowerShell 실행 정책을 구성해야 합니다.

원격 데스크톱 서비스 역할이 있는 Windows Server에서 섀도우 사용자 연결을 사용할 수 있을 뿐만 아니라 Windows 10을 실행하는 사용자의 데스크톱에 연결할 수도 있습니다(Windows 10에서 원격 데스크톱 세션 섀도잉 모드 사용).

관리자가 아닌 사용자가 RDS 세션을 섀도잉하도록 허용하는 방법

위의 예에서 RDS 사용자 세션에 대한 섀도 연결을 사용하려면 RDS 서버에 대한 로컬 관리자 권한이 필요합니다. 그러나 관리자가 아닌 사용자가 컴퓨터/서버에 대한 로컬 관리자 권한을 부여하지 않고 RDP 세션을 섀도잉하도록 허용할 수 있습니다.

예를 들어 AllowRDSShadow 그룹의 구성원이 RDP 사용자 세션에 대한 섀도 연결을 사용하도록 허용하려고 합니다. 관리자 권한 명령 프롬프트(cmd.exe)를 열고 다음 명령을 실행합니다.

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