TS RemoteApp

Opublikowany na:

technet

Zdalne aplikacje z wykorzystaniem usług terminalowych w Windows Server 2008

Wstęp

Usługi terminalowe Windows Server 2008 przyniosły wiele zmian i nowości, jedną z nich są zdalne aplikacje (RemoteApp). Funkcjonalność tą można najprościej określić, jako mechanizm pozwalający na udostępnianie użytkownikom aplikacje z wykorzystaniem usług terminalowych. Co istotne, aplikacje w ten sposób udostępnione z punktu widzenia użytkownika wyglądają tak, jak zainstalowane lokalnie. Co istotne niezależnie od ilości uruchomionych aplikacje przez użytkownika działają w jednej sesji terminalowej, dzięki czemu serwer nie będzie nadmiernie obciążony. Oczywiście taka zdalna aplikacja może zapisywać dokumenty bezpośrednio w zasobach lokalnego komputera, możliwe jest także przypisanie takiej aplikacji, jako domyślnego programu dla wybranych rozszerzeń. Istotnym aspektem jest także możliwość współpracy zarówno z systemami posiadającymi klientów RDP w wersji 6.0 oraz starszymi (Windows XP z Service Pack 2, Windows Server 2003 z Service Pack 1), w zależności od określonego rodzaju uwierzytelniania, co zostanie omówione w dalszej części tego artykułu.

Instalacja Roli TS: RemoteApp

Aby skorzystać z funkcjonalności RemoteApp należy zainstalować rolę usług terminalowych, podobnie jak w przypadku innych roli można wykonać na wiele sposobów – osobiście polecam wykorzystanie Konsoli Server Manager (Przykład 1).

030511 1318 app1

Przykład 1 – Instalacja roli Terminal Services

Rola Terminal Services posiada pięć różnych komponentów, aby skorzystać z mechanizmu RemoteApp wystarczy zainstalować podstawowy komponent – Terminal Server (Przykład 2). Jest on odpowiedzialny za realizację podstawowych zadań usług terminalowych.

030511 1318 app2

Przykład 2 – Komponenty roli Terminal Services

Windows Server 2008 oraz Windows Vista obsługują nowy rodzaj uwierzytelnienia NLA (Network Layer Authentication) (Przykład 3). W pierwszej fazie instalacji usług terminalowych należy określić, jaki sposób uwierzytelniania ma zostać użyty. Należy jednak pamiętać, że wybranie uwierzytelniania z wykorzystaniem NLA jest bezpieczniejsze, wymaga jednak kompatybilności po stronie klienta. Aktualnie z NLA współpracuje jedynie Windows Vista oraz Windows Server, 2008 czyli systemy posiadające klienta RDP w wersji 6.0.

030511 1318 app3

Przykład 3 – Wybór rodzaju uwierzytelniania użytkownika

Podobnie jak we wcześniejszych wersjach systemu Windows Server, w kreatorze instalacji należy określić rodzaj licencjonowania usług terminalowych (Przykład 4). Decyzja zależy od specyfiki danego środowiska i tego czy urządzenia przypisane są użytkownikom czy tez istnieją urządzenia, na których pracuje wielu użytkowników.

030511 1318 app4

Przykład 4 – Określenie metody licencjonowania usług terminalowych

W celu zapewnienia odpowiedniego poziomu bezpieczeństwa oraz kontroli dostępu do usług terminalowych należy określić, jakie grupy użytkowników mogą z nich korzystać. W Przykładzie 5, dostęp do usług terminalowych na serwerze otrzymają wszyscy użytkownicy domeny (użytkownicy z grupy Administrators domyślnie posiadają dostęp do usług terminalowych).

030511 1318 app5

Przykład 5 – Zezwolenie na korzystanie z usług terminalowych dla określonych grup użytkowników

W ostatnim oknie kreatora instalacji zawarte jest podsumowanie konfiguracji (Przykład 6). Konfiguracja określona w procesie instalacji może podlegać dalszym modyfikacjom. Należy zwrócić uwagę, że niektóre aplikacje wcześniej zainstalowane mogą wymagać ponownej instalacji by poprawnie działać, jako aplikacje zdalne. W praktyce okazuje się jednak, że większość aplikacji zainstalowanych przed instalacją roli działa poprawnie.

030511 1318 app6

Przykład 6 – Podsumowanie konfiguracji roli Terminal Services

Instalacja roli Terminal Services kończy się ponownym uruchomieniem systemu. Jeśli nic nie zakłóciło procesu instalacji, po jego zakończeniu wyświetlone zostanie podsumowanie instalacji (Przykład 7).

030511 1318 app7

Przykład 7 – Raport po instalacji

Konfiguracja RemoteApp

Konfiguracja mechanizmu RemoteApp jest wyjątkowo prosta i odbywa się z wykorzystaniem konsoli Server Manager. W drzewie konfiguracji należy wybrać Roles\Terminal Services\Ts RemoteApp Manager (Przykład 8).

030511 1318 app8

Przykład 8 – Zarządzanie TS RemoteApp

Pierwszą czynnością, jaką należy wykonać jest dodanie aplikacji, które mają być udostępniane z wykorzystaniem Zdalnych Aplikacji. Dokonuje się tego z wykorzystaniem panelu Actions, z którego należy wybrać Add RemoteApp Programs (alternatywnie w polu RemoteApp Programs, klikając prawym przyciskiem myszy, po czym wybierając Add RemoteApp Programs) (Przykład 9).

030511 1318 app9

Przykład 9 – Dodanie aplikacji mających działać poprzez usługi terminalowe

Proces dodawania aplikacji odbywa się z wykorzystaniem kreatora pozwalającego na wybór odpowiedniej aplikacji oraz podstawową konfigurację (Przykład 10).

030511 1318 app10

Przykład 10 – Kreator RemoteApp

Oprócz aplikacji, które można wybrać za pośrednictwem listy zainstalowanych programów. Możliwe jest wykorzystanie innych aplikacji z użyciem przycisku Browse oraz wskazanie lokalizacji pliku wykonywalnego danej aplikacji (Przykład 11).

030511 1318 app11

Przykład 11 – Wybór aplikacji do udostępnienia za pomocą RemoteApp

Dla każdej aplikacji można określić dodatkowe parametry takie jak jego nazwa, lokalizacja oraz możliwość użycia dodatkowych parametrów definiowanych z wykorzystaniem wiersza poleceń (Przykład 12). Bardzo interesującą funkcjonalnością jest możliwość udostępniania programów zdalnych poprzez Terminal Services Web Access, pozwalającą na publikację programów poprzez stronę internetową.

030511 1318 app12

Przykład 12 – Właściwości aplikacji w RemoteApp

Zakończeniem tego etapu jest podsumowanie zawierające listę wybranych aplikacji oraz wykaz ich konfiguracji (Przykład 13).

030511 1318 app13

Przykład 13 – Podsumowanie dodania aplikacji do RemoteApp

Po zakończonym procesie dodawania aplikacji zdalnych wykazują się one w polu RemoteApp Programs. Ponownie można znaleźć określenie opcji TS Web Access, należy pamiętać, iż wymagana jest do tego instalacja dodatkowego komponentu.

030511 1318 app14

Przykład 14 – Lista aplikacji RemoteApp

Publikacja aplikacji zdalnych może odbywać się na dwa sposoby. Pierwszym jest utworzenie skrótu w postaci pliku .rdp, który będzie działać niemalże identycznie jak ikona aplikacji. Kolejnym sposobem jest utworzenie paczki .msi, z wykorzystaniem, której możliwa jest dystrybucja z wykorzystaniem GPO oraz przypisanie aplikacji zdalnej, jako domyślnego programu dla plików z konkretnymi rozszerzeniami (Przykład 15).

030511 1318 app15

Przykład 15 – Publikowanie aplikacji w RemoteApp

Niezależnie od wyboru sposobu publikacji, cały proces odbywa się ponownie z wykorzystaniem kreatora. Poszczególne opcje oraz różnice zostaną omówione w dalszej części tego artykułu (Przykład 16).

030511 1318 app16

Przykład 16 – Kreator publikacji zdalnych aplikacji

Pierwszym etapem konfiguracji publikacji zdalnych aplikacji jest określenie folderu, w jakim będą przechowywane pliki – można np. wykorzystać zasób sieciowy i w ten sposób przekazywać użytkownikom aplikacje. Można także określić parametry serwera w tym także port, poprzez który odbywać się będzie komunikacją, określić użycie Terminal Services Gateway, czyli nowej opcji Terminal Services pozwalającej na łączenie się klientów za pośrednictwem portu, 443 czyli protokołu HTTPS, a także podpisać aplikacje certyfikatem w celu umożliwienia klientom określenie wiarygodności źródła, z jakiego pochodzą aplikacje zdalne (Przykład 17).

030511 1318 app17

Przykład 17 – Właściwości pliku RDP dla danej aplikacji

Specyficzne ustawienia przypisane są tworzeniu paczek .msi. Określa się miejsce, w którym dodane mają zostać ikony aplikacji (Pulpit lub menu Start) oraz czy aplikacja ma stać się domyślnym programem dla przypisanych jej rozszerzeń (Przykład 18).

030511 1318 app18

Przykład 18 – Publikacja do pliku .msi

Po zakończeniu tego procesu (Przykład 19) pozostaje jedynie przekazanie stworzonych plików klientom. Najwygodniejszym sposobem z punktu widzenia administratora będzie wykorzystanie paczek .msi i ich zdalna instalacja z wykorzystaniem GPO lub System Center Configuration Manager lub jego poprzednika System Management Server 2003.

030511 1318 app19

Przykład 19 – Podsumowanie publikacji plików .rdp

W specyficznych warunkach można wykorzystać pliki .rdp (Przykład 20, 21) przekazując je użytkownikowi np. z wykorzystaniem poczty elektronicznej, będzie to szczególnie interesujący scenariusz dla komputerów mobilnych, które będą pracować poza domeną.

030511 1318 app20

Przykład 20 – Opublikowane aplikacje zdalne

Wykorzystanie aplikacji zdalnych

Przyglądając się klientowi z zainstalowanymi aplikacjami RemoteApp na pierwszy rzut oka nie można odróżnić ich od tych zainstalowanych lokalnie. Pliki .rdp domyślnie posiadają inny rodzaj ikony niż odpowiadająca im aplikacja, ale nie różnią się niczym pod względem użycia (Przykład 21).

030511 1318 app21

Przykład 21 – Aplikacje zdalne po stronie klienckiej

Po uruchomieniu zdalnej aplikacji pojawia się standardowe okno łączenia do sesji terminalowej (Przykład 22).

030511 1318 app22

Przykład 22 – Nawiązanie połączenia przez RemoteApp

Aby skorzystać z aplikacji konieczne jest uwierzytelnienie się użytkownika, oraz posiadanie klienta zgodnego ze skonfigurowanym rodzajem uwierzytelniania (Przykład 23).

030511 1318 app23

Przykład 23 – Uwierzytelnienie w usłudze terminalowej

Po poprawnym procesie uwierzytelniania użytkownik zostanie zapytany o poziom dostępu przydzielone danej aplikacji. Możliwa jest konfiguracja wykorzystania zasobów lokalnych: dysku, schowka, dostępu do portów i urządzeń typu Plug & Play (Przykład 24).

030511 1318 app24

Przykład 24 – Określenie uprawnień dostępowych dla zdalnej aplikacji

Pełny proces ustalania połączenia można podejrzeć wykorzystując przycisk Details, jak można zauważyć jest on identyczny jak przy normalnym połączeniu pulpitu zdalnego. Ostatecznie jednak użytkownik nie otrzyma dostępu do pulpitu komputera zdalnego (Przykład 25).

030511 1318 app25

Przykład 25 – Szczegółowy widok procesu uruchamiania aplikacji zdalnej

Należy zwrócić uwagę, iż celem RemoteApp jest przekazanie użytkownikowi końcowemu jedynie okna skonfigurowanej wcześniej aplikacji, które dodatkowo w pełni integruje się z pulpitem oraz z systemem zgodnie z określonymi ustawieniami. Aplikacjami zdalnymi mogą być również  komunikatory internetowe lub inne aplikacje, które minimalizują się do paska szybkiego uruchamiania (systray) (Przykład 26).

030511 1318 app26

Przykład 26 – Aplikace działająca jako RemoteApp

Podsumowanie

Wykorzystanie usług terminalowych staje się coraz bardziej popularne, a funkcjonalności jakie oferują są atrakcyjną alternatywą dla rozwiązań firm trzecich. Ich głównymi zaletami jest prostota użycia, bezpieczeństwo oraz wygoda korzystania .Zdalne aplikacje niosą z sobą liczne funkcjonalności przydatne w wielu organizacjach. Są dużym ułatwieniem w sytuacjach, gdy istnieje nagła potrzeba udzielenia dostępu np. do specyficznej aplikacji biznesowej. Zastosowanie Terminal Services RemoteApp zapewne znajdzie wielu zwolenników przy równie dużej ilości możliwych scenariuszy zastosowania.

  • Grzegorz
    #1 napisany przez Grzegorz  8 miesięcy temu

    Bardzo przydatna rola, którą będę musiał przetestwać
    Pytanie tylko czy jeżeli 1 użytkownikowi udostępnimy np. 3 aplikacje to chcąc uruchomić je wszystkie jednocześnie będzie musiał do każdego połączenia rdp wpisywać dane logowania? jeżeli tak to będzie trochę irytujące dla użytkownika, poświadczenia można zapamiętać ale jeżeli nie chcemy tego robić?

  • Kamil Skalski
    #2 napisany przez Kamil Skalski  8 miesięcy temu

    Użytkownik raz podaje swoje poświadczenia, każda kolejna aplikacja uruchamiana z danego serwera nie będzie o nie więcej pytać – dla wielu serwerów można konfigurować też SSO (Single Sign On) itd.

  • Michal
    #3 napisany przez Michal  3 miesiące temu

    Fajny poradnik. Mam jedno pytanie:
    czy da się zrobić tak aby użytkownik mógł uruchomić zdalną aplikację, ale jednocześnie nie mógł zalogować się do serwera przez zdalny pulpit?

  • Kamil Skalski
    #4 napisany przez Kamil Skalski  3 miesiące temu

    Dzięki, z moich doświadczeń nie ma możliwości by użytkownik korzystał w tej samej sesji ze zdalnych aplikacji i pełnego pulpitu. Swoją drogą byłoby to niepotrzebne obciążenia łącza, skoro użytkownik może uruchomić dowolną ilość aplikacji w jednej sesji to raczej nie potrzebuje pełnego pulptiu (zresztą tak zakłąda scenariusz użycia remoteapp), a jeśli już logouje się do pełnego pulpitu to tam odpala aplikacje itd. Moim zdaniem są to dwa niezależne tryby pracy i decydujemy się na każdy z nich w zależności od potrzeb :)

  • Michal
    #5 napisany przez Michal  3 miesiące temu

    Chyba nie do końca jasno się wyraziłem :)

    Chodzi o taki scenariusz, gdzie użytkownik nie ma prawa zalogować się przez pulpit zdalny, ale ma możliwości uruchomienia aplikacji zdalnej na tym serwerze. Jest to jakiś dodatkowy aspekt bezpieczeństwa, gdzie dajemy użytkownikowi dostęp do aplikacji, ale nie pozwalamy włazić na serwer i tam grzebać. W ten sposób jedyne co użytkownik może zrobić na serwerze, to tylko to na co pozwala aplikacja.

  • Kamil Skalski
    #6 napisany przez Kamil Skalski  2 miesiące temu

    Teraz już wszystko jasne :)

    Niestety nie ma opcji, która konfigurowałaby to w prost ale jest pewna sztuczka… Mechanizmy usług terminalowych dają domyślnie dostęp zarówno do pełnego pulpitu jak i do zdalnych aplikacji, aby uniemożliwić (ale też nie zabronić) użytkownikowi pracę w pełnym pulpicie można dodać jako aplikacje sterową podczas logowania logoff.exe. Dzięki temu rozwiązaniu po nawiązaniu połączenia pełnym pulpitem użytkownik zostanie natychmiast wylogowany – co ważne nie będzie to miało miejsca gdy uruchomi jedynie zdalną aplikacje.

    Jak to zrobić…

    W konfiguracji serwera usług zdalnego pulpitu wchodzimy we właściwości RDP-Tcp, w zakładce environment wybieramy „Start the following program when user logs on” i tam wpisujemy %windir%\system32\logoff.exe

  • Możesz skorzystać z tych tagów HTML: <a> <abbr> <acronym> <b> <blockquote> <cite> <code> <del> <em> <i> <q> <strike> <strong>

Do góry