<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>The Dangers of RunOnce and Run Registry Keys</title><link>http://blogs.msdn.com/b/heaths/archive/2005/03/06/386096.aspx</link><description>A recent project I worked on was to replace functionality for part of our patching process that runs commands after reboot, a task not too uncommon for installers - most notably because files were in use when the installers ran. Typically when files are</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>re: The Dangers of RunOnce and Run Registry Keys</title><link>http://blogs.msdn.com/b/heaths/archive/2005/03/06/386096.aspx#10329340</link><pubDate>Thu, 12 Jul 2012 17:50:57 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10329340</guid><dc:creator>Heath Stewart</dc:creator><description>&lt;p&gt;@Kiran, if you really need to run an EXE at the end - and really think about whether you need to since setup is about copying bits and anything more complicates repairs, servicing, and other scenarios - you might consider writing a type 1 CA that will CreateProcess() after reading in the current environment block (there various APIs and other ways of getting it).&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10329340" width="1" height="1"&gt;</description></item><item><title>re: The Dangers of RunOnce and Run Registry Keys</title><link>http://blogs.msdn.com/b/heaths/archive/2005/03/06/386096.aspx#10329163</link><pubDate>Thu, 12 Jul 2012 09:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10329163</guid><dc:creator>Kiran Hegde</dc:creator><description>&lt;p&gt;Hello, &lt;/p&gt;
&lt;p&gt;I am now facing an issue which i believe is very commonly encountered. &lt;/p&gt;
&lt;p&gt;I need to launch an EXE at the end of the installation. I can use a custom action of type 19 to do it. &lt;/p&gt;
&lt;p&gt;However, i just realized that the EXE depends upon the PATH environmental variable which is updated by the installer. Since the environment variable was not available when the msiexec process started, &amp;nbsp;this environment variable is not available for use to the EXE. &lt;/p&gt;
&lt;p&gt;To overcome this, we have the following options: &lt;/p&gt;
&lt;p&gt;i)Run the exe after a reboot by making use of &amp;nbsp;RunOnce keys &lt;/p&gt;
&lt;p&gt;The user has to reboot the sytem after an install. &lt;/p&gt;
&lt;p&gt;By creating an entry for this EXE in RunOnce, this exe will run upon a user logon sucessfully as the environment variables would be available to it. &lt;/p&gt;
&lt;p&gt;Question: Is using RunOnce a recommended procedure to accomplish this? &lt;/p&gt;
&lt;p&gt;ii)Make use of a vbscript &amp;nbsp;custom action to launch the EXE. &lt;/p&gt;
&lt;p&gt;iii)Broadcast a message to windows when the environment variable is updated &lt;/p&gt;
&lt;p&gt;What is the recommended solution here? &lt;/p&gt;
&lt;p&gt;Is RunOnce used by msi installers frequently? &lt;/p&gt;
&lt;p&gt;Thanks, &lt;/p&gt;
&lt;p&gt;Kiran Hegde&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10329163" width="1" height="1"&gt;</description></item><item><title>The Dangers of ARPSYSTEMCOMPONENT</title><link>http://blogs.msdn.com/b/heaths/archive/2005/03/06/386096.aspx#1736799</link><pubDate>Wed, 21 Feb 2007 22:21:36 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1736799</guid><dc:creator>Heath Stewart's Blog</dc:creator><description>&lt;p&gt;Using the ARPSYSTEMCOMPONENT Windows Installer property can leave your Add/Remove Program entries behind.&lt;/p&gt;
&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1736799" width="1" height="1"&gt;</description></item><item><title>Handling GAC and NGEN Operations after Reboot</title><link>http://blogs.msdn.com/b/heaths/archive/2005/03/06/386096.aspx#459590</link><pubDate>Fri, 02 Sep 2005 05:28:21 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:459590</guid><dc:creator>Heath Stewart's Blog</dc:creator><description>Information about the new NetFxUpdate.exe service.&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=459590" width="1" height="1"&gt;</description></item><item><title>Handling GAC and NGEN Operations after Reboot</title><link>http://blogs.msdn.com/b/heaths/archive/2005/03/06/386096.aspx#458068</link><pubDate>Tue, 30 Aug 2005 21:23:20 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:458068</guid><dc:creator>Heath Stewart's Blog</dc:creator><description>Information about the new NetFxUpdate.exe service.&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=458068" width="1" height="1"&gt;</description></item><item><title>The Dangers of ARPSYSTEMCOMPONENT</title><link>http://blogs.msdn.com/b/heaths/archive/2005/03/06/386096.aspx#448199</link><pubDate>Fri, 05 Aug 2005 20:26:36 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:448199</guid><dc:creator>Heath Stewart's Blog</dc:creator><description>Using the ARPSYSTEMCOMPONENT Windows Installer property can leave your Add/Remove Program entries behind.&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=448199" width="1" height="1"&gt;</description></item><item><title>The INSERT/UPDATE Problem for Transforms in MSI</title><link>http://blogs.msdn.com/b/heaths/archive/2005/03/06/386096.aspx#429388</link><pubDate>Wed, 15 Jun 2005 18:28:05 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:429388</guid><dc:creator>Heath Stewart's Blog</dc:creator><description>Work around INSERT errors when patching rows that already exist in the target.&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=429388" width="1" height="1"&gt;</description></item><item><title>Unsupported Flag Really is Unsupported for NT4 Services</title><link>http://blogs.msdn.com/b/heaths/archive/2005/03/06/386096.aspx#419792</link><pubDate>Thu, 19 May 2005 03:52:31 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:419792</guid><dc:creator>Heath Stewart's Blog</dc:creator><description>Newer service control codes must be conditionally set for SERVICE_STATUS.dwControlsAccepted or NT4 services will not function correctly.&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=419792" width="1" height="1"&gt;</description></item><item><title /><link>http://blogs.msdn.com/b/heaths/archive/2005/03/06/386096.aspx#389096</link><pubDate>Tue, 08 Mar 2005 06:23:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:389096</guid><dc:creator>TrackBack</dc:creator><description>What I Do&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=389096" width="1" height="1"&gt;</description></item></channel></rss>