Windows: Symcon Dienst per Skript neu starten

Ich habe manchmal (zum Beispiel nach einer Änderung eines Spezialschalters) die Situation, dass ich den Symcon Dienst neu starten möchte. Bislang mache ich das immer, indem ich mich auf dem IPS-Rechner remote anmelde, dann über das Tray-Icon den Dienst stoppe und anschließend wieder neu starte. Zu guter Letzt verlasse ich dann die Remote Sitzung wieder.

Alles in allem etwas umständlich :slight_smile:

Meine Idee ist es, einfach ein Skript auszuführen.

Soweit bin ich gekommen:

Ich habe einen Befehl, den ich im DOS Fenster (mit Administratorrechten) erfolgreich ausführen kann:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -command "restart-service -name IPSServer"

Damit wird der Dienst sauber beendet und neu gestartet.

Wenn ich das nun aber über ein Skript probiere:


IPS_ExecuteEx('C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe', '-command "restart-service -name IPSServer"', false, false, -1);

dann läuft das Skript zwar erfolgreich durch, aber es passiert nichts.:confused:

Hat jemand eine Idee dazu?

Burkhard

Moin Burkhard,

kann es sein, dass das mit den Berechtigungen zu tun hat, die der User nicht hat, wenn via IPS_Execute ein solches Skript gestartet wird? Eigentlich kommt dann aber der Fehler 740. Ich kenne das Problem im Zusammenhang mit diversen Kopierfunktionen aus IPS heraus, wo die Berechtigungen zum Start auf anderen Systemen dann auch nicht vorhanden sind.

Schau doch mal, ob du mit PsExec64 aus den Sysinternal Tools von MS weiter kommst. Damit habe ich es geschafft, remote Befehle auszuführen.

Gruß
Hans

Ähnliches konnte ich auch mit anderen Dateien beobachten. Letztendlich hat es nur dann funktioniert, wenn ich die Datei ins Script Verzeichnis kopiert habe. Also in das „Arbeitsverzeichnis“ von IPS oder vom PHP. Genaus funktioniert z.b. die Speicherung der Bilder von den Kameras für das Senden mit Telegram nur dann, wenn ich die Bilder dort ablege. Du könntest mal versuchen den IPS Dienst mit einem anderen Benutzerkonto zu starten. Denke auch dass das mit den Berechtigungen zu tun hat.

Vielen Dank an euch beiden! Ihr habt mich auf die Idee gebracht, dass ich an anderer Stelle schon erfolgreich per Skript das ganze System neu starten kann:

IPS_Execute('c:/windows/system32/shutdown.exe', '/r /t 0', false, false);

Der Unterschied zu meinem Versuch liegt im IPS_ExecuteEx und im „\“ statt „/“.

Kurz: ob „\“ oder „/“ ist egal. Es lag am „Ex“.

So funktoniert es nun :loveips::

IPS_Execute('C:/Windows/System32/WindowsPowerShell/v1.0/powershell.exe', '-command "restart-service -name IPSServer"', false, false);

Moin Burkhard,

da hatte ich dich missverstanden da ich annahm, dass du das remote auslösen wolltest.

Über die Back- und Slashes bin ich auch schon häufiger gestolpert :wink: Wann was wie funktioniert erinnert etwas an Lotto.

Gruß
Hans

Hallo Hans,

Ja, unter Wndows scheint beides zu funktionieren, unter Unix aber nicht :smiley:

Nun kommt noch IPS_Execute und IPS_ExecuteEx als Lotto Option hinzu :slight_smile:

LG Burkhard