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

Mic*_*ele 1 windows-server-2008-r2 powershell-3.0

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

20xServerBackup (\\usa0xxxx.na.xxx.net)(Z:)
Run Code Online (Sandbox Code Playgroud)

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

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

$ToLocation = "Y:\VMs\name"

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

Copy-Item "$FromLocation" "$ToLocation"
Run Code Online (Sandbox Code Playgroud)

我在拷贝线上得到的错误是

复制项目:找不到驱动器.名称为"Y"的驱动器不存在.

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

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

我也试过了

New-PSDrive -Name YY -PSProvider FileSystem -root "\\usa0xxxx.na.xxx.net"
Run Code Online (Sandbox Code Playgroud)

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

New-PSDrive:驱动器根"\ usa0xxxx.na.xxx.net"不存在或它不是文件夹.

Rob*_*und 6

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

New-PSDrive -Name YY -PSProvider FileSystem -root "\\usa0xxxx.na.xxx.net\20xServerBackup"
Run Code Online (Sandbox Code Playgroud)

同样的道理net use.

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

Copy-Item "C:\backup\iceCreamCake.txt" "\\usa0xxxx.na.xxx.net\20xServerBackup\VMs\name"
Run Code Online (Sandbox Code Playgroud)