【发布时间】:2012-09-28 19:06:57
【问题描述】:
一些背景知识:我们正在尝试在服务器上自动安装代理。自动化工作流程将检查需要此安装的服务器。如果是这样,工作流会复制必要的安装文件以及 .cmd 批处理文件。
在本地调用此 .cmd 脚本时,安装工作正常。但是,当尝试从工作流服务器远程调用此脚本时,它会挂在批处理中的某一行。来自脚本 se_install.cmd 的片段:
echo Installing SE 9.4 Agent
start "" /wait "Installcimextensions.exe" -i silent
echo Install completed
我们正在使用 psexec 远程调用上述脚本,使用我们用来执行其他进程的许多其他脚本的管理员级别帐户。以下是工作流服务器将运行的内容:
c:\scripts\psexec.exe -accepteula \\targetserver -u domain\username -p password \\targetserver\c$\temp\se\se_install.cmd
远程运行时,我看到的最后一个输出是“Installing SE 9.4 Agent”。在那之后,它似乎无限期地挂起。同时,我在本地服务器上查看正在运行的进程列表,而 installcimextensions.exe 从未像应有的那样出现在此列表中。我找不到远程运行“开始”命令的任何已知问题,但我认为这可能是问题的一部分。或者这可能是我设置引号的方式或“-i silent”标志的问题?我还尝试用调用另一个包含此行但没有骰子的批处理文件来替换批处理中的这个“开始”行。
有什么建议吗?谢谢。
【问题讨论】:
-
在第一次 echo write
cd c:\temp\se\se_install.cmd之后,在本地运行时,您当前的工作目录位于包含 .exe 的文件夹中,但是当您远程运行时,您当前的工作目录是默认目录你必须改变它才能让你的 .bat 工作 -
^ 太棒了,这行得通。在我尝试过的所有事情中,我不敢相信我忘记尝试这样简单的事情。或者,我现在意识到我也可以执行 'start "" /wait "c:\temp\se\installcimextensions.exe" -i silent。谢谢
-
我很高兴它成功了。我已将其添加为评论,因此您可以接受它,因为不需要更多答案。
标签: batch-file cmd psexec