使用'move'命令将目录从一个UNC共享复制到另一个目录失败,并出现拒绝访问错误,但在Windows资源pipe理器中工作

我有一个盒子运行一个SFTP服务器,用户上传的目录中充满了文件。 上传目录在UNC共享\\ServerA\Documents\Uploads

我试图编写一个脚本,将其移动和子文件夹中find在这个共享到另一台服务器上的共享。 我们可以调用这个共享\\ServerB\Processing\

如果打开命令提示符并发出命令,我可以使用Windows资源pipe理器成功地将目录从\\ServerA\Documents\Uploads\\ServerB\Processing\ howwever

 move \\ServerA\Documents\Uploads\targetfolder \\ServerB\Processing\targetfolder 

我收到拒绝访问错误。 为什么我的权限在Windows资源pipe理器和命令行之间有所不同? 我怎么能解决这个问题?

有趣的问题。 我要做的下一步是看看数据的复制和xcopy是否也返回一个错误。 一个简短的小动作脚本可能在这里很有用:

  xcopy \\ ServerA \ Documents \ Uploads \ TargetFolder \\ ServerB \ Processing \ DestFolder / s / e / h
 rmdir \\ ServerA \ Documents \ Uploads \ TargetFolder / s / q 

结果可能是诊断性的。 如果这样做,但移动不成功,问题可能存在于“移动”如何从根本上处理复制删除过程。

在这种情况下,我认为你确实有一些权限问题。 尝试在更高特权用户下运行“cmd”,看看命令是否立即执行。 此外,如果您将命令安排为任务,则必须在可以访问源服务器和目标服务器的某个域用户下运行它,否则将在本地系统帐户下处理,该系统帐户没有任何networking权限。

我认为你也有权限问题。 首先,我将上传文件夹的内容移动到系统上的本地文件夹,看看是否有效。 如果没有,那么你已经find了你的问题的来源。 然后,我会尝试将您的本地文件夹的内容移动到您的目标文件夹。 哪一个系统失败将是你的问题。

确保从工作脚本中将UNC剪切并粘贴到最终脚本(错字是令人讨厌的debugging问题)

在这里使用robocopy.exe

例:

 robocopy \\server1\c$\sourcedir \\server2\backup\server1 /MIR