Top-Themen

Aktuelle Themen (A bis Z)

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

For Schleife mit Errorlevel

Frage Microsoft Windows Server

Mitglied: berlinger

berlinger (Level 1) - Jetzt verbinden

09.08.2014, aktualisiert 15:15 Uhr, 1118 Aufrufe, 5 Kommentare

Hallo Zusammen

ich versuche aus einer Text-Datei die IP-Adresse auszulesen und anschliessend via PSEXEC auf dem Zielrechner einen Registry-Key auszulesen.

- Auslesen aus der Text-Datei funktioniert
- Verbinden via PSEXEC funktioniert auch
- Zugriff auf Remote-Registry ist auch OK

for /f "delims=" %%a in (IPs.TXT) do (

"%SYSTEMDRIVE%\Tools\CopyByRoby\BIN\psexec.exe" \\%%a -u xxx -p xxx -h -accepteula reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation" /V "Model"

IF %ERRORLEVEL% EQU 2 ECHO OK >>"%SYSTEMDRIVE%\Tools\CopyByRoby\LOG.txt"
IF %ERRORLEVEL% NEQ 2 ECHO NO >>"%SYSTEMDRIVE%\Tools\CopyByRoby\LOG.txt"
)

Log.txt werden nun alle Rechner als OK eingetragen, daher Errorlevel 2. Da ich aber Rechner dort abfrage die nicht Online sind, dürfte dies doch nicht sein oder?

Meine Idee später ist, ein Log zu haben mit der Übersicht welche OK sind und welche nicht... und mit denen welche nicht OK sind kann man dann noch ein wenig spielen http://www.administrator.de/content/edit.php?id=246056#edit-2-tab

Ja, mit dem ReturnCode 0 habe ich es auch versucht, funktionierte auch nicht. Obwohl PSEXEC nach jedem Rechner sagt "reg exited on XXX.XXX.XXX.XXX with error code 0" - ist wohl vermutlich aber der ErrorCode von REG Query selber..

weiss einer von Euch Rat?

LG
Mitglied: bastla
09.08.2014, aktualisiert um 18:28 Uhr
Hallo berlinger!

Dein Stichwort wäre "delayedExpansion" - allerdings ist es gar nicht nötig, die Variable %ERRORLEVEL% abzufragen:
01.
IF ERRORLEVEL 3 ( 
02.
    ECHO NO >>"%SYSTEMDRIVE%\Tools\CopyByRoby\LOG.txt" 
03.
) ELSE ( 
04.
    ECHO OK >>"%SYSTEMDRIVE%\Tools\CopyByRoby\LOG.txt" 
05.
)
Bei dieser Art der Abfrage wird allerdings auf "größer/gleich" getestet, sodass also 0,1 und 2 "OK" wären ...

Wenn nur zwischen 0 und nicht 0 zu unterscheiden wäre, könntest Du direkt an den Befehl
... && ECHO ERRORLEVEL ist 0 || ECHO ERRORLEVEL ist nicht 0
anfügen.

Grüße
bastla
Bitte warten ..
Mitglied: berlinger
09.08.2014, aktualisiert um 18:16 Uhr
danke Dir

bin schon ein wenig weiter... musste noch 2 Sachen anpassen, Script hat sich davor gleich wieder geschlossen..

habe gerade festgestellt, dass der Errorlevel welcher PSEXEC ausgibt, der in meinem Fall von REG Query ist.

bei mir ist es nun so, dass gewisse Rechner auf die PSEXEC zugreifen will gar nicht online sind oder der Zugriff verweigert wird, daher ist kein REG Query möglich.

in anderen Foren habe ich gelesen, dass hier alles ausser ERRORLEVEL 0 zeigt, dass was nicht OK ist.

Dennoch schreibt es mir im Log bei Allen, es wäre Errorlevel 0 - also OK

setlocal ENABLEDELAYEDEXPANSION

:START

for /f "delims=" %%a in (IPs.TXT) do (

"%SYSTEMDRIVE%\Tools\CopyByRoby\BIN\psexec.exe" \\%%a -u xxx -p xxxx -h -accepteula reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation" /V "Model"
SET SYSTEM=%%a
IF !ERRORLEVEL!==0 (
ECHO !SYSTEM! Updater OK >>"%SYSTEMDRIVE%\Tools\CopyByRoby\LOG.txt"
) ELSE (
ECHO !SYSTEM! Updater NOT OK >>"%SYSTEMDRIVE%\Tools\CopyByRoby\LOG.txt"
)
)
Bitte warten ..
Mitglied: bastla
09.08.2014 um 18:32 Uhr
Hallo berlinger!

Die Errorlevel-Rückgabe von "PsExec" musst Du selbst austesten, auf die Variable !ERRORLEVEL! würde ich aber weiterhin nicht abfragen:
01.
for /f "delims=" %%a in (IPs.TXT) do ( 
02.
    "%SYSTEMDRIVE%\Tools\CopyByRoby\BIN\psexec.exe" \\%%a -u xxx -p xxxx -h -accepteula reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation" /V "Model" && ( 
03.
        ECHO %%a Updater OK >>"%SYSTEMDRIVE%\Tools\CopyByRoby\LOG.txt" 
04.
    ) || ( 
05.
        ECHO %%a Updater NOT OK >>"%SYSTEMDRIVE%\Tools\CopyByRoby\LOG.txt" 
06.
07.
)
Grüße
bastla
Bitte warten ..
Mitglied: berlinger
09.08.2014 um 19:56 Uhr
@bastla
Danke, stimmt den Teil mit dem Errorlevel habe ich verdrängt...

Bin nun unterwegs... daher kann ich es erst später testen

Verstehe ich das richtig, dass du die ausgabe ins log "pipest" ?

Wenn ja wie kann ich das für weitere schritte verwenden? Daher bei ok mach noch das und bei not ok das?

Sorry, aber ich stehe da gerade auf dem schlauch

Warum eigentlich Ohne errorlevel?
Bitte warten ..
Mitglied: bastla
09.08.2014 um 20:48 Uhr
Hallo berlinger!
erstehe ich das richtig, dass du die ausgabe ins log "pipest" ?

Wenn ja wie kann ich das für weitere schritte verwenden? Daher bei ok mach noch das und bei not ok das?
Das kannst Du zusätzlich zum Loggen doch gleich mit erledigen:
01.
for /f "delims=" %%a in (IPs.TXT) do ( 
02.
    "%SYSTEMDRIVE%\Tools\CopyByRoby\BIN\psexec.exe" \\%%a -u xxx -p xxxx -h -accepteula reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation" /V "Model" && ( 
03.
        ECHO %%a Updater OK >>"%SYSTEMDRIVE%\Tools\CopyByRoby\LOG.txt" 
04.
        MachNochDas 
05.
    ) || ( 
06.
        ECHO %%a Updater NOT OK >>"%SYSTEMDRIVE%\Tools\CopyByRoby\LOG.txt" 
07.
        MachWasAnderes 
08.
09.
)
Warum eigentlich Ohne errorlevel?
Ist einfacher und braucht keine "delayedExpansion" - wobei ja ohnehin der Errorlevel geprüft wird (auf 0 oder eben nicht 0) ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Abfrage ERRORLEVEL springt aus der FOR Schleife
gelöst Frage von GalindieselBatch & Shell8 Kommentare

Liebe Gemeinde, ich habe eine kleine batch geschrieben, die aus einer liste (IPs) heraus Laufwerke mappen soll, darauf dann ...

Batch & Shell
ERRORLEVEL-Übergabe in einer FOR-Schleife mit psexec
gelöst Frage von zeusplanetBatch & Shell2 Kommentare

Hi Leute, komme einfach nicht weiter, bzw. auf keine einfache Lösung. Ich sichere mehrere Server über eine Batch (Drive ...

Batch & Shell
Seltsames Verhalten bei Errorlevel abfrage in FOR DO Schleife
gelöst Frage von Kalma73Batch & Shell1 Kommentar

Hallo, ich bin gerade dabei ein Stromausfall Shutdown Script zu schreiben. Habe schon einiges Ausprobiert und mir ist etwas ...

Batch & Shell
For Schleife - Robocopy gibt trotz Setlocal EnableDelayedExpansion nur Errorlevel 0 zurück
Frage von michelo82Batch & Shell5 Kommentare

Hallo, und zwar bastel ich an einem Sicherungsskript welches mit Robocopy die Daten kopiert, die Zeit dieses Vorganges misst, ...

Neue Wissensbeiträge
Mac OS X

MacOS wo ist die Tilde ?

Tipp von Alchimedes vor 8 StundenMac OS X1 Kommentar

Hallo, ich hab eine MacOS qwertz Keyboard auf US Layout umgestellt da die Sonderzeichen besser erreichbar sind. Leider fehlt ...

Datenschutz

Weitere Informationen zum Sicherheitsproblem BeA

Information von Penny.Cilin vor 15 StundenDatenschutz

Im folgenden ein weiterer Bericht über die Sicherheitsprobleme von Bea. Fataler Konstruktionsfehler im besonderen elektronischen Anwaltspostfach Gruss Penny

Windows 10

Systemdienste behalten nach Win10 inplace-Upgrade nicht die ggf. modifizierte Startart bei

Tipp von DerWoWusste vor 17 StundenWindows 103 Kommentare

Stellt Euch vor, Ihr habt ein Win10 System und modifiziert dort die Startart von Systemdiensten. Zum Beispiel wollt Ihr ...

Microsoft Office

Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei

Anleitung von SarekHL vor 20 StundenMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...

Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von fyrb38Windows 1018 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...

Microsoft Office
Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei
Anleitung von SarekHLMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...