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