RDS Shadow - połączenie w tle z sesjami użytkowników RDP w systemie Windows Server 2016/2012 R2

W systemie Windows 2012 R2 i Microsoft Windows 8.1 zwrócona funkcjonalność Zdalne Pulpit Cienie (połączenie w tle). Przypomnij, że tryb cienia (sesja cienia) - może być używany przez administratora do przeglądania i zarządzania istniejącą sesją RDP dowolnego użytkownika. Ten tryb działania był obsługiwany prawie od pierwszych wersji serwera terminali Microsoft i został nieoczekiwanie usunięty w systemie Windows Server 2012 (z powodu przeniesienia stosu rdp z trybu jądra do trybu użytkownika). Funkcja RDS Shadow działa w następujących wersjach systemu operacyjnego: Windows Server 2016 / Windows 10.

Treść

  • Używanie Remote Desktop Shadow z GUI
  • Shadow RDS Shadow z PowerShell
  • Jak zezwolić zwykłym użytkownikom na korzystanie z połączenia w tle

Ponadto tryby cieni RDS Shadow i RDP klienta mają szereg interesujących nowych funkcji. Pełna lista parametrów klienta RDP mstsc.exe, które określają możliwość zdalnego połączenia w tle z sesją użytkownika końcowego:

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

/ shadow: ID - połącz się z sesją RDP z określonym identyfikatorem.

/ v: nazwa serwera - Nazwa RDP / RDS serwera terminali (jeśli nie jest określony, używany jest bieżący).

/ control - możliwość interakcji z sesją użytkownika (jeśli nie jest określony, używany jest tryb widoku sesji użytkownika).

/ noConsentPrompt - nie pytaj użytkownika o potwierdzenie połączenia z sesją.

/ monit -używane do łączenia się pod innymi poświadczeniami. Nazwa użytkownika i hasło są wymagane do połączenia z komputerem zdalnym.

Ograniczenia sesji RDS Shadow w Windows 2012 R2

  • Tylko administratorzy serwerów mogą łączyć się z sesjami zagranicznymi. Nie możesz przekazać tych praw jako zwykły użytkownik
  • Rds Shadow nie będzie działać w sieciach opartych na grupach roboczych

Używanie Remote Desktop Shadow z GUI

Możesz połączyć się z sesją użytkownika za pomocą narzędzia mstsc.exe lub bezpośrednio z konsoli Menedżera serwera. Aby to zrobić, w konsoli Server Manager otwórz QuickSessionCollection

Klikając sesję interesującego użytkownika, wybierz Shadow z menu kontekstowego..

Pojawi się okno ustawień połączenia w tle. Widoczny (Zobacz) i zarządzanie (Kontrola) sesja. Możesz także włączyć tę opcję Monituj dla użytkownik zgoda (Poproś użytkownika o zgodę na połączenie z sesją).

Jeśli zostanie wybrana opcja „Poproś o zgodę użytkownika”, użytkownik zostanie zapytany w sesji:

Żądanie zdalnego monitorowania

Winitpro \ administrator żąda zdalnego widoku twojej sesji. Akceptujesz tę prośbę. Winitpro \ administrator prosi o zdalne przeglądanie Twojej sesji. Czy akceptujesz tę prośbę??

Jeśli użytkownik potwierdzi połączenie, w trybie przeglądania administrator zobaczy pulpit, ale nie będzie mógł z nim współdziałać.

Wskazówka. Aby rozłączyć się z sesją użytkownika i wyjść z trybu cienia, kliknij ALT+* na stacji roboczej lub Ctrl+* na serwerze terminali (jeśli nie podano żadnych alternatywnych kombinacji).

Jeśli użytkownik odrzuci połączenie, pojawi się okno:

Błąd cienia: Operator lub administrator odrzucił żądanie


Jeśli spróbujesz połączyć się z sesją użytkownika bez pytania o potwierdzenie, pojawi się błąd informujący, że jest to zabronione przez zasady grupy:

Błąd cienia: Ustawienie zasad grupy jest skonfigurowane tak, aby wymagało zgody użytkownika. Sprawdź konfigurację ustawień zasad.

Ustawienia zdalnego zarządzania RDS dla sesji użytkowników są konfigurowane według zasad Ustaw reguły zdalnego sterowania sesjami użytkowników usług pulpitu zdalnego (Ustaw reguły zdalnego sterowania dla sesji użytkowników usług pulpitu zdalnego), który znajduje się w obszarze Zasady -> Szablony administracyjne -> Składniki systemu Windows -> Usługi pulpitu zdalnego -> Host sesji zdalnej -> Połączenia (Szablony administracyjne -> Składniki systemu Windows -> Usługi pulpitu zdalnego - Host sesji pulpitu zdalnego -> Połączenia) w sekcje użytkownika i „komputer” GPO. Ta zasada odpowiada ustawieniu rejestru dword Shadow w oddziale HKLM \ SOFTWARE \ Policies \ Microsoft \ Windows NT \ Terminal Services.

Ta zasada umożliwia skonfigurowanie następujących opcji połączenia w tle za pomocą połączenia w tle usługi RD Shadow:

  • Zdalne sterowanie nie jest dozwolone - zdalne sterowanie nie jest dozwolone (wartość klucza rejestru Shadow = 0);
  • Pełna kontrola za zgodą użytkowników - pełna kontrola za zgodą użytkownika (1);
  • Pełna kontrola bez zgody użytkowników - pełna kontrola bez zgody użytkownika (2);
  • Wyświetl sesję za zgodą użytkowników - monitorowanie sesji za zgodą użytkownika (3);
  • Wyświetl sesję bez zgody użytkownika - monitorowanie sesji bez zgody użytkownika (4).

Shadow RDS Shadow z PowerShell

Program Powershell może również używać funkcji połączenia w tle dla sesji użytkownika za pośrednictwem połączenia w tle usług pulpitu zdalnego.

Przede wszystkim pokazujemy, jak uzyskać listę sesji na serwerze terminali (sesje użytkowników zostaną pogrupowane w grupy w zależności od ich statusu):

Get-RDUserSession | ft Nazwa użytkownika, UnifiedSessionId, SessionState, HostServer, ApplicationType -GroupBy Sessionstate

Na tym serwerze znaleźliśmy trzy aktywne sesje terminali. Połącz się z sesją użytkownika o identyfikatorze sesji 3:
Mstsc / shadow: 3 / control
Aby uzyskać listę wszystkich sesji na serwerze, możesz uruchomić polecenie

quser

Lub

qwinsta

Na ekranie wyświetli się lista sesji RDP, ich ID i status: sesja aktywna (Aktywna) lub rozłączona (Rozłączona).

Aby uzyskać listę sesji na zdalnym serwerze, uruchom polecenie:

sesja zapytania / serwer: nazwa serwera

Aby uzyskać wygodniejsze połączenie w tle z sesjami, możesz użyć następującego skryptu. Skrypt monituje o podanie nazwy komputera zdalnego i wyświetla listę wszystkich sesji oraz monit o określenie sesji, z którą chcesz się połączyć:

shadow.bat

@echo wyłączone
set / P rcomp = "Wprowadź nazwę lub adres IP zdalnego komputera:"
sesja / serwer zapytań:% rcomp%
set / P rid = "Wprowadź identyfikator użytkownika RDP:"
uruchom mstsc / shadow:% rid% / v:% rcomp% / control

Możesz umieścić ten plik w katalogu% Windir% \ System32, dlatego w przypadku połączenia w tle po prostu uruchom polecenie cień.

Aby połączyć się z sesją konsoli, możesz użyć następującego skryptu:

@echo wyłączone
set / P rcomp = "Wprowadź nazwę lub adres IP zdalnego komputera:"
dla / f "tokenów = 3 delims =" %% G w ('zapytanie sesji konsola / serwer:% rcomp%') ustaw set rid = %% G
uruchom mstsc / shadow:% rid% / v:% rcomp% / control

Możesz używać połączenia w tle z komputerami użytkowników komputerów z systemem Windows 10 i 8.1.

Jak zezwolić zwykłym użytkownikom na korzystanie z połączenia w tle

W powyższych przykładach, aby użyć połączenia w tle do sesji terminalowych, potrzebujesz uprawnień lokalnego administratora na serwerze RDS. Możesz jednak zezwolić na użycie połączenia typu shadow w celu połączenia się z sesjami użytkowników i prostymi użytkownikami (bez przyznania im uprawnień lokalnego administratora na serwerze).

Na przykład chcesz zezwolić członkom grupy AllowRDSShadow na używanie połączenia w tle do sesji użytkownika, uruchom polecenie:

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

W styczniu 2018 r. Po zainstalowaniu aktualizacji KB4056898 (poprawka systemu Windows przeciwko Meltdown i Spectre) użytkownicy napotkali, że dostęp w tle przestał działać w systemie Windows Server 2012 R2. Podczas próby nawiązania połączenia w tle z sesją obcą pojawia się komunikat „Niezidentyfikowany błąd” (w dziennikach występuje błąd STATUS_BAD_IMPERSONATION_LEVEL). Podobny problem wystąpił w farmie RDS opartej na systemie Windows Server 2016.

Aby rozwiązać problem, musisz zainstalować osobne aktualizacje:

  • dla Windows Server 2016 - KB4057142 (17 stycznia 2018 r.)
  • dla systemu Windows Server 2012 R2 - KB4057401 (17 stycznia 2018 r.)