在我在Windows资源管理器中打开共享之前,无法从powershell中的网络共享复制文件

时间:2013-02-15 10:31:41

标签: powershell

我有一个非常简单的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脚本它也会开始工作,直到我下次重新启动电脑时才会工作。

如何在脚本中解决这个问题?

2 个答案:

答案 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"