Вы можете попробовать использовать упаковку systeminfo.exe, которую я создал некоторое время назад, это немного неортодоксально, но, кажется, делает это достаточно легко и без большого количества кода.
Это должно работать на 2000 / XP / 2003 Server и должно работать на Vista и Win7 при условии, что они поставляются с systeminfo.exe и оно находится по пути.
import os, re
def SysInfo():
values = {}
cache = os.popen2("SYSTEMINFO")
source = cache[1].read()
sysOpts = ["Host Name", "OS Name", "OS Version", "Product ID", "System Manufacturer", "System Model", "System type", "BIOS Version", "Domain", "Windows Directory", "Total Physical Memory", "Available Physical Memory", "Logon Server"]
for opt in sysOpts:
values[opt] = [item.strip() for item in re.findall("%s:\w*(.*?)\n" % (opt), source, re.IGNORECASE)][0]
return values
Вы можете легко добавить остальные поля данных в переменную sysOpts, исключая те, которые предоставляют несколько строк для своих результатов, например информацию о процессорах и сетевых картах. Простой мод для строки регулярного выражения должен быть в состоянии справиться с этим.
Наслаждайтесь!