franc
Goto Top

VNC per SSH starten

Hallo

Kann ich von einem beliebigen Rechner aus über ssh zu einem Windows 10 PC dort den VLC Player starten und dort zB einen Film starten, der auf dem Display dort auch angezeigt wird?

Ein Benutzer ist dort angemeldet und der Bildschirm ist nicht gesperrt. ssh ist mit dessen Login verbunden, der Benutzer hat Administrator Rechte.

Das ist nur im lokalen Netz vorgesehen und stellt damit keinerlei Sicherheitslücke dar.

Die ssh Verbindung läuft über BitVise SSH Server, das auf dem W10 Rechner läuft.

Ich kann VLC per ssh zwar starten, er läuft dann im Hintergrund, zeigt aber nichts an.

Mein Anwendungsfall: ich habe einen Medien PC und möchte mir eine Fernsteuerung mit Tasker auf Android selbst basteln.
Es geht ums Basteln und nicht um die Lösung (falls jemand ein Fernsteuerungsprogramm vorschlägt).

Danke für Tipps.
franc

Content-Key: 1523343654

Url: https://administrator.de/contentid/1523343654

Printed on: May 10, 2024 at 21:05 o'clock

Member: JoeToe
JoeToe Nov 18, 2021 at 07:28:00 (UTC)
Goto Top
Moin.

VLC Options > VLC Documentation

Gruß
JoeToe
Member: NordicMike
NordicMike Nov 18, 2021 updated at 08:44:53 (UTC)
Goto Top
Die Doku wird da nicht viel helfen, er sucht so etwas, wie ein Remote Execute, da sonst der Bildinhalt über die Shell umgeleitet wird, wenn er es in der Shell einfach starten würde - oder sogar mit "cannot open DISPLAY" endet.
Mitglied: 149569
149569 Nov 18, 2021 updated at 09:42:41 (UTC)
Goto Top
https://docs.microsoft.com/en-us/sysinternals/downloads/psexec
psexec -i vlc.exe

Btw. Hast du schon mal gestellt face-wink Nircmd über SSH auf Windows 10 ausführen Nach fast zwei Jahren immer noch dran, respekt face-big-smile.
Member: franc
franc Nov 18, 2021 updated at 09:49:11 (UTC)
Goto Top

Das ist Theorie, klappt aber nicht.
vlc.exe lauft zwar im Hintergrund, kann ich im Process Explorer (oder Task Manager) schön sehen, auch als Benutzer der sich angemeldet hat, aber angezeigt wird gar nichts.


Btw. Hast du schon mal gestellt face-wink Nircmd über SSH auf Windows 10 ausführen Nach fast zwei Jahren immer noch dran, respekt face-big-smile.

Das war grundsätzlich zwar das selbe Grundproblem, aber ein bisschen eine andere Ausführung. Hab ich (bevor ich diesen Thread erstellt hatte) erst mal nachgelesen, da kam aber auch keine Lösung (wenn man von einem im Hintergrund laufenden tcp-Server absieht), auch nach zwei Jahren nicht ;)
psexec mit -i hatte damals auch schon nicht funktioniert übrigens.
Mitglied: 149569
149569 Nov 18, 2021 updated at 10:13:37 (UTC)
Goto Top
Zitat von @franc:
Das ist Theorie, klappt aber nicht.
vlc.exe lauft zwar im Hintergrund, kann ich im Process Explorer (oder Task Manager) schön sehen, auch als Benutzer der sich angemeldet hat, aber angezeigt wird gar nichts.
Klappt hier im Test aber problemlos, man muss sich natürlich entweder mit einem echten Account anmelden oder die Credentials desjenigen Users in psexec übergeben wer aktuell in der Konsole angemeldet ist.
(wenn man von einem im Hintergrund laufenden tcp-Server absieht)
Und warum machst du das dann nicht so? Wäre in so einem Fall auch meine Wahl.

Btw. Windows 10 hat inzwischen einen eigenen SSH-Server mit an Bord face-wink.
Mitglied: 149569
149569 Nov 18, 2021 updated at 11:00:47 (UTC)
Goto Top
Alternative zu psexec nutze einen imediate Task im Task-Scheduler für einen interaktiven Task
schtasks /create /TN RunNotepad /RU DeinUser /tr notepad.exe /sc EINMAL /ST 00:00
Den Task kannst du dann einfach nutzen um dein Programm zu starten
schtasks /run /tn RunNotepad

Guckst du hier:
Auf Windows 10 und 11 erfolgreich getestet, mittels Putty per SSH auf die Kiste auf den integrierten SSH-Server ...

screenshot
Member: aqui
aqui Nov 18, 2021 updated at 12:26:40 (UTC)
Goto Top
er sucht so etwas, wie ein Remote Execute
Nicht wirklich, denn er will auf dem Rechner ja nur VLC starten und dem VLC Programm eine Video Datei übergeben. Das sollte über das CLI problemlos möglich sein.

Zumindestens bei einem Raspberry Pi oder anderen linuxoiden OS ist das ohne Probleme möglich wenn man z.B. einen Film per Multicast im Netzwerk streamen will. Siehe hier:
Fehlersuche im lokalem Netzwerk (RSTP, MRP, Multicast)
Member: franc
franc Nov 18, 2021 at 16:13:58 (UTC)
Goto Top
Zitat von @149569:

Alternative zu psexec nutze einen imediate Task im Task-Scheduler für einen interaktiven Task
> schtasks /create /TN RunNotepad /RU DeinUser /tr notepad.exe /sc EINMAL /ST 00:00
> 
Den Task kannst du dann einfach nutzen um dein Programm zu starten
> schtasks /run /tn RunNotepad
> 

Hast du das mal mit vlc.exe probiert?
Mit Notepad geht es bei mir tatsächlich auch, aber nicht mit VLC, obwohl es da auch heißt:

schtasks /run /tn RunVLC
ERFOLGREICH: Es wurde versucht, die geplante Aufgabe "RunVLC" auszuführen.

Auf diese Weise landet vlc.exe nicht mal in der Task Liste, so wie wenn ich es mit psexec -i -u f -p meinpasswort vlc.exe starte (es ist im Pfad des Benutzers f).
Notepad landet übrigens mit psexec auch nur in der Taskliste, ohne zu erscheinen.

Zumindestens bei einem Raspberry Pi oder anderen linuxoiden OS ist das ohne Probleme möglich...
Ja, damit geht es easily face-smile
Mitglied: 149569
149569 Nov 18, 2021 updated at 21:03:49 (UTC)
Goto Top
Zitat von @franc:

Hast du das mal mit vlc.exe probiert?

Ja geht einwandfrei.
Member: franc
franc Nov 20, 2021 at 15:36:49 (UTC)
Goto Top
Zitat von @149569:

Zitat von @franc:

Hast du das mal mit vlc.exe probiert?

Ja geht einwandfrei.

Also dann scheint mein W10 Computer das Problem zu haben.
Vielleicht liegt es ja an RDP Wrapper, der da drauf lauft, auch wenn ich mir nicht vorstellen kann wie.

Öffnet bei dir der vlc auch im Vordergrund, wenn du ihn mit psexec -i startest per ssh?
Mitglied: 149569
149569 Nov 20, 2021 at 16:11:18 (UTC)
Goto Top
Zitat von @franc:
Öffnet bei dir der vlc auch im Vordergrund, wenn du ihn mit psexec -i startest per ssh?
Jepp.
Member: NordicMike
NordicMike Nov 22, 2021 at 05:14:02 (UTC)
Goto Top
liegt es ja an RDP Wrapper, der da drauf lauft
Daran liegst, illegal, Support beendet.
Member: franc
franc Nov 22, 2021 updated at 09:00:08 (UTC)
Goto Top
Zitat von @NordicMike:

liegt es ja an RDP Wrapper, der da drauf lauft
Daran liegts...

Probiere ich mal aus ohne.
Kann ich mir zwar kaum vorstellen, dass es damit zu tun hat, weil ich nämlich in RDP Wrapper nur eine Session pro Nutzer zugelassen habe (Single Session per User), das funktioniert auch.
Aber ich habe es mal deinstalliert (ändert nichts) und starte ihn neu...
Member: franc
franc Nov 22, 2021 updated at 09:59:17 (UTC)
Goto Top
... natürlich auch nach Neustart keine Änderung, also mit RDP Wrapper hat das definitiv nichts zu tun.
ABER: ich hab dann mal mpv.exe probiert, das ist ja vergleichbar mit VLC und genügt mir auch, mit dem schtasks-Trick und DAS FUNKTIONIERT!
Also mit
psexec -i mpv.exe
hat es auch nicht funktioniert aber mit schtasks geht es, also erstellen mit:

schtasks /create /TN RunMPV /RU DeinUser /tr mpv.exe /sc EINMAL /ST 00:00

und dann per SSH starten mit:

schtasks /run /tn RunMPV

Da erscheint der mpv Player brav im Vordergrund (im Gegensatz zum VLC-Player).
Leider kann ich dem mpv über den Task ja keinen Parameter (eine Filmdatei o.ä.) übergeben, das ist noch zu lösen face-sad
Es gibt zwar eine Weboberfläche (simple-mpv-webui) für den mpv, wenn er lauft, aber dort hat man (noch) keinen Dateizugriff, dass man einen Film o.ä. laden könnte. VLC-Remote-Controller könnten das nämlich.
Habe es mal angefragt: simple-mpv-webui/issue343

Warum es mit VLC nicht geht, ist mir aber immer noch nicht klar, aber falls ich das mit mpv hinkriege, soll es mir reichen.
Member: franc
franc Nov 22, 2021 updated at 11:58:45 (UTC)
Goto Top
So sieht es übrigens im Process Explorer aus, im Kontextmenü von mpv.exe, wenn ich es mit psexec -i starte.
Da ist der oberste Kontextmenüeintrag "Window >" nicht aktiv, der Prozess mpv.exe hat kein Fenster, warum auch immer.
Mit schtasks ist das "Window" aktiv, der Prozess hat also ein Fenster.
bildschirmfoto 2021-11-22 um 11.02.17
Member: franc
franc Nov 25, 2021 updated at 08:33:05 (UTC)
Goto Top
Jetzt kommt noch eine Frage: wie kriege ich den mpv in den Vordergrund?
Ich starte es per schtasks über SSH, das geht brav, den Parameter hol ich dann über die WebUI rein (noch zu tun) aber wie kriege ich es in den Vordergrund?
In der Hilfe von schtasks finde ich dazu nichts face-sad
Mitglied: 149569
149569 Nov 25, 2021 updated at 09:17:55 (UTC)
Goto Top
Zitat von @franc:

Jetzt kommt noch eine Frage: wie kriege ich den mpv in den Vordergrund?
Einfach mal die VLC commandline argumente studieren dann wärst du hierüber gestolpert --video-on-top.
Ansonsten hilft auch immer schnell ein kleiner AutoIt-Wrapper mit WinActivate und WinSetOnTop ...
https://www.autoitscript.com/autoit3/docs/functions/WinActivate.htm
https://www.autoitscript.com/autoit3/docs/functions/WinSetOnTop.htm
Oder ein Powershell Quickie
Add-Type –MemberDefinition '[DllImport("user32.dll")] public static extern bool SetForegroundWindow (IntPtr hWnd);' -name win -namespace w32  
$app = start 'D:\Prog\app.exe' -passthru  
sleep 2
[w32.win]::SetForegroundWindow($app.MainWindowHandle)
Hätte man eigentlich auch selbst googlen können ...
Member: franc
franc Nov 25, 2021 at 16:30:38 (UTC)
Goto Top
Klappt perfekt face-smile
Ja, das hatte ich nicht überlegt, dass man es dem Player als Parameter übergeben könnte.
Beim mpv heißt das Pendant als Parameter dann --ontop und das funktioniert bestens mit schtasks.
Mit AutoHotkey wäre es natürlich auch gegangen, hatte ich danach dann auch noch gefunden (da hattest du schon die Lösung hier gepostet).

Jetzt noch im mpv eine Datei laden, oder überhaupt irgendeinen Dateiauswahldialog öffnen.
Das erledige ich wohl mit Tasker (Android Automatisierungsapp).
Mein Ansatz wird wohl /api/loadfile/:path/:mode oder die collections oder dieser Pull sein: Added ability to add URIs to playlist #340

Danke @149569 dass du so hilfsbereit bist und so gute Antworten gibst face-smile face-smile face-smile
Das musste ich mal sagen.