【问题标题】:Batch file - Remote Copy and Execute issue批处理文件 - 远程复制和执行问题
【发布时间】:2013-04-02 21:26:00
【问题描述】:
我有一个批处理文件,其中一部分将文件夹及其内容复制到本地目录,然后继续执行批处理过程,然后尝试执行该文件夹的内容。在本地运行它适用于所有 wintel 操作系统并将文件从 \networkshare\folder*.* 复制到 %systemdrive%\temp\ 。
我尝试使用例如 psexec @serverlist.txt -c batfile.bat -s -f -d 来复制文件,然后远程执行它,但问题是远程运行时不会复制文件。我认为这是远程执行批处理文件后的身份验证问题,远程系统将不允许我访问/验证网络共享
我尝试过 xcopy 、 copy 、 robocopy 。
【问题讨论】:
标签:
windows
vbscript
batch-file
psexec
【解决方案1】:
AFAIK 您只能使用隐式凭据对下一个跃点进行身份验证。即使您的用户具有所需的权限,从第一个跃点到第二个跃点的连接尝试也会失败。参见例如here 解释一下。
试试这个:
psexec @serverlist.txt -u %USERDOMAIN%\%USERNAME% -d -c batfile.bat
使用显式凭据,以便您针对远程主机进行身份验证。这样,第二跳将成为您经过身份验证的会话的下一跳。不要以 LOCAL SYSTEM (-s) 身份运行脚本,因为该帐户仅限于本地资源。
【解决方案2】:
我过去曾遇到过这个问题。如果可以的话,不要尝试复制/运行 BAT 文件,只需从 UNC 路径运行脚本即可。我认为问题在于 BAT 文件实际上无法像您想象的那样通过 PSEXEC 运行和复制。它是否提供退出代码?
这是我不久前用来安装 Adobe 阅读器的示例。我试图通过一个批处理文件来做,但没有骰子。无论我是否复制它,我都无法让它在批处理文件中运行。我不记得确切的原因,我认为它与在系统中调用批处理文件并在某种本地上下文中运行的方式有关。不要引用我的话,因为我不记得确切的原因。
这是我的代码示例:
psexec /accepteula \\%computer% -s cmd /c msiexec /i "\\UNC\Software\adobe\Adobe Reader 7.0.9.msi" TRANSFORMS="acrobat7.mst" /qn