我有同样的问题,尽管在脚本中。
我找到了这个值;我正在使用 WMI 查询它:
https://msdn.microsoft.com/en-us/library/aa394239(v=vs.85).aspx
Win32_OperatingSystem
ProductType
Data type: uint32
Access type: Read-only
Additional system information.
Work Station (1)
Domain Controller (2)
Server (3)
我针对以下操作系统版本对此进行了测试:
- Windows XP 专业版 SP3
- Windows 7 企业版
- 视窗 8.1 专业版
- Windows 8.1 企业版
- Windows 10 专业版 10.0.16299
- Windows Server 2003 R2 标准版
- Windows Server 2003 R2 标准版 x64
- Windows Server 2008 R2 标准版
- Windows Server 2012 数据中心
- Windows Server 2012 R2 数据中心
在下面找到我的示例批处理文件。
卢卡斯。
for /f "tokens=2 delims==" %%a in ( 'wmic.exe os get producttype /value' ) do (
set PRODUCT_TYPE=%%a
)
if %PRODUCT_TYPE%==1 set PRODUCT_TYPE=Workstation
if %PRODUCT_TYPE%==2 set PRODUCT_TYPE=DomainController
if %PRODUCT_TYPE%==3 set PRODUCT_TYPE=Server
echo %COMPUTERNAME%: %PRODUCT_TYPE%
您可以在 C# 中轻松做到这一点:
using Microsoft.Management.Infrastructure;
...
string Namespace = @"root\cimv2";
string className = "Win32_OperatingSystem";
CimInstance operatingSystem = new CimInstance(className, Namespace);