VBScript 和 PSEXEC - 远程执行应用程序

VBScript and PSEXEC - Remotely Executing Application

我正在更新现有的 HTA 应用程序。该页面显示公司中最近 3 天内未执行备份(通过 ibm tsm)的每台机器的记录。我为每条记录创建了一个按钮,当按下该按钮时,应该使用 PSEXEC 执行一个 cscript 进程,运行 目标机器上的一个 exe 并传递一个参数。 (dsmc.exe 增量)现在我可以手动打开 cmd 提示符,使用 \Remote cmd 命令创建远程 cmd,并且 运行 应用程序就好了。但是没有创建远程 cmd 提示符的额外步骤,并尝试

PSEXEC \RemoteMachine cscript.exe "C:\Program Files\tivoli\tsm\baclient\dsmc.exe" INCREMENTAL

只会导致错误。我知道应该可以远程执行这个程序并仍然传递一个参数,但它不会 运行。当我使用

创建远程 cmd 提示符时
PSEXEC \RemoteMachine cmd

在我退出远程 cmd 提示符之前,执行脚本中的任何其他行都不会执行。

PSEXEC 是否有我不明白的秘密或获取现有 cmd 提示符(我刚刚创建的远程命令提示符)并将命令传递给它以执行的方法?请帮忙

*请注意,这不是我使用 PSEXEC 的第一个脚本。我通常使用我的 VBScript 在本地创建一个包含 PSEXEC 脚本的批处理文件,然后执行它。从未能够 wsshell.run 与 PSEXEC 一起工作。

这是(或多或少)我使用 objShell.Runpsexec 一起工作的语法:

Set objShell = CreateObject("Wscript.Shell")
objShell.Run "cmd.exe /c ""%pathToPsexec%\psexec.exe"" -accepteula -s -i -d \RemoteMachine cmd.exe /k ipconfig",0,True

这只是一个示例,但表明您可以发送嵌套开关等。了解 psexec 的开关也很重要。

-accepteula - 这接受了 psexec 的许可协议。这不是必需的,除非您是 运行 第一次使用它并且希望它安静。
-s - 运行s 作为远程计算机的系统帐户。如果你不使用这个,你需要指定 -u-p 如果你想 运行 交互。否则您的凭据将执行网络登录
-i - 指定为 运行 交互。这可以省略,也可以指定会话。
-d - 不要等待远程命令完成后再继续