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

For Schleife mit Errorlevel

Frage Microsoft Windows Server

Mitglied: berlinger

berlinger (Level 1) - Jetzt verbinden

09.08.2014, aktualisiert 15:15 Uhr, 1064 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
gelöst Seltsames Verhalten bei Errorlevel abfrage in FOR DO Schleife (1)

Frage von Kalma73 zum Thema Batch & Shell ...

Batch & Shell
Verschachtelte For Schleife für Batch Neuling (3)

Frage von yperiu zum Thema Batch & Shell ...

Batch & Shell
gelöst Verlinkung erstellen Batch Datei mit for Schleife (2)

Frage von rusdav zum Thema Batch & Shell ...

Batch & Shell
gelöst Verschachtelte FOR-Schleife mit einem Argument (3)

Frage von mp-home zum Thema Batch & Shell ...

Neue Wissensbeiträge
Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(2)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(5)

Anleitung von BassFishFox zum Thema Windows 10 ...

Administrator.de Feedback

Tipp: Ungelöste Fragen ohne Antwort in Tickeransicht farblich hinterlegen

Tipp von pattern zum Thema Administrator.de Feedback ...

Viren und Trojaner

Neue Magazin Ausgabe: Malware und Angriffe abwehren

Information von Frank zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Windows Systemdateien
Warum System auf "C:" (29)

Frage von DzumoPRO zum Thema Windows Systemdateien ...

LAN, WAN, Wireless
Cisco SG200: Auf bestimmtem vLAN bestimmte TCP-Ports sperren (19)

Frage von SarekHL zum Thema LAN, WAN, Wireless ...

Windows Server
gelöst Update BackupExec 2015 auf 2016 führt zu SQL-Server Problem (16)

Frage von montylein1981 zum Thema Windows Server ...

Cloud-Dienste
gelöst Bitcoins minen über Nacht? (16)

Frage von 1410640014 zum Thema Cloud-Dienste ...