Mit Script externes Win Programm starten
Moderator: Co-Administratoren
-
- Beiträge: 18
- Registriert: 24.05.2020, 00:15
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 2 Mal
Mit Script externes Win Programm starten
Hallo
Ich steh auf der Leitung und komm auch mit meiner Suche nicht weiter. Per ssh lässt sich ja Verhältnismäßig recht viel steuern. So kann man sogar einige Anwendungen unter Linux starten. Ich suche aber schon die ganze Zeit eine Möglichkeit, ein Programm oder Batchfile auf Windows 10 zu starten, wenn ein bestimmtes Ereignis eintritt. Bsp.: ein Schalter wird betätigt und die Homematic startet ein Programm, das auf einer Maschine mit Windows installiert ist (C:\programme\schalter.exe). Hat hier jemand so etwas schon mal gemacht oder einen guten Tip wo ich nachsehen kann?
Vielen Dank
Ich steh auf der Leitung und komm auch mit meiner Suche nicht weiter. Per ssh lässt sich ja Verhältnismäßig recht viel steuern. So kann man sogar einige Anwendungen unter Linux starten. Ich suche aber schon die ganze Zeit eine Möglichkeit, ein Programm oder Batchfile auf Windows 10 zu starten, wenn ein bestimmtes Ereignis eintritt. Bsp.: ein Schalter wird betätigt und die Homematic startet ein Programm, das auf einer Maschine mit Windows installiert ist (C:\programme\schalter.exe). Hat hier jemand so etwas schon mal gemacht oder einen guten Tip wo ich nachsehen kann?
Vielen Dank
- Roland M.
- Beiträge: 9805
- Registriert: 08.12.2012, 15:53
- System: CCU
- Wohnort: Graz, Österreich
- Hat sich bedankt: 252 Mal
- Danksagung erhalten: 1381 Mal
Re: Mit Script externes Win Programm starten
Hallo!
Interessantes Problem!
Spontan fällt mir aber nur eine Lösung mit unschönem Polling ein:
Auf CCU wird ein Windows/CIFS-Verzeichnis gemounted.
Wenn der Auslöser kommt, wird ein per touch eine Datei angelegt.
Unter Windows läuft ein Batch-File nach Art:
:loop
if exist xy.txt schalter.exe
if exist xy.txt del xy.txt
sleep 5
goto loop
Könnte funktionieren...
Roland
Interessantes Problem!
Spontan fällt mir aber nur eine Lösung mit unschönem Polling ein:
Auf CCU wird ein Windows/CIFS-Verzeichnis gemounted.
Wenn der Auslöser kommt, wird ein per touch eine Datei angelegt.
Unter Windows läuft ein Batch-File nach Art:
:loop
if exist xy.txt schalter.exe
if exist xy.txt del xy.txt
sleep 5
goto loop
Könnte funktionieren...
Roland
Zur leichteren Hilfestellung bitte unbedingt beachten:
-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...
- Bezeichnung (HM-... bzw. HmIP-...) der betroffenen Geräte angeben (nicht Artikelnummer)
- Kurzbeschreibung des Soll-Zustandes (Was soll erreicht werden?)
- Kurzbeschreibung des Ist-Zustandes (Was funktioniert nicht?)
- Fehlermeldungen genau abschreiben, besser noch...
- Screenshots von Programmen, Geräteeinstellungen und Fehlermeldungen (direkt als jpg/png) einstellen!
-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...
- Roland M.
- Beiträge: 9805
- Registriert: 08.12.2012, 15:53
- System: CCU
- Wohnort: Graz, Österreich
- Hat sich bedankt: 252 Mal
- Danksagung erhalten: 1381 Mal
Re: Mit Script externes Win Programm starten
Hallo Markus!
Nur war das meines Wissens nach eine Fernsteuerung vom PC aus, das man sich also z.B. einen "Lichtschalter" in die Taskleiste legen konnte.
EDIT: Sehe gerade, dass das senden und empfangen kann!
http://dragonfly.at/CCU-RemotePC.html
Dann wäre es wohl einen Versuche wert!
Roland
Ja, gab gibt es.
Nur war das meines Wissens nach eine Fernsteuerung vom PC aus, das man sich also z.B. einen "Lichtschalter" in die Taskleiste legen konnte.
EDIT: Sehe gerade, dass das senden und empfangen kann!
http://dragonfly.at/CCU-RemotePC.html
Dann wäre es wohl einen Versuche wert!
Roland
Zur leichteren Hilfestellung bitte unbedingt beachten:
-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...
- Bezeichnung (HM-... bzw. HmIP-...) der betroffenen Geräte angeben (nicht Artikelnummer)
- Kurzbeschreibung des Soll-Zustandes (Was soll erreicht werden?)
- Kurzbeschreibung des Ist-Zustandes (Was funktioniert nicht?)
- Fehlermeldungen genau abschreiben, besser noch...
- Screenshots von Programmen, Geräteeinstellungen und Fehlermeldungen (direkt als jpg/png) einstellen!
-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...
-
- Beiträge: 18
- Registriert: 24.05.2020, 00:15
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 2 Mal
Re: Mit Script externes Win Programm starten
Uh das ist wirklich spannend, das war ja überhaupt nicht auf meinem Radar das werd ich mir mal ansehen . Danke erstmal
-
- Beiträge: 272
- Registriert: 03.10.2014, 12:46
- System: CCU
- Wohnort: Enzkreis
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 43 Mal
Re: Mit Script externes Win Programm starten
seit Win10 bringt Windows einen SSH-Server mit (der nur ausgewählt/aktiviert werden muss), vielleicht klappts damit dann linux-like?
- Roland M.
- Beiträge: 9805
- Registriert: 08.12.2012, 15:53
- System: CCU
- Wohnort: Graz, Österreich
- Hat sich bedankt: 252 Mal
- Danksagung erhalten: 1381 Mal
Re: Mit Script externes Win Programm starten
Hallo!
Wie würdest du das "linix-like" umsetzen?
Roland
Nun, ob das Betriebssystem Windows oder Linux heißt, sehe ich nicht als großen Unterschied an. Keines ist wirklich event-getriggert, also muss in welcher Form und Ausprägung ein Polling her.
Wie würdest du das "linix-like" umsetzen?
Roland
Zur leichteren Hilfestellung bitte unbedingt beachten:
-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...
- Bezeichnung (HM-... bzw. HmIP-...) der betroffenen Geräte angeben (nicht Artikelnummer)
- Kurzbeschreibung des Soll-Zustandes (Was soll erreicht werden?)
- Kurzbeschreibung des Ist-Zustandes (Was funktioniert nicht?)
- Fehlermeldungen genau abschreiben, besser noch...
- Screenshots von Programmen, Geräteeinstellungen und Fehlermeldungen (direkt als jpg/png) einstellen!
-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...
-
- Beiträge: 18
- Registriert: 24.05.2020, 00:15
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 2 Mal
Re: Mit Script externes Win Programm starten
OpenSSH funktioniert auch, nur irgendwie hab ich da Probleme mit den Puplic Keys. Für Linux war meine Herangehensweise so: Ein script mit system.Exec und Gammu verschickt eine SMS bei einem bestimmten Event. Klappt ganz gut mit Linux und sollte auch mit OpenSSH in Windows funktionieren. Ich kämpfe da aber eben schon länger mit den Keys und bekomme es irgendwie nicht hin, dass die Passwortabfrage aufhört, was unter Linux aber geklappt hat. Daher war mein Gedanke, bei solchen Anwendungsfällen, lieber ein Script auf dem Rechner zu haben und ein eigenes Tool übernimmt die Kommunikation.
So sieht übrigens ein Script aus, dass ich üblicherweise unter Linux verwendet habe:
string stdout;
string stderr;
system.Exec("/usr/bin/ssh benutzer@server gammu sendsms TEXT 004XXXXXX(TelNr.) -text 'Wohnung_Kuehlschrank_offen'", &stdout, &stderr);
So sieht übrigens ein Script aus, dass ich üblicherweise unter Linux verwendet habe:
string stdout;
string stderr;
system.Exec("/usr/bin/ssh benutzer@server gammu sendsms TEXT 004XXXXXX(TelNr.) -text 'Wohnung_Kuehlschrank_offen'", &stdout, &stderr);
-
- Beiträge: 272
- Registriert: 03.10.2014, 12:46
- System: CCU
- Wohnort: Enzkreis
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 43 Mal
Re: Mit Script externes Win Programm starten
in ct (c’t 2020, Heft 16) stand mal dazu, hoffe dass das Zitieren hier erlaubt ist:
Ohne weitere Konfiguration darf sich jedes Mitglied der Gruppe administrators mit seinem Kennwort anmelden. Um das zu ändern, müssen Sie nicht etwa Registry-Schlüssel anpassen, sondern die Datei sshd_config bearbeiten – OpenSSH wurde fast komplett aus der Linux-Welt überführt. Um dort Änderungen vorzunehmen, müssen Sie die Datei mit Administratorrechten im Texteditor öffnen. Am einfachsten geht das in einer Admin-Eingabeaufforderung:
notepad %programdata%\ssh\sshd_config
Linux-Anwendern kommt diese Datei bekannt vor. Um zu steuern, wer sich an der Maschine per SSH anmelden darf, scrollen Sie ans Ende der Datei. Dort ist mit Match Group administrators bereits festgelegt, dass sich Mitglieder dieser Gruppe anmelden dürfen. Vor dieser Zeile könnten Sie zum Beispiel einen weiteren Benutzer berechtigen:
Match User ein-nutzername
Match Group administrators
Bei der Gelegenheit sollten Sie die Zeile danach entfernen – sie legt die Schlüssel aller Administratoren in einer Datei zu-
sammen und machte bei unseren Versuchen Probleme, wenn man sich mit Schlüsseln statt Kennwort anmelden wollte.
Auch das Anmelden an einem Windows-SSH-Server funktioniert kennwortlos per Schlüsselpaar. Legen Sie einfach im persönlichen Profilordner des Nutzers, der sich per Schlüssel anmelden soll, im Ordner .ssh die Datei authorized_keys an und platzieren Sie in dieser den öffentlichen Schlüssel. Ein Neustart des Servers ist danach nicht nötig. Von einem Client (unabhängig vom Betriebssystem), auf dem der private Schlüssel liegt, können Sie sich jetzt anmelden. Falls Sie erzwingen möchten, dass sich alle Nutzer per Schlüssel und nicht per Kennwort anmelden, finden Sie in der Datei sshd_conf etwa in der Mitte die folgende Zeile:
# PasswordAuthentication yes
Ersetzen Sie diese durch:
PasswordAuthentication no
Falls Sie ssh und scp einsetzen möchten, um per Skript oder geplante Aufgabe auf eine andere Windows-Maschine zuzugreifen, sollten Sie ein Schlüsselpaar ohne zusätzliche Kennwortsicherung generieren.
-
- Beiträge: 18
- Registriert: 24.05.2020, 00:15
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 2 Mal
Re: Mit Script externes Win Programm starten
Ja der C't Beitrag hat funktioniert ich konnte jetzt eine Verbindung aufbauen, Danke! Ich habe jetzt gleich die entsprechenden .bat geschrieben und am Server gespeichert, anschließen mit dem CUx - Daemon einen Taster angelegt (Gerätetyp System, mit der Funktion Exec, Schaltaktor 1fach). Als KEY|CMD_SHORT habe ich folgendes verwendet "ssh user@server NamederBat. Das wars, immer wenn jetzt ein entsprechendes Ereignis eintritt, dann wird über diesen CUx Taster das Batchfile am Windows Server gestartet. Danke für die Hilfe