我需要获取所有映射的网络驱动器,即使是当前断开连接的驱动器。我试过了,Get-PSDrive
但只显示了当前连接的那些。可以使用所有映射的网络驱动器,net use
但我不能重用输出(我需要保存字母和路径)。
问问题
584 次
2 回答
3
虽然 James C. 发布的 HKCU 路径解决方案可能是一个更好的解决方案,但您可以得到net use
into 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 回答