我正在更新现有的HTA应用程序。该页面显示公司中过去3天内未执行备份(Via ibm tsm)的每台计算机的记录。我为每个记录创建了一个按钮,按下后,应该使用PSEXEC执行cscript进程,该进程在目标机器上运行exe并传递参数。 (dsmc.exe INCREMENTAL)现在我可以手动打开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合作。
答案 0 :(得分:1)
以下是(或多或少)使用objShell.Run
使用psexec
的语法:
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
- 作为远程计算机的系统帐户运行。如果您不使用此功能,则需要指定-u
和-p
才能以交互方式运行。否则,您的凭据将执行网络登录
-i
- 指定以交互方式运行。这可以省略,也可以指定会话
-d
- 在继续前进之前不要等待远程命令完成