如何在 Powershell 中获取断开连接的网络驱动器?

How do I get disconnected networkdrives in Powershell?

我需要获取所有映射的网络驱动器,甚至是当前断开连接的网络驱动器。我用 Get-PSDrive 试过了,但它只显示了当前连接的那些。 可以使用 net use 获取所有映射的网络驱动器,但我不能重复使用输出(我需要保存字母和路径)。

虽然 James C. 发布的 HKCU 路径解决方案可能是更好的解决方案,但您可以将 net use 的输出获取到对象中。看...

net use |
    Select-Object -SkipLast 2 |
    Select-Object -Skip 6 |
    ForEach-Object {$_ -replace '\s{2,}', ', '} |
    ConvertFrom-Csv -Header Status, DriveLetter, UNC_Path, Network |
    Select-Object -Property DriveLetter, UNC_Path

希望对您有所帮助,

您可以使用以下方法从用户注册表中获取网络驱动器的状态:

Get-ChildItem hkcu:\network

要访问这些注册条目,您需要使用 Get-ItemProperty,您可以构建一个 PSObject 来保存属性以使其更好:

Get-ChildItem hkcu:\network | %{            
    $obj = New-Object PSObject
    $obj | Add-Member Noteproperty Drive $_.name.Replace('HKEY_CURRENT_USER\network\','')
    $obj | Add-Member NoteProperty Path (Get-ItemProperty (Join-Path hkcu:\network $_.name.split('\')[-1]) | Select-Object -ExpandProperty RemotePath)
    [array]$mapped += $obj
}

示例属性:

PS> $mapped

Drive Path          
----- ----          
Y     \server1\share
Z     \server2\hidden$