Remote Desktop Services (Polski)
kluczowym składnikiem serwera RDS jest Terminal Server (termdd.sys
), który nasłuchuje na porcie TCP 3389. Gdy klient protokołu RDP (Remote Desktop Protocol) łączy się z tym portem, jest on oznaczany unikalnym identyfikatorem SessionID i powiązany ze świeżo zrodzoną sesją konsoli (tylko sesja 0, klawiatura, mysz i interfejs trybu znakowego). Podsystem logowania (winlogon.exe), a następnie inicjowany jest podsystem graficzny GDI, który obsługuje zadanie uwierzytelniania użytkownika i prezentowania GUI., Te pliki wykonywalne są ładowane w nowej sesji, a nie w sesji konsoli. Podczas tworzenia nowej sesji sterowniki graficzne i klawiatury / myszy są zastępowane sterownikami specyficznymi dla RDP: RdpDD.sys
I RdpWD.sys
. RdpDD.sys
jest sterownikiem urządzenia i przechwytuje wywołania renderowania interfejsu użytkownika do formatu, który można transmitować przez RDP. RdpWD.sys
działa jako sterownik klawiatury i myszy; odbiera wejście klawiatury i myszy przez połączenie TCP i prezentuje je jako wejścia klawiatury lub myszy., Umożliwia również tworzenie kanałów wirtualnych, które umożliwiają przekierowanie innych urządzeń, takich jak płyty, audio, drukarki i porty COM, tj. kanały działają jako zamiennik dla tych urządzeń. Kanały łączą się z klientem poprzez połączenie TCP; ponieważ kanały są dostępne dla danych, klient jest informowany o żądaniu, które następnie jest przesyłane przez połączenie TCP do aplikacji. Cała ta procedura jest wykonywana przez serwer terminali i klienta, a RDP pośredniczy w prawidłowym transferze i jest całkowicie przezroczysta dla aplikacji., Komunikacja RDP jest szyfrowana przy użyciu 128-bitowego szyfrowania RC4. System Windows Server 2003 może używać schematów szyfrowania zgodnych z FIPS 140.
gdy klient zainicjuje połączenie i zostanie poinformowany o pomyślnym wywołaniu stosu usług terminala na serwerze, ładuje urządzenie, a także sterowniki Klawiatury/Myszy. Dane interfejsu użytkownika odebrane przez RDP są dekodowane i renderowane jako interfejs użytkownika, podczas gdy wejścia klawiatury i myszy Do Okna hostującego interfejs użytkownika są przechwytywane przez sterowniki i przesyłane przez RDP do serwera., Tworzy również inne kanały wirtualne i ustawia przekierowanie. Komunikacja RDP może być szyfrowana; przy użyciu szyfrowania niskiego, średniego lub wysokiego. Przy niskim szyfrowaniu dane wejściowe użytkownika (dane wychodzące) są szyfrowane za pomocą słabego (40-bitowego szyfru RC4). Przy średnim szyfrowaniu Pakiety interfejsu użytkownika (dane przychodzące) są również szyfrowane przy użyciu tego słabego szyfru. Ustawienie ” High encryption (Non-export) „wykorzystuje 128-bitowe szyfrowanie RC4, a” High encryption (Export) ” wykorzystuje 40-bitowe szyfrowanie RC4.
Terminal ServerEdit
Terminal Server jest składnikiem serwerowym usług terminalowych., Zajmuje się zarówno uwierzytelnianiem klientów, jak i zdalnym udostępnianiem aplikacji. Powierza się jej również zadanie ograniczania klientów w zależności od poziomu dostępu, jaki mają. Serwer terminali przestrzega skonfigurowanych zasad ograniczenia oprogramowania, tak aby ograniczyć dostępność określonego oprogramowania tylko do określonej grupy użytkowników. Informacje o sesji zdalnej są przechowywane w wyspecjalizowanych katalogach, zwanych katalogami sesji, które są przechowywane na serwerze., Katalogi sesji są używane do przechowywania informacji o stanie sesji i mogą być używane do wznawiania przerwanych sesji. Serwer terminali musi również zarządzać tymi katalogami. Serwery terminali mogą być również używane w klastrze.
w systemie Windows Server 2008 został znacznie przebudowany. Podczas logowania, jeśli użytkownik zalogował się do systemu lokalnego przy użyciu konta domeny Windows Server, poświadczenia z tego samego logowania mogą być użyte do uwierzytelnienia sesji zdalnej., Wymaga to jednak systemu Windows Server 2008 jako systemu operacyjnego serwera terminala, podczas gdy system operacyjny klienta jest ograniczony do systemu Windows Server 2008, Windows Vista i Windows 7. Ponadto serwer terminali może być skonfigurowany tak, aby umożliwić połączenie z poszczególnymi programami, a nie całym pulpitem, za pomocą funkcji o nazwie RemoteApp. Terminal Services Web Access (TS Web Access) umożliwia wywołanie sesji RemoteApp z przeglądarki internetowej. Zawiera on kontrolkę TS Web Access Web Part, która utrzymuje listę aplikacji RemoteApps wdrożonych na serwerze i aktualizuje listę., Serwer terminali może również zintegrować się z menedżerem zasobów systemu Windows w celu ograniczenia wykorzystania zasobów zdalnych aplikacji.
Serwer terminala jest zarządzany przez przystawkę konsoli Microsoft Management Console. Może być używany do konfigurowania wymagań logowania, a także do wymuszania pojedynczej instancji sesji zdalnej. Można go również skonfigurować za pomocą zasad grupy lub narzędzi zarządzania systemem Windows., Nie jest on jednak dostępny w klienckich wersjach systemu operacyjnego Windows, gdzie serwer jest wstępnie skonfigurowany tak, aby zezwalał tylko na jedną sesję i egzekwował prawa konta użytkownika w sesji zdalnej, bez dostosowywania.
Remote Desktop GatewayEdit
komponent usługi Remote Desktop Gatewayedit, znany również jako RD Gateway, może tunelować sesję RDP za pomocą kanału HTTPS. Zwiększa to bezpieczeństwo RDS poprzez zamknięcie sesji za pomocą TLS (Transport Layer Security). Pozwala to również na użycie programu Internet Explorer jako klienta RDP., Oficjalny klient MS RDP dla macOS obsługuje RD Gateway od wersji 8. Jest to również dostępne dla systemów iOS i Android.
Ta funkcja została wprowadzona w produktach Windows Server 2008 i Windows Home Server.
Remote Desktop HTML5 Web ClientEdit
pod koniec 2018 roku Microsoft wydał Remote Desktop HTML5 Web Client. Klient umożliwia użytkownikom łączenie się ze zdalnymi aplikacjami lub ze zdalnymi pulpitami bez użycia zainstalowanego klienta pulpitu zdalnego., Klient sieci Web korzysta z zabezpieczonego portu TLS 443 i nie korzysta z bramy RD do transportu ruchu, zamiast tego opiera się wyłącznie na aspekcie hosta sesji pulpitu zdalnego usług pulpitu zdalnego.
RolesEdit
Remote Desktop Gateway umożliwia autoryzowanym użytkownikom łączenie się z pulpitami wirtualnymi, programami zdalnymi i pulpitami sesyjnymi za pośrednictwem sieci prywatnej lub Internetu. Rola Broker połączeń pulpitu zdalnego umożliwia użytkownikom ponowne połączenie z istniejącym pulpitem wirtualnym, programami RemoteApp i pulpitami bazującymi na sesji., Umożliwia nawet dystrybucję obciążenia między serwerami hostów sesji usług pulpitu zdalnego w kolekcji sesji lub między pulpitami wirtualnymi w zbiorczej kolekcji pulpitów wirtualnych oraz zapewnia dostęp do pulpitów wirtualnych w kolekcji pulpitów wirtualnych. Host sesji pulpitu zdalnego umożliwia serwerowi hostowanie programów RemoteApp jako pulpitów opartych na sesji. Użytkownicy mogą łączyć się z serwerami hostów sesji usług pulpitu zdalnego w kolekcji sesji, aby uruchamiać programy, zapisywać pliki i korzystać z zasobów na tych serwerach. Użytkownicy mogą uzyskać dostęp do serwera Host sesji pulpitu zdalnego za pomocą klienta połączenia pulpitu zdalnego lub za pomocą programów RemoteApp., Host wirtualizacji pulpitu zdalnego umożliwia użytkownikom łączenie się z pulpitami wirtualnymi za pomocą połączenia RemoteApp i pulpitu. Remote Desktop Web Access umożliwia użytkownikom dostęp do połączenia RemoteApp i pulpitu za pośrednictwem Menu Start lub za pośrednictwem przeglądarki internetowej. Połączenie RemoteApp i pulpitu zapewnia użytkownikom niestandardowy widok programów RemoteApp, pulpitów opartych na sesji i pulpitów wirtualnych. Licencjonowanie pulpitu zdalnego umożliwia serwerowi zarządzanie licencjami dostępu klienta RDS (RDS CAL), które są wymagane dla każdego urządzenia lub użytkownika do połączenia się z serwerem Host sesji pulpitu zdalnego., RDS CAL są zarządzane za pomocą aplikacji Remote Desktop Licensing Manager.
RemoteAppEdit
RemoteApp (lub TS RemoteApp) to specjalny tryb RDS, dostępny w systemie Windows Server 2008 R2 i nowszym, w którym konfiguracja sesji zdalnej jest zintegrowana z systemem operacyjnym klienta. Klient RDP 6.1 jest dostarczany z Windows XP SP3, KB952155 dla użytkowników Windows XP SP2, Windows Vista SP1 i Windows Server 2008. Interfejs użytkownika RemoteApp jest renderowany w oknie na lokalnym pulpicie i jest zarządzany jak każde inne okno dla lokalnych aplikacji., Efektem końcowym jest to, że aplikacje zdalne zachowują się w dużej mierze jak aplikacje lokalne. Zadanie utworzenia sesji zdalnej, a także przekierowania zasobów lokalnych do aplikacji zdalnej, jest przejrzyste dla użytkownika końcowego. Wiele aplikacji można uruchomić w jednej sesji RemoteApp, każda z własnymi oknami.
RemoteApp może być pakowany jako plik.rdp
lub dystrybuowany za pomocą.msi
pakiet Instalatora Windows., Po spakowaniu jako plik .rdp
(który zawiera adres serwera RemoteApp, używane Schematy uwierzytelniania i inne ustawienia), RemoteApp może zostać uruchomiony przez dwukrotne kliknięcie pliku. Wywoła klienta połączenia pulpitu zdalnego, który połączy się z serwerem i wyrenderuje interfejs użytkownika. RemoteApp może być również zapakowany w Bazę Instalatora Windows, instalując, który może zarejestrować RemoteApp w menu Start, a także utworzyć skróty do jego uruchomienia. RemoteApp może być również zarejestrowany jako Obsługa typów plików lub Uri., Otwarcie pliku zarejestrowanego w RemoteApp spowoduje najpierw wywołanie połączenia pulpitu zdalnego, które połączy się z serwerem terminali, a następnie otworzy plik. Każda aplikacja, do której można uzyskać dostęp za pomocą pulpitu zdalnego, może być obsługiwana jako RemoteApp.
Windows 7 zawiera wbudowaną obsługę RemoteApp publishing, ale musi być włączona ręcznie w rejestrze, ponieważ nie ma konsoli zarządzania RemoteApp w klienckich wersjach systemu Microsoft Windows.,
udostępnianie pulpitu Windows Edytuj
w systemie Windows Vista Usługi terminalowe obejmują również funkcję udostępniania pulpitu wielu firm, znaną jako udostępnianie pulpitu systemu Windows. W przeciwieństwie do usług terminalowych, które tworzą nową sesję użytkownika dla każdego połączenia RDP, udostępnianie pulpitu systemu Windows może hostować sesję zdalną w kontekście aktualnie zalogowanego użytkownika bez tworzenia nowej sesji i udostępniać pulpit lub jego podzbiór za pośrednictwem RDP. Udostępnianie pulpitu systemu Windows może być używane do udostępniania całego pulpitu, określonego regionu lub określonej aplikacji., Udostępnianie pulpitu systemu Windows może być również używane do udostępniania pulpitów z wieloma monitorami. Podczas udostępniania aplikacji pojedynczo (a nie całego pulpitu) okna są zarządzane (niezależnie od tego, czy są minimalizowane, czy maksymalizowane) niezależnie od serwera i klienta.
funkcjonalność jest dostępna tylko za pośrednictwem publicznego API, które może być używane przez dowolną aplikację do udostępniania funkcji udostępniania ekranu. Interfejs API udostępniania pulpitu systemu Windows udostępnia dwa obiekty: RDPSession
dla sesji udostępniania i RDPViewer
dla przeglądarki., Dla jednego obiektu sesji można utworzyć instancję wielu obiektów przeglądarki. Przeglądarka może być albo pasywną przeglądarką, która jest w stanie oglądać aplikację jak screencast, albo interaktywną przeglądarką, która jest w stanie współdziałać w czasie rzeczywistym ze zdalną aplikacją. Obiekt RDPSession
zawiera wszystkie współdzielone aplikacje, reprezentowane jako obiekty Application
, każdy z obiektami Window
reprezentujące ich okna na ekranie. Filtry poszczególnych aplikacji przechwytują okna aplikacji i pakują je jako obiekty Window
., Przeglądarka musi się uwierzytelnić, zanim będzie mogła połączyć się z sesją udostępniania. Można to zrobić poprzez wygenerowanie Invitation
przy użyciu RDPSession
. Zawiera bilet uwierzytelniania i hasło. Obiekt jest serializowany i wysyłany do widzów, którzy muszą przedstawić Invitation
podczas łączenia.
interfejs Windows Desktop Sharing API jest używany przez Windows Meeting Space i Windows Remote Assistance do udostępniania aplikacji między rówieśnikami sieciowymi.