我有一个非常简单的PowerShell脚本,用于从联网服务器复制文件。
这是脚本
Write-Output "Copying Backups"
copy \\sqlbox\SqlBackups\Client.bak c:\sqlbackups
抛出此异常
Invalid Path: '\\sqlbox\SqlBackups\Client.bak'.
At C:\Work\db\restore.ps1:5 char:1
+ copy \\sqlbox\SqlBackups\Client.bak c:\sqlbackups
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], ArgumentException
+ FullyQualifiedErrorId : CopyItemDynamicParametersProviderException
如果我打开一个Windows资源管理器并转到\ sqlbox \ SqlBackups它打开正常,如果我然后运行powershel脚本它也会开始工作,直到我下次重新启动电脑时才会工作。
如何在脚本中解决这个问题?
答案 0 :(得分:6)
首先尝试映射驱动器,然后执行复制操作。
New-PSDrive -Name S -Root \\sqlbox\SqlBackups\ -PSProvider FileSystem
Write-Output "Copying Backups"
copy S:\Client.bak c:\sqlbackups
答案 1 :(得分:6)
使用此错误在服务器上复制文件时遇到类似问题:
无法找到路径' \\ computer1 \ d $ \ path'因为它不存在。
在文件名前添加 Microsoft.PowerShell.Core\FileSystem::
后可以正常工作:
copy-item "Microsoft.PowerShell.Core\FileSystem::\\computer1\d$\path\installer.msi" "Microsoft.PowerShell.Core\FileSystem::\\computer2\d$\path\installer.msi"