【发布时间】:2018-04-13 10:57:11
【问题描述】:
我正在使用 PowerShell 5.1.14409.1012 并希望使用 New-PsDrive 创建网络驱动器。
为确保我创建的映射网络驱动器未被用户使用,我使用以下代码(取自here):
$used = Get-PSDrive | Select-Object -Expand Name | Where-Object { $_.Length -eq 1 }
$drive = 90..65 | ForEach-Object { [string][char]$_ } |
Where-Object { $used -notcontains $_ } |
Select-Object -First 1
如果我运行Get-PSDrive | Select-Object -Expand Name | Where-Object { $_.Length
-eq 1 },则会显示以下内容:
C
D
E
P
Q
T
U
V
W
X
Y
Z
问题是,当我检查我的电脑时,有几个驱动器号当前断开连接:
如您所见,Get-PSDrive 没有拾取断开的网络驱动器(例如“S”驱动器),这在我尝试连接时产生了以下错误:
捕获断开的网络驱动器最好的方法是什么?
【问题讨论】:
-
试试我的代码,从这个答案中获取未使用的驱动器号:Powershell Function Not Mapping Drive When Called,我认为它应该处理断开连接的驱动器。
-
这会返回什么:[System.IO.DriveInfo]::GetDrives() |格式表