如何在 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$
我需要获取所有映射的网络驱动器,甚至是当前断开连接的网络驱动器。我用 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$