Cmd 从WMIC调用时VBS代码不工作

Cmd 从WMIC调用时VBS代码不工作,cmd,vbscript,wmi,wmic,nircmd,Cmd,Vbscript,Wmi,Wmic,Nircmd,我正在尝试使用Windows10WMIC远程调用一些代码 rem command prompt, machine 1 (main computer) WMIC /node:"MACHINE_2" process call create "cmd.exe /k "%USERPROFILE%\test.vbs" " 这个电话似乎打对了。它从test.vbs(如下所示)生成部分输出,这意味着调用并执行该文件 ' test.vbs, machine 2 (MACHINE_2, in above cod

我正在尝试使用Windows10WMIC远程调用一些代码

rem command prompt, machine 1 (main computer)
WMIC /node:"MACHINE_2" process call create "cmd.exe /k "%USERPROFILE%\test.vbs" "
这个电话似乎打对了。它从test.vbs(如下所示)生成部分输出,这意味着调用并执行该文件

' test.vbs, machine 2 (MACHINE_2, in above code)
Set objFSO=CreateObject("Scripting.FileSystemObject")

outFile="%USERPROFILE%\out.txt"
Set objFile = objFSO.CreateTextFile(outFile,True)
objFile.Write "test1" & vbCrLf
objFile.Close

MsgBox("hi")
' CreateObject("WScript.Shell").Run "cmd /c ""nircmd.exe sendkey 0xB3 press"" ", 0
' Set WshShell = Nothing

outFile="%USERPROFILE%\out.txt"
Set objFile = objFSO.CreateTextFile(outFile,True)
objFile.Write "test2" & vbCrLf
objFile.Close
预期行为:脚本应将“test1”写入out.txt。然后它应该打开一个MsgBox。在机器2上关闭MsgBox后,它应该用“test2”覆盖out.txt的内容

MsgBox下面的两行注释代码可以替换MsgBox代码,并且具有相同的行为

在本地执行vbs文件时,会发生预期的行为。但是,当使用WMIC调用时,会打印“test1”,然后执行似乎会停止。MsgBox永远不会显示,“test2”永远不会覆盖out.txt的内容


我完全不明白为什么会发生这种情况,以及我可能采取的措施。此时,我已经用尽了我的google fu。

您无法在远程脚本上显示用户界面


您不能与登录的用户发生冲突。

您不应该在任何可能需要自动或自动运行的代码上显示消息框。谁来按OK按钮?无论如何我假设我的服务器是你的本地机器?要进行故障排除,请将特定于环境的值(如
%USERPROFILE%
)替换为硬编码值,并查看其是否按预期工作。使用此选项可以隔离问题。如果整个脚本无法正常运行,那么下一步就是查找无法正常运行的行。最后,查看cluesOh和….的windows事件日志。。。。为了运行VBS,您需要对
CScript.EXE
而不是
CMD.EXE
运行它。这里有一个例子:谢谢你的回复。为了清楚起见,我编辑了这个问题。我的_服务器是第二台计算机,我正试图在其上运行vbs代码。%USERPROFILE%工作正常,如1。vbs脚本称为和2。out.txt不包含输出。我已经用硬编码值替换了它,没有任何变化。不起作用的一行是MsgBox行(或它下面的两行注释行)。使用cscript.exe似乎没有什么不同<代码>“cscript”%USERPROFILE%\test.vbs“第二台计算机是另一台计算机吗?您不会在另一台计算机上看到弹出的消息框。您能否提供更多详细信息,说明为什么会出现这种情况,或者有哪些政策或标准来强制执行这种行为?在这种情况下,我特别想“搞乱”用户;例如:发送击键、显示定时ui元素等。