我正在尝试在远程服务器(可以工作)上调用.cmd文件,并从该.cmd文件调用远程服务器上的外部可执行文件来压缩某些文件。这曾经在较旧的环境中工作(远程服务器是2003机器),但我们正在迁移到新的2012r2服务器,现在我收到路径未找到错误。我知道路径是正确的,因为在本地我可以毫无问题地运行所有这些命令。让我说清楚一点:
致电服务器: 我使用以下命令行来调用生活在远程服务器上的脚本:
\\server1\path1a\path1b\myscript.cmd \\server1\path2a\path2b\
远程服务器: 在这里,“myscript.cmd”文件的内容是:
@echo off
e:\utils\gzip.exe -N -3 -a %1\p*
if %errorlevel% GTR 0 goto zipfail
echo ZIP WORKED!
exit
:zipfail
echo ZIP FAILED with error: %errorlevel%
exit
正如您所看到的,我将参数传递到要压缩的源文件的位置。我使用的调用服务器上的帐户具有.cmd文件所在目录的完全访问权限(文件和共享级别),以及gzip实用程序所在的远程服务器上的本地路径e:\ utils。我可以从远程服务器运行它,它一切正常,但当我尝试从远程机器调用它时,我回来并且错误“系统无法精确指定的路径”。我已经确认问题不是“c:\ utils \ gzip.exe”路径,因为如果缺少或不正确,我会得到一个不同的错误,指出它无法找到gzip实用程序。这意味着问题是让gzip启动并让它访问要压缩文件的远程路径。
(顺便说一句,我已经尝试将gzip放到.cmd文件所在的同一路径上,结果相同。)
有什么想法吗?这是2012年的一些新的安全限制,即远程执行脚本无法/不允许访问远程可执行文件吗?
答案 0 :(得分:0)
Paul是对的 - 自从我使用批处理文件后我已经太久了,我开始忘记基础... grrrr!
调用(也就是运行脚本的机器)上缺少路径(和被调用的可执行文件)。一旦我确定它工作得很好!