当我在PowerShell中使用slmgr /skms <URL> | cmd
命令时,它向我显示了一个弹出窗口,我必须按下ok按钮,然后我运行slmgr /ato | cmd
并再次显示我另一个弹出窗口,我按下ok按钮。
我不想手动按ok键,有没有人能帮我解决这个问题?
我刚在windows中禁用了uac,但是它没有帮助我。
您正在寻找的是cscript
。通过执行vbs脚本文件,输出被发送到需要您交互的对话框。
使用cscript
,所需的输出将被打印到当前标准输出:
cscript C:WindowsSystem32slmgr.vbs /ato
这与UAC没有任何关系,你可以考虑重新激活它。
为什么呢?
slmgr
不是命令,也不是windows中的可执行文件。这是一个用VBScript编写的脚本文件。VBScript是VB的一种脚本版本,所以不要过多地使用它会让你安心。
如果你输入slmgr /skms
, windows会在它的搜索路径(%PATH%
)中查找一个名为slmgr的文件,找到C:WindowsSystem32slmgr.vbs
并决定,因为它是一个.vbs
文件,使用文件路径和你的参数作为参数执行wscript.exe
是正确的。
WScript是vbs文件的默认解释器,它只解释文件并执行其代码。另一方面,控制台脚本有cscript
。
如果.vbs
文件的作者决定写一条消息给他们脚本的用户,他们通常使用像
Wscript.Echo "Hello, World!"
这就是你开始困惑的地方:
在cscript中执行此脚本意味着将Hello, World!
写入控制台。(这就是你想要做的)
使用wscript执行相同的脚本会呈现一个带有OK按钮的消息框。您可以通过使用上面的语句创建一个vbs文件来轻松地复制它。
wscript与cscript的区别