Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python检查windows服务器版本_Python_Windows - Fatal编程技术网

Python检查windows服务器版本

Python检查windows服务器版本,python,windows,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 V

出于报告目的,我需要在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版本?

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

看看包裹

版本\n域\u控制器0x0000002

该系统是一个域控制器和 操作系统是Windows Server 2008、Windows Server 2003或Windows 2000服务器

版本服务器0x0000003

操作系统是Windows Server 2008、Windows Server 2003或Windows 2000服务器

请注意,服务器也是 域控制器报告为 版本域控制器,不是 版本服务器

版本工作站0x0000001

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


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

当前充当域控制器的服务器上的ProductType为2。您也可以使用wmic os get OperatingSystemSKU。只要您使用的是Windows Vista或更新版本(看起来您是),该属性就应该存在。此处将显示SKU的值列表。