es gibt ja den Befehl „IPS_GetUptime“ wo mit ich erfahre wann IPS da letzte mal gestartet wurde.
Gibt es solch einen Befehl auch für den letzten Neustart des Rechners?
In der Doku unter Modulreferenz \ System Informationen habe ich leider keinen Befehl dafür gefunden.
vielen Dank für die Infos.
Ich arbeite mit Windows 10, den Befehl IPS_ExecuteEx hatte ich mir auch schon angeschaut.
Funktioniert der auch wenn man nicht eingeloggt ist auf dem Rechner?
Und wie bekomme ich das Ergbnis aus der Kommandozeile herraus?
Ich hab da mal ein kleines Script für WinPCs erstellt …
Voraussetzung ist die Datei im Anhang unter c:\
<?
$result = IPS_Execute("cmd /c c:\uptime.exe", "", false, true);
//echo $result;
$result2 = explode(" ",$result);
//$result2 = array(0=>"",1=>"14:45:50",2=>"uptime",3=>"23:52:14"); // zum testen ohne Tage, nur für uptime
//$result2 = array(0=>"",1=>"14:45:50",2=>"uptime",3=>"29",4=>"days,",5=>"23:52:14"); // zum testen mit Tagen, nur für uptime
//print_r($result2);
echo "
";
if (isset($result2[5]))// wenns mit tagen ist
{
$zeit = trim($result2[5]);
//print_r($zeit);
$tage = $result2[3];
$zeit = strtotime($zeit);
$std = date("G",$zeit);
$min = date("i",$zeit)*1; //*1 um die führende 0 wegzubekommen
if ($tage == 1) // wenn die tageszahl 1 dann text Tag
{$tagtxt = " Tag ";}
else
{$tagtxt = " Tage ";}
if ($std == 1) // wenn die stundenzahl 1 dann text Stunde
{$stundentxt = " Stunde ";}
else
{$stundentxt = " Stunden ";}
if ($min == 1) // wenn die minutenzahl 1 dann txt Minute
{$minutentxt = " Minute ";}
else
{$minutentxt = " Minuten ";}
$uptime = $tage.$tagtxt.$std.$stundentxt.$min.$minutentxt."
";
echo "ServerUpTime ".$uptime;
}
else // wenns ohne tage ist
{
$tage = 0;
$zeit = trim($result2[3]);
//print_r($zeit);
$zeit = strtotime($zeit);
$std = date("G",$zeit);
$min = date("i",$zeit)*1; //*1 um die führende 0 wegzubekommen
if ($std == 1) // wenn die stundenzahl 1 dann text Stunde
{$stundentxt = " Stunde ";}
else
{$stundentxt = " Stunden ";}
if ($min == 1) // wenn die minutenzahl 1 dann txt Minute
{$minutentxt = " Minute ";}
else
{$minutentxt = " Minuten ";}
$uptime = $std.$stundentxt.$min.$minutentxt."
";
echo "ServerUpTime ".$uptime;
}
setvalue(15011, $uptime);
// ServerStartzeit ermitteln ---------------------------------------------------
$sekTage = $tage * 86400;
$sekTime = $std*3600 + $min*60;
$sekRuntime = $sekTage + $sekTime;
$startTime = time()-$sekRuntime;
$startTime = EN_DE_Date_Umwandler("D d.m. Y H:i",$startTime);
echo "ServerStartZeit ".$startTime;
// EN_DE_Date_Umwandler kommt bei mir aus der
// __autoload, ursprünglich aus https://www.symcon.de/forum/threads/28210-IP-Symcon-Wie-kann-ich-2-0?p=264806#post264806
// hab da nur noch die fehlenden Monate eingefügt, damit ich die Function universell nutzen kann.
setvalue(30032, $startTime);
?>
Hab da auch mal was gebaut, funktioniert komplett ohne extra Tools. Getestet unter Windows 7. Keine Ahnung, ob das auch unter Win8 oder Win10 funktioniert. Rückmeldungen dazu sind Willkommen, dann könnte ich das im Skript ergänzen