Aufruf von psexec in Batchdatei durch einen Dienst
Hallo erstmal ....
Ich habe ein mittelschweres Problem und hoffe auf eure Hilfe :
Ich habe ein kleines Programm in VB6 geschrieben. Dieses erzeugt als Dienst gestartet Batchdateien.
In diesen Batchdateien ist ein Aufruf von psexec um Dateien auf einen entfernten Rechner zu kopieren.
Klingt zu kompliziert, ist es auch, hat aber einen Hintergrund
Starte ich das Programm im "Debugmodus" mit einer sichtbaren Form als "Vordergrundapplikation", funktioniert alles wie gewünscht :
Die Batchdatei wird von meinem Programm erzeugt, mit der Zeile für den Aufruf von psexec gefüllt, ausgeführt und das Ergebnis ist OK !
Starte ich das Programm als Dienst kommt es nur bis zum Erzeugen der Batchdatei und deren Aufruf aber psexec wird nicht ausgeführt.
Ob der Dienst über das Systemkonto oder ein Benutzerkonto ( administrator ) gestartet wird ist übrigens unerheblich.
Lasse ich in die Datei zur Fehlereingrenzung nicht den Aufruf psexec sondern z.B. notepad schreiben, sehe ich notepad in der Taskliste,
der Aufruf der Batchdatei erfolgt also definitiv noch.
Meine eigentliche Frage :
Ist dies eventuell ein bekanntes Verhalten von psexec oder mache ich einen generellen Fehler ?
Falls weitere Informationen notwendig sind bitte posten.
Ich danke bereits im Voraus für die Unterstützung.
Ich habe ein mittelschweres Problem und hoffe auf eure Hilfe :
Ich habe ein kleines Programm in VB6 geschrieben. Dieses erzeugt als Dienst gestartet Batchdateien.
In diesen Batchdateien ist ein Aufruf von psexec um Dateien auf einen entfernten Rechner zu kopieren.
Klingt zu kompliziert, ist es auch, hat aber einen Hintergrund
Starte ich das Programm im "Debugmodus" mit einer sichtbaren Form als "Vordergrundapplikation", funktioniert alles wie gewünscht :
Die Batchdatei wird von meinem Programm erzeugt, mit der Zeile für den Aufruf von psexec gefüllt, ausgeführt und das Ergebnis ist OK !
Starte ich das Programm als Dienst kommt es nur bis zum Erzeugen der Batchdatei und deren Aufruf aber psexec wird nicht ausgeführt.
Ob der Dienst über das Systemkonto oder ein Benutzerkonto ( administrator ) gestartet wird ist übrigens unerheblich.
Lasse ich in die Datei zur Fehlereingrenzung nicht den Aufruf psexec sondern z.B. notepad schreiben, sehe ich notepad in der Taskliste,
der Aufruf der Batchdatei erfolgt also definitiv noch.
Meine eigentliche Frage :
Ist dies eventuell ein bekanntes Verhalten von psexec oder mache ich einen generellen Fehler ?
Falls weitere Informationen notwendig sind bitte posten.
Ich danke bereits im Voraus für die Unterstützung.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 59637
Url: https://administrator.de/contentid/59637
Ausgedruckt am: 22.11.2024 um 15:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo MrDirtyTricks,
möglicherweise startet psexec. Aber wenn man es zum ersten Mal startet, dann muss man bei der neuen Version von psexec eine EULA bestätigen. Nach der Bestätigung der EULA wird ein Wert in die Registry geschrieben, damit psexec beim nächsten Aufruf nicht mehr fragt. Wenn Du also diesen Registrywert vor dem Aufruf von psexec setzt, müsste psexec eigentlich wie erwartet funktionieren. Der Dienst muss natürlich als Benutzer mit entsprechenden Berechtigung im Netzwerk ausgeführt werden.
Hope this helps
Frank-Peter Schultze
P.S.: Im Moment bin ich zu faul, diesen Registrywert herauszufinden.
möglicherweise startet psexec. Aber wenn man es zum ersten Mal startet, dann muss man bei der neuen Version von psexec eine EULA bestätigen. Nach der Bestätigung der EULA wird ein Wert in die Registry geschrieben, damit psexec beim nächsten Aufruf nicht mehr fragt. Wenn Du also diesen Registrywert vor dem Aufruf von psexec setzt, müsste psexec eigentlich wie erwartet funktionieren. Der Dienst muss natürlich als Benutzer mit entsprechenden Berechtigung im Netzwerk ausgeführt werden.
Hope this helps
Frank-Peter Schultze
P.S.: Im Moment bin ich zu faul, diesen Registrywert herauszufinden.