Jump to content


Configuration Manager UUID Change Date / Detect Task Sequence installations

Recommended Posts


I'm wondering what exactly the data Configuration Manager UUID Change Date means / how it updates.

I was hoping I could use this data as when a client last was successfully installed a Operating System, with a Task Sequence.

According to the technet-article below, answered by Quan xu and Jason Sandys, it does update whenever a computer is installed, but also when machine hardware is changed.

I tested this on a Virtual Machine, but after changing both RAM and CPU cores, then running a Hardware Inventory, the UUID remains the same.

Are there any other AD/SCCM attributes I can use for this purpose (with a date)?

Share this post

Link to post
Share on other sites

If I'm not mistaken this works still the same as it did in the old SMS days. The good thing is that there is an article of that period with more information. Before the SMS UUID will change there have to be three hardware changes as mentioned in the following article: https://support.microsoft.com/en-us/kb/837374

Share this post

Link to post
Share on other sites

Great article, thank you very much, Peter, and grats on the MVP :) well deserved

I think then that relying on CMUUID/SMSUUID Change date is too unreliable then.


Maybe the right solution to what I'm after is to use custom AD attributes, and pull reports from that.

Guess I have to test some more.

Share this post

Link to post
Share on other sites



The best option also depends a bit on the scenario. For example, when a client is only installed during OS deployment, you can also look at the MP_ClientRegistration agent name and time. Another option could be to tattoo your devices with the deployment information. In that case you could do something like this: http://www.petervanderwoude.nl/post/reporting-about-the-all-the-different-os-deployment-versions-with-configmgr-2012/

Share this post

Link to post
Share on other sites


Had some issues importing the MOF-file, saying "MOF file you tried to import could not be compiled... " with "SMS_Class_Template" was not found.

After changing a few names, editing a bit in the MOF, it eventually compiled. Not sure what exactly caused it, but it worked in the end.

I added this to configuration.mof:

#pragma namespace ("\\\\.\\root\\cimv2")
#pragma deleteclass("OSD", NOFAIL)
Class OSD
[key] string KeyName;
String InstalledOn;
String OSDBitLockerCreateRecoveryPassword;
String OSDBitLockerMode;
String OSDBitlockerStatus;
String OSDComputerName;
String OSDDomainName;
String OSDDomainOUName;
String OSDStateComplete;

Instance of OSD
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|InstalledOn"),Dynamic,Provider("RegPropProv")] InstalledOn;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|OSDBitLockerCreateRecoveryPassword"),Dynamic,Provider("RegPropProv")] OSDBitLockerCreateRecoveryPassword;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|OSDBitLockerMode"),Dynamic,Provider("RegPropProv")] OSDBitLockerMode;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|OSDBitlockerStatus"),Dynamic,Provider("RegPropProv")] OSDBitlockerStatus;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|OSDComputerName"),Dynamic,Provider("RegPropProv")] OSDComputerName;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|OSDDomainName"),Dynamic,Provider("RegPropProv")] OSDDomainName;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|OSDDomainOUName"),Dynamic,Provider("RegPropProv")] OSDDomainOUName;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|OSDStateComplete"),Dynamic,Provider("RegPropProv")] OSDStateComplete;

The Report query:

v_R_System SYS 
 right join v_GS_OSD OSD on SYS.ResourceID = OSD.ResourceID 
 right join v_GS_COMPUTER_SYSTEM CS on SYS.ResourceID = CS.ResourceID 
 where CS.domain0 LIKE @domain and
 CONVERT(datetime, OSD.InstalledOn0, 104) BETWEEN (GETDATE()-90) and GETDATE() 
 order by CONVERT(datetime, OSD.InstalledOn0, 104) DESC

Had to convert date since it was in a text-format.



Share this post

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Create New...