RDS Windows Server 2016/2019でユーザーのRDPセッションをシャドウ(リモートコントロール)する方法は?
シャドウセッションモード RDS管理者がユーザーのデスクトップを表示して操作できるようにします。リモートデスクトップシャドウイングモードは、Windows Server 2012R2およびWindows8.1以降のすべての最新バージョンのWindowsで機能します(カーネルからユーザーモードへのRDPスタックの転送のため、Windows Server 2012を除く)。この記事では、RDSシャドウイングを構成および使用して、WindowsServer2016およびWindows10でアクティブなRDPユーザーセッションを接続および管理する方法について説明します。
内容:
- Windows RDPクライアント(mstsc.exe)のシャドウ接続オプション
- WindowsGUIからのリモートデスクトップシャドウの使用
- 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]]
- / shadow:ID –指定されたIDでユーザーのRDPセッションに接続します。
- / v:servername –リモートRDP/RDSホストのホスト名またはIPアドレスを指定できます。設定されていない場合、現在のホスト上のローカルユーザーセッションへの接続が確立されます。
- / control –ユーザーセッション(デスクトップ)との対話を可能にします。管理者は、ユーザーのマウスを制御し、キーボードからデータを入力できます。このパラメータが設定されていない場合、ユーザーのセッションビューモードが使用されます。
- / noConsentPrompt –このオプションを使用すると、管理者はユーザーに接続の確認を求めずに、任意のセッションへの接続を強制できます。
- / prompt – 他の資格情報との接続を許可します。リモートコンピューターに接続するには、ユーザー名とパスワードが必要です。
シャドウセッションは、ActiveDirectoryドメインとワークグループの両方のコンピューターとサーバー上のユーザーセッションに接続するために使用できます。さらに、ユーザーのRDPセッションが実行されているこのRDSホストに対する管理者権限は必要ありません。管理者は、管理者以外のユーザーであっても、RDSシャドウイングのアクセス許可を任意のユーザーアカウントに委任できます(これについては以下で詳しく説明します)。
WindowsGUIからのリモートデスクトップシャドウの使用
mstsc.exe
を使用してユーザーセッションに接続できます またはサーバーマネージャーのグラフィカルコンソールから直接。これを行うには、RDSサーバーでサーバーマネージャーコンソールを開き、[リモートデスクトップサービス]セクションに移動し、コレクションを選択します(例:QuickSessionCollection
)。 。
右側のリストには、このRDSサーバーでセッションを行っているユーザーのリストが含まれています。目的のユーザーセッションを右クリックし、シャドウを選択します ドロップダウンメニューから。
アクティブなユーザーセッションにのみ接続できます。セッションが切断状態にある場合(RDSセッション制限/タイムアウト設定のため)、そのようなセッションに接続することはできません:
Shadow Error - The specified session is not connected.
シャドウ接続パラメータのあるウィンドウが表示されます。 表示のいずれかを行うことができます またはコントロール ユーザーのRDPセッション。 ユーザーの同意を求めるを確認することもできます オプション。
このオプションをオンにすると、ユーザーのRDPセッションに次のリクエストが表示されます。
Remote Monitoring Request woshub\administrator is requesting to view your session remotely. Do you accept the request?
ユーザーが接続を確認すると、管理者は自分のデスクトップを表示に表示します モードですが、操作することはできません。
ヒント。 ユーザーセッションから切断してシャドウモードを終了するには、
ALT+*
ワークステーションまたはCtrl+*
RDSサーバー上(代替の組み合わせが設定されていない場合)。 ユーザーが管理シャドウRDS接続を拒否すると、次のメッセージが表示されます。
Shadow Error: The operator or administrator has refused the request.
Windows Server 2008 R2のtsadmin.mscグラフィカルスナップインを使用して、新しいバージョンのWindowsServerのRDPセッションへのシャドウ接続を行うことはできません。
確認を求めずにユーザーのセッションに接続しようとすると、エラーメッセージ:
Shadow Error: The Group Policy setting is configured to require the user’s consent. Verify the configuration of the policy settings.
ユーザーセッションのRDSシャドウ接続イベントを監査する必要がある場合は、 Microsoft-Windows-TerminalServices-RemoteConnectionManager / Operationalからの次のフィルター処理されたイベントを使用します。 ログ:
- イベントID20508 :シャドウビュー権限が付与されました;
- イベントID20503 :シャドウビューセッションが開始されました;
- イベントID20504 :シャドウビューセッションが停止しました。
GPOを使用したWindowsでのRDSシャドウルールの構成
RDSユーザーセッションへのリモート接続の設定は、グループポリシーパラメーターリモートデスクトップサービスユーザーセッションのリモート制御のルールを設定するを使用して構成されます。 、GPOの[ユーザー]セクションと[コンピューター]セクションにあります:[ポリシー]->[管理用テンプレート]->[Windowsコンポーネント]->[リモートデスクトップサービス]->[リモートセッションホスト]->[接続]。このポリシーは、DWORD Shadowに対応しています。 レジストリキー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
セッションシャドウの動作を変更した後、RDP/RDSホストのグループポリシー設定を更新します。
gpmc.msc
から、ADドメインのリモートシャドウ接続のルールを構成できます。 上記のポリシーパラメータを使用するか、レジストリパラメータを直接変更するグループポリシー設定を使用してコンソールを操作します(後者のオプションを使用すると、グループポリシーアイテムレベルのターゲティングを使用して、特定のコンピュータにポリシーをより正確にターゲティングできます)。
PowerShellを使用したシャドウイングRDPセッション
リモートデスクトップサービスのシャドウ機能を使用して、PowerShellからユーザーのセッションに接続することもできます。まず、RDSホスト上のセッションのリストを取得する必要があります(ユーザーセッションは状態に応じてグループ化されます):
Get-RDUserSession | ft Username, UnifiedSessionId, SessionState, HostServer, ApplicationType -GroupBy Sessionstate
このサーバーには3つのアクティブなRDPユーザーセッションがあります。セッションID3でユーザーセッションに接続しましょう:
Mstsc /shadow:3 /control
また、サーバー(または複数のRDP接続が許可されているWindows 10デスクトップ)上のすべてのRDPセッションのリストを取得するには、次のコマンドを使用できます。
quser
または
qwinsta
画面には、RDPユーザーセッション、そのID、および状態のリストが表示されます:Active
またはDisconnected
。
リモートサーバー上のセッションのリストを表示するには、次のコマンドを実行します。
query session /server:servername
リモートサーバー上のユーザーセッションに接続するには、次のコマンドを使用します。
mstsc /v:rdsh2:3389 /shadow:3 /control
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
このbatファイルは%Windir%\System32
に保存できます ディレクトリ。その結果、シャドウを実行するだけで済みます。 シャドウ接続を開始するコマンド。
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
次のPowerShellスクリプトを簡単な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サーバーに対するローカル管理者権限が必要です。ただし、管理者以外のユーザーが、コンピューター/サーバーのローカル管理者権限を付与せずにRDPセッションをシャドウイングできるようにすることができます。
たとえば、AllowRDSShadowグループのメンバーがRDPユーザーセッションへのシャドウ接続を使用できるようにします。管理者特権のコマンドプロンプト(cmd.exe)を開き、次のコマンドを実行します。
wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TSPermissionsSetting WHERE (TerminalName=”RDP-Tcp”) CALL AddAccount “woshub\AllowRDSShadow”,2
-
リモート デスクトップ ライセンス サーバー 2016/2019 に RDS CAL をインストールする方法。
リモート デスクトップ ライセンス サーバーを既にインストールしてアクティブ化しており、ライセンス サーバーにリモート デスクトップ サービス クライアント アクセス ライセンス (CAL) をインストールする場合は、以下の手順をお読みください。 Windows RDS Server 2019 または Server 2016 に追加の RDS Cal をインストールまたは追加するには: 1. サーバー マネージャーを開き、[ツール] から メニューから リモート デスクトップ サービス リモート デスクトップ ライセンス マネージャー . * * または コントロール パネル 管理ツ
-
Windows 11 でユーザー アカウント制御を削除する方法
Windows 11 では、さまざまな方法でユーザー アカウント制御 (UAC) を無効にすることができます。 UAC は、さまざまなアプリが PC に変更を加える可能性があることをユーザーに承認するよう求めるセキュリティ対策です。 Windows 11 ではデフォルトで UAC プロンプトが表示され、アプリケーションが (管理者として) 昇格された特権で起動しようとすると、ユーザーの許可が求められます。この機能は不要だと考える人もいます。この投稿では、Windows 11 のユーザー アカウント制御をオフにする方法について説明します。 ほとんどの人がユーザー アカウント制御を重要ではないと考