Robocopy 作业将手动运行,但不会作为计划任务运行

Robocopy 作业将手动运行,但不会作为计划任务运行

在 Server 2012 上使用 Robocopy。

我已经创建了一个.cmd 脚本,用于将一些文件从映射驱动器复制到本地机器。

映射驱动器位于不同域中的另一台服务器上,并与远程域的域管理员凭据连接。域不受信任。

如果我双击 .cmd 文件并手动运行它(以域管理员身份登录),它就会起作用

但是,一旦它作为计划任务运行(也作为域管理员运行),它就会以状态代码 0 完成,但实际上并没有复制任何内容。

脚本中的简单一行:

    @echo on
START /WAIT c:\windows\system32\Robocopy.exe "W:\Folder1\Folder2\Folder3\Folder4" "C:\Folder1\Folder2\Folder3\Folder4" file.txt /np /LOG+:"C:\RCLog\schtask.log"

手动运行时日志文件包含:

-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robust File Copy for Windows                              
-------------------------------------------------------------------------------

  Started : 13 December 2013 10:51:59
   Source : W:\Folder1\Folder2\Folder3\Folder4\
     Dest : C:\Folder1\Folder2\Folder3\Folder4\

    Files : file.txt

  Options : /DCOPY:DA /COPY:DAT /NP /R:1000000 /W:30 

------------------------------------------------------------------------------

                       1    W:\Folder1\Folder2\Folder3\Folder4

------------------------------------------------------------------------------

               Total    Copied   Skipped  Mismatch    FAILED    Extras
    Dirs :         1         0         0         0         0         0
   Files :         1         0         1         0         0         0
   Bytes :     4.1 k         0     4.1 k         0         0         0
   Times :   0:00:00   0:00:00                       0:00:00   0:00:00
   Ended : 13 December 2013 10:51:59

但是从计划任务运行时:

-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robust File Copy for Windows                              
-------------------------------------------------------------------------------

  Started : 13 December 2013 10:44:47
2013/12/13 10:44:47 ERROR 3 (0x00000003) Getting File System Type of Source W:\Folder1\Folder2\Folder3\Folder4\
The system cannot find the path specified.


   Source - W:\Folder1\Folder2\Folder3\Folder4\
     Dest : C:\Folder1\Folder2\Folder3\Folder4\

    Files : file.txt

  Options : /DCOPY:DA /COPY:DAT /NP /R:1000000 /W:30 

------------------------------------------------------------------------------

2013/12/13 10:44:47 ERROR 3 (0x00000003) Accessing Source Directory W:\Folder1\Folder2\Folder3\Folder4\
The system cannot find the path specified.

有人有什么想法吗?

谢谢

答案1

只需使用远程服务器的 UNC 路径,而不是驱动器号 W:

可能的原因是计划任务期间网络映射不可用。您也可以更改脚本以映射驱动器,执行 robocopy 并最终取消映射,但使用 UNC 路径更简单。

答案2

当作业从调度程序运行时,给定的凭据仅用于身份验证,而不是用于重新创建整个用户环境。您必须在 robocopy 命令之前直接复制到 UNC 路径或将 S: 驱动器映射到脚本中的 UNC。

回到您的问题,在脚本中,在 ROBOCOPY 命令之前添加 net use w:\netshare_path$。如果脚本发现映射驱动器使用的字母 w 将会出错,但继续使用 ROBOCOPY。如果字母 w 未被使用,则会将驱动器映射到它并在 ROBOCOPY 中使用它。如果您不需要映射驱动器,只需在脚本中 ROBOCOPY 之后输入 net use w: /delete。

所以它看起来应该是这样的:

NET USE W: \\server\drive_letter$ /USER: <USERNAME> <PASSWORD>
ROBOCOPY "W:\Folder1\Folder2\Folder3\Folder4 " "C:\Folder1\Folder2\Folder3\Folder4 " file.txt /np /LOG+:"C:\RCLog\schtask.log" 
NET USE W: /delete 

答案3

对于 Winrobo 复制,请使用远程服务器的 UNC 路径。

网址 =http://www.upway2late.com/projects/winrobocopy

相关内容