jgs2015
Goto Top

Ausgabe eines Batchbefehls in Variable setzen und dann mit Systemzeit vergleichen

Moin,

mir raucht gerade echt der Schädel und ich werde im Netz nicht fündig.

Folgendes Problem:

Bei einem unserer Kunden ist die Uhrzeit im Raidcontroller der Dell Powervault ein- bis zweimal im Monat plötzlich asynchron.
Die Lösung:

Wir schreiben eine Batchdatei die die Uhrzeit im storage ausließt und diese mit der aktuellen Systemzeit vergleicht.
Ist diese gleich, so springt die batch wieder auf Anfang.
Ist sie ungleich, so synchronisiert die Batch die Uhrzeit und springt anschließend wieder auf Anfang.

Dieses Spiel soll auf einem Endgerät im Serverraum laufen.

Mein bisheriger Ansatz sieht wie folgt aus:

:repeat
@echo off
"C:\Program Files (x86)\Dell\MD Storage Software\MD Storage Manager\client\SMcli.exe" IP-Adresse -c "show storageArray time;" -p Kennwort

For /f %%i in "show storageArray time;" set Ergebnis=%%i

if %Ergebnis% NEQ %time:~0,8% goto :TIMESET
else goto :repeat

:TIMESET
"C:\Program Files (x86)\Dell\MD Storage Software\MD Storage Manager\client\SMcli.exe" IP-Adresse -c "set storageArray time;" -p Kennwort

Mein Problem ist, dass die Uhrzeit aus dem Show-Befehl wie folgt ausgegeben wird:

Performing syntax check...

Syntax check complete.

Executing script...

RAID Controller Module in Slot 0
Date/Time: Mon Aug 10 17:47:15 CEST 2015
RAID Controller Module in Slot 1
Date/Time: Mon Aug 10 17:46:05 CEST 2015
Script execution complete.

SMcli completed successfully.

Ich benötige nur das 17:47:15 der Ausgabe von Slot 0 für den Vergleich (das Slot 0 und slot 1 einen Zeitunterschied von 00:01:10 haben ist hierbei erstmal egal) um es mit der Systemzeit zu vergleichen.

Hat jemand ne Idee?

Danke und Gruß

JGS

Content-ID: 279811

Url: https://administrator.de/forum/ausgabe-eines-batchbefehls-in-variable-setzen-und-dann-mit-systemzeit-vergleichen-279811.html

Ausgedruckt am: 08.01.2025 um 07:01 Uhr

rubberman
Lösung rubberman 10.08.2015, aktualisiert am 11.08.2015 um 09:25:25 Uhr
Goto Top
Hallo JGS,

teste:

snip<
set "storageArraytime="  
for /f "tokens=5" %%i in (  
  '"C:\Program Files (x86)\Dell\MD Storage Software\MD Storage Manager\client\SMcli.exe" IP-Adresse -c "show storageArray time;" -p Kennwort ^| findstr /c:"Date/Time:"'  
) do if not defined storageArraytime set "storageArraytime=%%i"  

if %storageArraytime% NEQ %time:~0,8% ....
snip<

Grüße
rubberman
JGS2015
JGS2015 11.08.2015 um 09:25:40 Uhr
Goto Top
Scheint zu funktionieren, danke face-smile
JGS2015
JGS2015 25.08.2015 um 11:11:05 Uhr
Goto Top
Hat jemand ne Idee wie ich das ganze in PS übersetze? Der Kunde beschwert sich das das Kennwort im Skript im Klartext steht...
rubberman
rubberman 25.08.2015 um 20:42:23 Uhr
Goto Top
Hallo JGS,

ich kann das nicht, aber ich frage mich was dann anders sein soll. Meinst du, du brauchst dann kein Passwort?
Wie auch immer, es wäre Zufall wenn hier noch mal jemand drüber stolpern sollte. Erstelle am besten einen neuen Thread mit Verweis auf diesen.

Grüße
rubberman
JGS2015
JGS2015 26.08.2015 um 10:24:21 Uhr
Goto Top
In der Powershell kann man Kennwörter verschlüsselt hinterlegen. Das ist der unterschied.