Jaekt Posted October 12, 2015 Report post Posted October 12, 2015 Hi, 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. https://social.technet.microsoft.com/Forums/systemcenter/en-US/706a2a4c-e4e9-4a0a-8c5f-787867540a09/report-or-a-query-to-show-new-computer-in-sccm 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)? Quote Share this post Link to post Share on other sites More sharing options...
Peter van der Woude Posted October 12, 2015 Report post Posted October 12, 2015 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 Quote Share this post Link to post Share on other sites More sharing options...
Jaekt Posted October 12, 2015 Report post Posted October 12, 2015 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. Quote Share this post Link to post Share on other sites More sharing options...
Peter van der Woude Posted October 13, 2015 Report post Posted October 13, 2015 Thanks! 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/ Quote Share this post Link to post Share on other sites More sharing options...
Jaekt Posted October 14, 2015 Report post Posted October 14, 2015 Thanks again. Going to test your method, will report back with my results Quote Share this post Link to post Share on other sites More sharing options...
Jaekt Posted January 13, 2016 Report post Posted January 13, 2016 Hello. 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) [DYNPROPS] Class OSD { [key] string KeyName; String InstalledOn; String OSDBitLockerCreateRecoveryPassword; String OSDBitLockerMode; String OSDBitlockerStatus; String OSDComputerName; String OSDDomainName; String OSDDomainOUName; String OSDStateComplete; }; [DYNPROPS] Instance of OSD { KeyName="RegKeyToMOF_32"; [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: Select SYS.Netbios_Name0, OSD.InstalledOn0, OSD.OSDBitLockerStatus0, CS.UserName0, CS.Domain0 FROM 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. Quote Share this post Link to post Share on other sites More sharing options...