Kae Travis

Powershell Get Itempropertyvalue Error is not Suppressed

This is a quick blog post to highlight why the PowerShell Get-ItemPropertyValue error is not suppressed.

First, an explainer. Consider we want to read a registry value under HKLM:\Software\Alkane called Test. We can simply read it like so:

$value = Get-ItemPropertyValue -Path 'HKLM:\Software\Alkane' -Name Test -ErrorAction SilentlyContinue 
write-host $value

But wait! If the name ‘Test’ does not exist, you would expect the error action to silently handle the error and just return nothing?? But it doesn’t. Get-ItemPropertyValue ignores ErrorAction and spits out an ugly error message:

Get-ItemPropertyValue : Property Test does not exist at path HKEY_LOCAL_MACHINE\Software\Alkane

Apparently it’s because this is deemed as a “terminating error” and terminating errors are not suppressed by ErrorAction. So, a solution?? Write it like this instead:

$value = Get-ItemProperty -Path 'HKLM:\Software\Alkane' | Select -ExpandProperty Test -ErrorAction SilentlyContinue 

write-host $value

There you go – short and sweet!

Powershell Get Itempropertyvalue Error is not Suppressed
Powershell Get Itempropertyvalue Error is not Suppressed

Leave a Reply