Reading mounted device information from the registry
Interesting question about reading the registry. How do you read HKLM:\SYSTEM\MountedDevices and pull out the name of the device and the associated data.
Get-Item -Path HKLM:\SYSTEM\MountedDevices
returns data of this form
Name Property
---- --------
MountedDevices \DosDevices\C: : {218, 187, 32, 142...}
\DosDevices\G: : {92, 0, 63, 0...}
\DosDevices\E: : {95, 0, 63, 0...}
\DosDevices\F: : {92, 0, 63, 0...}
\DosDevices\D: : {218, 187, 32, 142...}
\DosDevices\I: : {95, 0, 63, 0...}
We need to drill into the property but if we expand the property we will only get the name of the device. So we need to loop through those names
$data = @()
Get-Item -Path HKLM:\SYSTEM\MountedDevices |
select -ExpandProperty Property |
where {$_ -like "\Dos*"} |
foreach {
$name = $_
$data += New-Object -TypeName psobject -Property @{
Device = $name
Value = (Get-ItemProperty -Path HKLM:\SYSTEM\MountedDevices -Name $name)."$name"
}
}
$data
To simplify the output is limited to Dos devices
Get-itemproperty returns the data with the name of the device as the property name so we need to drill in to get the value