IPS_ExecuteEx

Hallo,

kämpfe mit IPS_ExecuteEx.
ich möchte diesen Befehl

tftp -i 192.168.1.53 GET gez.txt C:\IP-Symcon-Daten\Hipath\geb_temp.txt

ausführen lassen. Auf dem DOS-Prompt klappt das auch. Das klappt weder mit shell_exe()

shell_exec („C:\IP-Symcon-Daten\Hipath\abholen.bat“); oder shell_exec (‚C:\IP-Symcon-Daten\Hipath\abholen.bat‘);

noch mit IPS_ExecuteEX bzw. IPS_Execute:

IPS_ExecuteEx(„C:/IP-Symcon-Daten/Hipath/abholen.bat“, „“, true, false, 2);

Was mache ich da falsch? Zum Testen bin ich direkt am IPS-Server angemeldet und habe aus dem Taskmanager die Session-ID in den Befehl übernommen. Und trotzdem nichts.

Evtl. ein Rechteproblem?

Wie läuft denn dein IPS Dienst. Als Systemdienst oder als User. Wenn als User, funktioniert IPS_Execute… nicht.

Danke.

IPS wird als lokales sytsem ausgeführt. Und bei Einbau der Pause muss ich das sehen. Gehe ich nach C:\IP-Symcon und führe den tftp-Befehl so aus, geht es. Warum nicht als IP-Dienst?

dos-box.JPG

ips-dienst.JPG

Muss die Session-ID nicht 1 sein ?

OK, falsch, gibt ne andere Fehlermeldung. :o

Gruß
Bruno

Hallo,

ich habe auch bei den Toni-Tools meine Sorgen, da ich direkt am IPS-Server angemeldet sein und auch die IPS-Console dort starten musste, um das Backup per IPS_ExecuteEx starten zu können. Ich denke nicht, dass das so sein muss, oder? Wenn ich nicht direkt an Windows angemeldet bin, welche ID braucht er dann?

Hi,
ich hatte nach Umstellung auf 2.5 auch Probleme mit dem Befehl.
Es geht bei mir, wenn ich die Auszuführende Datei nicht mehr in " sonder in ’ einklammere. Also z.B.:

IPS_ExecuteEx('C:/IP-Symcon-Daten/Hipath/abholen.bat', "", true, false, 2);

Damit funktioniert es bei mir wieder. Ansonsten kam im Meldungfenster: ‚Datei nicht gefunden‘
Vielleicht hilft es ja auch bei dir.

mfg
Smudo

Danke für den Tipp … Und wieder keinen Erfolg.:confused::confused::confused:
Was ist das denn nur für eine …

Hat keiner eine grundlegende Idee, was ich falsch mache?:confused:

Ich kann den Befehl auch nicht mit anderen Batchdateien ausführen, so dass ich den Fehler im IPS bzw. in Windows vermute und nicht an dem auszuführendem Batch bzw. Befehl.

Was mich wundert: RWN hatte geschrieben, das der Dienst als Systemdienst laufen muss. Dennoch muss ich eine ID des angemeldeten Users als letzten Paramter bei IPS_ExecuteEx angeben. Dieser ändert sich jedoch öfter bei verschiedenen Anmeldungen. Nun soll das Ding aber ohne aktive Windowsanmeldung am IPS-Server laufen. Das ist doch ein Widerspruch: Systemdienst und dann doch die SessionID eine angemeldeten Usersr? Habe im Forum gelesen, das ID 1 bis Windows XP, ID 2 für Vista/Win7 gelten solle.
Doch dann bekomme ich bei diesem Script

<?

IPS_ExecuteEx('C:/IP-Symcon-Daten/Hipath/abholen.bat', "", true, false, 2);

?>

diese Meldung:

Warning: There were no token found for specified session: 2 in [Testraum\HiPath ftp lesen] on line 3

Vergiss die Funktion und verwende stattdessen shell_execute, dann funktioniert es.

IPS_ExecuteEx ist ohnehin fehlerhaft, es besteht seit jeher ein Speicherleck.

Hallo Robert,

auch damit will es nicht. Ich dreh hier gleich ab:confused::confused::confused:

Habe schon verschiedene Schreibweise probiert - nichts. Habe das tftp.exe auch schon in meinen IPS-Daten-Ordner kopiert und dann die Rechte von SYSTEM als Vollzugriff bestimmt -NICHTS! Gleiches auch mit exec().

Ersetzt doch mal die Backslashes durch Slashes.

Meldung mit „Token“ kommt bei mir bei falscher Session-ID. Wo Du das Obige gelesen hast ? Die Doku sagt:

IPS_ExecuteEx: IP-Symcon :: Automatisierungssoftware

0 für XP, 1 ab 2003/Vista

Gruß
Bruno

Ich gebe zu: 0+1 statt 1+2:rolleyes:

Jetzt:

<? 

IPS_ExecuteEx('C:/IP-Symcon-Daten/Hipath/abholen.bat', "", true, false, 1); 

?> 

Warning: There were no token found for specified session: 1 in [Testraum\HiPath ftp lesen] on line 3

Und bei 0 kommt das Gleiche ?

Bei 0 (da IPS auf Win7 läuft) muss ja ein Fehler kommen :cool:-> aber lt. IPS-Console keinerlei Fehler. Aber auch keinerlei Ausführung der Batch.

Auch so nicht:

IPS_ExecuteEx("C:\\IP-Symcon-Daten\\Hipath\\abholen.bat", "", true, false, 0);

oder so:

IPS_ExecuteEx("C:\IP-Symcon-Daten\Hipath\abholen.bat", "", true, false, 0);

oder so:

IPS_ExecuteEx("C:/IP-Symcon-Daten/Hipath/abholen.bat", "", true, false, 0);

Oder kann ich da anders mit irgendeinem Socket (Client, Server…) was werden? Ist ja UDP. Gibts da was in IPS?

IPS_ExecuteEx('C:/IP-Symcon/automatic/datei.bat', "", true, false,1);

bei mir läufts so.

Das ist ja schön.
Arbeitest Du denn immer an dem PC, wo das IPS drauf läuft?
Es ist ja die Session-ID anzugeben (bei dir hier die 1), wenn ich doch gar nicht benutzermäßig angemeldet bin, woher kommt dann diese ID? Ist die immer fest? Oder im Windows eingestellt?

Damit diese Funktion funktioniert, muss am Server eine Session vorhanden sein. Wenn also keiner Angemeldet ist, kann diese Funktion gar nicht funktionieren. RDP ist auch eine Session… jedoch existiert diese natürlich nur so lange, wie lange jemand Angemeldet ist. Ihr könnt die vorhandenen Sessions im TaskManager nachsehen, beim Reiter, wo alles angemeldeten Benutzer angezeigt werden.

paresy

Siehste, bin ich doch gar nicht so doof:rolleyes:
Das war ja meine Vermutung. Aber wie kann ich diesen Befehl denn sonst absetzen? Ich bin ja sehr selten überhaupt per RDP drauf.

@paresy: Muss IPS als „Lokaler Dienst“ oder „Lokales System“ laufen, damit hier überhaupt was in diese Richtung funktioniert?