<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Altiris on Remko's Blog</title><link>https://remkoweijnen.nl/blog/categories/altiris/</link><description>Recent content in Altiris on Remko's Blog</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 29 Apr 2011 10:27:27 +0000</lastBuildDate><atom:link href="https://remkoweijnen.nl/blog/categories/altiris/index.xml" rel="self" type="application/rss+xml"/><item><title>Apply IP Configuration from a Database</title><link>https://remkoweijnen.nl/blog/2011/04/29/apply-ip-configuration-from-a-database/</link><pubDate>Fri, 29 Apr 2011 10:27:27 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2011/04/29/apply-ip-configuration-from-a-database/</guid><description>&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;In the OS Configuration part the IP configuration needs to be applied and I decided to do this with a database.&lt;/p&gt;
&lt;p&gt;The database consists of 2 tables; one table with the per host settings and one table with the global settings (such as DNS).&lt;/p&gt;
&lt;p&gt;In the Altiris job both tables are read from an embedded VBScript and assigned to the NIC.&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: underline;"&gt;&lt;strong&gt;Database configuration&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I created a database (SQL Server) called IPManagement with 2 tables:&lt;/p&gt;
&lt;p&gt;&lt;a class="glightbox" data-type="image" data-gallery="post-1695" href="https://remkoweijnen.nl/blog/wp-content/uploads/2011/04/image7.webp"&gt;&lt;img loading="lazy" decoding="async" style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="https://remkoweijnen.nl/blog/wp-content/uploads/2011/04/image_thumb7.webp" border="0" alt="image" width="177" height="100" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</description></item><item><title>Tips for using SysPrep with Altiris</title><link>https://remkoweijnen.nl/blog/2011/03/22/tips-for-using-sysprep-with-altiris/</link><pubDate>Tue, 22 Mar 2011 12:29:32 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2011/03/22/tips-for-using-sysprep-with-altiris/</guid><description>&lt;p&gt;Altiris has built in support for &lt;a href="http://en.wikipedia.org/wiki/Sysprep" target="_blank"&gt;Sysprep&lt;/a&gt; when creating or distributing images.&lt;/p&gt; &lt;p&gt;The documentation doesn't mention some things that are worth knowing so I will try to address them in this post.&lt;/p&gt; &lt;p&gt;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.&lt;/p&gt; &lt;p&gt;If you didn'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 &lt;em&gt;Sysprep\DotNet\x86&lt;/em&gt;:&lt;/p&gt; &lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2011/03/image46.webp" class="glightbox" data-type="image" data-gallery="post-1651"&gt;&lt;img loading="lazy" decoding="async" 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="https://remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb46.webp" width="86" height="244" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;As I wrote earlier in &lt;a href="https://remkoweijnen.nl/blog/2010/11/03/cannot-complete-customization-when-cloning-from-template/" target="_blank"&gt;this post&lt;/a&gt; it's very important to use the correct Sysprep version as each OS has it's own version. &lt;br /&gt;&lt;/p&gt;</description></item><item><title>Add VMXNET3 driver to Windows PE PXE Image</title><link>https://remkoweijnen.nl/blog/2011/03/18/add-vmxnet3-driver-to-windows-pe-pxe-image/</link><pubDate>Fri, 18 Mar 2011 14:20:08 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2011/03/18/add-vmxnet3-driver-to-windows-pe-pxe-image/</guid><description>&lt;p&gt;After &lt;a href="https://remkoweijnen.nl/blog/2011/03/17/compiling-drivers-for-altiris-linux-pxe-image-part-2/" target="_blank"&gt;compiling the VMWare VMXNET3 Driver&lt;/a&gt; for Linux I needed a driver for the Windows PE Image as well.&lt;/p&gt; &lt;p&gt;Compared to what I needed to do for Linux this was a breeze!&lt;/p&gt; &lt;p&gt;First we need the VMWare tools again so I grabbed windows.iso from /vmimages/tools-isomages.&lt;/p&gt; &lt;p&gt;The driver files are in a cab file, VMXNET3.cab, extract this cab file somewhere and open the Altiris PXE Configuration tool.&lt;/p&gt; &lt;p&gt;Select the Windows PE Entry and click Edit:&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2011/03/image39.webp" class="glightbox" data-type="image" data-gallery="post-1626"&gt;&lt;img loading="lazy" decoding="async" 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="https://remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb39.webp" width="403" height="142" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Then click Edit Boot Image: &lt;br /&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2011/03/image40.webp" class="glightbox" data-type="image" data-gallery="post-1626"&gt;&lt;img loading="lazy" decoding="async" 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="https://remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb40.webp" width="244" height="171" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;#160;&lt;/p&gt;</description></item><item><title>Compiling Drivers for Altiris Linux PXE Image Part 2</title><link>https://remkoweijnen.nl/blog/2011/03/17/compiling-drivers-for-altiris-linux-pxe-image-part-2/</link><pubDate>Thu, 17 Mar 2011 15:39:12 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2011/03/17/compiling-drivers-for-altiris-linux-pxe-image-part-2/</guid><description>&lt;p&gt;In the &lt;a href="https://remkoweijnen.nl/blog/2011/03/17/compiling-drivers-for-altiris-linux-pxe-image-part-1/" target="_blank"&gt;previous part&lt;/a&gt; we have already setup the Ubuntu Virtual Machine and we did a build of the kernel image.&lt;/p&gt;
&lt;p&gt;So now we can finally compile the driver, in my case I needed a driver for VMWare&amp;rsquo;s VMXNET3 Network Card.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1001805" target="_blank"&gt;VMXNET3&lt;/a&gt; is VMWare&amp;rsquo;s paravirtualized network driver and offers better performance with less host processing power compared to the default e1000 driver.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;In the iso file is a single file, VMWARETO.TGZ and after unpacking we get a folder called &lt;em&gt;vmware-tools-distrib&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;In &lt;em&gt;vmware-tools-distrib/lib/modules/source&lt;/em&gt; 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.&lt;/p&gt;
&lt;p&gt;The first time I attempted a compile I received an error indicating that the file &lt;em&gt;autoconf.h&lt;/em&gt; could not be found. After I found this &lt;a href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/579813" target="_blank"&gt;bug report&lt;/a&gt; I was able to fix this by creating a link:&lt;/p&gt;
&lt;div class="codecard"&gt;
 &lt;div class="codehead"&gt;
 &lt;span class="codefile"&gt;&lt;span class="codelang"&gt;bash&lt;/span&gt;&lt;/span&gt;
 &lt;span class="codetools" data-pagefind-ignore&gt;
 &lt;button class="codebtn" type="button" data-copy&gt;Copy&lt;/button&gt;
 &lt;a class="codebtn" download=".sh" href="data:text/plain;charset=utf-8;base64,c3VkbyBsbiAtcyAvdXNyL3NyYy9saW51eC1oZWFkZXJzLTIuNi4zNS0yMi1nZW5lcmljL2luY2x1ZGUvZ2VuZXJhdGVkL2F1dG9jb25mLmggL3Vzci9zcmMvbGludXgtaGVhZGVycy0yLjYuMzUtMjItZ2VuZXJpYy9pbmNsdWRlL2xpbnV4L2F1dG9jb25mLmg="&gt;Download&lt;/a&gt;
 &lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="codebody"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo ln -s /usr/src/linux-headers-2.6.35-22-generic/include/generated/autoconf.h /usr/src/linux-headers-2.6.35-22-generic/include/linux/autoconf.h&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;We can compile the driver with the make command, referencing the kernel image we created earlier:&lt;/p&gt;</description></item><item><title>Compiling Drivers for Altiris Linux PXE Image Part 1</title><link>https://remkoweijnen.nl/blog/2011/03/17/compiling-drivers-for-altiris-linux-pxe-image-part-1/</link><pubDate>Thu, 17 Mar 2011 13:07:22 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2011/03/17/compiling-drivers-for-altiris-linux-pxe-image-part-1/</guid><description>&lt;p&gt;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 &lt;a href="http://www.ubuntu.com/desktop/get-ubuntu/download" target="_blank"&gt;download&lt;/a&gt; the iso.&lt;/p&gt;
&lt;p&gt;At the time of writing Ubuntu 10.10 was the Latest version so I used that one.&lt;/p&gt;
&lt;p&gt;Create a new Virtual Machine and use the iso as install media, I am using VMWare Workstation and it recognises Ubuntu and performs an &amp;ldquo;easy install&amp;rdquo;:&lt;/p&gt;
&lt;p&gt;&lt;a class="glightbox" data-type="image" data-gallery="post-1594" href="https://remkoweijnen.nl/blog/wp-content/uploads/2011/03/image23.webp"&gt;&lt;img loading="lazy" decoding="async" style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="https://remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb23.webp" border="0" alt="image" width="244" height="64" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The install is unattended (when VMWare Tools are installed you need to perform a login) and took only 6 minutes on my laptop!&lt;/p&gt;
&lt;p&gt;Now we need to install gcc (the compiler), open the Ubuntu Software Center:&lt;/p&gt;
&lt;p&gt;&lt;a class="glightbox" data-type="image" data-gallery="post-1594" href="https://remkoweijnen.nl/blog/wp-content/uploads/2011/03/image24.webp"&gt;&lt;img loading="lazy" decoding="async" style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="https://remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb24.webp" border="0" alt="image" width="232" height="231" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</description></item><item><title>STOP: 0x0000005D when booting Windows PE</title><link>https://remkoweijnen.nl/blog/2011/03/15/stop-0x0000005d-when-booting-windows-pe/</link><pubDate>Tue, 15 Mar 2011 12:47:13 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2011/03/15/stop-0x0000005d-when-booting-windows-pe/</guid><description>&lt;p&gt;I was booting a new VMWare Virtual Machine with Windows PE through Altiris for initial deployment but Windows PE halted with a BSOD:&lt;/p&gt; &lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2011/03/image22.webp" class="glightbox" data-type="image" data-gallery="post-1570"&gt;&lt;img loading="lazy" decoding="async" 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="https://remkoweijnen.nl/blog/wp-content/uploads/2011/03/image_thumb22.webp" width="438" height="38" /&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Script to install SNMP</title><link>https://remkoweijnen.nl/blog/2011/02/04/script-to-install-snmp/</link><pubDate>Fri, 04 Feb 2011 11:22:26 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2011/02/04/script-to-install-snmp/</guid><description>&lt;p&gt;In my project the monitoring group required that SNMP was installed and configured on all servers. &lt;p&gt;I wrote scripts for Windows 2003 and Windows 2008 that I deploy from my Altiris Server.&lt;/p&gt; &lt;p&gt;This is the script for Windows 2003:&lt;/p&gt;&lt;/p&gt;
&lt;div class="codecard"&gt;
 &lt;div class="codehead"&gt;
 &lt;span class="codefile"&gt;&lt;span class="codelang"&gt;batch&lt;/span&gt;&lt;/span&gt;
 &lt;span class="codetools" data-pagefind-ignore&gt;
 &lt;button class="codebtn" type="button" data-copy&gt;Copy&lt;/button&gt;
 &lt;a class="codebtn" download=".bat" href="data:text/plain;charset=utf-8;base64,QGVjaG8gb2ZmCnJlbSBJbnN0YWxsIFNOTVAKCnJlbSBDcmVhdGUgU3lzb2MgQW5zd2VyIEZpbGUKZWNobyBbTmV0T3B0aW9uYWxDb21wb25lbnRzXSAgPkluc3RhbGxTTk1QLnR4dAplY2hvIFNOTVAgPSAxID4&amp;#43;SW5zdGFsbFNOTVAudHh0CmVjaG8uID4&amp;#43;SW5zdGFsbFNOTVAudHh0CmVjaG8gW1NOTVBdID4&amp;#43;SW5zdGFsbFNOTVAudHh0CmVjaG8gQWNjZXB0X0NvbW11bml0eU5hbWUgPSBNWUNPTU1VTklUWTpSZWFkX09ubHkgPj5JbnN0YWxsU05NUC50eHQKZWNobyBBbnlfSG9zdCA9IE5vID4&amp;#43;SW5zdGFsbFNOTVAudHh0CmVjaG8gQ29tbXVuaXR5X05hbWUgPSAiTVlDT01NVU5JVFkiID4&amp;#43;SW5zdGFsbFNOTVAudHh0CmVjaG8gQ29udGFjdF9OYW1lID0gIk1ZQ09OVEFOVCIgID4&amp;#43;SW5zdGFsbFNOTVAudHh0CmVjaG8gTGltaXRfSG9zdCA9IE1ZSVAgID4&amp;#43;SW5zdGFsbFNOTVAudHh0CmVjaG8gTG9jYXRpb24gPSAiTVlMT0NBVElPTiIgID4&amp;#43;SW5zdGFsbFNOTVAudHh0CmVjaG8gU2VuZF9BdXRoZW50aWNhdGlvbiA9IFllcyA&amp;#43;Pkluc3RhbGxTTk1QLnR4dAplY2hvIFNlcnZpY2UgPSBBcHBsaWNhdGlvbnMsIEludGVybmV0LCBFbmQtdG8tRW5kLCBQaHlzaWNhbCwgRGF0YWxpbmsgPj5JbnN0YWxsU05NUC50eHQKZWNobyBUcmFwcyA9IFRIRVRSQVBJUCAgPj5JbnN0YWxsU05NUC50eHQKClN5c29jbWdyLmV4ZSAvaTpcd2luZG93c1xpbmZcc3lzb2MuaW5mIC91OlxXaW5kb3dzXFRlbXBcSW5zdGFsbFNOTVAudHh0IC9y"&gt;Download&lt;/a&gt;
 &lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="codebody"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-batch" data-lang="batch"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="k"&gt;echo&lt;/span&gt; off
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;rem Install SNMP&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;rem Create Sysoc Answer File&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt; [NetOptionalComponents] &lt;span class="p"&gt;&amp;gt;&lt;/span&gt;InstallSNMP.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt; SNMP = 1 &lt;span class="p"&gt;&amp;gt;&amp;gt;&lt;/span&gt;InstallSNMP.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt;. &lt;span class="p"&gt;&amp;gt;&amp;gt;&lt;/span&gt;InstallSNMP.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt; [SNMP] &lt;span class="p"&gt;&amp;gt;&amp;gt;&lt;/span&gt;InstallSNMP.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt; Accept_CommunityName = MYCOMMUNITY:Read_Only &lt;span class="p"&gt;&amp;gt;&amp;gt;&lt;/span&gt;InstallSNMP.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt; Any_Host = No &lt;span class="p"&gt;&amp;gt;&amp;gt;&lt;/span&gt;InstallSNMP.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt; Community_Name = &lt;span class="s2"&gt;&amp;#34;MYCOMMUNITY&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;&amp;gt;&amp;gt;&lt;/span&gt;InstallSNMP.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt; Contact_Name = &lt;span class="s2"&gt;&amp;#34;MYCONTANT&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;&amp;gt;&amp;gt;&lt;/span&gt;InstallSNMP.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt; Limit_Host = MYIP &lt;span class="p"&gt;&amp;gt;&amp;gt;&lt;/span&gt;InstallSNMP.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt; Location = &lt;span class="s2"&gt;&amp;#34;MYLOCATION&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;&amp;gt;&amp;gt;&lt;/span&gt;InstallSNMP.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt; Send_Authentication = Yes &lt;span class="p"&gt;&amp;gt;&amp;gt;&lt;/span&gt;InstallSNMP.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt; Service = Applications, Internet, End-to-End, Physical, Datalink &lt;span class="p"&gt;&amp;gt;&amp;gt;&lt;/span&gt;InstallSNMP.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt; Traps = THETRAPIP &lt;span class="p"&gt;&amp;gt;&amp;gt;&lt;/span&gt;InstallSNMP.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Sysocmgr.exe /i:\windows\inf\sysoc.inf /u:\Windows\Temp\InstallSNMP.txt /r&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>Restart Altiris Client Agent Service Tool</title><link>https://remkoweijnen.nl/blog/2011/02/04/restart-altiris-client-agent-service-tool/</link><pubDate>Fri, 04 Feb 2011 10:57:48 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2011/02/04/restart-altiris-client-agent-service-tool/</guid><description>&lt;p&gt;After a restart of the Altiris Services or the Altiris Server some machines refuse to reconnect.&lt;/p&gt; &lt;p&gt;They are shown in the Computers Tree with the Inactive state icon:&lt;/p&gt; &lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2011/02/image.webp" class="glightbox" data-type="image" data-gallery="post-1391"&gt;&lt;img loading="lazy" decoding="async" 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="https://remkoweijnen.nl/blog/wp-content/uploads/2011/02/image_thumb.webp" width="138" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Script to install all print drivers on Citrix or Terminal Server</title><link>https://remkoweijnen.nl/blog/2011/01/25/script-to-install-all-print-drivers-on-citrix-or-terminal-server/</link><pubDate>Tue, 25 Jan 2011 15:24:14 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2011/01/25/script-to-install-all-print-drivers-on-citrix-or-terminal-server/</guid><description>&lt;p&gt;I wrote a PowerShell script to install all printer drivers on a Citrix or Terminal Server.&lt;/p&gt;
&lt;p&gt;Actually the script isn&amp;rsquo;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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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&amp;rsquo;t already present.&lt;/p&gt;
&lt;p&gt;The script could even be scheduled to enforce that newly added printer drivers are added to each Citrix Server.&lt;/p&gt;</description></item><item><title>Kofax VRS Unattended Install</title><link>https://remkoweijnen.nl/blog/2011/01/18/kofax-vrs-unattended-install/</link><pubDate>Tue, 18 Jan 2011 14:53:39 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2011/01/18/kofax-vrs-unattended-install/</guid><description>&lt;p&gt;Recently I needed to create an Unattended Install for an application that uses a piece of software (for scanning) called &lt;a href="http://www.kofax.com/vrs-virtualrescan/" target="_blank"&gt;Kofax VRS&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This Kofax software comes with an .msi file but there was no documentation on the install options.&lt;/p&gt;
&lt;p&gt;In fact it didn&amp;rsquo;t seem like the Vendor anticipated on an Unatttended Install.&lt;/p&gt;
&lt;p&gt;I browsed in the msi file using &lt;a href="http://msdn.microsoft.com/en-us/library/aa370557(v=vs.85).aspx" target="_blank"&gt;Microsoft&amp;rsquo;s Orca tool&lt;/a&gt; and tried some of the properties I found in the public properties table.&lt;/p&gt;</description></item><item><title>Default User Profile: Remko’s solution</title><link>https://remkoweijnen.nl/blog/2011/01/04/default-user-profile-remkos-solution/</link><pubDate>Tue, 04 Jan 2011 15:46:18 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2011/01/04/default-user-profile-remkos-solution/</guid><description>&lt;p&gt;If you are implementing a Citrix, Terminal Server or even just a plain Client-Server environment you will need to create a Default User Profile at some point.&lt;/p&gt;
&lt;p&gt;The Default User Profile can be thought of as the initial registry settings that are used when a new profile is created.&lt;/p&gt;
&lt;p&gt;Many people think that the Default User Profile is available in regedit via HKEY_USERS.Default but this is NOT the Default User Profile.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2011/01/usersdefault.webp" class="glightbox" data-type="image" data-gallery="post-1066"&gt;&lt;img loading="lazy" decoding="async" src="https://remkoweijnen.nl/blog/wp-content/uploads/2011/01/usersdefault-small.webp" alt="UsersDefault" width="430" height="165" /&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Unattended Installation of the Oracle Client</title><link>https://remkoweijnen.nl/blog/2010/12/27/unattended-installation-of-the-oracle-client/</link><pubDate>Mon, 27 Dec 2010 17:20:48 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2010/12/27/unattended-installation-of-the-oracle-client/</guid><description>&lt;p&gt;Last week I needed to an unattended installation of the Oracle Client, in my case version 10.2.0.1.0.&lt;/p&gt;
&lt;p&gt;Oracle has a record switch that allows you to record an installation and generate a response file using: setup -record -destinationFile response_file_name. This is documented &lt;a title="Installing Oracle Database Client Using Response Files" href="http://download.oracle.com/docs/cd/B19306_01/install.102/b14312/advance.htm#BBAEDBJG" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;When you are finished you can use this response file to perform the unattended install, eg setup -silent -responseFile response_file_name.&lt;/p&gt;
&lt;p&gt;There is a problem though, the installer (setup.exe) launches a java based installer and immediately returns.&lt;/p&gt;
&lt;p&gt;This was a problem for me since I cannot deploy a dependant application if the Oracle install hasn&amp;rsquo;t finished yet.&lt;/p&gt;
&lt;p&gt;I did some googling and found a lot of questions about this subject and saw a common resolution where a script is watching a certain file that is creating when the installation has finished in a loop.&lt;/p&gt;
&lt;p&gt;I figured there should be a better wait so I to a closer look at the installer with &lt;a title="The IDA Pro Disassebler and Debugger" href="http://www.hex-rays.com/idapro/" target="_blank"&gt;Ida Pro&lt;/a&gt;. I noticed that setup.exe launches another exe. called oui.exe (Oracle Universal Installer) which in turn launches Java.&lt;/p&gt;</description></item><item><title>Unattended Installation of IBM System i Access for Windows</title><link>https://remkoweijnen.nl/blog/2010/12/24/unattended-installation-of-ibm-system-i-access-for-windows/</link><pubDate>Fri, 24 Dec 2010 15:52:04 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2010/12/24/unattended-installation-of-ibm-system-i-access-for-windows/</guid><description>&lt;p&gt;Today I needed to script the installation of IBM System i Access for Windows (formerly called IBM Client Access).&lt;/p&gt;
&lt;p&gt;With older versions of this client (up to 5.4) you could use the -r (record) installer switch to record the install in a setup.iss file but version 6.1 uses an MSI based installer.&lt;/p&gt;
&lt;p&gt;IBM offers the client in a 2 DVD download but you probably only need the first dvd (dvd 1 has both the x86 and x64 installers, dvd 2 has the ia64 installer) which is a whopping 3,5 GB download.&lt;/p&gt;
&lt;p&gt;Inside the download (a zip) is an iso file of which you will only need the files in the root and the Image32 or Image64a folder.&lt;/p&gt;
&lt;p&gt;Inside the image folder are subfolders names MRI29xx where xx is a language identifier:&lt;/p&gt;
&lt;p&gt;The following Identifiers are used:&lt;/p&gt;</description></item><item><title>Master Return codes in Altiris</title><link>https://remkoweijnen.nl/blog/2010/12/24/master-return-codes-in-altiris/</link><pubDate>Fri, 24 Dec 2010 15:48:17 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2010/12/24/master-return-codes-in-altiris/</guid><description>&lt;p&gt;Altiris offers a Master Return code, a very usefull feature that is not used often I think. In this article I will explain why I find them usefull and we will implement a Master Return code for Installations that require a reboot.&lt;/p&gt;
&lt;p&gt;A Master Return code can be consired as a Global Action handler, whenever a job returns a specific error/return/result code this Global handler will be called (unless you override it in the job with another action).&lt;/p&gt;
&lt;p&gt;A perfect usage for a Global Action handler is installing MSI files that need I reboot. If you do nothing the system will be rebooted after the successfull installation and your job will return as failed with error 3010.&lt;/p&gt;
&lt;p&gt;Microsoft &lt;a title="Error Codes (Windows)" href="http://msdn.microsoft.com/en-us/library/aa368542(v=vs.85).aspx" target="_blank"&gt;documents&lt;/a&gt; that 3010 means ERROR_SUCCESS_REBOOT_REQUIRED: A restart is required to complete the install. This message is indicative of a success.&lt;/p&gt;
&lt;p&gt;To prevent the reboot we can pass REBOOT=ReallySurpress to the MSI but we still need to indicate to Altirs that 3010 actually means Success and that we need to reboot.&lt;/p&gt;</description></item><item><title>Citrix Online Plugin could not launch the requested published application</title><link>https://remkoweijnen.nl/blog/2010/12/22/citrix-online-plugin-could-not-launch-the-requested-published-application/</link><pubDate>Wed, 22 Dec 2010 14:10:31 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2010/12/22/citrix-online-plugin-could-not-launch-the-requested-published-application/</guid><description>&lt;p&gt;After doing an unattended installation of the Citrix Online Plugin it was not possible to launch a Published Application.&lt;/p&gt;
&lt;p&gt;It would just give the error mesage: "citrix online plugin could not launch the requested published application".&lt;/p&gt;
&lt;p&gt;Even though the installation finished without errors and the logfiles indicated no failure at all I was able to fix it by using 2 steps described in &lt;a title="Offline Plug-in 11.2 Unattended Installation Fails" href="http://support.citrix.com/article/CTX123761" target="_blank"&gt;CTX123761&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Packaging an Application that uses the BDE</title><link>https://remkoweijnen.nl/blog/2010/12/14/packaging-an-application-that-uses-the-bde/</link><pubDate>Tue, 14 Dec 2010 21:12:58 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2010/12/14/packaging-an-application-that-uses-the-bde/</guid><description>&lt;p&gt;Today I needed to package an application that uses the Borland Database Engine (BDE).&lt;/p&gt;
&lt;p&gt;The BDE is a database engine/connectivity component commonly used in Delphi and C++ Builder applications. It has been deprecated since 2000 when it was replaced by dbExpress.&lt;/p&gt;
&lt;p&gt;But it&amp;rsquo;s still widely used so you may still find applications that require the BDE.&lt;/p&gt;
&lt;p&gt;In my environment I already have a package for the BDE itsself. But the application I needed to package today, needs to have an Alias addded.&lt;/p&gt;
&lt;p&gt;This is usually done manually by going into the BDEADMIN control panel applet or by copying the file where BDE saves the aliases (IDAPI32.CFG).&lt;/p&gt;
&lt;p&gt;Here is a screenshot of the Alias my application needs (it uses an Interbase database):&lt;/p&gt;
&lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2010/12/bde.webp" class="glightbox" data-type="image" data-gallery="post-868"&gt;&lt;img loading="lazy" decoding="async" src="https://remkoweijnen.nl/blog/wp-content/uploads/2010/12/bde-small.webp" alt="BDE" width="430" height="302" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I didn&amp;rsquo;t like the copy approach and didn&amp;rsquo;t even consider the manual option so I wrote 2 little tools.&lt;/p&gt;</description></item><item><title>Writing Environment Variables to the Registry from a Script</title><link>https://remkoweijnen.nl/blog/2010/12/13/writing-environment-variables-to-the-registry-from-a-script/</link><pubDate>Mon, 13 Dec 2010 20:52:59 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2010/12/13/writing-environment-variables-to-the-registry-from-a-script/</guid><description>&lt;p&gt;I usually change the text below the &amp;ldquo;This Computer&amp;rdquo; icon to reflect the current username and servername:&lt;/p&gt;
&lt;img loading="lazy" decoding="async" src="https://remkoweijnen.nl/blog/wp-content/uploads/2010/12/useroncomputer.webp" alt="UserOnComputer" width="86" height="83" /&gt;
&lt;p&gt;This is an ancient trick, just set the the &lt;em&gt;LocalizedString&lt;/em&gt; Value of the following key:&lt;/p&gt;
&lt;div class="codecard"&gt;
 &lt;div class="codehead"&gt;
 &lt;span class="codefile"&gt;&lt;span class="codelang"&gt;batch&lt;/span&gt;&lt;/span&gt;
 &lt;span class="codetools" data-pagefind-ignore&gt;
 &lt;button class="codebtn" type="button" data-copy&gt;Copy&lt;/button&gt;
 &lt;a class="codebtn" download=".bat" href="data:text/plain;charset=utf-8;base64,SEtFWV9DTEFTU0VTX1JPT1RcQ0xTSURcezIwRDA0RkUwLTNBRUEtMTA2OS1BMkQ4LTA4MDAyQjMwMzA5RH0="&gt;Download&lt;/a&gt;
 &lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="codebody"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-batch" data-lang="batch"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;to &amp;ldquo;%USERNAME% on %COMPUTERNAME%&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;It get&amp;rsquo;s a little more complicated if you want to set this from a script, because the environment variables are replaced with the actual value BEFORE they are entered in the Registry.&lt;/p&gt;</description></item><item><title>SQL Query to get the Full Path of an Altiris Job #3</title><link>https://remkoweijnen.nl/blog/2010/12/12/sql-query-to-get-the-full-path-of-an-altiris-job-3/</link><pubDate>Sun, 12 Dec 2010 19:50:32 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2010/12/12/sql-query-to-get-the-full-path-of-an-altiris-job-3/</guid><description>&lt;p&gt;Last time I &lt;a title="SQL Query to get the Full Path of an Altiris Job #2" href="https://remkoweijnen.nl/blog/2010/12/09/sql-query-to-get-the-full-path-of-an-altiris-job-2/" target="_blank"&gt;showed&lt;/a&gt; a User Defined Function to the Full Path of an Altiris Job given it&amp;rsquo;s id (event_id). Note that Altiris calls a Job an Event so the terms Event and Jobs are interchangeable here.&lt;/p&gt;
&lt;p&gt;To complete it we first need to prepend the server and share name to the path.&lt;/p&gt;
&lt;p&gt;I looked into the Altiris database tables to find the best place to get the servername and it seems that the hostname column of the mmsettings table is a good way.&lt;/p&gt;
&lt;p&gt;In my database there was only one row in the table but I restrict the results by adding top 1:&lt;/p&gt;
&lt;div class="codecard"&gt;
 &lt;div class="codehead"&gt;
 &lt;span class="codefile"&gt;&lt;span class="codelang"&gt;sql&lt;/span&gt;&lt;/span&gt;
 &lt;span class="codetools" data-pagefind-ignore&gt;
 &lt;button class="codebtn" type="button" data-copy&gt;Copy&lt;/button&gt;
 &lt;a class="codebtn" download=".sql" href="data:text/plain;charset=utf-8;base64,U0VMRUNUIFRPUCAxIGhvc3RuYW1lIEZST00gbW1zZXR0aW5ncw=="&gt;Download&lt;/a&gt;
 &lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="codebody"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;TOP&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;hostname&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;mmsettings&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Then I looked into the available tokens for one that returns a job id but we can only return a job name or a computer id. Since a job name is not unique I decided to use the computername and find the active job for this computer.&lt;/p&gt;
&lt;p&gt;When a Job is scheduled an entry is added to the event_schedule table. If you look into this table you will notice a column status_code which is NULL initially and when the job start it will get a value of -1 which indicates the job is active.&lt;/p&gt;
&lt;p&gt;When the job has finished the status will always be 0 or higher.&lt;/p&gt;</description></item><item><title>SQL Query to get the Full Path of an Altiris Job #2</title><link>https://remkoweijnen.nl/blog/2010/12/09/sql-query-to-get-the-full-path-of-an-altiris-job-2/</link><pubDate>Thu, 09 Dec 2010 10:00:43 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2010/12/09/sql-query-to-get-the-full-path-of-an-altiris-job-2/</guid><description>&lt;p&gt;Earlier I described a &lt;a href="https://remkoweijnen.nl/blog/2010/12/07/sql-query-to-get-the-full-path-of-an-altiris-job/"&gt;SQL Query to get the Full Path of an Altiris Job&lt;/a&gt;, today I will describe how we can make a &lt;a title="User Defined Functions" href="http://msdn.microsoft.com/en-us/library/ms189593.aspx" target="_blank"&gt;User Defined Function&lt;/a&gt; (UDF) in SQL so we can call it easier.&lt;/p&gt;
&lt;p&gt;I am using an UDF because it allows us to specify parameters, in this case a single parameter (the EventId (or job id).&lt;/p&gt;
&lt;p&gt;This is the SQL that creates the UDF:&lt;/p&gt;
&lt;div class="codecard"&gt;
 &lt;div class="codehead"&gt;
 &lt;span class="codefile"&gt;&lt;span class="codelang"&gt;sql&lt;/span&gt;&lt;/span&gt;
 &lt;span class="codetools" data-pagefind-ignore&gt;
 &lt;button class="codebtn" type="button" data-copy&gt;Copy&lt;/button&gt;
 &lt;a class="codebtn" download=".sql" href="data:text/plain;charset=utf-8;base64,Q1JFQVRFIEZVTkNUSU9OIEdldEZ1bGxQYXRoCiAgKCBARXZlbnRJZCBpbnQpClJFVFVSTlMgbnZhcmNoYXIoNDAwMCkKQVMKQkVHSU4KCURFQ0xBUkUgQHN0ciBudmFyY2hhcig0MDAwKTsKCVdJVEggdDEgKGZvbGRlcl9pZCwgbmFtZSwgcGFyZW50X2lkLCBsZXZlbCkKCUFTCgkoCgktLSBBbmNob3IgbWVtYmVyIGRlZmluaXRpb24KCQlTRUxFQ1QgZm9sZGVyX2lkLCBuYW1lLCBwYXJlbnRfaWQsIDAgQVMgTGV2ZWwKCQlGUk9NIGV2ZW50X2ZvbGRlcgoJCVdIRVJFIGZvbGRlcl9pZCBpbiAoCgkJCVNFTEVDVCBmb2xkZXJfaWQgRlJPTSBldmVudCBXSEVSRSBldmVudF9pZCA9IEBFdmVudElkKQoJCVVOSU9OIEFMTAoKCS0tIFJlY3Vyc2l2ZSBtZW1iZXIgZGVmaW5pdGlvbgoJCVNFTEVDVCB0Mi5mb2xkZXJfaWQsdDIubmFtZSwgdDIucGFyZW50X2lkLCBMZXZlbCsxCgkJRlJPTSBldmVudF9mb2xkZXIgQVMgdDIsIHQxCgkJV0hFUkUgdDIuZm9sZGVyX2lkID0gdDEucGFyZW50X2lkCgkpCgoJLS0gU3RhdGVtZW50IHRoYXQgZXhlY3V0ZXMgdGhlIENURQoJLS0gU1RVRkYgYW5kIEZPUiBYTUwgYXJlIHVzZWQgdG8gQ29uY2F0ZW5hdGUgdGhlIFZhbHVlcyBhbmQgc2VwZXJhdGUgdGhlbSBieSBcIGNoYXJhY3RlcgoKCVNFTEVDVCBAc3RyID0gU1RVRkYoKFNFTEVDVCAnXCcgKyBuYW1lIGZyb20gdDEgb3JkZXIgYnkgbGV2ZWwgZGVzYyBGT1IgWE1MIFBBVEgoJycpKSwxLDEsJycpCglSRVRVUk4gQHN0cgpFTkQKR08="&gt;Download&lt;/a&gt;
 &lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="codebody"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FUNCTION&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;GetFullPath&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;EventId&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;RETURNS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;nvarchar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;4000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;AS&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;BEGIN&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="k"&gt;DECLARE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;str&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;nvarchar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;4000&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="k"&gt;WITH&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;t1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;folder_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;parent_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;level&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="k"&gt;AS&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="c1"&gt;-- Anchor member definition
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;		&lt;/span&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;folder_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;parent_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;AS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;Level&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;		&lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;event_folder&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;		&lt;/span&gt;&lt;span class="k"&gt;WHERE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;folder_id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;			&lt;/span&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;folder_id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;WHERE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;event_id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;EventId&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;		&lt;/span&gt;&lt;span class="k"&gt;UNION&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;ALL&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="c1"&gt;-- Recursive member definition
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;		&lt;/span&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;t2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;folder_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;t2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;t2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parent_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;Level&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;		&lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;event_folder&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;AS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;t2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;t1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;		&lt;/span&gt;&lt;span class="k"&gt;WHERE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;t2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;folder_id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;t1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parent_id&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="c1"&gt;-- Statement that executes the CTE
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="c1"&gt;-- STUFF and FOR XML are used to Concatenate the Values and seperate them by \ character
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;str&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;STUFF&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;\&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;t1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;order&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;by&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;level&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;desc&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FOR&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;XML&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;PATH&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="k"&gt;RETURN&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;str&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;END&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;GO&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>SQL Query to get the Full Path of an Altiris Job</title><link>https://remkoweijnen.nl/blog/2010/12/07/sql-query-to-get-the-full-path-of-an-altiris-job/</link><pubDate>Tue, 07 Dec 2010 22:22:56 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2010/12/07/sql-query-to-get-the-full-path-of-an-altiris-job/</guid><description>&lt;p&gt;I wanted to query the full path name of an Altiris Job, this sounds easier that it is though.&lt;/p&gt;
&lt;p&gt;Consider the following hierarchy:&lt;/p&gt;
&lt;img loading="lazy" decoding="async" src="https://remkoweijnen.nl/blog/wp-content/uploads/2010/12/tree1.webp" alt="Tree" width="302" height="360" /&gt;
&lt;p&gt;Now I want to assemble the full Path, in this case: RPA\Getronics\PKG_p007.Citrix_Components.&lt;/p&gt;</description></item><item><title>Citrix Web Interface starts very slowly</title><link>https://remkoweijnen.nl/blog/2010/11/26/citrix-web-interface-starts-very-slowly/</link><pubDate>Fri, 26 Nov 2010 15:07:45 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2010/11/26/citrix-web-interface-starts-very-slowly/</guid><description>&lt;p&gt;I remembered from a previous project that when the Citrix Web Interface this is caused by a setting called &lt;em&gt;generatePublisherEvidence&lt;/em&gt; in the Aspnet.config file.&lt;/p&gt;
&lt;p&gt;This behaviour has been documented by Citrix in &lt;a title="Web Interface 5.x Delay on First Page" href="http://support.citrix.com/article/ctx117273" target="_blank"&gt;CTX117273&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you read it carefully you will see the note that you need to fix it in 2 places for an x64 system.&lt;/p&gt;</description></item><item><title>Script to register ASP.NET in IIS</title><link>https://remkoweijnen.nl/blog/2010/11/26/script-to-register-asp-net-in-iis/</link><pubDate>Fri, 26 Nov 2010 12:37:01 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2010/11/26/script-to-register-asp-net-in-iis/</guid><description>&lt;p&gt;I did an unattended install of the Citrix WebInterface on a testmachine and it failed with error 258.&lt;/p&gt;
&lt;p&gt;The logfile clearly indicates the reason:&lt;/p&gt;
&lt;div class="codecard"&gt;
 &lt;div class="codehead"&gt;
 &lt;span class="codefile"&gt;&lt;span class="codelang"&gt;text&lt;/span&gt;&lt;/span&gt;
 &lt;span class="codetools" data-pagefind-ignore&gt;
 &lt;button class="codebtn" type="button" data-copy&gt;Copy&lt;/button&gt;
 &lt;a class="codebtn" download=".txt" href="data:text/plain;charset=utf-8;base64,WyBFUlJPUiBdIGNvbS5jaXRyaXgud2kuaW5zdGFsbC5TZXR1cEVycm9yUmVwb3J0ZXI6IEVycm9yIDI1OCBvY2N1cnJlZDogQVNQLk5FVCAyLjAgbXVzdCBiZSByZWdpc3RlcmVkIGFuZCBlbmFibGVkIGluIE1pY3Jvc29mdCBJbnRlcm5ldCBJbmZvcm1hdGlvbiBTZXJ2aWNlcyBiZWZvcmUgdGhlIFdlYiBJbnRlcmZhY2UgY2FuIGJlIGluc3RhbGxlZC4="&gt;Download&lt;/a&gt;
 &lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="codebody"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[ ERROR ] com.citrix.wi.install.SetupErrorReporter: Error 258 occurred: ASP.NET 2.0 must be registered and enabled in Microsoft Internet Information Services before the Web Interface can be installed.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;We can register ASP.NET in IIS with the &lt;a title="ASP.NET IIS Registration Tool (Aspnet_regiis.exe)" href="http://msdn.microsoft.com/en-us/library/k6h9cz8h(VS.80).aspx" target="_blank"&gt;Aspnet_regiis.exe&lt;/a&gt; tool that comes with the .NET framework.&lt;/p&gt;</description></item><item><title>Unattended Visual J# Install returns error 4122</title><link>https://remkoweijnen.nl/blog/2010/11/26/unattended-visual-j-install-returns-error-4122/</link><pubDate>Fri, 26 Nov 2010 11:53:30 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2010/11/26/unattended-visual-j-install-returns-error-4122/</guid><description>&lt;p&gt;This means you are installing the wrong edition, eg x86 version on an x64 OS.&lt;/p&gt;
&lt;p&gt;All available version are listed on the MSDN &lt;a href="http://msdn.microsoft.com/en-us/vjsharp/bb188598" target="_blank"&gt;Visual J# Redistributable Packages&lt;/a&gt; page.&lt;/p&gt;
&lt;p&gt;Related: &lt;a title="The case of the VMware vSphere Client" href="https://remkoweijnen.nl/blog/2010/10/27/the-case-of-the-vmware-vsphere-client/"&gt;The case of the VMware vSphere Client&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Scripted creation of Server Manager Answer Files</title><link>https://remkoweijnen.nl/blog/2010/11/25/scripted-creation-of-server-manager-answer-files/</link><pubDate>Thu, 25 Nov 2010 16:14:42 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2010/11/25/scripted-creation-of-server-manager-answer-files/</guid><description>&lt;p&gt;A while ago I created a script that I can run as embedded script in Altiris that creates a Server Manager Answer File (for Server 2008).&lt;/p&gt;
&lt;p&gt;I could have simply done an echo &amp;gt;answer.xml but I wanted a well formed XML that could be read and displayed in an XML editor or Internet Explorer when needed.&lt;/p&gt;
&lt;p&gt;I use the Microsoft.XMLDom object in the script the create the XML and I think the code is easy to understand so I will just show it here:&lt;/p&gt;</description></item><item><title>Disabling Java Autoupdate</title><link>https://remkoweijnen.nl/blog/2010/11/24/disabling-java-autoupdate/</link><pubDate>Wed, 24 Nov 2010 16:07:28 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2010/11/24/disabling-java-autoupdate/</guid><description>&lt;p&gt;I did an unattended install of Java Jre1.6_0.22 using an mst file that puts all (auto)update properties to off.&lt;/p&gt;
&lt;p&gt;However it seems that Java simply ignores this, so usually a script runs after the install to the delete some registry keys and perform some extra configuration.&lt;/p&gt;</description></item><item><title>Altiris AxSched ignores the DSN parameter</title><link>https://remkoweijnen.nl/blog/2010/11/23/altiris-axsched-ignores-the-dsn-parameter/</link><pubDate>Tue, 23 Nov 2010 22:48:47 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2010/11/23/altiris-axsched-ignores-the-dsn-parameter/</guid><description>&lt;p&gt;I was playing around with the AxSched tool that comes with Altiris, in my case the version that comes with v6.9 build 453.&lt;/p&gt;
&lt;p&gt;I could not make it connect to the Deployment Server from my test machine, it seemed like the /dsn parameter I used was totally ignored.&lt;/p&gt;</description></item><item><title>Why is my scheduled job not executed in Altiris?</title><link>https://remkoweijnen.nl/blog/2010/11/23/why-is-my-scheduled-job-not-executed-in-altiris/</link><pubDate>Tue, 23 Nov 2010 20:34:15 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2010/11/23/why-is-my-scheduled-job-not-executed-in-altiris/</guid><description>&lt;p&gt;Earlier today I wrote about my &lt;a href="https://remkoweijnen.nl/blog/2010/11/23/altiris-job-builder/"&gt;Altiris Job Builder&lt;/a&gt; tool but when I tested the actual produced build job I noticed something weird: the job was scheduled but not executed.&lt;/p&gt;
&lt;p&gt;I then tried to manually push a job to this server and that one executed fine.&lt;/p&gt;
&lt;p&gt;When I clicked the Job I could see that it was scheduled:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2010/11/job1.webp" class="glightbox" data-type="image" data-gallery="post-799"&gt;&lt;img loading="lazy" decoding="async" src="https://remkoweijnen.nl/blog/wp-content/uploads/2010/11/job1-small.webp" alt="Job1" width="430" height="246" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;But when I clicked the Server it wasn&amp;rsquo;t there:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2010/11/job2.webp" class="glightbox" data-type="image" data-gallery="post-799"&gt;&lt;img loading="lazy" decoding="async" src="https://remkoweijnen.nl/blog/wp-content/uploads/2010/11/job2-small.webp" alt="Job2" width="430" height="313" /&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Altiris Job Builder</title><link>https://remkoweijnen.nl/blog/2010/11/23/altiris-job-builder/</link><pubDate>Tue, 23 Nov 2010 10:26:34 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2010/11/23/altiris-job-builder/</guid><description>&lt;p&gt;I have created a little tool for myself that I have call Altiris Job Builder, it retreives the Jobs from the Altiris database and shows them in a Treeview.&lt;/p&gt;
&lt;p&gt;Then I can assemble a Master Build Job by dragging the needed Jobs to another Treeview on the right. Since it&amp;rsquo;s just for me it doesn&amp;rsquo;t have a fancy gui:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2010/11/jobbuilder2.webp" class="glightbox" data-type="image" data-gallery="post-784"&gt;&lt;img loading="lazy" decoding="async" src="https://remkoweijnen.nl/blog/wp-content/uploads/2010/11/jobbuilder2-small.webp" alt="JobBuilder2" width="430" height="406" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;So why did I write it? Well I have divided my Jobs into Prerequisites and Packages, for instance IIS and Terminal Server and Java are prereqisuites for Citrix. But many prereqisuites are required for one or more other packages, eg Java is also used for certain applications.&lt;/p&gt;</description></item><item><title>WMI query to Win32_Product returns error 0x80041010</title><link>https://remkoweijnen.nl/blog/2010/11/12/wmi-query-to-win32_product-returns-error-0x80041010/</link><pubDate>Fri, 12 Nov 2010 15:57:07 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2010/11/12/wmi-query-to-win32_product-returns-error-0x80041010/</guid><description>&lt;p&gt;I ran a VBScript that queries the Win32_Product WMI class on Windows 2003 but it returned error 0x80041010 instead of the expected results.&lt;/p&gt;
&lt;p&gt;I looked up that errorcode and it means WBEM_E_INVALID_CLASS. This happened because the &amp;ldquo;WMI Windows Installer Provider&amp;rdquo; was not installed.&lt;/p&gt;</description></item><item><title>Programmatically Create Aligned Partitions</title><link>https://remkoweijnen.nl/blog/2010/11/04/programmatically-create-aligned-partitions/</link><pubDate>Thu, 04 Nov 2010 18:14:56 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2010/11/04/programmatically-create-aligned-partitions/</guid><description>&lt;p&gt;After deploying Virtual Machines from a template and adding disks the next Task was to create and format the partitions.&lt;/p&gt;
&lt;p&gt;In a VMWare environment it is very important to assure that the partitions are aligned. VMWare has a nice document that explains the details called &lt;a title="Performance Best Practices for VMware vSphere 4.0" href="http://www.vmware.com/pdf/Perf_Best_Practices_vSphere4.0.pdf" target="_blank"&gt;Performance Best Practices for VMware vSphere 4.0&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Basically the recommendation is to align partition on a 64 KB boundary, not only for VMWare itsself but also for the guests.&lt;/p&gt;
&lt;p&gt;Of course we could do this manually but I wanted to run this task of from my Deployment Server to automate the following:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
&lt;div&gt;Create aligned partitions on all extra disks of the maximum size&lt;/div&gt;&lt;/li&gt;
	&lt;li&gt;
&lt;div&gt;Format, assign drive letter and assign a label&lt;/div&gt;&lt;/li&gt;
	&lt;li&gt;
&lt;div&gt;A safeguard to prevent overwriting existing Data&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
Well enough talk let's go the scripts! They are written as bat files that can be executed directly in Altiris as an embedded script but of course you don't need Altiris to use them.</description></item><item><title>Activate Multiple Altiris Licenses at Once</title><link>https://remkoweijnen.nl/blog/2010/11/04/activate-multiple-altiris-licenses-at-once/</link><pubDate>Thu, 04 Nov 2010 10:26:39 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2010/11/04/activate-multiple-altiris-licenses-at-once/</guid><description>&lt;p&gt;I have had to activate Altiris Licenses a lot in the past and this is a task that could be done in a few minutes however in the case of using the HP branded version (HP Insight Server control, previously named HP Rapid Deployment Pack) it&amp;rsquo;s not.&lt;/p&gt;
&lt;p&gt;This is because HP delivers a seperate license for each server which you have to load manually. An annoying thing if you have a lot of them.&lt;/p&gt;
&lt;p&gt;I was already looking if I could automate this with some kind of script since I know from the past that the Product Licensing Utility embeds the license into the Express.exe file.&lt;/p&gt;</description></item><item><title>The case of the failing Deployment Server Install</title><link>https://remkoweijnen.nl/blog/2010/10/26/694/</link><pubDate>Tue, 26 Oct 2010 16:47:15 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2010/10/26/694/</guid><description>&lt;p&gt;I was trying to install HP Insight Control server deployment (&lt;a href="https://remkoweijnen.nl/blog/2010/10/14/where-to-download-hp-rapid-deployment-pack/" target="_blank"&gt;previously called HP Rapid Deployment Pack&lt;/a&gt;) on Sql Server 2008 Express. I will just call it Deployment Server or DS from here.&lt;/p&gt;
&lt;p&gt;I first installed SQL 2008 Express with Advanced Services and configured it to listen op Port 1433 as required by DS.&lt;/p&gt;
&lt;p&gt;The installation of the first part (Deployment Server version 6.9.4) indicated a successfull install but the prereqisuites check of the Hotfix version 2.0 installer failed on the last step:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2010/10/NoAttachedConsoles.webp" class="glightbox" data-type="image" data-gallery="post-694"&gt;&lt;img loading="lazy" decoding="async" src="https://remkoweijnen.nl/blog/wp-content/uploads/2010/10/NoAttachedConsoles-small.webp" alt="No Attached Consoles HP Deployment Server" width="430" height="300" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This was strange because I didn&amp;rsquo;t yet startup the console, so I decided to start it and close it as this would perhaps allow me to continue.&lt;/p&gt;
&lt;p&gt;The next screen was a clear indication something went wrong:&lt;/p&gt;
&lt;img loading="lazy" decoding="async" src="https://remkoweijnen.nl/blog/wp-content/uploads/2010/10/ConsoleUnableToConnect.webp" alt="Altiris Deploymeny Server Unable to Connect" width="405" height="238" /&gt;
&lt;p&gt;I presumed that the ODBC connection was missing so I went to Adminstrative Tools | Data Sources (ODBC). But the ODBC connection was present. I then fired up SQL Server Management Studio which showed me the eXpress database was missing.&lt;/p&gt;</description></item><item><title>Where to download HP Rapid Deployment Pack</title><link>https://remkoweijnen.nl/blog/2010/10/14/where-to-download-hp-rapid-deployment-pack/</link><pubDate>Thu, 14 Oct 2010 11:11:24 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2010/10/14/where-to-download-hp-rapid-deployment-pack/</guid><description>&lt;p&gt;I have started the implementation of a VMWare vShphere environment in which we are going to use an Altiris server for Deployment. Since we are using HP Hardware I needed the HP Branded version of Altiris (it&amp;rsquo;s called HP Rapid Deployment Pack aka HP RDP).&lt;/p&gt;
&lt;p&gt;I had some troubles finding the download spot for it, that&amp;rsquo;s why I am sharing it here. Hopefully it will save others from a long search!&lt;/p&gt;
&lt;p&gt;Last time I needed HP RDP I just went to the HP website, clicked Support &amp;amp; Drivers then selected Download drivers and software and in the Editbox entered &amp;ldquo;HP Rapid Deployment Pack&amp;rdquo; which leads to this page:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2010/10/hprdp1.webp" class="glightbox" data-type="image" data-gallery="post-655"&gt;&lt;img loading="lazy" decoding="async" src="https://remkoweijnen.nl/blog/wp-content/uploads/2010/10/hprdp1-small.webp" alt="HPRDP1" width="430" height="233" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;So where do we download it then?&lt;/p&gt;</description></item><item><title>Unattended Install of the Citrix Xenapp WebInterface 5.2</title><link>https://remkoweijnen.nl/blog/2009/11/17/unattended-install-of-the-citrix-xenapp-webinterface-5-2/</link><pubDate>Tue, 17 Nov 2009 08:55:44 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2009/11/17/unattended-install-of-the-citrix-xenapp-webinterface-5-2/</guid><description>&lt;p&gt;I noticed that XenApp 5 Feature Pack comes with a new version of the Web Interface (5.2) (it is also available as standalone download). The parameters to install it in silent mode have changed but there&amp;rsquo;s no documentation at all on the Citrix Site:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2009/11/widocs.webp" class="glightbox" data-type="image" data-gallery="post-461"&gt;&lt;img loading="lazy" decoding="async" src="https://remkoweijnen.nl/blog/wp-content/uploads/2009/11/widocs-small.webp" alt="WIDocs" width="430" height="118" /&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Slow Installation because of Certificate Checks</title><link>https://remkoweijnen.nl/blog/2009/11/06/slow-installation-because-of-certificate-checks/</link><pubDate>Fri, 06 Nov 2009 21:29:15 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2009/11/06/slow-installation-because-of-certificate-checks/</guid><description>&lt;p&gt;A few days ago I noticed that an unattended installation of Citrix XenApp 5 was installing very slowly. When I looked at the various jobs and their installation time in the (Altiris) Deployment Server I saw that it was the Citrix Access Management Console that took almost 45 minutes to install:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2009/11/aminstallation.webp" class="glightbox" data-type="image" data-gallery="post-432"&gt;&lt;img loading="lazy" decoding="async" src="https://remkoweijnen.nl/blog/wp-content/uploads/2009/11/aminstallation-small.webp" alt="AMInstallation" width="430" height="92" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It was clear that this wasn&amp;rsquo;t normal since the install job is taking installing OS components like IIS and all subcomponents, activating Application Server and reboot in around 9 minutes. The installation of Citrix XenApp itsself takes only 14 minutes.&lt;/p&gt;
&lt;p&gt;I searched with Google and one of the first links was this knowledge base article from Citrix: &lt;a href="http://support.citrix.com/article/CTX120429" target="_blank"&gt;Slow Access Management Console Installation on XenApp 5.0&lt;/a&gt;. The article clearly describes that the delay is occurred by failing checks for Publisher&amp;rsquo;s and Server Certificate Revocation (because there&amp;rsquo;s no Internet Connection) and suggests to turn these checks off. Indeed my servers do not have a direct internet connection so the cause and solution were clear.&lt;/p&gt;
&lt;p&gt;And actually I had seen similar issues before in other (non Citrix) installations, some examples are Exchange 2007 (&lt;a href="http://support.microsoft.com/kb/944752" target="_blank"&gt;here&lt;/a&gt; and &lt;a href="http://msexchangeteam.com/archive/2008/07/08/449159.aspx" target="_blank"&gt;here&lt;/a&gt;) and SQL Server 2008 (the SQL Installer actually checks if there&amp;rsquo;s an internet connection in the prerequisites check).&lt;/p&gt;
&lt;p&gt;The suggested, manual way, of turning of these checks is to clear the following checkboxes in Internet Explorer&amp;rsquo;s advanced settings Dialog:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2009/11/iecertificaterevocation.webp" class="glightbox" data-type="image" data-gallery="post-432"&gt;&lt;img loading="lazy" decoding="async" src="https://remkoweijnen.nl/blog/wp-content/uploads/2009/11/iecertificaterevocation-small.webp" alt="IECertificateRevocation" width="430" height="536" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;But since I had to do this on many servers I decided it would be better to do it with a little VBS script.&lt;/p&gt;</description></item><item><title>Windows Installer proxy information not correctly registered</title><link>https://remkoweijnen.nl/blog/2009/11/05/windows-installer-proxy-information-not-correctly-registered/</link><pubDate>Thu, 05 Nov 2009 22:11:06 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2009/11/05/windows-installer-proxy-information-not-correctly-registered/</guid><description>&lt;p&gt;I was deploying an unattended installation of Citrix XenApp 5.0 with Altiris Deployment Server. The installation consists of several prerequisites, the installation of XenApp and finally the Citrix Management Consoles.&lt;/p&gt;
&lt;p&gt;The installation is performed with a special account and not the Local System account because the install packages are located on the network.&lt;/p&gt;
&lt;p&gt;When testing the deployment on a Windows Server 2008 I noticed that sometimes MSI based installations would fail with error code 1603 or 1601.&lt;/p&gt;</description></item></channel></rss>