If you’ve used VMM in the last decade, there is no doubt that you’ve run across this gem of an error:
Error (2912) An internal error has occurred trying to contact the 'HOST.fqdn.foobar.com' server: NO_PARAM: NO_PARAM. WinRM: URL: [http://HOST.fqdn.foobar.com:5985], Verb: [INVOKE], Method: [GetError], Resource: [http://schemas.microsoft.com/wbem/wsman/1/wmi/root/microsoft/bits/BitsClientJob?JobId={F1EA5FF2-3A95-4175-9C04-2E4290F9024C}] Internal server error (500) (0x801901F4)
This error may appear when you do any sort of Hyper-V host management (adding servers to VMM for management or deploying VM templates). For me, it randomly started to appear one day out of the blue!
When you see this error, the first thing you normally do is re-register the VMM agents with this easy one-liner. It’ll confirm that the Agents and Certificates are all copasetic with VMM:
Get-SCVMMManagedComputer -ComputerName "HOSTNAME" | Register-SCVMMManagedComputer -Credential (Get-Credential)
If that doesn’t solve your problem, it’s time to ask yourself this really stupid question:
“Did I recently install Windows Admin Center or another web server on the same host as my VMM server?”
Sometimes when you’re testing stuff out in lab or you have limited RAM/storage resources where you cannot host dozens of VMs, you do silly things like this.
I did this.
In an attempt to save time and be cute, I tossed WAC on the same machine as my VMM server. And like a moron, I did it on a Friday and forgot about it until Monday. Surprise surprise, I started getting Error 2912!
As you’ve probably guessed by now, the fix is easy:
- Uninstall Windows Admin Center from the VMM host
- Restart the SCVMM Server service
- Slam your head into a wall to alleviate the pain of embarrassment
If you did anything dramatic like remove the cluster from VMM, go ahead and add it back now and make sure to re-associate the hosts to VMM.
Why Did This Happen?
For right or for wrong, VMM uses BITS to do most of its HTTP(S) communications. This includes interacting with WinRM. By default, the default BITS port that VMM uses (443) is defined in the registry under:
Path: HKLM:\SOFTWARE\Microsoft\Microsoft System Center Virtual Machine Manager Server\Settings Item: BITSTcpPort
If you absolutely need to host a webserver or something else on port 443, you can edit this registry value, amend any Windows Firewall rules, and restart the VMM service to avoid the conflict. Alternatively, you could always tell WAC to use a different port for HTTPS.
Personally, I don’t recommend doing this and suggest keeping infrastructure roles separate.