从START执行时,Windows START命令无法运行

时间:2013-05-10 18:15:50

标签: windows batch-file cmd rpc

长话短说我编写了一个程序,允许我在Windows机器上远程安装软件和运行命令。我一直在使用START命令(我从stackoverflow找到here的另一篇文章中了解到这一点)来通过RPC执行批处理文件,这样我的服务器就不必等待安装完成了。它在我为此编写的学区的1000台计算机中的大部分工作正常,但我有一些计算机,START不运行批处理文件。我没有收到任何错误消息,我所做的所有搜索只找到了更多如何使用START命令的示例。我一直无法找到任何对它的引用。

我的服务器是linux,并且正在使用winexe作为RPC。这是我正在运行的命令。

winexe -W domain -U adminUser --password=adminPassword //compName.domain.internal --runas=domain\\adminUser%adminPassword "\\\\Server\\PathToBatch\\run.cmd \\\\Server\\PathToBatch\\install.cmd"

run.cmd代码如下。

START %1
exit

install.cmd批处理文件由我的程序生成,具体取决于他们要安装的内容。命令中的额外\是转义字符,因为\是linux中的转义字符。

我得到的输出是。

C:\WINDOWS\system32>start \\Server\PathToBatch\install.cmd 
C:\WINDOWS\system32>exit

没有错误消息,并且正确启动的计算机上的输出相同。

我已经尝试从机器上的命令提示符运行命令,就像它通过RPC运行一样,它运行正常。我可以使用RPC自己运行install.cmd,它工作正常,但我必须等待安装完成。完全相同的批处理文件可以在其他计算机上运行而不会出现问题。

在工作的计算机上查看任务管理器我可以看到由adminUser启动运行的cmd进程,然后启动第二个cmd进程,第一个cmd进程消失。在不工作的计算机上,它启动第一个cmd进程,并在没有第二个cmd进程启动的情况下离开。

我无法找到工作计算机和非工作计算机之间的任何差异。计算机上没有防火墙。

我们将在暑假期间对这些计算机进行重新成像,我希望他们可能会在此之后开始工作,所以我想出这个并不紧急。我主要想知道为什么它不起作用,以便我可以防止它在将来在其他机器上失败。

提前感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

尝试使用start "" %1代替start %1。还要仔细检查runas用户是否可以在命令失败的机器上实际访问\\Server\PathToBatch

相关问题