Python检查Windows服务器版本

时间:2009-12-02 17:20:41

标签: python windows

我需要在我的python应用程序中记录当前的Windows版本以进行报告,但到目前为止我发现的内置函数无法说明Windows客户端和服务器版本之间的区别:

os.sys.getwindowsversion()
(6, 0, 6002, 2, 'Service Pack 2')
platform.release()
'Vista'
platform.win32_ver()
('Vista', '6.0.6002', 'SP2', 'Multiprocessor Free')

这些函数在Windows Vista和Windows Server 2008上返回相同的值(因为它们共享相同的版本号)。

有没有办法获得正确的Windows版本?

2 个答案:

答案 0 :(得分:1)

您可以使用GetVersionEx Win32 API并检查wProductType的值以区分。

查看Python for Windows extension包。

  

VER_NT_DOMAIN_CONTROLLER 0x0000002

     

系统是域控制器和   操作系统是Windows Server   2008,Windows Server 2003或Windows   2000 Server。

     

VER_NT_SERVER 0x0000003

     

操作系统是Windows Server   2008,Windows Server 2003或Windows   2000 Server。

     

请注意,服务器也是一个   域控制器报告为   VER_NT_DOMAIN_CONTROLLER,不是   VER_NT_SERVER。

     

VER_NT_WORKSTATION 0x0000001

     

操作系统是Windows Vista,   Windows XP Professional,Windows XP   家庭版,或Windows 2000   专业的。

答案 1 :(得分:0)

尝试在服务器系统上使用WMI Win32_OperatingSystem类(ProductType3)来获取它。 Scriptomatic可以为此生成Python代码。