NEWS
[gelöst] Exec Befehl funktioniert nicht mehr
-
@bananajoe Habe ich gemacht,
jetzt steht in der Datei das drin:
nt-autorit„t\system
Die Bat Datei wird aber immer noch nicht ausgeführt
-
@Ben1983
Lade dir mal dieses Programm herunter:
https://docs.microsoft.com/en-us/sysinternals/downloads/psexecDann gehst du in den Pfad des Programmes in einer Eingabeaufforderung und führst folgenden Befehl aus:
psexec -i -s cmd.exe
Darauf sollte eine weitere Eingabeaufforderung aufgehen. Wenn du in dieser whoami eingibst wirst du feststellen das diese als Benutzer SYSTEM läuft.
Dann startest du aus dieser Eingabeaufforderung heraus einmal deine Batchdatei und schaust was passiert.
-
@bananajoe kann ich nicht ausführen, es wird ausgegeben zugriff verweigert
-
@ben1983 schau dir mal die Eigenschaften der Batchdatei sowie des Ordners an.
Anklicken, rechte Maustaste, EigenschaftenDann den Reiter Sicherheit (wenn vorhanden) und dann den Benutzer SYSTEM oder.JEDER hinzufügen und dem Vollzugriff geben.
Dann noch mal testen
-
@bananajoe
Ich meinte damit bei deiner Datei die ich runter laden sollte steht zugriff verweigert
Allerdings steht in der Date auch der User System drin.
Ich habe jetzt auch nochmal auf Vollzugriff frei gegeben, trotzdem nichts zu machen. -
@ben1983 du meinst das psexec Programm?
Ok, dabei ist das sogar von Microsoft signiert ...Außerdem ist das doch das .zip Archiv - du kannst nichts runterladen?
Macht dein Virenscanner vielleicht Ärger?
-
@bananajoe So meinte ich es:
-
@ben1983 dann führe die Eingabeaufforderung als Administrator aus und versuche es noch einmal
-
@bananajoe Hier das Ergebnis.
Führe ich den Batfile aus der normale cmd aus, dann geht es. -
@ben1983
Es ist wie ich es mir gedacht habe, der Benutzer unter dem ioBroker läuft hat gar keine Rechte für den Zugriff auf das was im Script steht.Bau mal in deine Batchdatei vor der Benutzung der UNC Pfade folgendes ein:
net use \\mybooklive\Datensicherungen HierDeinPasswort /USER:Benutzername /persistent:no
Ich vermute mal früher war ein Zugriff ohne Anmeldung auf dein mybooklive möglich. Du musst ihm Benutzername und Passwort mitgeben da der Benutzer System keine Rechte im Netzwerk hat. Dein gerade angemeldeter Benutzer ist auf dem mybooklive vermutlich eingerichtet.
Du könntest auch einen extra Benutzer auf dem mybooklive dafür anlegen. -
@bananajoe werde ich morgen versuchen, aber:
- hat sich weder an den Rechten vom netzlaufwerk was geändert, noch ist der aktuelle Nutzer auf mybooklive angelegt.
Der Ordner Datensicherubg ist public und darf von jedem genutzt werden.
- hat sich weder an den Rechten vom netzlaufwerk was geändert, noch ist der aktuelle Nutzer auf mybooklive angelegt.
-
@bananajoe said in Exec Befehl funktioniert nicht mehr:
net use \mybooklive\Datensicherungen HierDeinPasswort /USER:Benutzername /persistent:no
Habe es gerade nochmal versucht....
Funktioniert.. Super, danke.
Das komische ist, dass der Ordner öffentlich ist. -
@ben1983 Öffentlich ist oft gleichbedeutend mit Jeder
Damit ist aber jeder angemeldete / authentifizierte Benutzer gemeint.
Jeder ist damit NICHT Anonym was als "Da ist zwar einer, aber der hat sich nirgendwo angemeldet" interpretiert wird.
Anonym hat deshalb im Netzwerk in der Regel keine Zugriffsrechte.
Und der Windows-Benutzer SYSTEM oder andere, lokale Dienstkonten gelten halt als Anonym im Netzwerk.Könnte auch ein Update des NAS oder Windows oder oder oder gewesen sein welches die Interpretationsart geändert hat.
-
@bananajoe OK, ich habe jetzt das vor die Batch gehangen.
Würde doch bestimmt auch funktionieren, wenn ich iobroker als benutzer xy ausführen würde, oder? -
@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?