在powershell中使用映射驱动器不起作用

时间:2014-02-11 19:55:20

标签: windows-server-2008-r2 powershell-v3.0

我们有2008 R2,我正在编写PowerShell脚本来将文件复制到网络共享。不幸的是,似乎映射驱动器存在PowerShell问题。看起来有人找到了一个解决方法poss fix,但我不理解它,或者我拥有的东西与这个例子不同。有人有运气吗?我们的网络驱动器映射到“我的电脑”中,如下所示:

20xServerBackup (\\usa0xxxx.na.xxx.net)(Z:)

我在我的脚本中尝试过一些东西,但这就是它现在的样子:

runas /user:administrator net use Y: "\\usa0xxxx.na.xxx.net"

$ToLocation = "Y:\VMs\name"

$FromLocation = "C:\backup\iceCreamCake.txt"

Copy-Item "$FromLocation" "$ToLocation"

我在复制行上遇到的错误是

  

Copy-Item:找不到驱动器。名为“Y”的驱动器不会   存在。

我不知道在哪里可以找到我的powerShell版本,如果这有所不同。但是,我很确定我上周升级到3.0版以使用hyperV get-vm / start / stop vm功能。

听起来微软网站将此列为活动错误/问题,但听起来有人在此(stackoverflow)网站上有一个解决方法,链接上面,但我不确定为什么它不适合我。昨天我第一次映射驱动器时,我的脚本正在运行并将文件复制到网络共享。今天它不是,即使重启后也是如此。我尝试使用新名称重新映射驱动器,但它没有任何不同。我尝试在我的代码中使用Z驱动器而不是我在上面的脚本中创建的Y驱动器,并且它没有任何不同的工作方式。它仍然有相同的错误消息。

我也试过

New-PSDrive -Name YY -PSProvider FileSystem -root "\\usa0xxxx.na.xxx.net"

在powerShell命令行中。我不确定我是否在该命令中完成了一切。它说这个错误

  

New-PSDrive:驱动器根目录“\ usa0xxxx.na.xxx.net”不存在或者它   不是文件夹。

1 个答案:

答案 0 :(得分:6)

问题是您需要在映射驱动器时指定文件夹。在您的代码示例(net use示例和New-PSDrive示例)中,您只需指定共享所在的计算机,而不是共享名称。我猜共享文件夹名称是“20xServerBackup”,这意味着为了将psdrive映射到它,你应该这样做:

New-PSDrive -Name YY -PSProvider FileSystem -root "\\usa0xxxx.na.xxx.net\20xServerBackup"

net use同样如此。

但是,我确实同意@Bobort上面的评论,我可能会使用UNC路径而不是映射驱动器。只是做:

Copy-Item "C:\backup\iceCreamCake.txt" "\\usa0xxxx.na.xxx.net\20xServerBackup\VMs\name"