Taming HidGuardian (Gen1)
Is your Xbox/DualShock/Switch Pro/insert gaming peripheral here controller device not detectable by games, Steam or even the entire Windows system (joy.cpl
)? Then you might have installed software which in turn placed a driver called HidGuardian on your machine and left its configuration in a state which accidentally permanently hid this device from other processes. Worry not though, with a bit of command line magic outlined below you'll be back in the game in no time!
First, fire up PowerShell as Administrator, then proceed with the outlined steps below. Copy and paste the commands as one line unaltered, hit enter afterwards and observe the returned information.
Now, first of all let's see if HidGuardian is even present (because if not, well, hardly can be the culprit then):
PowerShell
Get-PnpDevice -FriendlyName "HidGuardian Virtual Device" -ErrorAction SilentlyContinue
This may result in no, one or more new lines like so:
If there is at least one result like shown above chances are high we're on the right track. Next, execute:
PowerShell
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Class\{745a17a0-74d3-11d0-b6fe-00a0c90f57da}' -Name 'UpperFilters' -ErrorAction SilentlyContinue
If UpperFilters
exists and contains the string HidGuardian
, the track has gotten red hot and we're onto something! Keep on reading!
Next we check a particular registry value:
PowerShell
Get-ChildItem 'HKLM:\SYSTEM\CurrentControlSet\Services\HidGuardian\Parameters\AffectedDevices' -ErrorAction SilentlyContinue
Chances are you might see a similar output. Now we're certain that HidGuardian is at fault hiding the controller. Oh No!
Let's mitigate the situation by safely removing this value:
PowerShell
Remove-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\HidGuardian\Parameters' -Name 'AffectedDevices'
This command should produce no output upon execution. And you're done! Either reopen the game/tool which didn't work before, unplug and plug back in the controller in question or - to be extra thorough - reboot the computer and try again!