Today was Patch Day for one of my customers. They have a standalone Windows Server 2012 R2 file server.
I reviewed the pending updates and started the download. However the downloads got stuck and would not continue even after a cancel/resume…

WindowsUpdate-stuck

So I decided to head over to the Event Viewer to see what was being reported.
I found a related log post at the very top.

Event 122, DeviceSetupManager
Access to drivers on Windows Update was blocked by policy

Event122

I do not recall ever setting a policy that would mess with this server (its not connected to the domain). As it turns out it has nothing to do with the Windows Update service at all, it’s the Device Setup Manager service.

There is a scheduled task that runs each night in Microsoft | Windows | Device Setup called Metadata Refresh.

When that task runs it causes the Device Setup Manager service to start, and that’s what is causing the messages. If you look in the Event Viewer under Application and Services Logs | Microsoft | Windows | DeviceSetupManager | Admin and filter on EventID 122 then you can see the entries.

The “policy” that is causing the block is actually the Device Installation Settings. This is a rather tricky setting to find.

If you open Devices and Printers in Control Panel, you might see a small pop-down about displaying enhanced device icons. right click that bar and select Open device installation settings.

open-device-installation

When that window opens, you will see the settings that define the “policy”.

device-installation-settings

If you change the setting to Always install the best driver software from Windows Update. then the EventID 122 errors will go away.

If you *also* select the Automatically get the device app and info provided by your manufacturer then the whole setting will change itself to the first “Yes, do this automatically” option (so the first option is the same as selecting both the bottom ones)

So, the only other option seems to be to disable the scheduled task mentioned earlier. That should stop the 122 errors, however I’m not entirely certain what other issues might arise by doing that.