Czy klienci RDP mogą uruchamiać aplikacje zdalne, a nie komputery stacjonarne

85

Czy klienci RDP mogą uruchomić aplikację zdalną, a następnie wyświetlić tylko tę aplikację (a nie pulpit)? Aplikacja pojawiłaby się na pełnym ekranie w kliencie i gdyby aplikacja została zamknięta, sesja zakończyłaby się.

Richard Dorman
źródło
1
Właśnie tego szukałem ... dzięki, że pytasz!
Gishu
1
Odpowiedź @ user172681 zawiera najbardziej aktualny link. Jest teraz również sprytne narzędzie o nazwie „Narzędzie RemoteApp” (patrz łącza w sekcji aktualizacji u góry strony) do konfigurowania aplikacji zdalnych i generowania plików RDP ... działało idealnie dla mnie w systemie Win7.
John Rix

Odpowiedzi:

19

Używając pliku połączenia RDP, możesz ustawić alternatywną powłokę jako twoją aplikację; składnia pliku jest podobna do

alternate shell:s:c:\winnt\system32\notepad.exe

i przekazujesz to jako argument wiersza poleceń do mstsc.exe; jest to podobne do rozwiązania chrissr, ale bez wpływu na każdą uruchamianą sesję RDP. Pełniejsze podsumowanie ustawień tutaj .

Steve Gilham
źródło
6
nie zadziałało ... widziałem właściwość w pliku rdp, ale dokonanie zmiany (która się powinna zadziałać) nic nie zmieniła, kiedy zainicjowałem połączenie. zdalny z Vista x64 do Win 7 x64.
sonjz
3
Niestety link nie działa.
Nikola Malešević
1
Czy mógłbyś to zaktualizować, podając więcej szczegółów lub przynajmniej naprawić link?
WhiteHotLoveTiger
Nie działa dla mnie w systemie Windows 10. Czy usunęli tę funkcję?
مسعود
38

Wydaje się, że „alternatywna powłoka” już nie działa w najnowszych wersjach systemu Windows RemoteApp.

remoteapplicationmode:i:1
remoteapplicationname:s:Purpose of the app shown to user...
remoteapplicationprogram:s:C:\...\some.exe
remoteapplicationcmdline:s:

Aby to działało np. Pod Windows 10 Professional, należy włączyć jakąś politykę :

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services]
"fAllowUnlistedRemotePrograms"=dword:00000001
Thorsten Schöning
źródło
7
Dla ścisłości: powyższe zmiany (z pierwszej sekcji) należy wprowadzić w samym .rdppliku oraz w rejestrze na serwerze.
picrap
Dla przypomnienia, istnieją dwa podobnie nazwane klucze RDP: remoteapplicationfile:si remoteapplicationprogram:s. Do *filekluczowych Określa pełną ścieżkę do pliku wykonywalnego na lokalnym (host) komputerze, a *programklucz określa wykonywalny na zdalnym komputerze.
Moshe Rubin
11

Nazywa się to trybem „płynnym”. rdesktop, klient RDP dla systemu Unix, jest w stanie to zrobić. Ze strony podręcznika:

   -A     Enable SeamlessRDP. In this mode, rdesktop creates a X11 window for each window on the server
          side.  This  mode  requires  the  SeamlessRDP  server side component, which is available from
          http://www.cendio.com/seamlessrdp/.  When using this option, you  should  specify  a  startup
          shell which launches the desired application through SeamlessRDP.

Więcej informacji można znaleźć na wspomnianej stronie internetowej Cendio .

ypnos
źródło
2
czy coś takiego jest dostępne w systemie Windows?
ScottC,
9

Jest to dość łatwo osiągalne.

  1. Musimy zezwolić na uruchamianie programów spoza listy z RDP.
    1.1 Zapisz poniższy skrypt na swoim pulpicie, rozszerzenie musi kończyć się na .reg.
Edytor rejestru systemu Windows w wersji 5.00

    [HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Terminal Server \ TSAppAllowList]
    „fDisabledAllowList” = dword: 00000001


       1,2 prawym przyciskiem myszy na plik i kliknij Merge, Yes, Ok.

  1. Modyfikowanie naszego pliku rdp.
    2.1 Na końcu naszego pliku dodaj następujący kod:
tryb zdalnej aplikacji: i: 1
remoteapplicationname: s: to będzie opcjonalny opis aplikacji
remoteapplicationprogram: s: Względna lub bezwzględna ścieżka do aplikacji
                           (Przykład: taskmgr lub C: \ Windows \ system32 \ taskmgr.exe)
remoteapplicationcmdline: s: W tym miejscu można umieścić dowolne opcjonalne parametry aplikacji


Lub po prostu użyj tego, aby upewnić się, że działa:

tryb zdalnej aplikacji: i: 1
remoteapplicationname: s:
remoteapplicationprogram: s: mspaint
remoteapplicationcmdline: s:

        2.2 Wprowadź swoją nazwę użytkownika i hasło i połącz się.


    3. Teraz możesz używać RemoteApp bez żadnych problemów, tak jakby był uruchomiony na komputerze lokalnym 😉


źródło
Doskonała odpowiedź powyżej wykorzystuje remoteapplicationprogram:sklucz do określenia aplikacji znajdującej się na komputerze zdalnym . Aby uruchomić lokalną aplikację po stronie hosta na komputerze zdalnym, użyj remoteapplicationfile:sklucza.
Moshe Rubin
6

Tak, możesz zmienić domyślną powłokę z Explorer.exe na określoną aplikację.

W Regedit przejdź do HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon. Bieżącą powłoką powinien być Explorer.exe. Zmień go na YourApp.exe. Spowoduje to zmianę powłoki dla wszystkich użytkowników, którzy logują się do komputera. Jeśli chcesz zmienić go tylko dla określonego użytkownika, przejdź do tego samego klucza w HKEY_CURRENT_USER.

chrissr
źródło
Uwaga: użytkownicy nadal będą mogli używać CTRL-Alt-Del i uzyskiwać dostęp do innych aplikacji. Możesz chcieć wyłączyć CTRL-Alt-Del dla konta lub grupy, która będzie się logować przez RDP.
chrissr
3
To skutecznie uniemożliwia użytkownikowi regularne logowanie.
ypnos
1

Myślę, że Citrix robi takie rzeczy. Chociaż nie jestem pewien szczegółów, ponieważ użyłem go tylko kilka razy. Myślę, że ten, którego użyłem, nazywał się XenApp, ale nie jestem pewien, czy o to ci chodzi.

LiamGu
źródło
Wydaje się, że XenApp bardziej dotyczy wirtualizacji aplikacji niż zdalnego dostępu (chociaż widzę, że ma opcję zdalną). Szukam też czegoś w obozie open source (np. Rdesktop).
Richard Dorman
2
Pod maską kluczowym elementem XenApp jest nadal przetwarzanie na serwerze (tak jak dziesięć lat temu, kiedy produkt nosił nazwę MetaFrame). Po prostu zmieniły się mody marketingowe, a produkt poszerzył się, obejmując więcej niż tylko rdzeń aplikacji zdalnej.
Steve Gilham
1

Inny sposób jest pokazany w tym artykule CodeProject:

http://www.codeproject.com/KB/IP/tswindowclipper.aspx

Podstawowym pomysłem jest utworzenie kanału wirusowego, który wysyła pozycję okien aplikacji, które chcesz pokazać, a następnie renderuje tylko tę część okna na kliencie.

Jon Clegg
źródło
0

RDP nie zrobi tego natywnie.

Jak powiedziały inne odpowiedzi - musisz wykonać trochę skryptów i wprowadzić zmiany zasad, aby utrudnić logowanie RDP do uruchamiania czegokolwiek poza zamierzoną aplikacją.

Jednak od 2008 r. Firma Microsoft udostępniła technologię wirtualizacji aplikacji za pośrednictwem usług terminalowych, która umożliwia bezproblemowe wykonywanie tego zadania.

James
źródło
0

Przynajmniej w wersji 2008R2, jeśli konta są używane tylko do RDP, a nie do logowania lokalnego, możesz to ustawić dla każdego konta. To powinno działać w przypadku cienkich klientów. Jeśli konta są również używane na lokalnych komputerach stacjonarnych, wpłynęłoby to również na te logowania.

W ADUsers & Computers otwórz właściwości konta i przejdź do zakładki Environment. Na tej karcie zaznacz opcję „Uruchom następujący program przy logowaniu” i określ ścieżkę oraz plik wykonywalny programu.

słupek ogrodzeniowy
źródło