当前位置: 首页 > 知识库问答 >
问题:

带PowerShell的Robocopy:错误3(0x00000003)系统找不到指定的路径

戚建德
2023-03-14

我有一个用于备份的PowerShell脚本,我在Windows 2003 Server上使用了很长时间,现在我在Windows Server 2012上遇到了问题

2019年9月18日08:40:25错误3(0x00000003)创建目标目录Z:\BACKUP\D\n系统找不到指定的路径。

我以管理员身份或作为具有最高权限的计划任务在PowerShell ISE中运行PowerShell脚本。该脚本正在具有源驱动器的域(DOMAIN1)上的服务器上执行,而目标位于另一个域(DOMAIN2)上的另一台服务器上。域之间没有信任。

当我使用net use命令时,它可以很好地与PowerShell ISE配合使用,但不是通过计划任务。当我使用新的PSDrive时,它在任何地方都不起作用。我插入GCI语句以确保驱动器已连接,并列出目标目录的内容。

我简化了调试代码:

$strNetDrvPath   = '\\server.domain2.local\BkpDrv'
$strNetDrvUser   = 'DOMAIN2\BkpUser'
$strNetDrvPwd    = 'ABCD1234'

#net use Z: $strNetDrvPath /user:$strNetDrvUser $strNetDrvPwd
$objCredential = New-Object System.Management.Automation.PsCredential -ArgumentList $strNetDrvUser, ($strNetDrvPwd|ConvertTo-SecureString -AsPlainText -Force)
New-PSDrive –Name Z –PSProvider FileSystem –Root $strNetDrvPath -Credential $objCredential

gci Z: -Name

$strCmd = "robocopy D:\. Z:\BACKUP\D /B /MIR /NP /R:0 /LOG:D:\RC_Log.txt"
Invoke-Expression $strCmd
#cmd /c $strCmd

#net use Z: /delete /y
Remove-PSDrive Z

我用net use命令留下了一条评论,以显示我的尝试。有什么问题吗?有没有其他可行的方法?

共有1个答案

经骁
2023-03-14

如果要使用新的PSDrive映射Windows网络驱动器,需要添加参数Persist。从文档中:

<代码>-持久化

指示此cmdlet创建Windows映射的网络驱动器。映射的网络驱动器保存在本地计算机上的Windows中。它们是持久的,不是特定于会话的,可以在文件资源管理器和其他工具中查看和管理。

New-PSDrive –Name Z –PSProvider FileSystem –Root $strNetDrvPath -Persist -Credential $objCredential

由于您提供了显式凭据,因此使用应该可以从计划任务中正常工作。如果没有,则有其他问题(关于调试计划任务,请参阅此处)。

另外,不要使用调用表达式<代码>robocopy可以直接从PowerShell运行。

$params = '/B', '/MIR', '/NP', '/R:0', '/LOG:D:\RC_Log.txt'
& robocopy D:\. Z:\BACKUP\D @params
 类似资料:
  • 按照http://maven.apache.org/download.cgi上的所有说明操作 Java版本:1.7.0_03,供应商:Oracle Corporation Java Home:C:\程序文件\Java\jdk1.7.0_03\jre 默认区域设置:en_US,平台编码:Cp1252 操作系统名称:“Windows 7”,版本:“6.1”,arch:“AMD64”,系列:“Windo

  • 我得到以下Tomcat错误: 发布到Tomcat v8.5 Server atlocalhost...遇到问题。发布失败并出现多个错误。 细节: 发布失败,出现多个错误 找不到文件:C:\Users…\HerramentationLogica\target\m2e wtp\web资源\META-INF\MANIFEST.MF。 未找到文件:C:\Users…\HerramentationLogic

  • 我已经编写了一个基本的jsp代码,用于存储和检索数据库中的数据。在此之前,我正在检查用户验证。 当我点击提交按钮时,它将重定向到我的jsp页面。 我已经写了一个数据库。属性文件分开。 当我给出了读取属性文件的完整路径时。,程序执行正常。(这不是像下面这样硬代码的最佳方式)。 FileInputStream in=new FileInputStream("C:\Program Files\Apach

  • 我正在尝试将文件夹从网络路径复制到我的计算机。但在复制文件夹时,robocopy突然陷入从文件夹复制1个文件的困境,没有继续前进。我看到错误错误3(0x00000003),“系统找不到指定的路径。”,即使文件确实存在于源目录中。我使用的命令是ROBOCOPY source-destination/MIR/Z/Log:logs。txt当任务调度器触发我的可执行文件时,我看到了这个问题。直接运行exe

  • 本文向大家介绍navicatdesignquery.sql.bak系统找不到指定路径错误的解决方法,包括了navicatdesignquery.sql.bak系统找不到指定路径错误的解决方法的使用技巧和注意事项,需要的朋友参考一下 今天使用Navicat ,其他功能都正常,但是新建查询的时候,出现一个很奇葩的问题 C:\Program Files (x86)\PremiumSoft\Navicat

  • 1)当我打开新的CMD(Win R= 2) 当我执行一些命令时,如cmd/C dir(或cmd/C php-v)或其他命令(第2行) 3)(最讨厌的)当我运行函数从PHP或Node.js或可能任何脚本语言。( 1) 当我直接从cmd(或mingw,…)执行命令时 让我们从cmd的简单命令开始。 php-r“exec('dir',$stdout,$stderr);print(内爆(\”\n\“,$s