Chế độ phiên bóng cho phép quản trị viên RDS xem và tương tác với màn hình của người dùng. Chế độ Remote Desktop Shadowing hoạt động trên tất cả các phiên bản Windows hiện đại bắt đầu từ Windows Server 2012 R2 và Windows 8.1 (ngoại trừ Windows Server 2012, do chuyển ngăn xếp RDP từ hạt nhân sang chế độ người dùng). Trong bài viết này, chúng ta sẽ xem xét cách định cấu hình và sử dụng RDS Shadowing để kết nối và quản lý các phiên người dùng RDP đang hoạt động trên Windows Server 2016 và Windows 10.
Nội dung:
- Tuỳ chọn Kết nối Bóng trong Máy khách Windows RDP (mstsc.exe)
- Sử dụng Remote Desktop Shadow từ Windows GUI
- Định cấu hình các quy tắc RDS Shadow trên Windows bằng GPO
- Chiếu phiên RDP với PowerShell
- Làm cách nào để cho phép người dùng không phải quản trị viên hiển thị các phiên RDS?
Tùy chọn Kết nối Bóng trong Máy khách Windows RDP (mstsc.exe)
Trên Windows Server 2016 / Windows 10, ứng dụng RDP tích hợp sẵn (mstsc.exe
) có một số tùy chọn đặc biệt có thể được sử dụng để kết nối từ xa với phiên RDP đang hoạt động của bất kỳ người dùng nào:
Mstsc.exe [/shadow:sessionID [/v:Servername] [/control] [/noConsentPrompt] [/prompt]]
- / shadow:ID - kết nối với phiên RDP của người dùng bằng ID được chỉ định;
- / v:tên máy chủ - bạn có thể chỉ định tên máy chủ hoặc địa chỉ IP của máy chủ RDP / RDS từ xa. Nếu không được đặt, các kết nối sẽ được thực hiện với các phiên người dùng cục bộ trên máy chủ hiện tại;
- / control - cho phép tương tác với phiên người dùng (máy tính để bàn). Quản trị viên có thể điều khiển chuột của người dùng, nhập dữ liệu từ bàn phím. Nếu thông số này không được đặt, chế độ xem phiên của người dùng sẽ được sử dụng;
- / noConsentPrompt - tùy chọn cho phép quản trị viên buộc kết nối đến bất kỳ phiên nào mà không yêu cầu người dùng xác nhận kết nối;
- / prompt - cho phép kết nối với các thông tin đăng nhập khác. Tên người dùng và mật khẩu được yêu cầu để kết nối với máy tính từ xa.
Phiên bóng có thể được sử dụng để kết nối với phiên người dùng trên máy tính và máy chủ trong cả miền Active Directory và nhóm làm việc. Ngoài ra, không cần thiết phải có đặc quyền của quản trị viên trên máy chủ RDS khi phiên RDP của người dùng đang chạy. Quản trị viên có thể ủy quyền quyền RDS Shadowing cho bất kỳ tài khoản người dùng nào, ngay cả đối với những người không phải là quản trị viên (thông tin thêm về điều này bên dưới).
Sử dụng Remote Desktop Shadow từ Windows GUI
Bạn có thể kết nối với phiên người dùng bằng mstsc.exe
hoặc trực tiếp từ bảng điều khiển đồ họa của Server Manager. Để thực hiện, hãy mở bảng điều khiển Server Manager trên máy chủ RDS, đi tới phần Dịch vụ Máy tính Từ xa -> chọn bộ sưu tập của bạn, ví dụ QuickSessionCollection
.
Danh sách bên phải sẽ chứa danh sách người dùng có phiên trên máy chủ RDS này. Nhấp chuột phải vào phiên người dùng bạn muốn, chọn Shadow từ trình đơn thả xuống.
Bạn chỉ có thể kết nối với một phiên người dùng đang hoạt động. Nếu phiên ở trạng thái ngắt kết nối (do cài đặt giới hạn phiên / thời gian chờ RDS), bạn không thể kết nối với phiên như vậy:
Shadow Error - The specified session is not connected.
Một cửa sổ với các thông số kết nối Shadow sẽ xuất hiện. Bạn có thể Xem hoặc Kiểm soát phiên RDP của người dùng. Bạn cũng có thể chọn Nhắc sự đồng ý của người dùng Lựa chọn.
Nếu tùy chọn này được chọn, yêu cầu sau sẽ xuất hiện trong phiên RDP của người dùng:
Remote Monitoring Request woshub\administrator is requesting to view your session remotely. Do you accept the request?
Nếu người dùng xác nhận kết nối, quản trị viên sẽ thấy màn hình của họ trong Chế độ xem nhưng sẽ không thể tương tác với nó.
Mẹo. Để ngắt kết nối khỏi phiên người dùng và thoát khỏi chế độ Bóng, nhấn
ALT+*
trên máy trạm hoặc Ctrl+*
trên máy chủ RDS (nếu không có kết hợp thay thế nào không được đặt). Nếu người dùng từ chối kết nối Shadow RDS quản trị, thông báo sau sẽ xuất hiện:
Shadow Error: The operator or administrator has refused the request.
Bạn không thể sử dụng snap-in đồ họa tsadmin.msc từ Windows Server 2008 R2 cho các kết nối bóng đến phiên RDP trên các phiên bản Windows Server mới hơn.
Nếu bạn cố gắng kết nối với phiên của người dùng mà không được nhắc xác nhận, bạn sẽ nhận được một thông báo lỗi:
Shadow Error: The Group Policy setting is configured to require the user’s consent. Verify the configuration of the policy settings.
Nếu bạn cần kiểm tra các sự kiện kết nối bóng RDS cho các phiên người dùng, hãy sử dụng các sự kiện được lọc sau từ Microsoft-Windows-TerminalServices-RemoteConnectionManager / Operational nhật ký:
- ID sự kiện 20508 :Đã cấp quyền xem Shadow;
- ID sự kiện 20503 :Đã bắt đầu phiên Shadow View;
- ID sự kiện 20504 :Phiên Chế độ xem bóng đã dừng.
Định cấu hình Quy tắc bóng RDS trên Windows bằng GPO
Cài đặt cho kết nối từ xa với phiên người dùng RDS được định cấu hình bằng cách sử dụng tham số Chính sách nhóm Đặt quy tắc để điều khiển từ xa phiên người dùng Dịch vụ máy tính từ xa , nằm trong phần Người dùng và Máy tính của GPO:Chính sách -> Mẫu Quản trị -> Thành phần Windows -> Dịch vụ Máy tính Từ xa -> Máy chủ Phiên Từ xa -> Kết nối. Chính sách này tương ứng với DWORD Shadow tham số trong khóa đăng ký HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services
(các giá trị của tham số này tương ứng với cài đặt chính sách được chỉ định trong dấu ngoặc đơn).
Chính sách này có thể được sử dụng để định cấu hình các tùy chọn kết nối RD Shadow sau:
- Không cho phép điều khiển từ xa (tương ứng với giá trị của tham số đăng ký
Shadow = 0
); - Toàn quyền kiểm soát với sự cho phép của người dùng (
1
); - Toàn quyền kiểm soát mà không có sự cho phép của người dùng (
2
); - Xem phiên với sự cho phép của người dùng (
3
); - Xem phiên mà không có sự cho phép của người dùng (
4
).
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v Shadow /t REG_DWORD /d 4
Sau khi thay đổi hành vi bóng phiên, hãy cập nhật cài đặt Chính sách Nhóm trên máy chủ RDP / RDS.
Bạn có thể định cấu hình các quy tắc cho kết nối bóng từ xa trong miền AD từ gpmc.msc
bảng điều khiển sử dụng tham số chính sách được mô tả ở trên hoặc bằng cách sử dụng Tùy chọn chính sách nhóm, trực tiếp sửa đổi tham số đăng ký (tùy chọn thứ hai cho phép bạn nhắm mục tiêu chính sách chính xác hơn đến các máy tính cụ thể bằng cách sử dụng Nhắm mục tiêu cấp mục chính sách nhóm).
Chiếu phiên RDP bằng PowerShell
Bạn cũng có thể sử dụng các tính năng Remote Desktop Services Shadow để kết nối với phiên của người dùng từ PowerShell. Trước hết, bạn cần lấy danh sách các phiên trên máy chủ RDS (các phiên của người dùng sẽ được nhóm theo trạng thái của họ):
Get-RDUserSession | ft Username, UnifiedSessionId, SessionState, HostServer, ApplicationType -GroupBy Sessionstate
Có ba phiên người dùng RDP đang hoạt động trên máy chủ này. Hãy kết nối với phiên người dùng bằng ID phiên 3:
Mstsc /shadow:3 /control
Ngoài ra, để nhận danh sách tất cả các phiên RDP trên máy chủ (hoặc trên máy tính để bàn Windows 10 cho phép nhiều kết nối RDP), bạn có thể sử dụng lệnh:
quser
hoặc
qwinsta
Màn hình sẽ hiển thị danh sách các phiên người dùng RDP, ID và trạng thái của họ:Active
hoặc Disconnected
.
Để hiển thị danh sách các phiên trên máy chủ từ xa, hãy chạy lệnh sau:
query session /server:servername
Để kết nối với phiên người dùng trên máy chủ từ xa, hãy sử dụng lệnh:
mstsc /v:rdsh2:3389 /shadow:3 /control
Để kết nối bóng tối thuận tiện hơn với các phiên người dùng RDP, bạn có thể sử dụng tập lệnh hàng loạt sau. Nó nhắc bạn nhập tên của máy chủ RDS từ xa, hiển thị danh sách tất cả các phiên và nhắc bạn chỉ định phiên (ID) mà bạn muốn kết nối với:
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
Bạn có thể lưu tệp dơi này trong %Windir%\System32
danh mục. Do đó, bạn chỉ cần chạy bóng tối lệnh để bắt đầu kết nối bóng tối.
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
Bạn cũng có thể sử dụng tập lệnh PowerShell sau với GUI đơn giản ( shadow_user_rdp_session.ps1 ) cho kết nối bóng tối:
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()
Tập lệnh này hiển thị một dạng đồ họa đơn giản với danh sách các phiên RDP đang hoạt động trên máy chủ cục bộ. Bạn chỉ cần chọn tài khoản người dùng và nhấp vào nút Kết nối nút.
Để chạy tập lệnh PowerShell (* .ps1) trên máy tính, bạn cần định cấu hình chính sách Thực thi PowerShell.Bạn có thể sử dụng kết nối người dùng ẩn không chỉ trên Windows Server với vai trò Dịch vụ máy tính từ xa mà còn để kết nối với máy tính để bàn của người dùng chạy Windows 10 (Sử dụng Chế độ tạo bóng phiên máy tính từ xa trong Windows 10).
Làm cách nào để Cho phép Người dùng Không phải quản trị viên Chiếu phiên RDS?
Trong các ví dụ trên, việc sử dụng kết nối bóng tới phiên người dùng RDS yêu cầu đặc quyền của quản trị viên cục bộ trên máy chủ RDS. Tuy nhiên, bạn có thể cho phép người dùng không phải quản trị viên ẩn các phiên RDP mà không cần cấp quyền quản trị cục bộ trên máy tính / máy chủ.
Ví dụ:bạn muốn cho phép các thành viên của nhóm AllowRDSShadow sử dụng kết nối bóng đến các phiên người dùng RDP. Mở dấu nhắc lệnh nâng cao (cmd.exe) và chạy lệnh:
wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TSPermissionsSetting WHERE (TerminalName=”RDP-Tcp”) CALL AddAccount “woshub\AllowRDSShadow”,2