如何实现PowerShell执行slmgr命令时无需手动确认弹窗?
解决slmgr命令弹窗无需手动确认的方案
核心原因说明
slmgr本质是调用Windows脚本宿主(WScript/cscript)执行的VBS脚本,默认用WScript时会弹出图形化确认弹窗,这和UAC无关,所以禁用UAC无法解决该问题。
具体解决方案
直接指定cscript执行(临时/单次生效)
放弃用slmgr快捷命令,直接调用cscript执行slmgr.vbs,控制台输出结果而非弹窗:# 设置KMS服务器 cscript //nologo C:\Windows\System32\slmgr.vbs /skms <URL> # 激活系统 cscript //nologo C:\Windows\System32\slmgr.vbs /ato其中
//nologo参数用于跳过cscript的启动标识输出,保持控制台整洁。修改默认脚本宿主(全局永久生效)
把Windows默认的VBS脚本执行器改成cscript,之后所有slmgr命令都会默认在控制台输出,不再弹窗:cscript //H:cscript //nologo执行后后续直接用
slmgr /skms <URL>或slmgr /ato也不会弹出确认框。PowerShell后台静默执行(适合自动化脚本)
用Start-Process在后台执行命令,完全无交互:# 设置KMS服务器 Start-Process cscript -ArgumentList "//nologo", "C:\Windows\System32\slmgr.vbs", "/skms", "<URL>" -NoNewWindow -Wait # 激活系统 Start-Process cscript -ArgumentList "//nologo", "C:\Windows\System32\slmgr.vbs", "/ato" -NoNewWindow -Wait-NoNewWindow确保在当前控制台执行,-Wait等待命令完成后再继续后续操作。
内容的提问来源于stack exchange,提问作者Soheil Spalany
相关产品推荐
相关产品推荐

