Powershell Windows 7 Zuverlässigkeitsabfrage grafisch dargestellt


Aufgrund dieses Artikels http://technet.microsoft.com/en-us/magazinebeta/dd535685.aspx wollte ich die Zuverlässigkeitsabfrage von entfernten PCs abfragen und pseudografisch darstellen lassen.

Dazu wird die Klasse Win32_ReliabilityStabilityMetrics benutzt: http://msdn.microsoft.com/en-us/library/ee706632(VS.85).aspx.

Die Abfrage im Sinne von

Get-WmiObject win32_reliabilitystabilityMetrics -Property @("SystemstabilityIndex", "EndMeasurementDate") | ForEach-Object -Process {$t = ""; for ($i=0;$i -le $_.SystemStabilityIndex *5; $i++) {$t=$t+"="}; $d=$_.EndMeasurementDate; $x=$d+" "+$t; $x}

funktionierte zwar, das blöde war nur, dass die Infos in der Form angezeigt wurden:

20090816170000.000000-000 =======================
20090816160000.000000-000 =======================
20090816150000.000000-000 ==========================

Die Lösung brachte der Artikel http://tfl09.blogspot.com/2009/01/date-and-time-in-powershell.html der darauf aufmerksam macht, das bei Abfrage von WMI-Objekten eben keine DateTime-Objekte sondern einfache Strings zurückgegeben werden.

Also ist EndMeasurementDate kein DateTime-Objekt sondern ein String. Dieser kann mit der Methode ToDateTime aus der ManagementDateTimeconverter-Klasse in ein echtes DateTime-Objekt konvertiert werden. Somit war folgendes möglich:

Get-WmiObject win32_reliabilitystabilityMetrics -Property @("SystemstabilityIndex", "EndMeasurementDate") | ForEach-Object -Process {$t = ""; for ($i=0;$i -le $_.SystemStabilityIndex *5; $i++) {$t=$t+"="}; $d=$_.EndMeasurementDate; $dt=[System.Management.ManagementDateTimeconverter]::ToDateTime($d); $x=$dt.ToShortDateString()+" "+$dt.ToShortTimeString()+" "+$t; $x}

Welches dann diese Ausgabe ermöglichte:

16.08.2009 19:00 =======================
16.08.2009 18:00 =======================
16.08.2009 17:00 ==========================

Die einfache Variante sieht so aus:

Get-WmiObject win32_reliabilitystabilityMetrics -Property @("SystemstabilityIndex", "EndMeasurementDate") | ForEach-Object -Process {$d=$_.EndMeasurementDate; $dt=[System.Management.ManagementDateTimeconverter]::ToDateTime($d); $x=$dt.ToShortDateString()+" "+$dt.ToShortTimeString()+" "+$_.SystemStabilityIndex; $x}

also so:

16.08.2009 19:00 4.483
16.08.2009 18:00 4.453
16.08.2009 17:00 5.192

Ist aber bei weitem nicht so schön, oder?

Eine Antwort to “Powershell Windows 7 Zuverlässigkeitsabfrage grafisch dargestellt”

  1. Sich schnell über die Zuverlässigkeit eines Rechners informieren mittels des Verlauf der Zuverlässigkeitsüberwachung | Das nie endende Chaos! Says:

    […] Übrigens kann man auf die Zuverlässigkeitsdaten auch per Powershell und WMI zugreifen: https://newyear2006.wordpress.com/2009/12/14/powershell-windows-7-zuverlssigkeitsabfrage-grafisch-dar… […]

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s


%d Bloggern gefällt das: