从WMIC调用时,VBS代码无法正常工作

时间:2018-04-30 02:52:56

标签: cmd vbscript wmi wmic nircmd

我正在尝试使用Window 10 WMIC远程调用某些代码。

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。在Machine_2上关闭MsgBox后,它应该用“test2”覆盖out.txt的内容。

MsgBox下面的两行注释代码可以代替MsgBox代码,也具有相同的行为。

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

的内容

我很遗憾为什么会发生这种情况,以及我可能采取的步骤使其发挥作用。在这一点上,我已经筋疲力尽了我的谷歌。

1 个答案:

答案 0 :(得分:0)

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

您可能不会弄乱登录用户。