3

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

4

2 回答 2

3

虽然 James C. 发布的 HKCU 路径解决方案可能是一个更好的解决方案,但您可以得到net useinto objects 的输出。看...

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

希望有帮助,

于 2018-10-11T11:44:17.997 回答
2

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

Get-ChildItem hkcu:\network

要访问您需要使用的这些 reg 条目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$
于 2018-10-11T12:17:18.990 回答