如果通过计划任务调用BAT文件,则无法将文件复制到UNC目标

时间:2012-04-16 14:19:20

标签: windows networking copy windows-server-2008

我有一个bat文件,将文件从当前机器复制到映射网络驱动器(一行,xcopy命令)。

当我RDP到服务器时它工作。但是,当我作为计划任务运行,并将其配置为在我登录的同一用户下运行时,它不起作用并给出错误0x4。

有没有办法实现这个目标?

我也尝试使用dsynchronize,当我点击synchronized时它会起作用。当我把它作为服务运行同样的问题。

5 个答案:

答案 0 :(得分:17)

我能够弄清楚。以下批处理文件在调度程序下工作,即使是本地系统帐户:

net use m: \\server\share /U:server\user password
xcopy C:\source m: /E /Y

每次映射网络驱动器,然后复制到该驱动器

答案 1 :(得分:7)

可以将文件复制到UNC路径而无需映射为网络驱动器。 只需尝试将UNC路径设置为引号。

copy * "\\server\share"

没有引号,我在Windows7命令行上运行了“语法错误”。

答案 2 :(得分:4)

我有类似的问题,我想将文件从服务器复制到数百个其他服务器而不将远程驱动器映射到我的本地PC。我没有足够的驱动器号来将数百台远程机器映射到我的本地PC!我不能只映射远程驱动器并复制。

我以为我可以使用copy,xcopy或robocopy,并指定我对复制命令的信任。但是没有一个复制命令有任何选项可以为远程系统提供凭据。

感谢上面的帖子,我能够创建一个小型批处理文件,我只是遍历我的主机,并继续为我的所有主机重新使用一个驱动器映射。

这是我的批处理文件......

echo @off
for /F %%j in (pchostslist1.txt) do (
  net use z:\\%%j\c$ /user:domain\myusername mypassword
  mkdir \\%%j\c$\tmp\mynewdir
  xcopy c:\anyfile.txt \\%%j\c$\tmp\mynewdir
  net use z: /delete
)

答案 3 :(得分:3)

我有类似的问题而不是使用网络使用我只需要将密码存储为计划任务的一部分。您会注意到它表示只有勾选后才能访问本地资源。

Store password

答案 4 :(得分:1)

谁映射网络驱动器?您使用映射的名称,而不是基础UNC本机路径?因为它听起来像是在您的登录脚本中设置了映射驱动器,如果您没有登录则不会运行。因此,在计划任务中,您确实拥有UNC路径的正确凭据,但没有映射的驱动器号