NEWS
[gelöst] Exec Befehl funktioniert nicht mehr
-
@ben1983 Ja würde es. Es könnte nicht schaden am Ende deines Batch ein
net use \\mybooklive\Datensicherungen /DELETE /YES
anzuhängen, damit meldest du dich quasi wieder ab.
Falls der Benutzer unter dem der Dienst läuft schon die Rechte für den Zugriff hast kannst du es auch wieder weglassen.
Ich würde wie gesagt einen extra Benutzer dafür anlegen und dem die Rechte auf dem mybooklive zuweisen.
So funktioniert es weiter auch wenn du man irgendwo was änderst. -
@bananajoe Funktioniert, indem ich jetzt iobroker als einen bestimmten benutzer ausführen lasse
allerdings funktioniert jetzt trotzdem eine andere bat nicht:
diese hat den Inhalt:start "C:\Program Files (x86)\Google\Chrome\Application\Chrome.exe" www.amazon.de
-
@ben1983 Das funktioniert schon - in teilen.
Nur das die chrome.exe als Benutzer SYSTEM gestartet wird, sprich du siehst das Fenster nicht.
Könnte sein das es im Taskmanager zu finden ist.Wenn der Dienst mit dem Desktop interagieren soll ...
Vorher ging das, ja?
Dann probiere mal den ioBroker Dienst als der Benutzer auszuführen mit dem du angemeldet bist, dann könnte es gehen.
Oder ioBroker anhalten und von Hand starten, ich nehme an analog wie bei Linux in das Verzeichnis gehen und in einer Eingabeaufforderungiobroker start
eingeben.
Und dann testen ob es geht / der Chrome zu sehen ist -
@bananajoe iobroker läuft ja jetzt unter meinem Benutzernamen. (Die andere Bat läuft jetzt einwandfrei).
starte ich die bat, welche den browser öffnen soll aus der cmd von windows heraus, wird der browser geöffnet -
@ben1983 sagte in [gelöst] Exec Befehl funktioniert nicht mehr:
@bananajoe iobroker läuft ja jetzt unter meinem Benutzernamen. (Die andere Bat läuft jetzt einwandfrei).
starte ich die bat, welche den browser öffnen soll aus der cmd von windows heraus, wird der browser geöffnetIch hab das jetzt 3 mal gelesen ... und ich glaube verstanden zu haben das das mit der GUI = dem Browser nicht geht?
der Grund wird sein das ioBroker als Dienst läuft und nun mal eben nicht so ohne weiteres ein anderes Programm starten und es dir anzeigen kann. Dein Batch mit der Sicherung bekommst du ja auch nicht zu Gesicht, richtig?
Ich wüsste einen Trick 17 mit dem es doch geht. Das habe ich schon mal genutzt weil man als Benutzter SYSTEM keine "Ausführen als ..." Befehle absetzen kann - über diesen Umweg schon:
Du startest nicht direkt dein Wunschprogramm sondern erstellst eine Aufgabe in der Aufgabenplanung welche das macht
%WINDIR%\system32\schtasks.exe /create /SC MINUTE /MO 1 /F /IT /TN MeinTaskName /TR C:\Skripte\meineBatch.bat /RU %COMPUTERNAME%\Benutzername /RP Passwort
das /IT steht für das Interaktive ausführen, eine Batch die du so startest lässt dich ihr Fenster sehen. Statt der Batch kannst du natürlich auch die chrome.exe angeben + Parameter.
Aber das obige Beisiel würde das 1x pro Minute ausführen, Deshalb eine Batch in deren ersten Zeile das hier steht:%WINDIR%\system32\schtasks.exe /delete /F /TN MeinTaskName
Also den Task gleich nach dem Start sich selbst löschen lassen.
Den Rest findest du in der Hilfe zu schtasks.exe, einfach mal mit /? aufrufen.Den Task sollte er so erstellen das der nur Aktiv wird der der Benutzer gerade angemeldet ist. Kannst du ja von Hand vorher testen.
Mag bessere Lösungen geben, insbesondere welche die schneller starten aber was besseres fällt mir gerade nicht ein. -
@bananajoe Sorry, kannst Du mir das mal genauer erklären?
Ich habe doch meine Batchdatei, welche eine Datensicherung macht auch nicht ausführen können, weil iobroker als LokalesSystem lief.
Nun lasse ich iobroker ja als ein bestimmter benutzer laufen und die Batchdatei kann die datensicherung durchführen.Als genau dieser nutzer führe ich die batchdatei aus, welche den browser starten soll.
(Aus der commandozeile funktioniert das auch).
Waru klappt es dann nicht mit dem unter dem benutzernamen laufenden iobroker? -
@ben1983 sagte in [gelöst] Exec Befehl funktioniert nicht mehr:
@bananajoe Sorry, kannst Du mir das mal genauer erklären?
Ich habe doch meine Batchdatei, welche eine Datensicherung macht auch nicht ausführen können, weil iobroker als LokalesSystem lief.
Nun lasse ich iobroker ja als ein bestimmter benutzer laufen und die Batchdatei kann die datensicherung durchführen.Als genau dieser nutzer führe ich die batchdatei aus, welche den browser starten soll.
(Aus der commandozeile funktioniert das auch).
Waru klappt es dann nicht mit dem unter dem benutzernamen laufenden iobroker?Kurz und Knapp: Weil der Prozess der den Browser startet im Hintergrund als Dienst läuft. Und damit ist ihm keine Interaktion mit dem Desktop erlaubt. Der Prozess kann auch keine Unterprozesse starten die dann mit dem Desktop starten. Es könnte gehen wenn du ioBroker nicht als Dienst startest sondern normal als Benutzer vom Desktop aus.
-
@bananajoe ok.
Klingt logisch, aber trotzdem schade.
Also aus einem JS Skript direkt gehts dann auch nicht, oder? -
@ben1983 sagte in [gelöst] Exec Befehl funktioniert nicht mehr:
@bananajoe ok.
Klingt logisch, aber trotzdem schade.
Also aus einem JS Skript direkt gehts dann auch nicht, oder?Doch - es kommt halt darauf an aus welchem Fokus (aus der Desktopsitzung heraus oder als Dienst) es ausgeführt wurde.
Eine schnelle Lösung weis ich aber gerade auch nicht - außer dem Umweg über die Aufgabenplanung den man aber auch testen müsste, ich meine mal über den Weg so etwas hinbekommen zu haben. Aber die Suchmaschine deiner Wahl spuckt eventuell noch mehr Ideen aus. -
@Ben1983 Einen hab ich noch:
Es gibt den windows-control Adapter.
Der steuert Windows über ein Zusatzprogramm welches in der Taskleiste läuft.So wie ich es sehe sollte damit alles laufen was du willst da du den Befehl ja an den gerade angemeldeten Benutzer sendest.
https://forum.iobroker.net/topic/1570/windows-steuerung/2Also auch den Browser starten etc.