如何使用robocopy复制不同域上的目录

47

我想将domain1/user1中的一个名为abc的目录复制到domain2/user1。 有什么办法可以实现吗?例如使用robocopy。

robocopy \\server1\G$\testdir\%3 \\server2\g$\uploads

而且两者位于不同的域名上


7
这个问题可能在技术上不属于主题范围,但它帮助了我解决了问题。我建议将这个问题放到ServerFault(服务器故障处理网站),但无论是系统管理员、开发人员还是高级用户都能从中受益。并且,并不是每个需要这个答案的人都是ServerFault的目标受众。 - Thomas
1个回答

82

Robocopy将使用标准的Windows身份验证机制。

因此,在发出robocopy命令之前,您可能需要使用适当的凭据连接到服务器。

您可以使用net use进行操作,并将其放入批处理脚本中。

请注意,Windows不允许您使用两个不同的凭据连接到同一台服务器(因此,您不能将不同用户的内容从同一台服务器复制到另一台服务器)。但这似乎不是您需要的情况。

类似于以下内容:

net use \\server1\g$ /user:domain1\user1 * 
net use \\server2\g$ /user:domain2\user2 *
robocopy \\server1\G$\testdir\%3 \\server2\g$\uploads

注意:

  • 这里使用了“无设备”的连接方式,这些连接不会在启动时重新创建(也不会在Windows资源管理器中显示驱动器字母)。
  • net use命令末尾的星号表示提示输入密码,您可以将密码硬编码到其中(或将其作为脚本的参数获取)。
  • 可能值得学习一下net use以确保它符合您的需求。

您也可以通过以下方式删除与服务器的网络连接(我没有尝试过无设备连接):

net use \\server1\g$ /delete
net use \\server2\g$ /delete

2
太棒了!非常感谢!运行得像魔法一样顺畅。 - sam
4
这正是我需要的,可以让Jenkins将文件复制到远程网络共享。非常感谢! - cmcginty
2
天才的黑客复制方式,谢谢你! - cat916

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接