0

我正在尝试使用 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 的内容。

我很困惑为什么会发生这种情况,以及我可能会采取哪些步骤来使其发挥作用。在这一点上,我已经用尽了我的 google-fu。

4

1 回答 1

0

您不能在远程脚本上显示用户界面。

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

于 2018-04-30T04:57:15.697 回答