Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

ErrorCode von PSExec beziehen

Frage Microsoft Windows Tools

Mitglied: always1

always1 (Level 1) - Jetzt verbinden

17.06.2010 um 15:47 Uhr, 8706 Aufrufe, 3 Kommentare

Hallo zusammen,
Ich habe da ein Problem mit PSExec, das vermutlich so simpel zu lösen ist, dass ich mich anschließend wahrscheinlich schäme es hier eingestellt zu haben. Aber ein Versuch ist es allemal wert.

Also:
Ich möchte mittels PSExec aus einer Server-Batch heraus eine auf den einzelnen Clients lokal vorhandene Batchdatei ausführen. Diese Batchdatei gibt je nach Ablauf einen bestimmten ExitCode zurück, auf den ich dann ich dann in der Server-Batch entsprechend reagieren möchte.
Nun gibt PSExec zwar den Rückkehrcode der ausgeführten Batchdatei als Nachricht aus, aber wie kann ich diesen Rückkehrcode nun weiterverarbeiten? Da PSExec korrekt ausgeführt wurde habe ich im weiteren Verlauf der Serverbatch als Errorlevel lediglich "0", nicht aber den Rückkehrcode der ausgeführten Batch-datei.

Beispiel zur Verdeutlichung des Problems:
Wenn ich folgendes versuche
01.
REM start SERVERBATCH 
02.
 
03.
psexec \\computer -u user -p passwort localbatch.bat 
04.
ECHO %ERRORLEVEL% 
05.
... 
06.
(weitere Befehle) 
07.
... 
08.
 
09.
REM ende SERVERBATCH
Dann bekomme ich als ERRORLEVEL immer "0" angezeigt, obwohl die localbatch.bat laut psexec-Meldung einen Rückkehrcode "5" hatte.

Wie komme ich für die weiteren Befehle innerhalb der Serverbatch jetzt an eben diesen Rückkehrcode?
Mitglied: AndreasHoster
17.06.2010 um 17:06 Uhr
Mein PSExec behauptet:
Error codes returned by PsExec are specific to the applications you execute, not PsExec.

Und tut auch so. Verwende PsExec 1.97
Vermutlich gibt nur ein Programm Errorlevel 5 zurück, aber nicht die gesamte Batch Datei.

Falls Du exit in der Batchdatei verwendest:
ExitBeendet das aktuelle Batchskript oder das Programm Cmd.exe (den Befehlsinterpreter) und kehrt zu dem Programm, das Cmd.exe gestartet hat, oder zum Programm-Manager zurück.

Syntax
exit [/b] [Beendigungscode]

Parameter
/b
Beendet das aktuelle Batchskript.
Beendigungscode
Gibt einen numerischen Wert an.
/?
Zeigt Hilfe an der Eingabeaufforderung an.
Hinweise
Wenn Sie /b außerhalb eines Batchskripts verwenden, führt das zur Beendigung von Cmd.exe.
Wenn Sie /b verwenden, legt Cmd.exe den ERRORLEVEL-Wert auf den angegebenen Beendigungscode fest. Wenn Sie Cmd.exe beenden, legt Cmd.exe den Prozessbeendigungscode mit dem unter Beendigungscode angegebenen Wert fest.
Bitte warten ..
Mitglied: always1
18.06.2010 um 08:30 Uhr
Ich benutze tatsächlich exit in der auszuführenden Batch-Datei. Und damit gebe ich auch den entsprechenden ERRORLEVEL zurück. Das kommt auch bei PSEXEC korrekt an, wie die Ausgabe von PSEXEC verrät: "D:\SOFTWARE\mytest.bat exited on 192.168.10.25 with error code 5."
Aber wenn ich dann den ERRORLEVEL mit
01.
ECHO %ERRORLEVEL%
ausgebe bekomme ich "0"
Wie komm ich an den korrekten ERRORLEVEL?
Bitte warten ..
Mitglied: Biber
18.06.2010 um 13:18 Uhr
Moin always1,

wenn du
  • weder die oben geposteten Batchzeilen 2 und 3 in einer IF() oder FOR ..IN...DO ()-Anweisung stehen hast
  • noch einen anderen Befehl zwischen Zeile 2 und Zeile 3 aufrufst
... ist dieses Phänomen vollkommen unerklärlich, selbst bei den Redmonder Qualitätskriterien.

Gibt es eventuell noch irgendwelche Feinheiten in der o.g. Skizze, die eigentlich nicht wichtig genug waren, um sie hier zu veröffentlichen?

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Neue Wissensbeiträge
Batch & Shell

Batch - ein paar Basics die man kennen sollte

Tipp von Pedant zum Thema Batch & Shell ...

Microsoft

Restrictor: Profi-Schutz für jedes Window

(4)

Tipp von AlFalcone zum Thema Microsoft ...

Batch & Shell

Batch zum Zurücksetzen eines lokalen Profils

Tipp von Mr.Error zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft Office
Saubere HTML aus Word-Dokument (16)

Frage von peterpa zum Thema Microsoft Office ...

Router & Routing
ASUS RT-N18U mit VPN Client hinter Fritzbox - Portforwarding (15)

Frage von marshall75000 zum Thema Router & Routing ...

Hosting & Housing
gelöst Webserver bei WIX, aber DNS Server wo anders (9)

Frage von laster zum Thema Hosting & Housing ...