Hey checkyourlogs.net fans!
I’m a prolific Surface guy, having used them daily from the release of the original, much maligned Surface RT to my current daily driver, the Surface Book 2. I love these devices, but occasionally, particularly after firmware updates, they like to torment me with odd issues. Today’s gremlin was my SB2 not detecting my external monitor, the very same external monitor I’ve used with this SB2 and it’s Surface Dock since day one.
After trying all the usual easy remedies, i.e. disconnect/reconnect the dock, power cycle everything, update the SB2 and the dock, etc… I concluded more drastic measures were necessary. Time to hack the registry!
In this case, the registry hack really isn’t a hack. It’s deleting two, possibly three, registry keys to reset the display cache on the SB2 forcing it to redetect displays after a reboot. This “hack” is so well known, Microsoft has a downloadable registry file available to automate removal of two of the keys: http://download.microsoft.com/download/8/5/5/8554763F-DBF9-41B3-9F12-605FA0A99183/surface%20dock%20registry.zip.
The keys removed using the downloaded file are:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Connectivity
For those amongst us who are extra thorough, also remove this key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\ScaleFactors
Of course, I prefer to do anything and everything leveraging the power of PowerShell. Since HKLM is exposed by default by the PowerShell Registry provider, this is easy-peezy with a few one-liners. Open an Administrative PowerShell prompt, then enter the following:
Remove-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration" -Recurse Remove-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Connectivity" -Recurse Remove-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\ScaleFactors" -Recurse
Don’t worry if you get an error on the last one. The ScaleFactors key isn’t always present.
Before removing the keys above, using whichever method you choose, disconnect the dock from your Surface. With the dock disconnected, remove the keys then shutdown the Surface. Power the Surface back on and once booted, reconnect the dock. The Surface redetects the external display causing tired eyes like mine to rejoice!
I find joy knowing the registry editing skills I learned years ago still solve problems today, decades after I first learned them!
Enjoy your IT Journey, fellow IT Pros!
John Sr.
Just want to say thanks for your solution! Microsoft seemingly has taken down that link (or at least for some odd reason it doesn’t work anymore), so I’m grateful that you’ve included instructions and commands on how to do it manually. (Going to keep that powershell script on the side in case I ever need it again. )