引用超过一个字符{PS-Drive}的PS-Drive名称

时间:2018-02-16 05:00:31

标签: powershell

我尝试引用PS驱动器,为了我的脚本,它将超过一个字符。 如果我使用单个字符创建驱动器很容易:

New-PSDrive -Name E -PSProvider FileSystem -Root \\ComputerName\FolderPath

  

PS C:\ Windows \ system32> E:

     

PS e:>

但是,如果我使用较长的文件名创建它,而不是那么多。有没有办法在我的脚本中引用此驱动器而不是冒号?

New-PSDrive -Name LongName -PSProvider FileSystem -Root \\ComputerName\FolderPath

  

PS C:\ Windows \ system32> LONGNAME:

     

LongName ::术语' LongName:'不被识别为cmdlet,函数,脚本的名称......

摘自剧本:

$ServerNames = "Server1", "Server2"
$ServerNames | Foreach {New-PSDrive -Name $_ -PSProvider FileSystem -Root \\$_\$DestFolder -Credential $mycreds}
$ServerNames | Foreach {Export-DhcpServer -File "$_`:$DestFile" -Force}

我之所以这样创造它,是因为我无法使用' -credential'切换到导出dhcp服务器数据文件。

2 个答案:

答案 0 :(得分:0)

这在本地驱动器上是成功的。

New-PSDrive -Name LnameToTempFolder -PSProvider FileSystem d:\temp
Get-PSDrive | Format-Table -AutoSize

...              
LnameToTempFolder      0.00    232.30 FileSystem  D:\temp                           
Variable                              Variable                                      
...   



New-PSDrive -Name LnameToTargetFolder -PSProvider FileSystem -Root d:\target
Get-PSDrive | Format-Table -AutoSize

Name                Used (GB) Free (GB) Provider    Root               CurrentLocation
----                --------- --------- --------    ----               ---------------
...              
LnameToTargetFolder      0.00    232.30 FileSystem  D:\target                         
LnameToTempFolder        0.00    232.30 FileSystem  D:\temp                           
...

在使用默认C $共享的远程服务器上成功

New-PSDrive -Name LnameToTempRemoteFolder -PSProvider FileSystem '\\ws01\C$\Temp'
Get-PSDrive | Format-Table -AutoSize

...              
LnameToTempRemoteFolder                     FileSystem  \\ws01\C$\Temp                
...


cd LnameToTargetFolder:


Get-ChildItem


Directory: D:\target


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----      Sun 07 Jan 02018                     20171126

这是在Win 10和WS2K12R2

如果您使用的是早期版本的操作系统,可能会发生问题。我没有在上面的任何内容进行验证。

或者这是你身边的环境问题。

答案 1 :(得分:0)

FWIW,您的示例代码对我来说效果很好

 New-PSDrive -Name LongName -PSProvider FileSystem -Root C:\

而不是LongName:您应该使用类似CD LongName:的内容,因为内置函数用于单字母驱动器名称,而不是其他内容。

我的猜测是你的示例代码,你的脚本有不同的问题。 你从脚本的snippit中得到的错误是什么?