{"id":133,"date":"2014-08-27T07:00:00","date_gmt":"2014-08-27T07:00:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/oldnewthing\/2014\/08\/27\/where-does-the-installed-updates-control-panel-get-the-install-date-from\/"},"modified":"2014-08-27T07:00:00","modified_gmt":"2014-08-27T07:00:00","slug":"where-does-the-installed-updates-control-panel-get-the-install-date-from","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/oldnewthing\/20140827-00\/?p=133","title":{"rendered":"Where does the Installed Updates control panel get the install date from?"},"content":{"rendered":"<p>A corporate customer wanted to know where the <i>Installed Updates<\/i> control panel gets the <i>Installed On<\/i> information from, because they found that the values were always set to the current date regardless of when the update was actually installed.\n The algorithm goes roughly like this:\n First, ask MSI what date the update was installed by calling <code>Msi&shy;Get&shy;PatchInfo&shy;Ex<\/code> and asking for the <code>INSTALL&shy;PROPERTY_INSTALL&shy;DATE<\/code>.\n If that doesn&#8217;t work, then go to the registry key under <code>Software\\Microsoft\\Windows\\Current&shy;Version\\Uninstall\\<u>Unique&shy;Id<\/u><\/code> and look for a value called (surprise) <code>Install&shy;Date<\/code>. (Note that 32-bit updates on 64-bit machines will be redirected into a <code>Wow&shy;64&shy;32&shy;Node<\/code> key.)\n If that still doesn&#8217;t work, then it&#8217;s time to guess: Windows&nbsp;XP uses the last-modified date of the directory that contains the uninstaller. Windows Vista and higher use the last-modified date of the <code>Software\\Microsoft\\Windows\\Current&shy;Version\\Uninstall\\<u>Unique&shy;Id<\/u><\/code> registry key. (Again, possibly with a <code>Wow&shy;64&shy;32&shy;Node<\/code> stuck in there.)<\/p>\n<p> <b>Bonus chatter<\/b>: Interestingly, the customer didn&#8217;t phrase the problem like that. The customer said, &#8220;The first time a user logs on each day, the install date changes to the current date. Subsequent logons the same day do not change the date. But the first logon the next day changes the date again. What&#8217;s so special about the first logon of each day?&#8221; What&#8217;s so special about the first logon of each day is that it&#8217;s a new day! I suspect that the the date is updated on <i>every<\/i> logon. It&#8217;s just that they don&#8217;t notice the change because the date is the same. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>A corporate customer wanted to know where the Installed Updates control panel gets the Installed On information from, because they found that the values were always set to the current date regardless of when the update was actually installed. The algorithm goes roughly like this: First, ask MSI what date the update was installed by [&hellip;]<\/p>\n","protected":false},"author":1069,"featured_media":111744,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[104],"class_list":["post-133","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oldnewthing","tag-tipssupport"],"acf":[],"blog_post_summary":"<p>A corporate customer wanted to know where the Installed Updates control panel gets the Installed On information from, because they found that the values were always set to the current date regardless of when the update was actually installed. The algorithm goes roughly like this: First, ask MSI what date the update was installed by [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/133","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/users\/1069"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/comments?post=133"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/133\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media\/111744"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media?parent=133"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/categories?post=133"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/tags?post=133"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}