Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从RPC执行Windows START命令时无法运行_Windows_Batch File_Cmd_Rpc - Fatal编程技术网

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

从RPC执行Windows START命令时无法运行,windows,batch-file,cmd,rpc,Windows,Batch File,Cmd,Rpc,长话短说,我写了一个程序,允许我在Windows机器上远程安装软件和运行命令。我一直在使用START命令(我从stackoverflow的另一篇文章中了解到)通过RPC执行批处理文件,这样我的服务器就不必等待安装完成。我为学区的1000台计算机编写了这篇文章,其中大多数计算机都可以正常工作,但我有一些计算机的START没有运行批处理文件。我没有收到任何错误消息,我所做的所有搜索只找到了更多如何使用START命令的示例。我一直找不到它的任何引用,因为它没有运行 我的服务器是linux,正在使用wi

长话短说,我写了一个程序,允许我在Windows机器上远程安装软件和运行命令。我一直在使用START命令(我从stackoverflow的另一篇文章中了解到)通过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批处理文件由我的程序生成,具体取决于他们想要安装的内容。命令中的额外\s是转义字符,因为在linux中\s是转义字符

我得到的输出是

C:\WINDOWS\system32>start \\Server\PathToBatch\install.cmd 
C:\WINDOWS\system32>exit
没有错误消息,并且在正确启动的计算机上输出相同

我尝试过在机器上的命令提示符下运行该命令,与通过RPC运行的命令完全相同,并且运行良好。我可以自行使用RPC运行install.cmd,它工作正常,只是我必须等待安装完成。完全相同的批处理文件可以在其他计算机上运行而不会出现问题

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

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

我们将在暑假期间对这些计算机进行重新成像,我预计它们可能会在这之后开始工作,所以我并不迫切需要解决这个问题。我主要想知道它为什么不工作,这样我就可以防止它将来在其他机器上出现故障

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

请尝试
启动“%1
而不是
启动%1
。另外,请仔细检查运行方式用户是否可以在命令失败的计算机上访问
\\Server\PathToBatch

我以开始“%1”尝试了该操作,其操作完全相同。\\Server\PathToBatch是一个只读共享,不需要用户登录。我已经测试了在没有start命令的情况下运行,这确实有效。添加“”的作用是什么?