RoboCopy“访问被拒绝”不会返回失败

时间:2018-10-09 18:40:16

标签: powershell robocopy

我有一个powershell脚本,可以使用robocopy将文件从一台计算机复制到另一台UNC。最近,它使用新的用户帐户运行,并在目标上拒绝了访问。 重试限制设置为10,因此在该点失败了。 问题在于命令的返回结果不显示存在故障,并且退出代码为0,因此未捕获到故障。 完整日志如下。您可以在顶部看到使用的选项:(仅更改服务器名称) ( 最后一行来自PS命令

写入主机“ Robocopy.exe已完成,代码为$ lastexitcode”)

[18:54:04][Step 1/1]   Started : Monday, October 8, 2018 6:54:04 PM
[18:54:04][Step 1/1]    Source : C:\Source
[18:54:04][Step 1/1]      Dest : \\Server\Target
[18:54:04][Step 1/1] 
[18:54:04][Step 1/1]     Files : *.*
[18:54:04][Step 1/1]        
[18:54:04][Step 1/1]   Options : *.* /S /E /DCOPY:DA /COPY:DAT /PURGE /NP /R:2 /W:30 
[18:54:04][Step 1/1] 
[18:54:04][Step 1/1] ------------------------------------------------------------------------------
[18:54:04][Step 1/1] 
[18:54:06][Step 1/1]                     438    C:\Source
[18:54:06][Step 1/1] 2018/10/08 18:54:06 ERROR 5 (0x00000005) Accessing Destination Directory \\Server\Target
[18:54:06][Step 1/1] Access is denied.
[18:54:06][Step 1/1] 
[18:54:38][Step 1/1] Waiting 30 seconds... Retrying...
[18:54:38][Step 1/1] 2018/10/08 18:54:38 ERROR 5 (0x00000005) Accessing Destination Directory \\Server\Target
[18:54:38][Step 1/1] Access is denied.
[18:54:38][Step 1/1] 
[18:55:10][Step 1/1] Waiting 30 seconds... Retrying...
[18:55:10][Step 1/1] 2018/10/08 18:55:10 ERROR 5 (0x00000005) Accessing Destination Directory \\Server\Target
[18:55:10][Step 1/1] Access is denied.
[18:55:10][Step 1/1] 
[18:55:10][Step 1/1] 
[18:55:10][Step 1/1] ERROR: RETRY LIMIT EXCEEDED.
[18:55:10][Step 1/1] 
[18:55:10][Step 1/1] 
[18:55:10][Step 1/1] ------------------------------------------------------------------------------
[18:55:10][Step 1/1] 
[18:55:10][Step 1/1]                Total    Copied   Skipped  Mismatch    FAILED    Extras
[18:55:10][Step 1/1]     Dirs :         1         0         1         0         0         0
[18:55:10][Step 1/1]    Files :         0         0         0         0         0         0
[18:55:10][Step 1/1]    Bytes :         0         0         0         0         0         0
[18:55:10][Step 1/1]    Times :   0:01:06   0:00:00                       0:01:00   0:00:06
[18:55:10][Step 1/1]    Ended : Monday, October 8, 2018 6:55:10 PM
[18:55:10][Step 1/1] 
[18:55:10][Step 1/1] Robocopy.exe completed with code 0

即使在这一点上,我唯一的直觉是特定错误“访问目标目录”有些奇怪。当我尝试仅删除文件权限的测试时,就会收到错误消息

14:08:15 ERROR 5 (0x00000005) Copying File

并且robocopy正确返回退出代码8,且FAILED计数= 1。

TIA

JS

1 个答案:

答案 0 :(得分:0)

robocopy是cmd可执行文件,如果您要查找的是,不会将$ false返回到powershell。一个很好的例子是ping命令始终返回退出代码0。您将需要使用powershell命令。复制项目是一个好的开始。

如果必须使用robocopy,则可以将其放入变量中,并在字符串中检查响应是否包含“访问被拒绝”等。 不知道您的代码是什么,或者您要复制什么...但是一个主意...

$temp = robocopy *.* /s... etc...
if ($temp -match "Access is denied"){"Robocopy failed due to a denial of access"}