识别未使用的网络映射驱动器

时间:2017-11-01 06:42:42

标签: powershell powershell-v5.0

我使用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

问题是,当我选中“我的电脑”时,目前有几个驱动器号已断开连接:

My Computer Network Drives

正如您所看到的,Get-PSDrive没有选择断开连接的网络驱动器(例如" S"驱动器),当我尝试连接到它时,这会产生以下错误:

New-PSDrive error

捕获断开的网络驱动器最好的是什么?

1 个答案:

答案 0 :(得分:0)

`Net Use'中已存在类似功能:(键入星号(*)而不是特定设备名称以指定下一个可用设备名称。)

获取实际选定的驱动器名称:

$Drive = (net use * \\Server\Share)[0][6]

您可能还会考虑使用Get-WMIObject来查找正在使用的驱动器:

Get-WMIObject -query "Select * From Win32_LogicalDisk Where DriveType = 4" | Select-Object -Expand DeviceID