我们有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”不存在或者它 不是文件夹。
答案 0 :(得分:6)
问题是您需要在映射驱动器时指定文件夹。在您的代码示例(net use
示例和New-PSDrive
示例)中,您只需指定共享所在的计算机,而不是共享名称。我猜共享文件夹名称是“20xServerBackup”,这意味着为了将psdrive映射到它,你应该这样做:
New-PSDrive -Name YY -PSProvider FileSystem -root "\\usa0xxxx.na.xxx.net\20xServerBackup"
net use
同样如此。
Copy-Item "C:\backup\iceCreamCake.txt" "\\usa0xxxx.na.xxx.net\20xServerBackup\VMs\name"