If you're getting an internal error while trying to run the Get-VMHostFirmware command with vSphere PowerCli, chances are the problem comes from a corrupt scratch directory on the hypervisor.
The Get-VMHostFirmware command is one of my favorites if I'm doing any maintenance on the hosts. It saved me hours of configuration multiple times... Very handy! But recently, I needed to run the command on one of my hosts and I was getting an internal error! Nothing more... Even after a reboot and trying all the other methods of configuration backup mentioned here, still no luck!
After hours of research, finally I came across with a blog that mentioned the scratch folder on the host. In the post, the user was suggesting to backup the scratch to another location and recreate it. I took a different approach and just changed the scratch config location from the "Advanced Settings" of the host.
in vSphere Client, select the host and go to "Configuration" tab, than go to "Advanced Settings" and locate the "ScratchConfig" section and enter the new vmfs volume in the ScratchConfig.ConfiguredScratchLocation setting.
You need to reboot the host for this setting to take effect. You should be able to use the Get-VMHostFirmware command now.