RDS Shadow - koneksi shadow ke sesi pengguna RDP di Windows Server 2016/2012 R2

Pada Windows 2012 R2 dan Microsoft Windows 8.1 fungsionalitas yang dikembalikan Jauh Desktop Membayangi (koneksi bayangan). Ingat bahwa mode Bayangan (sesi bayangan) - dapat digunakan oleh administrator untuk melihat dan mengelola sesi RDP yang ada dari pengguna mana pun. Mode operasi ini telah didukung hampir dari versi pertama server terminal Microsoft dan secara tak terduga dihapus pada Windows Server 2012 (karena transfer rdp stack dari mode kernel ke mode pengguna). Fungsionalitas RDS Shadow berfungsi di versi OS berikut: Windows Server 2016 / Windows 10.

Konten:

  • Menggunakan Remote Desktop Shadow dari GUI
  • Shadow RDS Shadow dari PowerShell
  • Cara mengizinkan pengguna biasa menggunakan koneksi bayangan

Selain itu, mode RDS Shadow dan RDP client shadow memiliki sejumlah fitur baru yang menarik. Daftar lengkap parameter klien mstsc.exe RDP yang menentukan kemungkinan koneksi bayangan jarak jauh ke sesi pengguna akhir:

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

/ shadow: ID - terhubung ke sesi RDP dengan ID yang ditentukan.

/ v: nama server - Nama RDP / RDS dari server terminal (jika tidak ditentukan, yang sekarang digunakan).

/ kontrol - kemampuan untuk berinteraksi dengan sesi pengguna (jika tidak ditentukan, mode tampilan sesi pengguna digunakan).

/ noConsentPrompt - jangan meminta pengguna untuk konfirmasi koneksi ke sesi.

/ cepat -digunakan untuk terhubung di bawah kredensial lain. Nama pengguna dan kata sandi diminta untuk terhubung ke komputer jarak jauh.

Keterbatasan sesi bayangan RDS di Windows 2012 R2

  • Hanya administrator server yang dapat terhubung ke sesi asing. Anda tidak dapat mendelegasikan hak-hak ini sebagai pengguna biasa
  • Rds Bayangan tidak akan bekerja di jaringan berdasarkan kelompok kerja

Menggunakan Remote Desktop Shadow dari GUI

Anda dapat terhubung ke sesi pengguna menggunakan utilitas mstsc.exe atau langsung dari konsol Server Manager. Untuk melakukan ini, di konsol Server Manager, buka QuickSessionCollection

Dengan mengklik pada sesi pengguna yang diinginkan, pilih Shadow dari menu konteks..

Jendela pengaturan koneksi bayangan muncul. Dapat dilihat (Lihat) dan manajemen (Kontrol) sesi. Anda juga dapat mengaktifkan opsi Prompt untuk pengguna persetujuan (Minta persetujuan pengguna untuk terhubung ke sesi).

Jika opsi "Minta persetujuan pengguna" dipilih, pengguna akan ditanya dalam sesi:

Permintaan Pemantauan Jarak Jauh

Winitpro \ administrator meminta pandangan jauh dari sesi Anda. Anda menerima permintaan ini. Winitpro \ administrator meminta untuk melihat sesi Anda dari jarak jauh. Apakah Anda menerima permintaan itu??

Jika pengguna mengonfirmasi koneksi, dalam mode tampilan administrator akan melihat desktop-nya, tetapi tidak akan dapat berinteraksi dengannya.

Kiat. Untuk memutuskan sambungan dari sesi pengguna dan keluar dari mode bayangan, klik ALT+* di workstation atau Ctrl+* di server terminal (jika tidak ada kombinasi alternatif yang ditentukan).

Jika pengguna menolak koneksi, sebuah jendela muncul:

Kesalahan Bayangan: Operator atau administrator telah menolak permintaan tersebut


Jika Anda mencoba terhubung ke sesi pengguna tanpa meminta konfirmasi, kesalahan akan muncul memberi tahu Anda bahwa ini dilarang oleh Kebijakan Grup:

Kesalahan Bayangan: Pengaturan Kebijakan Grup dikonfigurasi untuk meminta persetujuan pengguna. Verifikasi konfigurasi pengaturan kebijakan.

Pengaturan manajemen RDS jarak jauh untuk sesi pengguna dikonfigurasikan oleh kebijakan Tetapkan aturan untuk kontrol jarak jauh sesi pengguna Layanan Desktop Jarak Jauh (Tetapkan aturan kendali jarak jauh untuk sesi pengguna Layanan Desktop Jarak Jauh), yang terletak di bawah Kebijakan -> Template Administratif -> Komponen Windows -> Layanan Desktop Jarak Jauh -> Host Sesi Jarak Jauh -> Koneksi (Template Administrasi -> Komponen Windows -> Layanan Desktop Jarak Jauh - Host Sesi Desktop Jarak Jauh -> Koneksi) di bagian pengguna dan "komputer" dari GPO. Kebijakan ini sesuai dengan pengaturan registri dword Bayangan di cabang HKLM \ SOFTWARE \ Policies \ Microsoft \ Windows NT \ Terminal Services.

Kebijakan ini memungkinkan Anda untuk mengonfigurasi opsi koneksi bayangan berikut melalui koneksi RD Shadow shadow:

  • Remote contol diizinkan - remote control tidak diizinkan (nilai kunci registri Shadow = 0);
  • Kontrol Penuh dengan izin pengguna - kontrol penuh dengan izin pengguna (1);
  • Kontrol Penuh tanpa izin pengguna - kontrol penuh tanpa izin pengguna (2);
  • Lihat Sesi dengan izin pengguna - memantau sesi dengan izin pengguna (3);
  • Lihat Sesi tanpa izin pengguna - memantau sesi tanpa izin pengguna (4).

Shadow RDS Shadow dari PowerShell

Powershell juga dapat menggunakan fungsionalitas koneksi shadow untuk sesi pengguna melalui koneksi shadow Remote Desktop Services.

Pertama-tama, kami menunjukkan cara mendapatkan daftar sesi di server terminal (sesi pengguna akan dikelompokkan ke dalam kelompok tergantung pada status mereka):

Dapatkan-RDUserSession | ft Username, UnifiedSessionId, SessionState, HostServer, ApplicationType -GroupBy Sessionstate

Di server ini, kami menemukan tiga sesi terminal aktif. Terhubung ke sesi pengguna dengan ID sesi 3:
Mstsc / shadow: 3 / control
Juga, untuk mendapatkan daftar semua sesi di server, Anda dapat menjalankan perintah

quser

Atau

qwinsta

Layar akan menampilkan daftar sesi RDP, ID dan statusnya: sesi aktif (Aktif) atau terputus (Terputus).

Untuk mendapatkan daftar sesi di server jauh, jalankan perintah:

sesi permintaan / server: nama server

Untuk koneksi bayangan yang lebih nyaman ke sesi, Anda dapat menggunakan skrip berikut. Skrip akan meminta Anda memasukkan nama komputer jarak jauh dan menampilkan daftar semua sesi dan menawarkan untuk menentukan sesi yang ingin Anda sambungkan:

shadow.bat

@echo mati
set / P rcomp = "Masukkan nama atau IP dari PC Jarak Jauh:"
sesi permintaan / server:% rcomp%
set / P rid = "Masukkan ID pengguna RDP:"
mulai mstsc / shadow:% rid% / v:% rcomp% / control

Anda dapat meletakkan file ini di direktori% Windir% \ System32, sebagai akibatnya, untuk koneksi shadow, jalankan perintah bayangan.

Untuk terhubung ke sesi konsol, Anda dapat menggunakan skrip berikut:

@echo mati
set / P rcomp = "Masukkan nama atau IP dari PC Jarak Jauh:"
untuk / f "token = 3 delims =" %% G di ('konsol sesi permintaan / server:% rcomp%') lakukan atur rid =%% G
mulai mstsc / shadow:% rid% / v:% rcomp% / control

Anda dapat menggunakan koneksi bayangan ke desktop pengguna di komputer dengan Windows 10 dan 8.1.

Cara mengizinkan pengguna biasa menggunakan koneksi bayangan

Dalam contoh di atas, untuk menggunakan koneksi bayangan ke sesi terminal, Anda memerlukan hak administrator lokal di server RDS. Namun, Anda dapat mengizinkan penggunaan koneksi bayangan untuk terhubung ke sesi pengguna dan pengguna sederhana (tanpa memberi mereka hak administrator lokal di server).

Misalnya, Anda ingin mengizinkan anggota grup AllowRDSShadow menggunakan koneksi bayangan ke sesi pengguna, jalankan perintah:

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

Pada Januari 2018, setelah menginstal pembaruan KB4056898 (patch Windows terhadap Meltdown dan Specter), pengguna menemukan bahwa akses bayangan telah berhenti bekerja di Windows Server 2012 R2. Saat Anda mencoba membuat koneksi bayangan ke sesi asing, pesan "Kesalahan tak dikenal" muncul (STATUS_BAD_IMPERSONATION_LEVEL kesalahan ada di log). Masalah serupa terjadi pada RDS farm berdasarkan Windows Server 2016.

Untuk mengatasi masalah, Anda perlu menginstal pembaruan terpisah:

  • untuk windows server 2016 - KB4057142 (17 Januari 2018)
  • untuk Windows Server 2012 R2 - KB4057401 (17 Januari 2018)