我尝试引用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服务器数据文件。
答案 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中得到的错误是什么?