<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>UPHClean and other profile ramblings</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/uphclean/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/uphclean/feed.xml</link>
    <description>A blog to discuss UPHClean and profile problems</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:50:21 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>UPHClean v1.6 Security Vulnerability Fix</title>
      <link>https://docs.microsoft.com/archive/blogs/uphclean/uphclean-v1-6-security-vulnerability-fix</link>
      <pubDate>Mon, 13 Sep 2010 06:56:00 GMT</pubDate>
      <dc:creator><![CDATA[Robin Caron]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/uphclean/2010/09/13/uphclean-v1-6-security-vulnerability-fix/</guid>
      <description><![CDATA[The previous version of UPHClean did not call the system executable using quotes. This could in some...]]></description>
      <content:encoded><![CDATA[<p>The previous version of UPHClean did not call the system executable using quotes. This could in some scenarios allow a local user to elevate privileges. This issue has now been addressed in the current version. Thanks to Thierry Zoller from Verizon Business for reporting this issue to us.</p>
<p>&nbsp;</p>
<p>Updated bits (v1.6g)&nbsp; are being posted on the <a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=1b286e6d-8912-4e18-b570-42470e2f3582">Microsoft Download Center</a>&nbsp;and should be available shortly.</p>]]></content:encoded>
    </item>
    <item>
      <title>Status of UPHClean</title>
      <link>https://docs.microsoft.com/archive/blogs/uphclean/status-of-uphclean</link>
      <pubDate>Wed, 06 Jan 2010 11:59:00 GMT</pubDate>
      <dc:creator><![CDATA[Robin Caron]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/uphclean/2010/01/06/status-of-uphclean/</guid>
      <description><![CDATA[Hi!
First let me apologize for the length of time since my last post.&nbsp; Unfortunately this post...]]></description>
      <content:encoded><![CDATA[<P>Hi!</P>
<P>First let me apologize for the length of time since my last post.&nbsp; Unfortunately this post is to report that UPHClean is now officially dormant.&nbsp;&nbsp;Release bits for UPHClean v2.0 are not forthcoming.&nbsp;&nbsp;There's no plan of record for release. This means that even if it was restarted it would be months or much longer to get a final package ready.&nbsp;At various point I had hope that I could get time together to produce a final package but it is not in the cards for the forseable future.&nbsp; This is not happening.</P>
<P>This means that the current beta build (2.0.49.0) is the latest bits and will stay the only code available for the forseable future.&nbsp; This code works well for most people (&gt; 99%).&nbsp; It does not function on Windows Vista, Windows Server 2008, Windows 7 nor Windows Server 2008 R2.&nbsp; As I have mentioned in other posts there's definintely some possibility of machine running beta bits of UPHClean v2.0 to crash or hang.&nbsp; The best course of action in those cases is to discontinue usage of UPHClean.</P>
<P>Thank you for you great support on making UPHClean a success.</P>
<P>Robin Caron</P>
<P mce_keep="true">&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>New UPHClean beta build</title>
      <link>https://docs.microsoft.com/archive/blogs/uphclean/new-uphclean-beta-build</link>
      <pubDate>Fri, 31 Oct 2008 17:27:26 GMT</pubDate>
      <dc:creator><![CDATA[Robin Caron]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/uphclean/2008/10/31/new-uphclean-beta-build/</guid>
      <description><![CDATA[Hi there!  &#160;  Good news -- I'm releasing an updated beta build today.&#160; It fixes machine...]]></description>
      <content:encoded><![CDATA[<p>Hi there!</p>  <p>&#160;</p>  <p>Good news -- I'm releasing an updated beta build today.&#160; It fixes machine hangs and crashes that could occur with build 2.0.48.0.&#160; </p>  <p>The 32 bit plaform bits are <a href="http://blogs.technet.com/uphclean/pages/uphclean-v2-0-beta-build-2-0-49-0-for-32-bit-platform-operating-system.aspx">here</a> and for 64 bit platforms <a href="http://blogs.technet.com/uphclean/pages/uphclean-v2-0-build-2-0-49-0-beta-for-64-bit-platform-operating-system.aspx">here</a>.</p>  <p>If you find any problem with this build please email the details to <a href="mailto:uphclean@microsoft.com">uphclean@microsoft.com</a> or post them here.</p>  <p>Thank you all for your patience in waiting for updated beta bits.</p>  <p>Robin</p>]]></content:encoded>
    </item>
    <item>
      <title>UPHClean v2.0 build 2.0.49.0 (beta) for 64 bit platform operating system</title>
      <link>https://docs.microsoft.com/archive/blogs/uphclean/uphclean-v2-0-build-2-0-49-0-beta-for-64-bit-platform-operating-system</link>
      <pubDate>Fri, 31 Oct 2008 17:23:00 GMT</pubDate>
      <dc:creator><![CDATA[Robin Caron]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/uphclean/2008/10/31/uphclean-v2-0-build-2-0-49-0-beta-for-64-bit-platform-operating-system/</guid>
      <description><![CDATA[In the attachment below you will find the UPHClean v2.0 beta bits for operating system running on 64...]]></description>
      <content:encoded><![CDATA[<P>In the attachment below you will find the UPHClean v2.0 beta bits for operating system running on 64 bit platform (AMD or Intel x64 -- not Intel Itanium).&nbsp; See my blog post <A class="" title=here href="http://blogs.technet.com/uphclean/archive/2008/02/28/uphclean-v2-0.aspx" mce_href="http://blogs.technet.com/uphclean/archive/2008/02/28/uphclean-v2-0.aspx">here</A> for a description of what's in v2.0.</P>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/telligent.evolution.components.attachments/01/6284/00/00/03/14/54/65/uphclean-setup.msi" original-url="http://blogs.technet.com/cfs-filesystemfile.ashx/__key/telligent-evolution-components-attachments/01-6284-00-00-03-14-54-65/uphclean_2D00_setup.msi">uphclean-setup.msi</a></p>]]></content:encoded>
    </item>
    <item>
      <title>UPHClean v2.0 build 2.0.49.0 (beta) for 32 bit platform operating system</title>
      <link>https://docs.microsoft.com/archive/blogs/uphclean/uphclean-v2-0-build-2-0-49-0-beta-for-32-bit-platform-operating-system</link>
      <pubDate>Fri, 31 Oct 2008 17:21:00 GMT</pubDate>
      <dc:creator><![CDATA[Robin Caron]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/uphclean/2008/10/31/uphclean-v2-0-build-2-0-49-0-beta-for-32-bit-platform-operating-system/</guid>
      <description><![CDATA[In the attachment below you will find the UPHClean v2.0 build 2.0.49.0 beta bits.&nbsp; See my blog...]]></description>
      <content:encoded><![CDATA[<P>In the attachment below you will find the UPHClean v2.0 build 2.0.49.0 beta bits.&nbsp; See my blog post <A class="" title=here href="http://blogs.technet.com/uphclean/archive/2008/02/28/uphclean-v2-0.aspx" mce_href="http://blogs.technet.com/uphclean/archive/2008/02/28/uphclean-v2-0.aspx">here</A> for a description of what's in v2.0.</P>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/telligent.evolution.components.attachments/01/6284/00/00/03/14/54/64/uphclean-setup.msi" original-url="http://blogs.technet.com/cfs-filesystemfile.ashx/__key/telligent-evolution-components-attachments/01-6284-00-00-03-14-54-64/uphclean_2D00_setup.msi">uphclean-setup.msi</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Call stack logging: what it is and where does it go?</title>
      <link>https://docs.microsoft.com/archive/blogs/uphclean/call-stack-logging-what-it-is-and-where-does-it-go</link>
      <pubDate>Thu, 17 Jul 2008 13:26:00 GMT</pubDate>
      <dc:creator><![CDATA[Robin Caron]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/uphclean/2008/07/17/call-stack-logging-what-it-is-and-where-does-it-go/</guid>
      <description><![CDATA[To understand what call stack logging is you must understand how software works internally.&nbsp;...]]></description>
      <content:encoded><![CDATA[<P>To understand what call stack logging is you must understand how software works internally.&nbsp; Software is put together using small pieces of code.&nbsp; These pieces are called functions.&nbsp; Complex work is done by breaking it down into simpler tasks.&nbsp; A function that performs a complex behavior gets it done by doing some of the work itself and by using functions to do simpler tasks.</P>
<P mce_keep="true">&nbsp;</P>
<P>When a function uses another function to perform a simpler task it needs to make sure that once the simpler function is done work resumes on the more complex task. To make this happen it saves off where it was.&nbsp; It is saved to an area of memory called the stack.&nbsp; The simpler function may very well also call on other function to perform even simpler tasks.&nbsp; It also needs to save off where work was before it calls on simpler function.</P>
<P mce_keep="true">&nbsp;</P>
<P>This is why the area of memory where this information is saved is called a stack.&nbsp; Just like you would pile dishes on top of each other, the saved information is piled on top of each other.&nbsp; When the simpler function is done to find out where work should resume it picks off the top of the pile.&nbsp; This tells it where to go back to.&nbsp; This repeats when that function is done.</P>
<P mce_keep="true">&nbsp;</P>
<P>Now suppose whenever an action is taken (e.g. retrieving a handle to a registry key) this stack memory is recorded.&nbsp; To do this the simpler task function looks at the stack memory find out where work would resume when it is done.&nbsp; What is being recorded is the address in memory where the instruction is that resumes the more complex work.&nbsp; This is literally just a number between 0 and about 4 billon.&nbsp; Using the earlier example this address could in a function in a printer driver that needs the page size to print on.&nbsp; This process can keep going and look at when the the page size retrieval function that is done where work would resume.&nbsp; This might be function that is responsible for printing.&nbsp; It can keep doing that back all the way to the function that starts the application (some function in a printer spooler).&nbsp; This information (a list of memory addresses) is called a call stack log or call stack for short.</P>
<P mce_keep="true">&nbsp;</P>
<P>Now imagine you decided that retrieving a registry key handle is causing a problem you could inspect the recorded information to determine why the action was taken.&nbsp; This helps in narrowing down what causes the problem.&nbsp; This is especially true today because applications are put together using 100s of thousands of functions from many vendors.&nbsp; Knowing the call stack tells you who initiated the action that causes a problem.</P>
<P mce_keep="true">&nbsp;</P>
<P>Collection of call stacks is an option in UPHClean v1.6d enabled via the registry setting HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\UPHClean\Parameters\CALLSTACK_LOG to 1.&nbsp; The value is a DWORD but you should find it there if UPHClean has ever been run.</P>
<P mce_keep="true">&nbsp;</P>
<P>The actual call stack logging is something that is not actually done by UPHClean.&nbsp; You can understand why based on the explanation I gave above: UPHClean is not being called on to perform the action of opening a registry handle.&nbsp; This work is actually by functions that reside in the DLL ADVAPI32.&nbsp; So when you set this option what UPHClean does is set a registry setting (HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\LeakTrack).&nbsp; The functions in ADVAPI32 responsible for getting a registry key handle read this value.&nbsp; When the value is set appropriately they collect a call stack whenever they are asked to get a registry key under the user profile hives.&nbsp; Later when the registry keys are release closed it removes the discards the collected call stack information.</P>
<P mce_keep="true">&nbsp;</P>
<P>When UPHClean is about to process a handle that is leaked by an application for remapping or closure UPHClean checks to see if call stack logging is enabled.&nbsp; If call stack logging is enabled it reads the stack information recorded by ADVAPI32.&nbsp; This information is recorded as a list of memory addresses tha</P>
<P mce_keep="true">&nbsp;</P>
<P>It is logged in the application event log as an addition to event 1401 or 1201.&nbsp; The readme has an example:</P>
<P>Event Type:&nbsp;Information<BR>Event Source:&nbsp;UPHClean<BR>Event Category:&nbsp;None<BR>Event ID:&nbsp;1201<BR>Date:&nbsp;&nbsp;10/21/2003<BR>Time:&nbsp;&nbsp;5:17:38 PM<BR>User:&nbsp;&nbsp;RCARONDOM-DC1\u1<BR>Computer:&nbsp;RCARONDOM-DC1<BR>Description:<BR>The following handles in user profile hive RCARONDOM-DC1\u1<BR>(S-1-5-21-3230802392-3390281410-1560515013-1307) have been closed because they<BR>were preventing the profile from unloading successfully:<BR>&nbsp;<BR>profleak.exe (2604)<BR>&nbsp; HKCU (0x80)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x77dfc200 ADVAPI32!TrackObject+0xe<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x00412112 profleak!&lt;no symbol&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x77db571b ADVAPI32!ScSvcctrlThreadA+0xe<BR>&nbsp; HKCU\Software\Policies (0x88)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x77dfc200 ADVAPI32!TrackObject+0xe<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x77da1949 ADVAPI32!RegOpenKeyExW+0x10b<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x0041350c profleak!&lt;no symbol&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x00412112 profleak!&lt;no symbol&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x77db571b ADVAPI32!ScSvcctrlThreadA+0xe</P>
<P mce_keep="true">&nbsp;</P>
<P>This this call stack data indicates that the user profile hive handle leak is caused by profleak.&nbsp; Profleak is an application used to causes a user profile hive handle leak.&nbsp;&nbsp; It is not true that in all cases the listed module/DLL listed after ADVAPI32 is the culprit.&nbsp; Interpreting this information requires an experienced developer or someone who can debug.</P>
<P mce_keep="true">&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>When will UPHClean v2.0 be done?</title>
      <link>https://docs.microsoft.com/archive/blogs/uphclean/when-will-uphclean-v2-0-be-done</link>
      <pubDate>Thu, 06 Mar 2008 16:58:00 GMT</pubDate>
      <dc:creator><![CDATA[Robin Caron]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/uphclean/2008/03/06/when-will-uphclean-v2-0-be-done/</guid>
      <description><![CDATA[UPHClean v2.0 has been in beta for an extended period.&nbsp; Over 3,000 people have received the...]]></description>
      <content:encoded><![CDATA[<P>UPHClean v2.0 has been in beta for an extended period.&nbsp; Over 3,000 people have received the beta bits.&nbsp; There have been enough reports of computers hanging and crashing to prevent release.&nbsp; Further beta builds are needed to insure that those remaining problems are resolved.&nbsp; Once ship quality is achieved a release date will be selected.&nbsp; Based on my current work load and experience with past projects I expect that will at least 6 more months before final release.</P>]]></content:encoded>
    </item>
    <item>
      <title>Group Policy Administrative Template To Manage 2.0 Beta Settings</title>
      <link>https://docs.microsoft.com/archive/blogs/uphclean/group-policy-administrative-template-to-manage-2-0-beta-settings</link>
      <pubDate>Tue, 04 Mar 2008 16:18:00 GMT</pubDate>
      <dc:creator><![CDATA[Robin Caron]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/uphclean/2008/03/04/group-policy-administrative-template-to-manage-2-0-beta-settings/</guid>
      <description><![CDATA[Here is an administrative template to make it easier to manage the file remapping settings available...]]></description>
      <content:encoded><![CDATA[<P>Here is an administrative template to make it easier to manage the file remapping settings available with UPHClean v2.0.</P>
<P>Thank you Kevin Henriksen for this contribution.</P>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/telligent.evolution.components.attachments/01/6284/00/00/02/96/10/22/UPHClean.ADM" original-url="http://blogs.technet.com/cfs-filesystemfile.ashx/__key/telligent-evolution-components-attachments/01-6284-00-00-02-96-10-22/UPHClean.ADM">UPHClean.ADM</a></p>]]></content:encoded>
    </item>
    <item>
      <title>About UPHClean v2.0 events 1630, 1631 and 1632</title>
      <link>https://docs.microsoft.com/archive/blogs/uphclean/about-uphclean-v2-0-events-1630-1631-and-1632</link>
      <pubDate>Mon, 03 Mar 2008 12:38:00 GMT</pubDate>
      <dc:creator><![CDATA[Robin Caron]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/uphclean/2008/03/03/about-uphclean-v2-0-events-1630-1631-and-1632/</guid>
      <description><![CDATA[UPHClean v2.0 tries to assist when the security descriptor prevents access to a file or...]]></description>
      <content:encoded><![CDATA[<P>UPHClean v2.0 tries to assist when the security descriptor prevents access to a file or directory.&nbsp; This often prevents the system from completing the profile reconciliation process.&nbsp; This can happen because the inherited permissions are set incorrectly or possibly because the user sets to prevent administrative and/or system access.</P>
<P>UPHClean attempts to deal with that by changing the security descriptor.&nbsp; This is done for access to file or directory access that result in access denied.&nbsp; In the case where the file or directory is local it is likely that UPHClean will be able to change the security descriptor since it can use the take ownership right to do so.&nbsp; In the remote case it is possible that UPHClean will fail to change the permissions.&nbsp; So this correction UPHClean may not always succeed.</P>
<P>Here are relevant events that can occur:</P>
<UL>
<LI>Event 1630: Access to %1 was granted after updating the security descriptor of the file. 
<UL>
<LI>This event indicates that UPHClean changed the security descriptor for the file/directory named %1 and was successful.&nbsp; Access permissions necessary to proceed with profile work were granted.&nbsp; Access to the file or directory was successful. </LI></UL></LI>
<LI>Event&nbsp; 1631: Access to %1 failed after updating the security descriptor of the file. 
<UL>
<LI>This event indicates that UPHClean changed the security descriptor and was successful.&nbsp; Even though UPHClean granted the access permissions necessary to perform the profile work the requested access was denied.&nbsp; This can happen if the source of the access denied is not security descriptor permission related.&nbsp; The interference could be coming from a background process (i.e. a virus scanner) or other unknown source. </LI></UL></LI>
<LI>Event 1632: Security descriptor for file %1 could not be updated.&nbsp; Error %2 %3. 
<UL>
<LI>This event indicates that UPHClean failed in its attempt to change the security descriptor.&nbsp; %2 is replaced with the text of the error and %3 is the error number.&nbsp; Access to the file or directory failed. </LI></UL></LI></UL>
<P>Note that the name logged with the event may contain an unfamiliar drive letter.&nbsp; This drive letter represents the roaming profile location.&nbsp; It exists only during the profile reconciliation process.</P>
<P>These events are logged so that you can know that UPHClean took these actions.&nbsp; This is critical if auditing.&nbsp; </P>
<P>If the user profile is reconciling properly you can ignore these.&nbsp; If the profile is not reconciling properly and you are logging events 1631 or 1632 you should review the security descriptor hierarchy to insure that the permissions are as intended and allow system/administrative access.</P>]]></content:encoded>
    </item>
    <item>
      <title>UPHClean v2.0 beta for 32 bit platform operating system</title>
      <link>https://docs.microsoft.com/archive/blogs/uphclean/uphclean-v2-0-beta-for-32-bit-platform-operating-system</link>
      <pubDate>Thu, 28 Feb 2008 14:49:00 GMT</pubDate>
      <dc:creator><![CDATA[Robin Caron]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/uphclean/2008/02/28/uphclean-v2-0-beta-for-32-bit-platform-operating-system/</guid>
      <description><![CDATA[In the attachment below you will find the UPHClean v2.0 beta bits.&nbsp; See my blog post here for a...]]></description>
      <content:encoded><![CDATA[<P>In the attachment below you will find the UPHClean v2.0 beta bits.&nbsp; See my blog post <A class="" title=here href="http://blogs.technet.com/uphclean/archive/2008/02/28/uphclean-v2-0.aspx" mce_href="http://blogs.technet.com/uphclean/archive/2008/02/28/uphclean-v2-0.aspx">here</A> for a description of what's in v2.0.</P>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/telligent.evolution.components.attachments/01/6284/00/00/02/94/08/77/uphclean-setup-x86-2-0-48.msi" original-url="http://blogs.technet.com/cfs-filesystemfile.ashx/__key/telligent-evolution-components-attachments/01-6284-00-00-02-94-08-77/uphclean_2D00_setup_2D00_x86_2D00_2_2D00_0_2D00_48.msi">uphclean-setup-x86-2-0-48.msi</a></p>]]></content:encoded>
    </item>
  </channel>
</rss>