2016-11-22 3 views
0

Ich habe ein IronPython-Skript, das einige Informationen von WMI sammelt. Eines der Dinge, die ich versuche zu sammeln, ist LastBootUpTime von Win32_OperatingSystem. Ich bin in der Lage, die Informationen zu erhalten mit:LastBootUpTime von WMI in ein benutzerfreundlicheres Format konvertieren

import clr 

clr.AddReference('System.Management.Automation') 

from System.Management.Automation import (
    PSMethod, RunspaceInvoke 
) 
RUNSPACE = RunspaceInvoke() 

def wmi(query): 
    return [dict([(prop.Name, prop.Value) for prop in psobj.Properties]) for psobj in RUNSPACE.Invoke(query)] 

def to_ascii(s): 
    # ignore non-ascii chars 
    return s.encode('ascii','ignore') 

operating_system = wmi('Get-WmiObject Win32_OperatingSystem -Namespace "root\CIMV2"')[0] 
last_boot  = to_ascii(operating_system.get('LastBootUpTime')) 

print last_boot 

Das Ergebnis ist als

20161117135516.486400-300 

folgt Gibt es eine Möglichkeit in Ironpython diesen „Zeitstempel“ zu einem Freundlichen Format zu konvertieren?

Antwort

0

Verwenden Sie die in der Klasse ManagementDateTimeConverter gefundenen Methoden zum Konvertieren in ein .net-Objekt. Dieses Feld ist insbesondere ein datetime, so dass Sie ToDateTime() verwenden möchten. Sie müssen nur einen Verweis auf die System.Management Assembly hinzufügen.

clr.AddReference('System.Management') 
from System.Management import ManagementDateTimeConverter 
print ManagementDateTimeConverter.ToDateTime(last_boot) 
+0

Arbeitete perfekt. Vielen Dank. – user3783772

Verwandte Themen