Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

RemoteApp w Windows czyli zdalny pulpit bez pulpitu

Korzystacie czasem ze zdalnego pulpitu? Ja tak i to nawet często. Najczęściej uruchamiamy zdalny pulpit aby uruchomić jakąś aplikację której nie chcemy instalować na każdym komputerze (lub nie możemy bo zabrania tego licencja).

A co powiecie na uruchamianie zamiast klienta Remote Desktop i przeklikiwania się przez miliony skrótów na pulpicie i w Menu Start tylko tego jednego potrzebnego programu? Zaciekawieni? To zapraszam dalej :)

Na początek definicja RemoteApp ze strony technet.microsoft.com:

Funkcja Terminal Services RemoteApp (TS RemoteApp) pozwala organizacjom udostępniać standardowe programy oparte na systemie Windows z prawie dowolnej lokalizacji użytkownikom dowolnego komputera z systemem Windows Vista® lub Windows Server® 2008, a także użytkownikom komputerów z systemami Windows® XP z dodatkiem Service Pack 2 lub Windows Server 2003 z dodatkiem Service Pack 1 z zainstalowanym nowym klientem usługi Podłączanie pulpitu zdalnego (RDC, Remote Desktop Connection)

Czyli jednym słowem za pomocą tej usługi możemy klientowi dostarczyć potrzebne oprogramowanie bez konieczności „wpuszczania” go bezpośrednio na pulpit serwera. Chwila, chwila – piszę serwera, a miało być o Windows 7. I właśnie okazuje się, że możemy taki domowy serwer postawić u siebie o ile posiadamy system Windows 7 Ultimate/Enterprise (niestety), Windows Vista SP1 Pro lub wyżej, lub Windows XP Profesionall SP3.
Trick który opiszę poniżej ma niestety kilka ograniczeń w stosunku do pełnoprawnej usługi TS Remote APP znanej z edycji serwerowych. Po pierwsze Windows w wersji klienckiej pozwala na uruchomienie tylko jednej zdalnej sesji jednocześnie (ale istnieją odpowiednie patche które pozwalają to obejść – ciekawskich zapraszam do linków na końcu artykułu) czyli de facto uruchomienia tylko jednego programu. Nie możemy również skorzystać z programów wykorzystujących DirectX – protokół RDP niestety nie obsługuje akceleracji (chociaż na Windows Server 2008 R2 pojawił się RemoteFX pozwalający wykorzystać akcelerację na wirtualizowanych maszynach, a Microsoft nieśmiałe zapowiada tę funkcjonalność w Service Pack’u 3 dla Windows 7).

Koniec wstępu – zaczynamy zabawę!

Pierwszym krokiem jest włączenie zdalnego pulpitu na naszym serwerze:

Windows XP SP3:
PPM -> Moj Komputer-> Zdalny-> Zezwalaj użytkownikom na zdalne łączenie się z tym komputerem

Windows Vista oraz Windows 7
Panel Sterowania -> System -> Zdalny -> Zezwalaj na połączenia z komputerów z dowolna wersją Pulpitu zdalnego (mniej bezpieczne)

Na początek uruchamiamy edytor rejestru: Start->Uruchom(lub Win+R)->regedit.exe

Przechodzimy do gałęzi

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Terminal Server

w kluczu TsAppAllowList zmieniamy wartość na 1

poniżej Terminal Server tworzymy klucz Applications,

pod Applications tworzymy następny klucz o dowolnej nazwie - najlepiej takiej jak aplikacja aby się nie pogubić,

W kluczu tworzymy:

wartość ciągu (string) o nazwie Name - tutaj wpisujemy nazwę programu - dla przykładu Notepad,

wartość ciągu (string) o nazwie Path w której wpisujemy ścieżkę do programu: c:\windows\system32\Notepad.exe,

To powinna wystarczyć ale jeśli tak nie będzie należy dopisać następujące klucze:

CommandLineSetting=dword:00000000 RequiredCommandLine= VPath="%SYSTEMDRIVE%\\Windows\\system32\\notepad.exe" ShowInTSWA=dword:00000001 SecurityDescriptor=

Następnie po stronie klienta w notatniku tworzymy plik z zawartością (najważniejsze 4 pierwsze linijki):

full address:s:ADRES_IP_SERWERA remoteapplicationprogram:s:||Notepad remoteapplicationname:s:Notepad alternate full address:s:NAZWA_SERWERA - opcjonalnie redirectclipboard:i:1 redirectposdevices:i:0 redirectprinters:i:1 redirectcomports:i:1 redirectsmartcards:i:1 devicestoredirect:s:* drivestoredirect:s:* redirectdrives:i:1 session bpp:i:32 prompt for credentials on client:i:1 span monitors:i:1 use multimon:i:1 remoteapplicationmode:i:1 server port:i:3389 allow font smoothing:i:1 promptcredentialonce:i:0 authentication level:i:2 remoteapplicationcmdline:s: disableremoteappcapscheck:i:1 alternate shell:s:rdpinit.exe screen mode id:i:2 winposstr:s:0,3,0,0,800,600 compression:i:1 keyboardhook:i:2 audiocapturemode:i:0 videoplaybackmode:i:1 connection type:i:2 disable wallpaper:i:1 allow desktop composition:i:1 disable full window drag:i:1 disable menu anims:i:1 disable themes:i:0 disable cursor setting:i:0 bitmapcachepersistenable:i:1 audiomode:i:0 redirectdirectx:i:1 autoreconnection enabled:i:1 prompt for credentials:i:0 negotiate security layer:i:1 remoteapplicationicon:s: shell working directory:s: gatewayhostname:s: gatewayusagemethod:i:4 gatewaycredentialssource:i:4 gatewayprofileusagemethod:i:0 use redirection server name:i:0

zapisujemy go z rozszerzeniem *.rdp i uruchamiamy.

W zależności od systemu na którym hostujemy aplikację powinniśmy zostać poproszeni o hasło i login (Windows 7 i prawdopodobnie Vista), lub musimy kliknąć w Details i wpisać login i hasło (Windows XP).
Jeśli w systemie jest w tej chwili zalogowany użytkownik dostaniemy również w tym oknie komunikat, że użytkownik jest zalogowany i czy chcemy go wylogować.

To by było na tyle z naszym RemoteApp'em.

Jeśli chcemy korzystać z "serwera" na Windows XP musimy doinstalować poprawkę z adresu:http://www.microsoft.com/downloads/details.aspx?FamilyID=2f376f53-83cf...

Windows Vista SP1:http://www.microsoft.com/downloads/details.aspx?FamilyID=2f376f53-83cf...

Klienci RDP v7 (wymagany dla RemoteApp) dla:
Windows XP:http://www.microsoft.com/downloads/details.aspx?displaylang=en&Fam...

Windows Vista:http://www.microsoft.com/downloads/details.aspx?displaylang=en&Fam...

Kilka sesji RDP na Windows XP:http://www.howtechnews.com/2008/05/17/enabling-multiple-concurrent-rem...

Kilka sesji RDP na Windows Vista

http://experts.windows.com/frms/windows_entertainment_and_connected_ho...

Kilka sesji RDP na Widnows 7:http://www.raymond.cc/blog/archives/2011/03/26/enable-remote-desktop-c...

Powyższe instrukcje mogą nie działać lub być nieaktualne.

Jak ktoś jest leniwy i nie lubi grzebać w rejestrze i pliku RDP może skorzystać z programu na stroniehttp://sites.google.com/site/kimknight/remoteapptooli dzięki temu dodać aplikacje oraz wygenerować plik RDP do połączenia

Nie odpowiadam za wszelkie problemy, usterki awarie które mogą wyniknąć z powodu nieumiejętnej edycji rejestru bądź zmiany plików systemowych.

Wszystko robicie na własne ryzyko ;)
 

Komentarze

0 nowych
FaUst   11 #1 28.09.2011 13:09

Dopisze tylko, że dokładnie z tego samego mechanizmu korzystać XP Mode w Windows 7 :)

djgrzenio   8 #2 28.09.2011 14:02

pamietaj ze sesja terminalowa windows client daje nam tylko jednego usera.

jedynym rozsadnym rozwiazaniem jest windows server - jednak musisz miec osobne licencje terminalowe. oczywiscie aby aplikacja dziala poprawnie musi byc tez poprawnie zainstalowana :)

djgrzenio   8 #3 28.09.2011 14:03

i popraw linki. bo nie linkuja :(

FaUst   11 #4 28.09.2011 14:11

Linki poprawione, a tekst jak już pisałem traktuje o zastosowaniach domowych - np siedzisz na laptopie i chcesz odpalić Outlooka z kompa stacjonarnego. Po podmianie plików termsrv można to zrobić nawet wtedy kiedy ktoś inny pracuje na komputerze. A dla Outlooka, czy specyficznego edytora nie będę licencji terminalowych (do domu) kupował

djgrzenio   8 #5 28.09.2011 15:19

chodzilo mi o licencje terminalowe dostepowe do serwera dla urzadzen lub uzytkownika. a co to outlooka i office to trzeba miec specjalne licencje do pracy terminalowej

FaUst   11 #6 28.09.2011 15:58

Wiem o co CI chodziło - a mi chodzi po prostu o fajny feature który można zastosować w domu a nie w firmie a o którym pewnie mało kto wie.

Kpc21   9 #7 28.09.2011 19:10

Pod Linuksem można osiągnąć to samo w dużo prostszy sposób, po SSH :)

FaUst   11 #8 28.09.2011 19:37

Ale piszę o Windows-ie :P

djgrzenio   8 #9 28.09.2011 21:01

kpc21 . no tto poprosze o opis streamowania aplikacji pod linuxa. jestem ciekaw. vnc? kiepski. jedynie nx sie nadaje do pracy. a podobne fjuczery tylko citrix oferuje

darekols   6 #10 29.09.2011 18:11

To wygląda bardzo skomplikowanie, a po co? Wcale nie musi.
Jeśli mój znajomy ma problem z komputerem to wystarczą 4 kroki:

1. Uruchom to -> link do TeamViewera. (nie wymaga instalacji)
2. Podaj identyfikator i hasło.
3. Ok już patrzę.
4. Gotowe.

I działa na każdym systemie operacyjnym, a jakość transmisji jest regulowana według przepustowości łącza, aby nie było lagów.

djgrzenio   8 #11 29.09.2011 21:15

dokladnie, pozatym po co strumieniowac caly ppulpit, przykladem moze byc proste podlaczenie sie do aplikacje przez modem gsm do gdzie wiadomo liczy sie transfer i szybkosc

januszek   18 #12 30.09.2011 11:45

Jeżeli dobrze rozumiem, to po zalogowaniu się na pulpit zdalny takiej maszyny odpali się okienko notepad.exe z tej maszyny?

FaUst   11 #13 30.09.2011 11:47

@januszek - tak i nic poza nim - zobacz jak działa XP Mode

januszek   18 #14 30.09.2011 12:09

@MrFaUst: Ok, a gdybym chciał aby każdy logujący się uruchomiał w taki sposób inną aplikację?

FaUst   11 #15 30.09.2011 13:49

Maksymalnie 2-3 osoby po podmianie termsrv - dla każdej aplikacji musisz stworzyć wpis w rejestrze i plik RDP

webnull   9 #16 30.09.2011 16:42

Ile to grzebania jest w Windowsie jak w Linuksie można to wykonać jednym poleceniem.

ssh -X uzytkownik@host
I po prostu wpisać polecenie uruchamiające program np. "firefox", "audacity", "nautilus", "thunar" czy "dolphin".

djgrzenio   8 #17 30.09.2011 16:51

@januszek -> odpalane jest cale srodowisko, natomiast do usera jest streamowana tylko konkretna aplikacja
w windows server bynajmniej mozesz defioniowac jakie aplikacje mozna tak odpalac, pozatym nawet trzeba, dodatkowo mozna miec paczki msi i aplikacja praktycznie wyglada jak by dzialala lokalnie na kompie, dla przyklad gadugadu chowa sie do traya normalnie. ja w ten sposob odpalilem w jednej firmie aplikacje ksiegowa na kilka stanowisk, oczywiscie licencje terminalowe i kazda sesja aplikacji odpalana jako osobny user musi byc

FaUst   11 #18 30.09.2011 18:40

@webnull to poproszę wpis na ten temat - z chęcią przeczytam i przekonam się czy to takie łatwe :)

FaUst   11 #19 02.10.2011 18:57

webnulll opluł Windowsa i już nie wróci bo po co....

  #20 03.10.2011 12:54

Czyli ustawiam zdalny notatnik a łącze się z kalkulatorem?

FaUst   11 #21 03.10.2011 16:32

Nie ten screen :)

  #22 28.10.2011 09:04

A czy da się zrobić tak aby użytkownik miał dostęp do jednej aplikacji, a jednocześnie nie mógł się zalogować przez zdalny pulpit.

januszek   18 #23 19.07.2012 11:40

Hmm, u mnie nie ma klucza TsAppAllowList :)

FaUst   11 #24 26.07.2012 11:16

A masz XPka albo Win7 Ultimate/Enterprise?

  #25 09.08.2012 09:01

Jak klikam na TsAppAllowList to po prawej stronie wyświetla się kilka innych kluczy:
(Domyślna)
CentralLicensing
...
...
LicensingType

w którym wpisać ta jedynkę??

Pozdrawiam

PS: Mam Windows 7

  #26 07.02.2013 10:28

A czy można zrobić coś takiego na WINDOWS 7 premium. A może jakiś inny program albo coś innego.
Potrzebuje coś takiego, aby udostępnić pracownikom jeden program, do sprawdzania stanów na magazynie. Jak macie jakieś pomysły, to proszę o pomoc !!!

  #27 07.02.2013 10:41

Potrzebuje coś takiego ale mam Windows 7 premium. Da się może to zrobić jakimś innym programem!

_nikt79_   4 #28 21.05.2013 17:50

Dzięki za opisanie , korzystam z tej funkcjonalności i jedyny problem jaki miałem hostując z XP dotyczył zmiany portu dla RemoteApp.
Jeżeli ktoś trafi na podobny problem , wystarczy zmienić wpis w kluczu:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp\PortNumber

FaUst   11 #29 14.06.2013 19:17

Miło, że ktoś jeszcze do tych staroci wraca :)

  #30 05.12.2013 09:44

Na W2012 dziala świetnie. Przy okazji chyba nie ma problemu z wielosesyjnością.

  #31 25.03.2014 15:22

Ci co marudzą nie wiedzą do czego może się taka funkcjonalność przydać i marudzą dla samego marudzenia. Wyobrażcie sobie, że musicie udostępnić jakąs aplikację na serwerze obywatelowi Chin. I co? Wpuścicie go na TerminalServer? Pewnie i można tak ustawić GPO aby zabezpieczyć się przed skrótem klawiszowym i wejściem do powłoki, ale zawsze pozostaje niepewność czy zby coś nie zostało pominięte. I...nadal obywatel ChRL siedzi na serwerze gdzie jest trochę danych. A co jak postawimy na boku taką maszynkę z W7 i będziemy wpuszczać tylko na Nią w dodatku uruchamiając z niej tylko jeden program? Lodzio miodzio :)
Dzięki za wpis!

  #32 08.02.2015 12:08

I ta maszynka z Win7 na pewno obsłuży całe Chiny :)

  #33 20.10.2015 11:50

@djgrzenio: Proszę bardzo: ssh -X firefox