我有一台运行 SFTP 服务器的机器,用户正在向该服务器上传装满文件的目录。上传目录可通过 UNC 共享访问\\ServerA\Documents\Uploads
。
我正在尝试编写一个脚本移动并将在此共享中找到的子文件夹转移到另一台服务器上的共享。我们可以将该共享称为\\ServerB\Processing\
。
我可以使用 Windows 资源管理器成功地将目录从移动\\ServerA\Documents\Uploads
到\\ServerB\Processing\
但是,如果我打开命令提示符并发出命令
move \\ServerA\Documents\Uploads\targetfolder \\ServerB\Processing\targetfolder
我收到拒绝访问错误。为什么 Windows 资源管理器和命令行之间的权限不同?我该如何解决此问题?
答案1
有趣的问题。我下一步要做的是查看数据的 copy 和 xcopy 是否也会返回错误。一个简短的类似 move 的小脚本可能会在这里有用:
xcopy \\ServerA\Documents\Uploads\TargetFolder \\ServerB\Processing\DestFolder /s/e/h rmdir \\ServerA\Documents\Uploads\TargetFolder /s /q
其结果可能具有诊断意义。如果此方法有效但移动方法无效,则问题可能在于“移动”如何从根本上处理复制-删除过程。
答案2
我认为在这种情况下您确实存在一些权限问题。尝试在更高权限的用户下运行“cmd”,看看命令现在是否能执行。此外,如果您将命令安排为任务,则必须在某个域用户下运行它,该用户有权访问源服务器和目标服务器,否则它将在没有任何网络权限的本地系统帐户下处理。
答案3
我认为您也存在权限问题。首先,我会将上传文件夹的内容移动到系统上的本地文件夹,看看是否可行。如果不行,那么您就找到了问题的根源。然后,我会尝试将本地文件夹的内容移动到目标文件夹。无论哪个系统出现故障,都是您的问题。
确保将 UNC 从工作脚本剪切并粘贴到最终脚本中(拼写错误是令人讨厌的调试问题)