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-Key: 279811

Url: https://administrator.de/contentid/279811

Printed on: April 25, 2024 at 06:04 o'clock

Member: rubberman
Solution rubberman Aug 10, 2015, updated at Aug 11, 2015 at 07:25:25 (UTC)
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
Member: JGS2015
JGS2015 Aug 11, 2015 at 07:25:40 (UTC)
Goto Top
Scheint zu funktionieren, danke face-smile
Member: JGS2015
JGS2015 Aug 25, 2015 at 09:11:05 (UTC)
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...
Member: rubberman
rubberman Aug 25, 2015 at 18:42:23 (UTC)
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
Member: JGS2015
JGS2015 Aug 26, 2015 at 08:24:21 (UTC)
Goto Top
In der Powershell kann man Kennwörter verschlüsselt hinterlegen. Das ist der unterschied.