:: Q:\Test\2019\04\07\SU_1422368.cmd
@Echo off&SetLocal EnableExtensions EnableDelayedExpansion
Set "WinVerAct="
For /f "tokens=*" %%W in ('
cscript /Nologo "C:\Windows\System32\slmgr.vbs" /xpr
') Do Set "WinVerAct=!WinVerAct! %%W"
if Not defined WinVerAct (
Echo:No response from slmgr.vbs
Exit /B 1
)
Echo Windows Version Activation Status:
Echo:"%WinVerAct:~1%"
示例输出:
> Q:\Test\2019\04\07\SU_1422368.cmd
Windows Version Activation Status:
"Windows(R), Professional edition: Der Computer ist dauerhaft aktiviert."
一个纯粹的 PowerShell 解决方案是:
这将为您提供如下输出:
如果 LicenseStatus 为 1,则表示系统已永久激活。
这样做的好处是,您可以通过指定
-ComputerName
参数轻松检查 RemoteMachines。虽然我得说那
slmgr /xpr
更快也更清晰。在 Windows 10 或 Windows Server 2016/2019 上,要使用命令提示符(或 powershell)显示激活状态,请打开您首选的命令行工具并输入以下命令
显示一个对话框,指示操作系统的激活状态。如果操作系统尚未激活,对话框将指示它处于“通知模式”
如果 Windows 成功激活,对话框将指示是“永久激活”,如下所示,或者如果使用限时批量许可证激活,则将显示激活到期的时间。
在旧版本的 Windows(例如 Windows 7)上,消息对话框将类似,但文本可能略有不同。
此方法还可用于在开箱即用体验 (OOBE) 向导期间检查激活状态,方法是在完成向导之前使用 Shift + F10 启动命令提示符。
你也可以做
作为 WMI 查询,其中值为:
cscript
运行slmgr.vbs
并将其包装在批处理文件中for /f
使用循环解析输出示例输出:
包装 slmgr.vbs 的单行 PowerShell 脚本: