heißt die Microsoft Implementierung des Web Based Enterprise Management (WBEM)-Standard. WMI bietet den Zugriff auf Systeminformationen, die bislang nur mit komplizierten API-Aufrufen zu ermitteln waren.
Das hier unten aufgeführte Beispiel dient als Beispiel, um halt möglichst schnell Informationen zu erhalten.
Welche weiteren Möglichkeiten existieren findet ihr unter folgendem Link:
http://msdn.microsoft.com/library/defau ... lasses.asp
Code: Alles auswählen
#!/usr/bin/python
# -*- coding: iso-8859-1 -*-
import wmi
from win32com.client import *
from array import *
class WMIInformations:
def GetProcessorType(self,computer='./root/cimv2'):
return self.GetWMIInfo(computer,'Win32_Processor','ProcessorType')
def GetProcessorManufactor(self,computer='./root/cimv2'):
return self.GetWMIInfo(computer,'Win32_Processor','Description')
def GetIPAddress(self,computer='./root/cimv2'):
return self.GetWMIInfo(computer,'Win32_NetworkAdapterConfiguration','IPAddress')
def GetSystemName(self,computer='./root/cimv2'):
return self.GetWMIInfo(computer,'Win32_Processor','SystemName')
def GetAllFreeSpace(self,disk='c'):
try:
if not disk.find(':'):
disk+=':'
for disk in wmi.WMI().Win32_LogicalDisk (DriveType=3):
return disk.Caption, "%0.2f%% free" % (100.0 * long (disk.FreeSpace) / long (disk.Size)),str((int(disk.FreeSpace)/1024)/1024) + ' MB'
except:
return 'error in GetAllFreeSpace'
def GetWMIInfo(self,computer, modul, propertie):
# Dies ist die Main Funktion
try:
wmi = GetObject('winmgmts://' + computer )
_wmiobj = wmi.ExecQuery('select * from '+ modul)
for i in _wmiobj:
return i.Properties_(propertie).Value
except:
return 'error in GetWMIInfo()'
wmiInfo= WMIInformations()
print wmiInfo.GetIPAddress()
Hinweis: Selbstverständlich kann man durch die WMI auch Systemeinstellungen ändern.
Greetz from 2bock
