BFI VM Manager Hyper-V Duplicate UUID

BigFix Inventory (v10.0.7) is showing that a Hyper-V VM Manager is reporting a VM with a duplicate UUID.

I’ve modified the guests UUID and now running “Get-CimInstance -ClassName Win32_ComputerSystemProduct | Select UUID” shows a new (unique) UUID.

I’ve re-ran the Initiate Software Scans, Run Capacity Scan, etc fixlets against this VM and then waiting for a couple of days for VM Manager imports and BFI daily imports to occur. The VM Manager status in BFI says “OK - Duplicate UUIDs”. However, the BFI Import still says this VM guest has a duplicate UUID and references the original UUID.

Has anyone else found working steps to modify the VMs UUID in Hyper-V with BFI showing resoluiton?

It’s been a VERY long time since I dealt with this - it was good few years ago and we were running on 2008/2012 hyper-V hosts at the time, so no idea if what I will post still holds BUT here it is nonetheless:

  • In my experience what you’ve done is not even a permanent change. When I tested it in our syste, changing this is essentially reverted back automatically on reboot of the VM because the data is stored on Hyper-V host side and on each reboot it loads it back automatically. The change essentially needs to happen on Hyper-V host itself with the VM being shutdown and then when powered back on, it would load it back. The worst-thing about it though was that changing the VM configs on WMI side with the host running didn’t seem to work until you reboot the host itself (I guess the VM config is loaded up in memory; I think I tried to restart the vmms service but didn’t work and eventually ended up arranging full reboot of the hosts).

This said, the actual change I borrowed a powershell script written by this guy which is available in the following article: https://www.altaro.com/hyper-v/powershell-script-change-advanced-settings-hyper-v-virtual-machines/#Set-VMAdvancedSettings (I used an older version and had to even tweak it a bit cause it wasn’t working as given). You can reverse-engineer it if you want to check the exact WMI classes in which you need to make the change on the host. The guy does pretty good job to explaining it all in his article too. Good luck with it, it’s painful thing to say the least!

2 Likes

Hi, tried that too. I changed the UUID on the host while the VM was turned off. The script didn’t work but I used the utility written by the same person.

However, after running Get-HyperVMUUID.ps1, it does return the new UUID but the BFI import still references the VM as the old (duplicate) UUID.

Are you also changing the Serial Number (not just UUID)? I have changed both to get it to work. Have you tried after the change to force the capacity scan? It should have picked up the new data automatically cause it should be smart enough to get that the data has changed but you can force it if you haven’t.

If you have been down this road already, next steps is to verify the actual data

  • you can open the latest uploaded capacity scan data for the device from \UploadManagerData\BufferDir\sha1<the_last_two_digits_from_machine’s_ComputerID><ComputerID>\ and within cit_capacity_*_tlm_hw.zip. Within the zip you can open the newest .xml and it should be showing you the update S/N. If it is not there you need to check the actual capacity scan execution on the VM and why it is not picking the latest data (again maybe the force can help)
  • on the VM Manager tool, you need to check the data - there should be <ComputerD_of_VMManagerMachine>vmman.zip files in the root of the VMMAN folder. It will be a matter of opening each and finding the file for that Hyper-V host (the files are stored as vmman_scan<VMMAN_ID>.xml. you can do some kind of search within the config to find out what the actual ID for the host are OR alternatively, if you do “Test Connection” from within BFI and open the respective action within the BF console it will tell you the ID (the test connection uses the ID). Once you find the XML result from that VM Manager look up the Serial it finds for the VM. If that hasn’t updated you need to look at the VM Manager tool logs to see why it is not picking up the correct data and is it running OK altogether.

Essentially, before you see the problem solved you need to see S/N updated in both data sets and only then the import would be displaying those in BFI UI too (if the accurate data is not there all bets are off).

In the \UploadManagerData\BufferDir\sha1<the_last_two_digits_from_machine’s_ComputerID>\ and within cit_capacity_*_tlm_hw.zip file, I can see references to the new UUID but also the old UUID/SN.

<ComponentID version="1">
	<Manufacturer>Microsoft Corporation</Manufacturer>
	<Product>Virtual Machine</Product>
	<Version>Hyper-V UEFI Release v4.0</Version>
	<SerialNumber>----OLD UUIDSN----</SerialNumber>
	<Type></Type>
	<UUID>---NEW UUID --*</UUID>
</ComponentID>

<VirtualMachineGuest version="1">
	<UUID>---OLD UUID---</UUID>
	<HypervisorType>Hyper-V</HypervisorType>
</VirtualMachineGuest>

	<Lpar version="1">
		<LparID>---OLD UUID---</LparID>
		<SharedPoolID></SharedPoolID>
		<NodeCapacity>-1.000000</NodeCapacity>
		<NodeCapacityInCores>-1.000000</NodeCapacityInCores>
		<LparCapacity>-1.000000</LparCapacity>
		<LparCapacityInCores>-1.000000</LparCapacityInCores>
		<SharedPoolCapacity>-1.000000</SharedPoolCapacity>
		<SharedPoolCapacityInCores>-1.000000</SharedPoolCapacityInCores>
		<LparOnlineVPCount>4.000000</LparOnlineVPCount>
		<LparOnlineProcessorCount>4.000000</LparOnlineProcessorCount>
		<SerialNumber></SerialNumber>
		<LparType>Hyper-V</LparType>
	</Lpar>

I think that is actually ok - if not mistaken it keeps the history of the discoveries this way. For the hypervisor - have you rebooted it after you’ve changed the VM’s details? Unless you do it keeps them in memory and runs of the VM Manager would be still capturing old data.

from the Set-VMAdvancedSettings.ps1 script, running the function with these options allowed the Capacity Scan to retreve good UUIDs and SN:

Set-VMAdvancedSettings -VM servername -AutoGenBIOSGUID
Set-VMAdvancedSettings -VM servername -BaseBoardSerialNumber ‘<NEW_SN>’ -BIOSSerialNumber ‘<NEW_SN>’ -ChassisAssetTag ‘<NEW_SN>’ -ChassisSerialNumber ‘<NEW_SN>’

2 Likes

Now I no longer get the duplicate UUID error in the BFI Import logs for this server, however on the Hardware Inventory Report, it lists that VM status as “No VM Manager Data” yet the serial number column lists the newly set serial number.

Check VM managers scan uploads. There was “Force” upload if not mistaken but the fact that you see the new UUID/Serial when you open the XMLs should mean that it is working on scan-level and it’s just making it up-chain.

“Schedule VM Manager Tool Scan Results Upload (10.0.8.0)” action has been running successfully. So BFI takes the VM Manager upload results and associates with the endpoint capacity scan results and where there is a match, you get Hardware Inventory status = “ok” ?

Correct. That’s how it’s supposed to work, so if you verified the new values appear in the data and the upload chain, give it one more import and if it still doesn’t clear I would open a support case.

After several more successful imports, the Hardware Inventory status is still “No VM Manager Data”.

  1. Results in the \vmman_scan_xx.xml show the guest with the UUID:

     <guest_layer>
         <uuid>68B0-D6A8-2A66-488A-94E7-3462-88</uuid>
         <vp_count>4</vp_count>
         <state>default_not_initialized</state>
         <virtual_technology>Hyper-V</virtual_technology>
     </guest_layer>
    
  2. tlm_hw_202204061744_xxx.xml Capacity Scan file on the BES root UploadManagerData

<?xml version="1.0" encoding="UTF-8"?>
	<ComponentID version="1">
		<Manufacturer>Microsoft Corporation</Manufacturer>
		<Product>Virtual Machine</Product>
		<Version>Hyper-V UEFI Release v4.0</Version>
		<SerialNumber>68B0-D6A8-2A66-488A-94E7-3462-88</SerialNumber>
		<Type></Type>
		<UUID>68B0D6A8-2A66-488A-94E7-346288203070</UUID>
	</ComponentID>

The UUID from the VM Manager is not the same as the UUID from the capacity scan. How is that possible? The UUID from the capacity scan is right. The UUID from the VM manager (hyper-V) is wrong.
image

You should probably open a support incident to track through the logs and debugging info, but I do think it interesting that the UUID reported by vmman tool matches the Serial number reported by the client’s Capacity Scan. That probably means something.

case opened. We’ll see what they say.

I have the same issue a few months ago, Every UUID is duplicated, and when I remove it in the data the status will say “No Data”, right now I am trying to have new Hyper-V software, what products would you recommend?

Hyper-V is perfectly adequate the problem is how people use it. For example, if you are using a built machine as “template” to create new machines, you’d better make sure you export it without identifying IDs (UUID, Serial Number, etc) OR on import change them (I think there was a “copy” mode in Hyper-V that does it) - otherwise any new machine you build will have that problem!