psexec „Das System kann die angegebene Datei nicht finden.“

Problem

Warum funktioniert PSEXEC (aus den Sysinternal tools) scheinbar sporadisch nicht? Zum Beispiel funktioniert der Befehl:

psexec \\SERVER net start <FOOBAR>

fehlerfrei, aber dieser Befehl hingegen

psexec \\SERVER rd /Q /S <C:\FOOBAR>

funktioniert nicht und gibt die scheinbar sinnlose Fehlermeldung „Das System kann die angegebene Datei nicht finden.“ zurück.

Lösung

PSEXEC führt im Standardfall nur Prozesse aus. „net“ ist ein normales Programm (net.exe), also ein Startbarer Prozess. „rd“ hingegen, wie auch „dir“, „type“, „find“ und so weiter sind keine externen Programme, sondern Befehle der Shell, also Kommandos des Prozesses CMD. Um diese auszuführen, muss man also eine CMD-Shell via PSEXEC starten und dieser Shell dann die Kommandos übergeben.

Das Beispiel funktioniert fehlerfrei so:

psexec \\SERVER cmd /c rd /Q /S <C:\FOOBAR>

Der Parameter „/c“ für CMD.EXE Führt den Befehl in der Eingabe einfach aus und endet dann.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.