<?xml version="1.0" encoding="UTF-8"?> <rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
><channel><title>Remko Weijnen&#039;s Blog (Remko&#039;s Blog) &#187; Altiris</title> <atom:link href="http://www.remkoweijnen.nl/blog/topics/altiris/feed/" rel="self" type="application/rss+xml" /><link>http://www.remkoweijnen.nl/blog</link> <description>About Terminal Server, Citrix, Delphi and other stuff</description> <lastBuildDate>Tue, 31 Jan 2012 15:37:53 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.2.1</generator> <item><title>Apply IP Configuration from a Database</title><link>http://www.remkoweijnen.nl/blog/2011/04/29/apply-ip-configuration-from-a-database/</link> <comments>http://www.remkoweijnen.nl/blog/2011/04/29/apply-ip-configuration-from-a-database/#comments</comments> <pubDate>Fri, 29 Apr 2011 08:27:27 +0000</pubDate> <dc:creator>Remko</dc:creator> <category><![CDATA[Altiris]]></category> <category><![CDATA[script]]></category> <category><![CDATA[SQL Server]]></category><guid isPermaLink="false">http://www.remkoweijnen.nl/blog/2011/04/29/apply-ip-configuration-from-a-database/</guid> <description><![CDATA[I am currently deploying 64 Citrix XenApp servers with Altiris. The deployment consists of an OS Image, OS Configuration and finally Citrix XenApp and Applications. In the OS Configuration part the IP configuration needs to be applied and I decided to do this with a database. The database consists of 2 tables; one table with [...]]]></description> <content:encoded><![CDATA[<p>I am currently deploying 64 Citrix XenApp servers with Altiris. The deployment consists of an OS Image, OS Configuration and finally Citrix XenApp and Applications.</p><p>In the OS Configuration part the IP configuration needs to be applied and I decided to do this with a database.</p><p>The database consists of 2 tables; one table with the per host settings and one table with the global settings (such as DNS).</p><p>In the Altiris job both tables are read from an embedded VBScript and assigned to the NIC.</p><p><span style="text-decoration: underline;"><strong>Database configuration</strong></span></p><p>I created a database (SQL Server) called IPManagement with 2 tables:</p><p><a  rel="lightbox" href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/04/image7.png" class="thickbox no_icon" title="image"><img style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/04/image_thumb7.png" border="0" alt="image" width="177" height="100" /></a></p><p>&nbsp;</p><p><span id="more-1695"></span></p><p>The globalconfig table has a name and a data field:</p><p><a  rel="lightbox" href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/04/image8.png" class="thickbox no_icon" title="image"><img style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/04/image_thumb8.png" border="0" alt="image" width="244" height="74" /></a></p><p>And contains only the DNS settings:</p><p><a  rel="lightbox" href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/04/image9.png" class="thickbox no_icon" title="image"><img style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/04/image_thumb9.png" border="0" alt="image" width="144" height="60" /></a></p><p>The hostconfig table has fields for hostname, ip address, netmask and default gateway:</p><p><a  rel="lightbox" href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/04/image10.png" class="thickbox no_icon" title="image"><img style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/04/image_thumb10.png" border="0" alt="image" width="244" height="88" /></a></p><p>Some sample data:</p><p><a  rel="lightbox" href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/04/image11.png" class="thickbox no_icon" title="image"><img style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/04/image_thumb11.png" border="0" alt="image" width="244" height="211" /></a></p><p><strong><span style="text-decoration: underline;"> </span></strong></p><p><strong><span style="text-decoration: underline;">Altiris Configuration</span></strong></p><p>In Altiris I have added the database as a custom data source, this can be done via Tools | Options | Custom Data Sources:</p><p><a  rel="lightbox" href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/04/image12.png" class="thickbox no_icon" title="image"><img style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/04/image_thumb12.png" border="0" alt="image" width="244" height="238" /></a></p><p><a  rel="lightbox" href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/04/image13.png" class="thickbox no_icon" title="image"><img style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/04/image_thumb13.png" border="0" alt="image" width="244" height="197" /></a></p><p><strong><span style="text-decoration: underline;"> </span></strong></p><p><strong><span style="text-decoration: underline;">The Script:</span></strong></p><p>The final step is the VBScript, which use the <a  href="http://www.myitforum.com/articles/5/view.asp?id=5439" target="_blank">Custom Token feature</a> to retreive the data from the database:</p><div class="dean_ch" style="white-space: wrap;"><span class="co1">&#8216;Set Network Configuration</span><br /> <span class="co1">&#8216;vbscript</span><br /> IPAddress=<span class="kw1">Array</span><span class="br0">&#40;</span><span class="kw1">Trim</span><span class="br0">&#40;</span><span class="st0">&quot; %#IPManagement*&quot;</span>select ip from hostconfig where hostname=<span class="co1">&#8216;%NODEFULL%&#8217;&quot;% &quot;))</span><br /> NetMask=<span class="kw1">Array</span><span class="br0">&#40;</span><span class="kw1">Trim</span><span class="br0">&#40;</span><span class="st0">&quot; %#IPManagement*&quot;</span>select mask from hostconfig where hostname=<span class="co1">&#8216;%NODEFULL%&#8217;&quot;% &quot;))</span><br /> Gateway=<span class="kw1">Array</span><span class="br0">&#40;</span><span class="kw1">Trim</span><span class="br0">&#40;</span><span class="st0">&quot; %#IPManagement*&quot;</span>select gateway from hostconfig where hostname=<span class="co1">&#8216;%NODEFULL%&#8217;&quot;% &quot;))</span><br /> DNS=<span class="kw1">Array</span><span class="br0">&#40;</span><span class="kw1">Trim</span><span class="br0">&#40;</span><span class="st0">&quot; %#IPManagement*&quot;</span>select data from globalconfig where <span class="kw1">name</span>=<span class="co1">&#8216;dns1&#8242;&quot;% &quot;), Trim(&quot; %#IPManagement*&quot;select data from globalconfig where name=&#8217;dns2&#8242;&quot;% &quot;))</span></p><p>Metric = <span class="kw1">Array</span><span class="br0">&#40;</span><span class="nu0">1</span><span class="br0">&#41;</span></p><p>strComputer = <span class="st0">&quot;.&quot;</span><br /> <span class="kw1">Set</span> objWMIService = <span class="kw1">GetObject</span><span class="br0">&#40;</span><span class="st0">&quot;winmgmts:\\&quot;</span> &amp; strComputer &amp; <span class="st0">&quot;\root\cimv2&quot;</span><span class="br0">&#41;</span><br /> <span class="kw1">Set</span> colItems = objWMIService.<span class="me1">ExecQuery</span><span class="br0">&#40;</span><span class="st0">&quot;Select * from Win32_NetworkAdapterConfiguration where IPEnabled = True&quot;</span>,,<span class="nu0">48</span><span class="br0">&#41;</span></p><p><span class="kw1">For</span> Each objItem in colItems</p><p>&nbsp; &nbsp;<span class="kw1">If</span> <span class="kw1">Left</span><span class="br0">&#40;</span>objItem.<span class="me1">IPAddress</span><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span>, <span class="nu0">6</span><span class="br0">&#41;</span> = <span class="st0">&quot;10.250&quot;</span> <span class="kw1">Then</span><br /> &nbsp; &nbsp;&nbsp; &nbsp;WScript.<span class="me1">Echo</span><span class="br0">&#40;</span><span class="st0">&quot;Found Adapter, current adres is: &quot;</span> &amp;amp; objItem.<span class="me1">IPAddress</span><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span> &amp;amp; <span class="st0">&quot; Desired Address is: &quot;</span> &amp; IPAddress<span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span><br /> &nbsp; &nbsp;&nbsp; &nbsp;Ret = objItem.<span class="me1">EnableStatic</span><span class="br0">&#40;</span>IPAddress, NetMask<span class="br0">&#41;</span><br /> &nbsp; &nbsp;&nbsp; &nbsp;WScript.<span class="me1">Echo</span><span class="br0">&#40;</span><span class="st0">&quot;EnableStatic returned: &quot;</span> &amp; Ret<span class="br0">&#41;</span></p><p>&nbsp; &nbsp;&nbsp; &nbsp;<span class="kw1">If</span> Ret = <span class="nu0">0</span> <span class="kw1">Then</span><br /> &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;Ret = objItem.<span class="me1">SetGateWays</span><span class="br0">&#40;</span>Gateway, Metric<span class="br0">&#41;</span><br /> &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;WScript.<span class="me1">Echo</span><span class="br0">&#40;</span><span class="st0">&quot;SetGateWays returned: &quot;</span> &amp; Ret<span class="br0">&#41;</span>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;</p><p>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;Ret = objItem.<span class="me1">SetDNSServerSearchOrder</span><span class="br0">&#40;</span>DNS<span class="br0">&#41;</span><br /> &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;WScript.<span class="me1">Echo</span><span class="br0">&#40;</span><span class="st0">&quot;SetDNSServerSearchOrder returned: &quot;</span> &amp; Ret<span class="br0">&#41;</span><br /> &nbsp; &nbsp;&nbsp; &nbsp;<span class="kw1">End</span> <span class="kw1">If</span></p><p>&nbsp; &nbsp;<span class="kw1">End</span> <span class="kw1">If</span><br /> <span class="kw1">Next</span></p><p>WScript.<span class="me1">Quit</span><span class="br0">&#40;</span>Ret<span class="br0">&#41;</span></div><p>Note that I had to do a little trick using the Trim statement and a space to get a correct assignment to the variables. Without the space Altiris doesn&#8217;t properly recognize the custom token.</p><p>The array is necessary beasue the EnableStatic and SetGateways Methods require array parameters even when there&#8217;s just a single entry.</p> ]]></content:encoded> <wfw:commentRss>http://www.remkoweijnen.nl/blog/2011/04/29/apply-ip-configuration-from-a-database/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Tips for using SysPrep with Altiris</title><link>http://www.remkoweijnen.nl/blog/2011/03/22/tips-for-using-sysprep-with-altiris/</link> <comments>http://www.remkoweijnen.nl/blog/2011/03/22/tips-for-using-sysprep-with-altiris/#comments</comments> <pubDate>Tue, 22 Mar 2011 11:29:32 +0000</pubDate> <dc:creator>Remko</dc:creator> <category><![CDATA[Altiris]]></category> <category><![CDATA[Sysprep]]></category><guid isPermaLink="false">http://www.remkoweijnen.nl/blog/2011/03/22/tips-for-using-sysprep-with-altiris/</guid> <description><![CDATA[Altiris has built in support for Sysprep when creating or distributing images. The documentation doesn&#8217;t mention some things that are worth knowing so I will try to address them in this post. Sysprep support can be added to Altiris during the install where it will ask you for the Sysprep install files (deploy.cab) per selected [...]]]></description> <content:encoded><![CDATA[<p>Altiris has built in support for <a  href="http://en.wikipedia.org/wiki/Sysprep" target="_blank">Sysprep</a> when creating or distributing images.</p><p>The documentation doesn&#8217;t mention some things that are worth knowing so I will try to address them in this post.</p><p>Sysprep support can be added to Altiris during the install where it will ask you for the Sysprep install files (deploy.cab) per selected OS.</p><p>If you didn&#8217;t add Sysprep during install you can copy deploy.cab to one of subfolders in the Sysprep folder. Eg for 32 bit Windows 2003 deploy.cab goes to <em>Sysprep\DotNet\x86</em>:</p><p><a  href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image46.png" rel="lightbox" class="thickbox no_icon" title="image"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb46.png" width="86" height="244" /></a></p><p>As I wrote earlier in <a  href="http://www.remkoweijnen.nl/blog/2010/11/03/cannot-complete-customization-when-cloning-from-template/" target="_blank">this post</a> it&#8217;s very important to use the correct Sysprep version as each OS has it&#8217;s own version.</p><p><span id="more-1651"></span><p>As a general rule you should grab the deploy.cab from the install media (in the Support folder).</p><p><strong><u>Creating Images:</u></strong></p><p>When creating Images you can activate Sysprep support by setting the &#8220;Prepare using Sysprep&#8221; checkbox:</p><p><a  href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image47.png" rel="lightbox" class="thickbox no_icon" title="image"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb47.png" width="224" height="244" /></a></p><p>If you do not need to perform special configuration for you mass storage (eg add drivers) you can select &#8220;<em>Disable mass storage device support</em>&#8221; under Advanced Settings.</p><p>This will make the initial Sysprep run a little faster:</p><p><a  href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image48.png" rel="lightbox" class="thickbox no_icon" title="image"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb48.png" width="244" height="130" /></a></p><p>Optionally you can select an Automation environment, I like the LinuxPE option since it&#8217;s boots fast like the DOS option but still as fast imaging like Windows PE.</p><ul>A few earlier post regarding PXE Boot that may be useful:<li><a  href="http://www.remkoweijnen.nl/blog/2011/03/15/stop-0x0000005d-when-booting-windows-pe/" target="_blank">STOP: 0x0000005D when booting Windows PE</a></li><li><a  href="http://www.remkoweijnen.nl/blog/2011/03/17/compiling-drivers-for-altiris-linux-pxe-image-part-1/" target="_blank">Compiling Drivers for Altiris Linux PXE Image Part 1</a></li><li><a href="http://Compiling Drivers for Altiris Linux PXE Image Part 2" target="_blank">Compiling Drivers for Altiris Linux PXE Image Part 2</a></li></ul><p>When you schedule a Create Image task with Sysprep activated, Altiris will copy the files in the deploy.cab to C:\Sysprep on the target computer and run Sysprep.</p><p>It will also copy a default sysprep.inf file that is used to restore the target computer after imaging. But where does this sysprep.inf file come from?</p><p>The Sysprep folder is populated with some default answer files, named standard&lt;os version&gt;.inf:</p><p><a  href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/SNAGHTML34e5fbd.png" rel="lightbox" class="thickbox no_icon" title="SNAGHTML34e5fbd"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML34e5fbd" border="0" alt="SNAGHTML34e5fbd" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/SNAGHTML34e5fbd_thumb.png" width="128" height="91" /></a></p><p>So I assumed it would select the answer file based on the selected OS version. I selected Windows 2003 in my Job:</p><p><a  href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image49.png" rel="lightbox" class="thickbox no_icon" title="image"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb49.png" width="244" height="49" /></a></p><p>So I assumed it would copy <em>standard2003.inf</em> but instead it always seems to copy<em> <strong>standardxp.inf</strong>.</em></p><p>If you cannot use this file, eg because you have differing files per OS you can copy a sysprep anwer file after the create image job.</p><p>If you want to do this using Linux a sample command would be:</p><div class="dean_ch" style="white-space: wrap;">/mnt/ds/RDeploy/Linux/firm copy /mnt/ds/Sysprep/standard2003.inf PROD:/Sysprep</div><p><a  href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image50.png" rel="lightbox" class="thickbox no_icon" title="image"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb50.png" width="231" height="244" /></a></p><p><strong><u></u></strong></p><p><strong><u></u></strong></p><p><strong><u>Deploying Images</u></strong></p><p>In the Deploy Images task you can enable Sysprep support in the same manner:</p><p><a  href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image51.png" rel="lightbox" class="thickbox no_icon" title="image"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb51.png" width="244" height="73" /></a></p><p>But this time the Advanced Settings buttons allows us to select a custom Sysprep Answer file:</p><p><a  href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image52.png" rel="lightbox" class="thickbox no_icon" title="image"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb52.png" width="244" height="85" /></a></p><p>In the Answer file we can use both Default and Custom tokens, Altiris will replace them to the actual values before injecting it.</p><p>An example of using the Tokens is using the name in the Altiris Console as the new Computer Name:</p><div class="dean_ch" style="white-space: wrap;"><span class="re0"><span class="br0">&#91;</span>UserData<span class="br0">&#93;</span></span><br /> &nbsp; &nbsp;<span class="re1">ComputerName</span>=<span class="re2">%NAME%</span></div><p>Another place where this feature comes in handy is the <em>AdminPassword</em> key in the GuiUnattended section:</p><div class="dean_ch" style="white-space: wrap;"><span class="re0"><span class="br0">&#91;</span>GuiUnattended<span class="br0">&#93;</span></span><br /> &nbsp; &nbsp; AdminPassword=<span class="st0">&quot;%ADMIN_PASSWORD%&quot;</span></div><p>%ADMIN_PASSWORD% is not a default token so you must enter the password in the user_tokens table:</p><p><a  href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image53.png" rel="lightbox" class="thickbox no_icon" title="image"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb53.png" width="244" height="47" /></a></p><p>The password is stored securely because a regular user shouldn&#8217;t be able to access the eXpress database directly.</p><p>Note that I also tried to use an encrypted password in the answer file (setupmgr.exe allows you to do so) but this results in an error message during Sysprep which will halt the process until you click OK.</p><p>This behavior is documented <a  href="http://support.microsoft.com/kb/312394/en-us" target="_blank">here</a>.</p><p>Note: if you use the HP branded version of Altiris a simple User Tokens Editor is included in the Tools | HP Tools menu.</p><p>&#160;</p><p><strong><u>Multiple Disks</u></strong></p><p>By default Altiris will only create or deploy an image of the first disk. If you want to create or deploy images for multiple disks you can create a second task and use the -d&lt;number&gt; parameter.</p><p>The &#8220;<em>Do not boot to Production</em>&#8221; option will ensure that the second image is created directly after the first disk image:</p><p><a  href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image54.png" rel="lightbox" class="thickbox no_icon" title="image"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb54.png" width="223" height="244" /></a></p><p>When restoring multiple disks, the easiest way is to restore the extra disk(s) <u>first</u> by using the -d&lt;number&gt; parameter again.</p><p>Deselect &#8220;<em>Automatically perform configuration task after completing this imaging task</em>&#8220;:</p><p><a  href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image55.png" rel="lightbox" class="thickbox no_icon" title="image"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb55.png" width="209" height="244" /></a></p><p>The system disk image must be the last one restored and there you enable both configuration options:</p><p><a  href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image56.png" rel="lightbox" class="thickbox no_icon" title="image"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb56.png" width="209" height="244" /></a></p><p>(Don&#8217;t forget to select the Sysprep Answer file using the Advanced Settings option)</p> ]]></content:encoded> <wfw:commentRss>http://www.remkoweijnen.nl/blog/2011/03/22/tips-for-using-sysprep-with-altiris/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Add VMXNET3 driver to Windows PE PXE Image</title><link>http://www.remkoweijnen.nl/blog/2011/03/18/add-vmxnet3-driver-to-windows-pe-pxe-image/</link> <comments>http://www.remkoweijnen.nl/blog/2011/03/18/add-vmxnet3-driver-to-windows-pe-pxe-image/#comments</comments> <pubDate>Fri, 18 Mar 2011 13:20:08 +0000</pubDate> <dc:creator>Remko</dc:creator> <category><![CDATA[Altiris]]></category> <category><![CDATA[VMWare]]></category> <category><![CDATA[PXE]]></category> <category><![CDATA[Windows PE]]></category><guid isPermaLink="false">http://www.remkoweijnen.nl/blog/2011/03/18/add-vmxnet3-driver-to-windows-pe-pxe-image/</guid> <description><![CDATA[After compiling the VMWare VMXNET3 Driver for Linux I needed a driver for the Windows PE Image as well. Compared to what I needed to do for Linux this was a breeze! First we need the VMWare tools again so I grabbed windows.iso from /vmimages/tools-isomages. The driver files are in a cab file, VMXNET3.cab, extract [...]]]></description> <content:encoded><![CDATA[<p>After <a  href="http://www.remkoweijnen.nl/blog/2011/03/17/compiling-drivers-for-altiris-linux-pxe-image-part-2/" target="_blank">compiling the VMWare VMXNET3 Driver</a> for Linux I needed a driver for the Windows PE Image as well.</p><p>Compared to what I needed to do for Linux this was a breeze!</p><p>First we need the VMWare tools again so I grabbed windows.iso from /vmimages/tools-isomages.</p><p>The driver files are in a cab file, VMXNET3.cab, extract this cab file somewhere and open the Altiris PXE Configuration tool.</p><p>Select the Windows PE Entry and click Edit:<a  href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image39.png" rel="lightbox" class="thickbox no_icon" title="image"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb39.png" width="403" height="142" /></a></p><p>Then click Edit Boot Image: <br /><a  href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image40.png" rel="lightbox" class="thickbox no_icon" title="image"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb40.png" width="244" height="171" /></a></p><p>&#160;</p><p><span id="more-1626"></span><p>In the Boot Disk Creator right click and select Edit Configuration:<a  href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image41.png" rel="lightbox" class="thickbox no_icon" title="image"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb41.png" width="244" height="236" /></a></p><p>Click Next: <br /><a  href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image42.png" rel="lightbox" class="thickbox no_icon" title="image"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb42.png" width="244" height="196" /></a></p><p>Click Have Disk: <br /><a  href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image43.png" rel="lightbox" class="thickbox no_icon" title="image"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb43.png" width="244" height="196" /></a></p><p>Browse to the folder where you extract the cab file, I choose the <a  href="http://msdn.microsoft.com/en-us/windows/hardware/gg463234" target="_blank">NDIS5</a> driver since it&#8217;s probably the most compatible version: <br /><a  href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image44.png" rel="lightbox" class="thickbox no_icon" title="image"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb44.png" width="244" height="153" /></a></p><p>Select the appropriate platform and click OK: <br /><a  href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image45.png" rel="lightbox" class="thickbox no_icon" title="image"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb45.png" width="209" height="244" /></a></p><p>Finish the Wizard and upload the modified image to your PXE Server and that&#8217;s really all!</p> ]]></content:encoded> <wfw:commentRss>http://www.remkoweijnen.nl/blog/2011/03/18/add-vmxnet3-driver-to-windows-pe-pxe-image/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Compiling Drivers for Altiris Linux PXE Image Part 2</title><link>http://www.remkoweijnen.nl/blog/2011/03/17/compiling-drivers-for-altiris-linux-pxe-image-part-2/</link> <comments>http://www.remkoweijnen.nl/blog/2011/03/17/compiling-drivers-for-altiris-linux-pxe-image-part-2/#comments</comments> <pubDate>Thu, 17 Mar 2011 14:39:12 +0000</pubDate> <dc:creator>Remko</dc:creator> <category><![CDATA[Altiris]]></category> <category><![CDATA[VMWare]]></category><guid isPermaLink="false">http://www.remkoweijnen.nl/blog/?p=1607</guid> <description><![CDATA[In the previous part we have already setup the Ubuntu Virtual Machine and we did a build of the kernel image. So now we can finally compile the driver, in my case I needed a driver for VMWare&#8217;s VMXNET3 Network Card. VMXNET3 is VMWare&#8217;s paravirtualized network driver and offers better performance with less host processing [...]]]></description> <content:encoded><![CDATA[<p>In the <a  href="http://www.remkoweijnen.nl/blog/2011/03/17/compiling-drivers-for-altiris-linux-pxe-image-part-1/" target="_blank">previous part</a> we have already setup the Ubuntu Virtual Machine and we did a build of the kernel image.</p><p>So now we can finally compile the driver, in my case I needed a driver for VMWare&#8217;s VMXNET3 Network Card.</p><p><a  href="http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&#038;cmd=displayKC&#038;externalId=1001805" target="_blank">VMXNET3</a> is VMWare&#8217;s paravirtualized network driver and offers better performance with less host processing power compared to the default e1000 driver.</p><p>First we need the source for the driver, we can obtain this from the VMWare Tools either from a running Linux VM or like I did by transferring the file linux.iso from /vmimages/tools-isomages from the vSphere server.</p><p>In the iso file is a single file, VMWARETO.TGZ and after unpacking we get a folder called <em>vmware-tools-distrib</em>.</p><p>In <em>vmware-tools-distrib/lib/modules/source</em> we find the vmxnet3.tar file that contains our sources. Copy the tar to the Virtual Machine and unpack it, then start a Terminal and cd to the directory where you unpacked the tar.</p><p>The first time I attempted a compile I received an error indicating that the file <em>autoconf.h</em> could not be found. After I found this <a  href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/579813" target="_blank">bug report</a> I was able to fix this by creating a link:</p><div class="dean_ch" style="white-space: wrap;"><span class="kw2">sudo</span> <span class="kw2">ln</span> -s /usr/src/linux-headers<span class="nu0">-2.6</span><span class="nu0">.35</span><span class="nu0">-22</span>-generic/include/generated/<span class="kw2">autoconf</span>.h /usr/src/linux-headers<span class="nu0">-2.6</span><span class="nu0">.35</span><span class="nu0">-22</span>-generic/include/linux/<span class="kw2">autoconf</span>.h</div><p>We can compile the driver with the make command, referencing the kernel image we created earlier:</p><p><span id="more-1607"></span></p><div class="dean_ch" style="white-space: wrap;"><span class="kw2">make</span> -C /home/rweijnen/Documents/linux<span class="nu0">-2.6</span><span class="nu0">.27</span><span class="nu0">.7</span> <span class="re2">SUBDIRS=</span><span class="re1">$PWD</span> <span class="re2">SRCROOT=</span><span class="re1">$PWD</span>/. modules</div><p><a  rel="lightbox" href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image33.png" class="thickbox no_icon" title="image"><img style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb33.png" border="0" alt="image" width="244" height="108" /></a></p><p>After the compile we need to copy the .ko file, in my case vmxnet3.ko to the Altiris server, it needs to be placed in</p><div class="dean_ch" style="white-space: wrap;">eXpress\Bootwiz\platforms\&lt;platform&gt;\Drivers\CUSTOM\lib\modules\_vr_\kernel\opt\bdc</div><p><a  rel="lightbox" href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image34.png" class="thickbox no_icon" title="image"><img style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb34.png" border="0" alt="image" width="244" height="180" /></a></p><p>And the final step is to rebuild the PXE Image, goto the PXE Configuration Manager and select Linux in the Regenerate Boot Images part and click Regenerate:</p><p><a  rel="lightbox" href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image35.png" class="thickbox no_icon" title="image"><img style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb35.png" border="0" alt="image" width="244" height="175" /></a></p><p>When the regeneration has been completed you must click Save and wait until all servers are updated:</p><p><a  rel="lightbox" href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image36.png" class="thickbox no_icon" title="image"><img style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb36.png" border="0" alt="image" width="244" height="25" /></a></p><p>In the Status tab you can check the Progress (this may take a while!):</p><p><a  rel="lightbox" href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image37.png" class="thickbox no_icon" title="image"><img style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb37.png" border="0" alt="image" width="244" height="112" /></a></p><p>And when it&#8217;s updated, boot the VM and check:</p><p><a  rel="lightbox" href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image38.png" class="thickbox no_icon" title="image"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb38.png" border="0" alt="image" width="244" height="84" /></a></p><p>For your convenience the compiled binary can be downloaded below (but do know that if probably only works on the same kernel version).</p> <a  class="downloadlink" href="http://www.remkoweijnen.nl/blog/download/vmxnet3.zip" title="Version1 downloaded 70 times">VMWare VMXNET3 Linux Driver (70)</a> ]]></content:encoded> <wfw:commentRss>http://www.remkoweijnen.nl/blog/2011/03/17/compiling-drivers-for-altiris-linux-pxe-image-part-2/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Compiling Drivers for Altiris Linux PXE Image Part 1</title><link>http://www.remkoweijnen.nl/blog/2011/03/17/compiling-drivers-for-altiris-linux-pxe-image-part-1/</link> <comments>http://www.remkoweijnen.nl/blog/2011/03/17/compiling-drivers-for-altiris-linux-pxe-image-part-1/#comments</comments> <pubDate>Thu, 17 Mar 2011 12:07:22 +0000</pubDate> <dc:creator>Remko</dc:creator> <category><![CDATA[Altiris]]></category> <category><![CDATA[VMWare]]></category> <category><![CDATA[Compile]]></category> <category><![CDATA[Driver]]></category> <category><![CDATA[Kernel]]></category> <category><![CDATA[Linux]]></category><guid isPermaLink="false">http://www.remkoweijnen.nl/blog/2011/03/17/compiling-drivers-for-altiris-linux-pxe-image-part-1/</guid> <description><![CDATA[First we need to setup a Linux Virtual Machine with a distro of choice (I recommend a 32 bit version). I will be using Ubuntu here and the first step is to download the iso. At the time of writing Ubuntu 10.10 was the Latest version so I used that one. Create a new Virtual [...]]]></description> <content:encoded><![CDATA[<p>First we need to setup a Linux Virtual Machine with a distro of choice (I recommend a 32 bit version). I will be using Ubuntu here and the first step is to <a  href="http://www.ubuntu.com/desktop/get-ubuntu/download" target="_blank">download</a> the iso.</p><p>At the time of writing Ubuntu 10.10 was the Latest version so I used that one.</p><p>Create a new Virtual Machine and use the iso as install media, I am using VMWare Workstation and it recognises Ubuntu and performs an &#8220;easy install&#8221;:</p><p><a  rel="lightbox" href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image23.png" class="thickbox no_icon" title="image"><img style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb23.png" border="0" alt="image" width="244" height="64" /></a></p><p>The install is unattended (when VMWare Tools are installed you need to perform a login) and took only 6 minutes on my laptop!</p><p>Now we need to install gcc (the compiler), open the Ubuntu Software Center:</p><p><a  rel="lightbox" href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image24.png" class="thickbox no_icon" title="image"><img style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb24.png" border="0" alt="image" width="232" height="231" /></a></p><p>&nbsp;</p><p><span id="more-1594"></span></p><p>Select Get Software | Developer Tools, search for GCC and select The GNU C Compiler from the list and click Install:</p><p><a  rel="lightbox" href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image25.png" class="thickbox no_icon" title="image"><img style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb25.png" border="0" alt="image" width="244" height="82" /></a></p><p>Authenticate with the root password:</p><p><a  rel="lightbox" href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image26.png" class="thickbox no_icon" title="image"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb26.png" border="0" alt="image" width="244" height="125" /></a></p><p>Optionally install g++ as well:</p><p><a  rel="lightbox" href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image27.png" class="thickbox no_icon" title="image"><img style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb27.png" border="0" alt="image" width="244" height="114" /></a></p><p>Now we need to download the Kernel version that is used in the Altiris PXE environment.</p><p>Check the required version by starting the Boot Disk Creator and select Tools | Install Preboot Operating Systems (in my case it&#8217;s 2.6.27.7):</p><p><a  rel="lightbox" href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image28.png" class="thickbox no_icon" title="image"><img style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb28.png" border="0" alt="image" width="244" height="136" /></a></p><p>Open FireFox in the Virtual Machine and goto <a  title="http://www.kernel.org/pub/linux/kernel/v2.6/" href="http://www.kernel.org/pub/linux/kernel/v2.6/">http://www.kernel.org/pub/linux/kernel/v2.6/</a> and download the file for your version (in my case <a  href="http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.27.7.tar.gz">linux-2.6.27.7.tar.gz</a>).</p><p>FireFox suggests to open it with the Archive Manager which is fine:</p><p><a  rel="lightbox" href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image29.png" class="thickbox no_icon" title="image"><img style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb29.png" border="0" alt="image" width="244" height="168" /></a></p><p>Extract the files using the Archive Manager to your home directory (I choose the Documents folder).</p><p>Now we need to obtain the config file, the easiest way is to manually boot into Linux Automation and copy the file to the eXpress share (<em>cp /proc/config.gz /mnt/ds</em>).</p><p>Copy this file to the directory where you extracted the kernel (in mycase /home/rweijnen/documents/linux-2.6.27.7).</p><p>Now start a Terminal via Accessories | Terminal:</p><p><a  rel="lightbox" href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image30.png" class="thickbox no_icon" title="image"><img style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb30.png" border="0" alt="image" width="244" height="129" /></a></p><p>cd to the directory where you extracted the kernel and extract the config.gz file (<em>gzip -d config.gz</em>) and then rename the config file to .config (<em>mv config .config</em>):</p><p><a  rel="lightbox" href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image31.png" class="thickbox no_icon" title="image"><img style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb31.png" border="0" alt="image" width="244" height="66" /></a></p><p>Now build the kernel (<em>make bzImage modules</em>):</p><p>I got a question about Removable Drive Bay, I choose N since it doesn&#8217;t seem necessary:</p><p><a  rel="lightbox" href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image32.png" class="thickbox no_icon" title="image"><img style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb32.png" border="0" alt="image" width="244" height="84" /></a></p><p>The build may take some time!</p><p>In <a  href="http://www.remkoweijnen.nl/blog/2011/03/17/compiling-drivers-for-altiris-linux-pxe-image-part-2/">part 2</a> we will compile the driver and integrate it into the PXE Image.</p> ]]></content:encoded> <wfw:commentRss>http://www.remkoweijnen.nl/blog/2011/03/17/compiling-drivers-for-altiris-linux-pxe-image-part-1/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>STOP: 0x0000005D when booting Windows PE</title><link>http://www.remkoweijnen.nl/blog/2011/03/15/stop-0x0000005d-when-booting-windows-pe/</link> <comments>http://www.remkoweijnen.nl/blog/2011/03/15/stop-0x0000005d-when-booting-windows-pe/#comments</comments> <pubDate>Tue, 15 Mar 2011 11:47:13 +0000</pubDate> <dc:creator>Remko</dc:creator> <category><![CDATA[Altiris]]></category> <category><![CDATA[VMWare]]></category> <category><![CDATA[Windows PE]]></category><guid isPermaLink="false">http://www.remkoweijnen.nl/blog/2011/03/15/stop-0x0000005d-when-booting-windows-pe/</guid> <description><![CDATA[I was booting a new VMWare Virtual Machine with Windows PE through Altiris for initial deployment but Windows PE halted with a BSOD: 0x0000005D means UNSUPPORTED_PROCESSOR (defined in bugcodes.h) so I expected there was a x86 vs x64 problem. The VM was configured for a 32 bit OS: The Altiris Job was configured to use [...]]]></description> <content:encoded><![CDATA[<p>I was booting a new VMWare Virtual Machine with Windows PE through Altiris for initial deployment but Windows PE halted with a BSOD:</p><p><a  href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image22.png" rel="lightbox" class="thickbox no_icon" title="image"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb22.png" width="438" height="38" /></a></p><p><a  href="http://msdn.microsoft.com/en-us/library/ff559072(v=VS.85).aspx" target="_blank">0x0000005D</a> means UNSUPPORTED_PROCESSOR (defined in <a  href="http://msdn.microsoft.com/en-us/library/ff542347(v=VS.85).aspx" target="_blank">bugcodes.h</a>) so I expected there was a x86 vs x64 problem.</p><p>The VM was configured for a 32 bit OS:</p><p><a  href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image19.png" rel="lightbox" class="thickbox no_icon" title="image"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb19.png" width="244" height="120" /></a></p><p>The Altiris Job was configured to use Auto Select:</p><p><a  href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image20.png" rel="lightbox" class="thickbox no_icon" title="image"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb20.png" width="244" height="45" /></a></p><p>But instead of the x86 version of Windows PE, Altiris attempts to boot the x64 version and this explains the BSOD: VMWare prevents the CPU from going to x64 mode and thus Windows has no choice but to halt.</p><p>Workaround is to change the Automation pre-boot environment in Altiris to x86:</p><p><a  href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image21.png" rel="lightbox" class="thickbox no_icon" title="image"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb21.png" width="244" height="40" /></a></p><p>Note that it&#8217;s no problem to deploy an x64 OS using the x86 version of Windows PE so I don&#8217;t see any real problems with this workaround.</p> ]]></content:encoded> <wfw:commentRss>http://www.remkoweijnen.nl/blog/2011/03/15/stop-0x0000005d-when-booting-windows-pe/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Script to install SNMP</title><link>http://www.remkoweijnen.nl/blog/2011/02/04/script-to-install-snmp/</link> <comments>http://www.remkoweijnen.nl/blog/2011/02/04/script-to-install-snmp/#comments</comments> <pubDate>Fri, 04 Feb 2011 10:22:26 +0000</pubDate> <dc:creator>Remko</dc:creator> <category><![CDATA[Altiris]]></category> <category><![CDATA[Unattended Installation]]></category> <category><![CDATA[Windows 2003]]></category><guid isPermaLink="false">http://www.remkoweijnen.nl/blog/2011/02/04/script-to-install-snmp/</guid> <description><![CDATA[In my project the monitoring group required that SNMP was installed and configured on all servers. I wrote scripts for Windows 2003 and Windows 2008 that I deploy from my Altiris Server. This is the script for Windows 2003: @echo off rem Install SNMP rem Create Sysoc Answer File echo [NetOptionalComponents] &#160;&#62;InstallSNMP.txt echo SNMP = [...]]]></description> <content:encoded><![CDATA[<p>In my project the monitoring group required that SNMP was installed and configured on all servers.<p>I wrote scripts for Windows 2003 and Windows 2008 that I deploy from my Altiris Server.</p><p>This is the script for Windows 2003:</p><div class="dean_ch" style="white-space: wrap;">@echo off<br /> rem Install SNMP</p><p>rem Create Sysoc Answer File<br /> echo [NetOptionalComponents] &nbsp;&gt;InstallSNMP.txt<br /> echo SNMP = 1 &gt;&gt;InstallSNMP.txt<br /> echo. &gt;&gt;InstallSNMP.txt<br /> echo [SNMP] &gt;&gt;InstallSNMP.txt<br /> echo Accept_CommunityName = MYCOMMUNITY:Read_Only &gt;&gt;InstallSNMP.txt<br /> echo Any_Host = No &gt;&gt;InstallSNMP.txt<br /> echo Community_Name = &quot;MYCOMMUNITY&quot; &gt;&gt;InstallSNMP.txt <br /> echo Contact_Name = &quot;MYCONTANT&quot; &nbsp;&gt;&gt;InstallSNMP.txt<br /> echo Limit_Host = MYIP &nbsp;&gt;&gt;InstallSNMP.txt<br /> echo Location = &quot;MYLOCATION&quot; &nbsp;&gt;&gt;InstallSNMP.txt<br /> echo Send_Authentication = Yes &gt;&gt;InstallSNMP.txt<br /> echo Service = Applications, Internet, End-to-End, Physical, Datalink &gt;&gt;InstallSNMP.txt<br /> echo Traps = THETRAPIP &nbsp;&gt;&gt;InstallSNMP.txt</p><p>Sysocmgr.exe /i:\windows\inf\sysoc.inf /u:\Windows\Temp\InstallSNMP.txt /r</p></div> ]]></content:encoded> <wfw:commentRss>http://www.remkoweijnen.nl/blog/2011/02/04/script-to-install-snmp/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Restart Altiris Client Agent Service Tool</title><link>http://www.remkoweijnen.nl/blog/2011/02/04/restart-altiris-client-agent-service-tool/</link> <comments>http://www.remkoweijnen.nl/blog/2011/02/04/restart-altiris-client-agent-service-tool/#comments</comments> <pubDate>Fri, 04 Feb 2011 09:57:48 +0000</pubDate> <dc:creator>Remko</dc:creator> <category><![CDATA[Altiris]]></category><guid isPermaLink="false">http://www.remkoweijnen.nl/blog/2011/02/04/restart-altiris-client-agent-service-tool/</guid> <description><![CDATA[After a restart of the Altiris Services or the Altiris Server some machines refuse to reconnect. They are shown in the Computers Tree with the Inactive state icon: The fastest way to resolve this is to restart the &#8220;Altiris Deployment Agent&#8221; service. I wrote a little commandline tool to make this easy for myself, it&#8217;s [...]]]></description> <content:encoded><![CDATA[<p>After a restart of the Altiris Services or the Altiris Server some machines refuse to reconnect.</p><p>They are shown in the Computers Tree with the Inactive state icon:</p><p><a  href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/02/image.png" rel="lightbox" class="thickbox no_icon" title="image"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/02/image_thumb.png" width="138" height="244" /></a></p><p>The fastest way to resolve this is to restart the &#8220;Altiris Deployment Agent&#8221; service.</p><p>I wrote a little commandline tool to make this easy for myself, it&#8217;s called AClientFix.</p><p>If you don&#8217;t specify any parameters it will restart the services on the local machine. If you specify a Computername as parameter it will restart the services of a remote machine (admin rights needed of course).</p><p><a  href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/02/image1.png" rel="lightbox" class="thickbox no_icon" title="image"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/02/image_thumb1.png" width="427" height="83" /></a></p> <a  class="downloadlink" href="http://www.remkoweijnen.nl/blog/download/AClientFix.zip" title="Version1.0 downloaded 181 times">AClientFix (181)</a> ]]></content:encoded> <wfw:commentRss>http://www.remkoweijnen.nl/blog/2011/02/04/restart-altiris-client-agent-service-tool/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Script to install all print drivers on Citrix or Terminal Server</title><link>http://www.remkoweijnen.nl/blog/2011/01/25/script-to-install-all-print-drivers-on-citrix-or-terminal-server/</link> <comments>http://www.remkoweijnen.nl/blog/2011/01/25/script-to-install-all-print-drivers-on-citrix-or-terminal-server/#comments</comments> <pubDate>Tue, 25 Jan 2011 14:24:14 +0000</pubDate> <dc:creator>Remko</dc:creator> <category><![CDATA[Altiris]]></category> <category><![CDATA[Citrix]]></category> <category><![CDATA[PowerShell]]></category> <category><![CDATA[Terminal Server]]></category><guid isPermaLink="false">http://www.remkoweijnen.nl/blog/?p=1292</guid> <description><![CDATA[I wrote a PowerShell script to install all printer drivers on a Citrix or Terminal Server. Actually the script isn&#8217;t specific to Citrix or Terminal Server but on such environments we need to preload all drivers because users do not have the permissions to do that. I have chosen for PowerShell because you can do [...]]]></description> <content:encoded><![CDATA[<p>I wrote a PowerShell script to install all printer drivers on a Citrix or Terminal Server.</p><p>Actually the script isn&#8217;t specific to Citrix or Terminal Server but on such environments we need to preload all drivers because users do not have the permissions to do that.</p><p>I have chosen for PowerShell because you can do it in a one-liner which makes it easy to run this script from my Altiris server on all Citrix Servers.</p><p>The idea is that we enumerate all the shared printers on a Printer Server and make a connection to each printer. This will make sure that the driver is installed if it wasn&#8217;t already present.</p><p>The script could even be scheduled to enforce that newly added printer drivers are added to each Citrix Server.</p><p><span id="more-1292"></span></p><p>To enumerate all printers we can use the <a  href="http://msdn.microsoft.com/en-us/library/aa394363(v=vs.85).aspx" target="_blank">Win32_Printer</a> WMI class like this:</p><div class="dean_ch" style="white-space: wrap;"><span class="re0">Get-<span class="re1">WmiObject</span></span> win32_printer <span class="re2">-ComputerName</span> <span class="st0">&quot;MYSERVER&quot;</span></div><p>It&#8217;s possible that some printers are not shared so we are going to filter that out using the -filter parameter:</p><div class="dean_ch" style="white-space: wrap;"><span class="re0">Get-<span class="re1">WmiObject</span></span> win32_printer <span class="re2">-ComputerName</span> <span class="st0">&quot;MYSERVER&quot;</span></div><p>Our next step is to make a printer connection and MSDN shows that the win32_printer class has an <a  href="http://msdn.microsoft.com/en-us/library/aa384769(v=vs.85).aspx" target="_blank">AddPrinterConnection</a> method.</p><p>So I first tried:</p><div class="dean_ch" style="white-space: wrap;"><span class="re3">$Wmi</span>.<span class="me1">AddPrinterConnection</span><span class="br0">&#40;</span><span class="st0">&quot;\\MYSERVER\PRINTER&quot;</span><span class="br0">&#41;</span><br /> Method invocation failed because <span class="re4"><span class="br0">&#91;</span><span class="kw3">System</span>.<span class="me1">Object</span><span class="br0">&#91;</span><span class="br0">&#93;</span><span class="br0">&#93;</span></span> doesn<span class="st0">&#8216;t contain a method named &#8216;</span>AddPrinterConnection<span class="st0">&#8216;.<br /> At line:1 char:26<br /> + $Wmi.AddPrinterConnection &lt;&lt;&lt;&lt; (&quot;\\SERVER\PRINTER&quot;)<br /> &nbsp; &nbsp; + CategoryInfo &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: InvalidOperation: (AddPrinterConnection:String) [], RuntimeException<br /> &nbsp; &nbsp; + FullyQualifiedErrorId : MethodNotFound</span></div><p>I am not sure of the exact reason but obviously there is no access to the AddPrinterConnection method.</p><p>This works though:</p><div class="dean_ch" style="white-space: wrap;"><span class="re3">$Wmi</span> = <span class="br0">&#40;</span><span class="re4"><span class="br0">&#91;</span><span class="kw3">wmiclass</span><span class="br0">&#93;</span></span><span class="st0">&quot;Win32_Printer&quot;</span><span class="br0">&#41;</span><br /> <span class="re3">$Wmi</span>.<span class="me1">AddPrinterConnection</span><span class="br0">&#40;</span><span class="st0">&quot;\\MYSERVER\PRINTER&quot;</span><span class="br0">&#41;</span></div><p>Now we can use the For-Each Object to make a connection to each printer using the __SERVER property for the servername and the ShareName property for the Printername:</p><p>Once again I met a PowerShell oddity: I couldn&#8217;t use AddPrinterConnection(&#8220;\\$_.__SERVER\$_.ShareName&#8221;) so I used:</p><div class="dean_ch" style="white-space: wrap;"><span class="re3">$Wmi</span>.<span class="me1">AddPrinterConnection</span><span class="br0">&#40;</span> <span class="re4"><span class="br0">&#91;</span><span class="kw3">string</span><span class="br0">&#93;</span></span>::<span class="me2">Concat</span><span class="br0">&#40;</span><span class="st0">&quot;\\&quot;</span>, <span class="re3">$_</span>.__SERVER, <span class="st0">&quot;\&quot;</span>, <span class="re3">$_</span>.<span class="me1">ShareName</span><span class="br0">&#41;</span> <span class="br0">&#41;</span></div><p>And finally we put the whole thing in a one liner, replacing double quote (&#8220;) with (&#8216;) and using the gwmi alias to make the line shorter:</p><div class="dean_ch" style="white-space: wrap;"><span class="kw3">powershell</span>.<span class="me1">exe</span> <span class="st0">&quot;&amp; { $Wmi = ([wmiclass]&#8216;Win32_Printer&#8217;) ; $Wmi.Scope.Options.EnablePrivileges = $true; gwmi win32_printer -ComputerName &#8216;ADNRD02&#8242; -Filter &#8216;shared=true&#8217; | foreach {$Wmi.AddPrinterConnection( [string]::Concat(&#8216;\\&#8217;, $_.__SERVER, &#8216;\&#8217;, $_.ShareName) )} }&quot;</span></div><p><span style="color: #ff0000;"><strong>EDIT:</strong></span> In order to load new driver we need to enable the SeLoadDriverPrivilege. I have corrected the code above,  see <a  href="http://www.remkoweijnen.nl/blog/2011/01/27/enabling-privileges-for-wmi-in-powershell/">Enabling Privileges for WMI in PowerShell</a> for an explanation.</p> ]]></content:encoded> <wfw:commentRss>http://www.remkoweijnen.nl/blog/2011/01/25/script-to-install-all-print-drivers-on-citrix-or-terminal-server/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>Kofax VRS Unattended Install</title><link>http://www.remkoweijnen.nl/blog/2011/01/18/kofax-vrs-unattended-install/</link> <comments>http://www.remkoweijnen.nl/blog/2011/01/18/kofax-vrs-unattended-install/#comments</comments> <pubDate>Tue, 18 Jan 2011 13:53:39 +0000</pubDate> <dc:creator>Remko</dc:creator> <category><![CDATA[Altiris]]></category> <category><![CDATA[Packaging]]></category> <category><![CDATA[Unattended Installation]]></category><guid isPermaLink="false">http://www.remkoweijnen.nl/blog/?p=1222</guid> <description><![CDATA[Recently I needed to create an Unattended Install for an application that uses a piece of software (for scanning) called Kofax VRS. This Kofax software comes with an .msi file but there was no documentation on the install options. In fact it didn&#8217;t seem like the Vendor anticipated on an Unatttended Install. I browsed in [...]]]></description> <content:encoded><![CDATA[<p>Recently I needed to create an Unattended Install for an application that uses a piece of software (for scanning) called <a  href="http://www.kofax.com/vrs-virtualrescan/" target="_blank">Kofax VRS</a>.</p><p>This Kofax software comes with an .msi file but there was no documentation on the install options.</p><p>In fact it didn&#8217;t seem like the Vendor anticipated on an Unatttended Install.</p><p>I browsed in the msi file using <a  href="http://msdn.microsoft.com/en-us/library/aa370557(v=vs.85).aspx" target="_blank">Microsoft&#8217;s Orca tool</a> and tried some of the properties I found in the public properties table.</p><p><span id="more-1222"></span>The VRSMODE property relates to the options in the first dialog:</p><p><a  rel="lightbox" href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/01/image.png" class="thickbox no_icon" title="image"><img style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/01/image_thumb.png" border="0" alt="image" width="244" height="184" /></a></p><p>The CONFIGSCANNERLATER2 property corresponds to this dialog (there is also a CONFIGSCANNERLATER property but it seems to have no effect):</p><p><a  rel="lightbox" href="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/01/image1.png" class="thickbox no_icon" title="image"><img style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2011/01/image_thumb1.png" border="0" alt="image" width="244" height="227" /></a></p><p>So my complete install line was:</p><div class="dean_ch" style="white-space: wrap;">MsiExec /i &quot;%InstallPath%\Kofax\Kofax VirtualReScan 4.50.msi&quot; CONFIGSCANNERLATER2=1 VRSMODE=2 INSTALLDIR=D:\Apps\Dis4Fis\Kofax ALLUSERS=2 Reboot=ReallySuppress  /Qb- /liewa &quot;%JobFolder%\%computername%.log&quot;</div> ]]></content:encoded> <wfw:commentRss>http://www.remkoweijnen.nl/blog/2011/01/18/kofax-vrs-unattended-install/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> </channel> </rss>
