<?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>XenApp &#8211; Carl Webster</title>
	<atom:link href="https://www.carlwebster.com/category/citrix-xenapp/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.carlwebster.com</link>
	<description>The Accidental Citrix Admin - The site for those who find themselves supporting Citrix involuntarily or accidentally</description>
	<lastBuildDate>Sun, 01 Jan 2023 12:32:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>
<site xmlns="com-wordpress:feed-additions:1">42228915</site>	<item>
		<title>Learning to Install Adobe Acrobat Reader DC</title>
		<link>https://www.carlwebster.com/learning-to-install-adobe-acrobat-reader-dc/</link>
					<comments>https://www.carlwebster.com/learning-to-install-adobe-acrobat-reader-dc/#comments</comments>
		
		<dc:creator><![CDATA[Carl Webster]]></dc:creator>
		<pubDate>Thu, 13 Sep 2018 17:58:37 +0000</pubDate>
				<category><![CDATA[Citrix Virtual Apps and Desktops]]></category>
		<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenApp/XenDesktop 7.0 - 7.7]]></category>
		<category><![CDATA[XenDesktop 5.x]]></category>
		<guid isPermaLink="false">https://www.carlwebster.com/?p=13780</guid>

					<description><![CDATA[Back in April 2009, I wrote an article on installing Adobe Acrobat Reader. A reader reported to me that the process does not work for Adobe Acrobat Reader DC. There&#8230;]]></description>
										<content:encoded><![CDATA[<p>Back in April 2009, I wrote an article on <a href="https://www.carlwebster.com/learning-to-install-acrobat-reader-9-1/" target="_blank" rel="noopener noreferrer">installing Adobe Acrobat Reader</a>. A reader reported to me that the process does not work for Adobe Acrobat Reader DC. There were enough changes to the process, I worked through and documented the process so the reader could get Acrobat Reader DC installed.</p>
<p>Portable Document Format (PDF) files are a popular way to transfer documents between computer users. A PDF file presents documents, including formatting and images, independent of software, hardware, and operating systems. There are over 10,000 free viewers available on http://www.download.com which allows the viewing of PDF files.</p>
<p>In this article, you will learn:</p>
<ul>
<li>how to sign up to distribute the free Adobe Acrobat Reader DC version</li>
<li>download the distributable file</li>
<li>download the Adobe Customization Wizard</li>
<li>extract the Acrobat Reader MSI file</li>
<li>customize the MSI file</li>
<li>install the customized file on your master image</li>
<li>remove additional menu items using JavaScript</li>
</ul>
<p><span id="more-13780"></span></p>
<p><strong>Note:</strong> This article has been updated three times with feedback from the community. Scroll down to the bottom to see the updates.</p>
<p>While it may be less time consuming to download the free Acrobat Reader and use that MSI file, Adobe requires any entity that will install the program for multiple users to agree to the Adobe Reader Distribution Agreement.</p>
<p>Many things have changed in the world of virtualization since April 2009. The process outlined in this article can be used for Citrix Virtual Apps and Desktops, Microsoft Remote Desktop Services, Parallels Remote Access Server, and VMware Horizon.</p>
<p>For this article, I used a master Microsoft Windows Server 2016 image usable by all four technologies list above.</p>
<p>To get started, open your browser and go to <a href="https://www.adobe.com/">http://www.adobe.com</a> (Figure 1).</p>
<figure id="attachment_13782" aria-describedby="caption-attachment-13782" style="width: 1069px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure001.png" target="_blank" rel="noopener"><img fetchpriority="high" decoding="async" class="wp-image-13782 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure001.png" alt="Figure 1" width="1069" height="736" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure001.png 1069w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure001-436x300.png 436w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure001-768x529.png 768w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure001-900x620.png 900w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure001-600x413.png 600w" sizes="(max-width: 1069px) 100vw, 1069px" /></a><figcaption id="caption-attachment-13782" class="wp-caption-text">Figure 1</figcaption></figure>
<p>Scroll down and click on the <em>Adobe Acrobat Reader DC</em> link (Figure 2).</p>
<figure id="attachment_13785" aria-describedby="caption-attachment-13785" style="width: 1069px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure002.png" target="_blank" rel="noopener"><img decoding="async" class="wp-image-13785 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure002.png" alt="Figure 2" width="1069" height="736" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure002.png 1069w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure002-436x300.png 436w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure002-768x529.png 768w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure002-900x620.png 900w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure002-600x413.png 600w" sizes="(max-width: 1069px) 100vw, 1069px" /></a><figcaption id="caption-attachment-13785" class="wp-caption-text">Figure 2</figcaption></figure>
<p>Click <em>Are you an IT manager or OEM</em> (Figure 3).</p>
<figure id="attachment_13786" aria-describedby="caption-attachment-13786" style="width: 357px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure003.png" target="_blank" rel="noopener"><img decoding="async" class="wp-image-13786 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure003.png" alt="Figure 3" width="357" height="463" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure003.png 357w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure003-231x300.png 231w" sizes="(max-width: 357px) 100vw, 357px" /></a><figcaption id="caption-attachment-13786" class="wp-caption-text">Figure 3</figcaption></figure>
<p>A new browser window opens. Click <em>distributing Adobe Acrobat Reader DC</em> (Figure 4).</p>
<figure id="attachment_13787" aria-describedby="caption-attachment-13787" style="width: 781px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure004.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13787 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure004.png" alt="Figure 4" width="781" height="257" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure004.png 781w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure004-530x174.png 530w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure004-768x253.png 768w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure004-600x197.png 600w" sizes="auto, (max-width: 781px) 100vw, 781px" /></a><figcaption id="caption-attachment-13787" class="wp-caption-text">Figure 4</figcaption></figure>
<p>A new browser tab opens. Scroll down and click on <em>Apply now</em> under Apply for a desktop license (Figure 5).</p>
<figure id="attachment_13788" aria-describedby="caption-attachment-13788" style="width: 260px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure005.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13788 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure005.png" alt="Figure 5" width="260" height="488" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure005.png 260w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure005-160x300.png 160w" sizes="auto, (max-width: 260px) 100vw, 260px" /></a><figcaption id="caption-attachment-13788" class="wp-caption-text">Figure 5</figcaption></figure>
<p>Another browser tab opens. If you have an Adobe ID, sign in with it. If you do not have an Adobe ID, create an Adobe ID, and then continue with this process (Figure 6).</p>
<figure id="attachment_13789" aria-describedby="caption-attachment-13789" style="width: 413px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure006.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13789 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure006.png" alt="Figure 6" width="413" height="521" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure006.png 413w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure006-238x300.png 238w" sizes="auto, (max-width: 413px) 100vw, 413px" /></a><figcaption id="caption-attachment-13789" class="wp-caption-text">Figure 6</figcaption></figure>
<p>Fill in the necessary information (Figure 7).</p>
<figure id="attachment_13790" aria-describedby="caption-attachment-13790" style="width: 765px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure007.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13790 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure007.png" alt="Figure 7" width="765" height="823" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure007.png 765w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure007-279x300.png 279w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure007-744x800.png 744w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure007-600x645.png 600w" sizes="auto, (max-width: 765px) 100vw, 765px" /></a><figcaption id="caption-attachment-13790" class="wp-caption-text">Figure 7</figcaption></figure>
<p>Then click <em>Accept and Submit</em> (Figure 8).</p>
<figure id="attachment_13791" aria-describedby="caption-attachment-13791" style="width: 763px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure008.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13791 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure008.png" alt="Figure 8" width="763" height="546" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure008.png 763w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure008-419x300.png 419w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure008-600x429.png 600w" sizes="auto, (max-width: 763px) 100vw, 763px" /></a><figcaption id="caption-attachment-13791" class="wp-caption-text">Figure 8</figcaption></figure>
<p>You will receive an e-mail from Adobe to verify the e-mail address you entered. Click the verification link in the e-mail. Adobe will send you another e-mail with the information necessary to download the Redistributable version of Acrobat Reader DC. In the second e-mail, click the link to download the full installer for Adobe Reader DC. My email says Adobe Acrobat Reader XI, but the download is for Acrobat Reader DC.</p>
<p>Select the operating system and language that matches your destination operating system, select the download product, and click <em>Download now</em> (Figure 9).</p>
<p><strong>Note:</strong> Adobe does not list options for Windows Server 2012 R2 or Windows Server 2016.</p>
<figure id="attachment_13792" aria-describedby="caption-attachment-13792" style="width: 759px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure009.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13792 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure009.png" alt="Figure 9" width="759" height="806" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure009.png 759w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure009-283x300.png 283w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure009-753x800.png 753w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure009-600x637.png 600w" sizes="auto, (max-width: 759px) 100vw, 759px" /></a><figcaption id="caption-attachment-13792" class="wp-caption-text">Figure 9</figcaption></figure>
<p>Save the file to a central location (Figure 10).</p>
<figure id="attachment_13793" aria-describedby="caption-attachment-13793" style="width: 747px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure010.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13793 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure010.png" alt="Figure 10" width="747" height="396" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure010.png 747w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure010-530x281.png 530w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure010-600x318.png 600w" sizes="auto, (max-width: 747px) 100vw, 747px" /></a><figcaption id="caption-attachment-13793" class="wp-caption-text">Figure 10</figcaption></figure>
<p>In the second e-mail from Adobe, click the link for <em>Adobe enterprise deployment tools</em>.</p>
<p>Click <em>IT Tools</em> (Figure 11).</p>
<figure id="attachment_13795" aria-describedby="caption-attachment-13795" style="width: 1049px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure011.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13795 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure011.png" alt="Figure 11" width="1049" height="514" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure011.png 1049w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure011-530x260.png 530w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure011-768x376.png 768w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure011-900x441.png 900w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure011-600x294.png 600w" sizes="auto, (max-width: 1049px) 100vw, 1049px" /></a><figcaption id="caption-attachment-13795" class="wp-caption-text">Figure 11</figcaption></figure>
<p>Scroll down and click on <em>Customization Wizard</em> (Figure 12).</p>
<figure id="attachment_13796" aria-describedby="caption-attachment-13796" style="width: 334px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure012.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13796 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure012.png" alt="Figure 12" width="334" height="522" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure012.png 334w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure012-192x300.png 192w" sizes="auto, (max-width: 334px) 100vw, 334px" /></a><figcaption id="caption-attachment-13796" class="wp-caption-text">Figure 12</figcaption></figure>
<p>On the Customization Wizard Home page, under Wizard Downloads, click on <em>DC Windows (Both tracks)</em> (Figure 13).</p>
<figure id="attachment_13797" aria-describedby="caption-attachment-13797" style="width: 304px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure013.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13797 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure013.png" alt="Figure 13" width="304" height="574" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure013.png 304w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure013-159x300.png 159w" sizes="auto, (max-width: 304px) 100vw, 304px" /></a><figcaption id="caption-attachment-13797" class="wp-caption-text">Figure 13</figcaption></figure>
<p>Click on <em>CustWiz1502020039_en_US_DC.exe (</em>Figure 14).</p>
<figure id="attachment_13798" aria-describedby="caption-attachment-13798" style="width: 782px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure014.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13798 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure014.png" alt="Figure 14" width="782" height="192" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure014.png 782w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure014-530x130.png 530w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure014-768x189.png 768w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure014-600x147.png 600w" sizes="auto, (max-width: 782px) 100vw, 782px" /></a><figcaption id="caption-attachment-13798" class="wp-caption-text">Figure 14</figcaption></figure>
<p>Save the file to a central location (Figure 15).</p>
<figure id="attachment_13799" aria-describedby="caption-attachment-13799" style="width: 747px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure015.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13799 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure015.png" alt="Figure 15" width="747" height="396" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure015.png 747w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure015-530x281.png 530w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure015-600x318.png 600w" sizes="auto, (max-width: 747px) 100vw, 747px" /></a><figcaption id="caption-attachment-13799" class="wp-caption-text">Figure 15</figcaption></figure>
<p>Exit your browser.</p>
<p>Double-click <em>CustWiz1502020039_en_US_DC.exe</em> to install the Customization Wizard. Accept all the defaults during the installation.</p>
<p>Extract the Acrobat Reader MSI file. Click <em>Start, Run</em>, type in <strong>&#8220;&lt;path to download\</strong> <strong>AcroRdrDC1801120058_en_US.exe” -sfx_o&#8221;&lt;extractFolder&gt; &#8211;</strong><strong>sfx_ne </strong>and press <em>Enter</em>.</p>
<p>For example (Figure 16),</p>
<p><strong>&#8220;\192.168.1.254\ISOFiles\Adobe Acrobat Read DC Installer\AcroRdrDC1801120058_en_US.exe&#8221; -sfx_o&#8221;e:\adobe&#8221; -sfx_ne</strong></p>
<p><strong>Note</strong>: There is no space in -sfx_o&#8221;e:\adobe&#8221;</p>
<figure id="attachment_13800" aria-describedby="caption-attachment-13800" style="width: 395px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure016.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13800 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure016.png" alt="Figure 16" width="395" height="204" /></a><figcaption id="caption-attachment-13800" class="wp-caption-text">Figure 16</figcaption></figure>
<p><strong>Note:</strong> See this Adobe link for more information. <a href="https://www.adobe.com/devnet-docs/acrobatetk/tools/Wizard/basics.html#expanding-exe-packages" target="_blank" rel="noopener noreferrer">https://www.adobe.com/devnet-docs/acrobatetk/tools/Wizard/basics.html#expanding-exe-packages</a></p>
<p>Click <em>Start, Adobe Customization Wizard DC,</em> and <em>Run as administrator </em>(Figure 17).</p>
<figure id="attachment_13801" aria-describedby="caption-attachment-13801" style="width: 773px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure017.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13801 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure017.png" alt="Figure 17" width="773" height="641" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure017.png 773w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure017-362x300.png 362w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure017-768x637.png 768w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure017-600x498.png 600w" sizes="auto, (max-width: 773px) 100vw, 773px" /></a><figcaption id="caption-attachment-13801" class="wp-caption-text">Figure 17</figcaption></figure>
<p>Click <em>File, Open Package</em>, type in <strong>&lt;Path&gt;\AcroRead.msi,</strong> and press <em>Enter</em> (Figure 18).</p>
<figure id="attachment_13802" aria-describedby="caption-attachment-13802" style="width: 870px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure018.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13802 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure018.png" alt="Figure 18" width="870" height="676" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure018.png 870w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure018-386x300.png 386w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure018-768x597.png 768w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure018-600x466.png 600w" sizes="auto, (max-width: 870px) 100vw, 870px" /></a><figcaption id="caption-attachment-13802" class="wp-caption-text">Figure 18</figcaption></figure>
<p>Click <em>Personalization Options</em> and select <em>Suppress display of End User License Agreement (EULA)</em> (Figure 19). Selecting this option will prevent the EULA Agreement page from being displayed for every user the first time Acrobat Reader runs.</p>
<figure id="attachment_13803" aria-describedby="caption-attachment-13803" style="width: 1006px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure019.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13803 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure019.png" alt="Figure 19" width="1006" height="679" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure019.png 1006w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure019-444x300.png 444w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure019-768x518.png 768w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure019-900x607.png 900w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure019-600x405.png 600w" sizes="auto, (max-width: 1006px) 100vw, 1006px" /></a><figcaption id="caption-attachment-13803" class="wp-caption-text">Figure 19</figcaption></figure>
<p>Click <em>Installation Options in</em> Figure 20. If you use both full Adobe Acrobat and Acrobat Reader, select which one will be the default. Select any other options you require. Since you will be installing a customized Acrobat Reader, you can ignore the options <em>Run Installation</em> and <em>If reboot required at the end of installation</em>.</p>
<figure id="attachment_13804" aria-describedby="caption-attachment-13804" style="width: 1006px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure020.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13804 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure020.png" alt="Figure 20" width="1006" height="678" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure020.png 1006w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure020-445x300.png 445w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure020-768x518.png 768w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure020-900x607.png 900w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure020-600x404.png 600w" sizes="auto, (max-width: 1006px) 100vw, 1006px" /></a><figcaption id="caption-attachment-13804" class="wp-caption-text">Figure 20</figcaption></figure>
<p>Click <em>Online Services and Features</em> (Figure 21). Select <em>Disable product updates and</em> <em>Disable Upsell</em>. Select any other options you need disabled.</p>
<figure id="attachment_13805" aria-describedby="caption-attachment-13805" style="width: 1006px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure021.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13805 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure021.png" alt="Figure 21" width="1006" height="678" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure021.png 1006w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure021-445x300.png 445w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure021-768x518.png 768w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure021-900x607.png 900w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure021-600x404.png 600w" sizes="auto, (max-width: 1006px) 100vw, 1006px" /></a><figcaption id="caption-attachment-13805" class="wp-caption-text">Figure 21</figcaption></figure>
<p>Click <em>Transform, Generate Transform</em> (Figure 22).</p>
<figure id="attachment_13807" aria-describedby="caption-attachment-13807" style="width: 446px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure022.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13807 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure022.png" alt="Figure 22" width="446" height="106" /></a><figcaption id="caption-attachment-13807" class="wp-caption-text">Figure 22</figcaption></figure>
<p>Name the Transform file and save it (Figure 23).</p>
<figure id="attachment_13808" aria-describedby="caption-attachment-13808" style="width: 840px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure023.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13808 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure023.png" alt="Figure 23" width="840" height="447" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure023.png 840w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure023-530x282.png 530w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure023-768x409.png 768w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure023-600x319.png 600w" sizes="auto, (max-width: 840px) 100vw, 840px" /></a><figcaption id="caption-attachment-13808" class="wp-caption-text">Figure 23</figcaption></figure>
<p><strong>Note:</strong> If you get an error about access to setup.ini is denied, that means you did not start the wizard as administrator.</p>
<p>Exit the Adobe Customization Wizard DC program.</p>
<p>To install Acrobat Reader DC with your customizations:</p>
<p>Click <em>Start, Run</em>, type in <strong>msiexec /i “&lt;path&gt;\acroread.msi” TRANSFORMS=”&lt;path&gt;\CustomARDC.mst”</strong> and press <em>Enter</em>.</p>
<p><strong>Note:</strong> TRANSFORMS must be in upper case.</p>
<p>Start Acrobat Reader DC and the EULA Agreement page is not displayed.</p>
<p>Click the Help menu, and you will see two options you do not want in a multi-user or non-persistent desktop environment: <em>Repair Adobe Reader Installation</em> and <em>Online Support </em>(Figure 24).</p>
<figure id="attachment_13809" aria-describedby="caption-attachment-13809" style="width: 501px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure024.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13809 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure024.png" alt="Figure 24" width="501" height="228" /></a><figcaption id="caption-attachment-13809" class="wp-caption-text">Figure 24</figcaption></figure>
<p><strong>Note</strong>:  The following information is adapted from <a href="https://stealthpuppy.com/deploying-adobe-reader-81/" target="_blank" rel="noopener noreferrer">https://stealthpuppy.com/deploying-adobe-reader-81/</a> and still works for Acrobat Reader DC.</p>
<p>There is no way to remove those options from the customization wizard or via a registry key. To remove the options, you need to create a JavaScript file and place it in the C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\Javascripts folder.</p>
<pre class="brush: plain; title: ; notranslate">
//HideMenu.js
//Hides Help – Repair Adobe Reader Installation
app.hideMenuItem(“DetectAndRepair”);
//Help – Online Support
app.hideMenuItem(“OnlineSupport”);
</pre>
<p>When Acrobat Reader starts, it may take a few seconds for the JavaScript file to remove the Help menu items (Figure 25).</p>
<figure id="attachment_13810" aria-describedby="caption-attachment-13810" style="width: 472px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure025.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13810 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure025.png" alt="Figure 25" width="472" height="157" /></a><figcaption id="caption-attachment-13810" class="wp-caption-text">Figure 25</figcaption></figure>
<p>Many menu items can be removed using the JavaScript file. See the link “<em>JavaScript to Hide Menu Items</em>” at <a href="https://stealthpuppy.com/deploying-adobe-reader-81/">https://stealthpuppy.com/deploying-adobe-reader-81/</a>.</p>
<p>You have now successfully customized your Acrobat Reader DC to work better in a virtualized application, desktop, and server environment.</p>
<p><strong>UPDATE 1</strong></p>
<p>Thanks to Citrix Technology Advocate <a href="http://citrixcoach.com/index.html" target="_blank" rel="noopener noreferrer">DJ Eshelman</a>, I realized I forgot to add that Adobe now has Group Policy ADM/ADMX files available.</p>
<p>Back in Figures 13 and 14, where you downloaded the Adobe Customization Wizard, there is a file that contains the Group Policy files (Figure 26).</p>
<p>Click on <em>AcrobatADMTemplate.zip</em> and save the file to a central location.</p>
<figure id="attachment_13817" aria-describedby="caption-attachment-13817" style="width: 722px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure026.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13817 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure026.png" alt="Figure 26" width="722" height="221" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure026.png 722w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure026-530x162.png 530w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure026-600x184.png 600w" sizes="auto, (max-width: 722px) 100vw, 722px" /></a><figcaption id="caption-attachment-13817" class="wp-caption-text">Figure 26</figcaption></figure>
<p>Extract the files (Figure 27).</p>
<figure id="attachment_13818" aria-describedby="caption-attachment-13818" style="width: 991px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure027.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13818 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure027.png" alt="Figure 27" width="991" height="236" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure027.png 991w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure027-530x126.png 530w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure027-768x183.png 768w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure027-900x214.png 900w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure027-600x143.png 600w" sizes="auto, (max-width: 991px) 100vw, 991px" /></a><figcaption id="caption-attachment-13818" class="wp-caption-text">Figure 27</figcaption></figure>
<p>Copy the required file(s) to where you store ADM or ADMX/ADML files. Create a Group Policy and you can see the settings that Adobe makes available as shown in Figures 28 through 32.</p>
<figure id="attachment_13819" aria-describedby="caption-attachment-13819" style="width: 787px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure028.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13819 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure028.png" alt="Figure 28" width="787" height="565" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure028.png 787w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure028-418x300.png 418w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure028-768x551.png 768w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure028-600x431.png 600w" sizes="auto, (max-width: 787px) 100vw, 787px" /></a><figcaption id="caption-attachment-13819" class="wp-caption-text">Figure 28</figcaption></figure>
<figure id="attachment_13820" aria-describedby="caption-attachment-13820" style="width: 787px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure029.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13820 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure029.png" alt="Figure 29" width="787" height="565" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure029.png 787w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure029-418x300.png 418w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure029-768x551.png 768w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure029-600x431.png 600w" sizes="auto, (max-width: 787px) 100vw, 787px" /></a><figcaption id="caption-attachment-13820" class="wp-caption-text">Figure 29</figcaption></figure>
<figure id="attachment_13821" aria-describedby="caption-attachment-13821" style="width: 787px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure030.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13821 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure030.png" alt="Figure 30" width="787" height="565" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure030.png 787w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure030-418x300.png 418w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure030-768x551.png 768w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure030-600x431.png 600w" sizes="auto, (max-width: 787px) 100vw, 787px" /></a><figcaption id="caption-attachment-13821" class="wp-caption-text">Figure 30</figcaption></figure>
<figure id="attachment_13822" aria-describedby="caption-attachment-13822" style="width: 787px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure031.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13822 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure031.png" alt="Figure 31" width="787" height="565" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure031.png 787w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure031-418x300.png 418w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure031-768x551.png 768w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure031-600x431.png 600w" sizes="auto, (max-width: 787px) 100vw, 787px" /></a><figcaption id="caption-attachment-13822" class="wp-caption-text">Figure 31</figcaption></figure>
<figure id="attachment_13823" aria-describedby="caption-attachment-13823" style="width: 787px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure032.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13823 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure032.png" alt="Figure 32" width="787" height="565" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure032.png 787w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure032-418x300.png 418w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure032-768x551.png 768w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure032-600x431.png 600w" sizes="auto, (max-width: 787px) 100vw, 787px" /></a><figcaption id="caption-attachment-13823" class="wp-caption-text">Figure 32</figcaption></figure>
<p><strong>Update 2</strong></p>
<p>This update comes from Microsoft Exchange MVP (and a personal friend and mentor) <a href="https://www.essential.exchange/" target="_blank" rel="noopener noreferrer">Michael B. Smith</a>.</p>
<p>I found the transform unnecessary. This is just another way.</p>
<p>AcroRdrDC1801120058_en_US.exe /sAll /rs /msi /q DISABLE_DISTILLER=YES DISABLE_ASIAN_FONTS=YES EULA_ACCEPT=YES OWNERSHIP_STATE=2 DISABLE_PDFMAKER=YES DISABLEDESKTOPSHORTCUT=0 UPDATE_MODE=3</p>
<p>For all the cmd line options: <a href="https://www.adobe.com/devnet-docs/acrobatetk/tools/AdminGuide/properties.html#command-line-example" target="_blank" rel="noopener noreferrer">https://www.adobe.com/devnet-docs/acrobatetk/tools/AdminGuide/properties.html#command-line-example</a></p>
<p><strong>Update 3</strong></p>
<p>This update comes from CTA <a href="https://masterxen.wordpress.com/" target="_blank" rel="noopener noreferrer">Carl Behrent</a>.</p>
<p>Carl recommends setting the Adobe IPM (<a href="https://www.adobe.com/devnet-docs/acrobatetk/tools/PrefRef/Windows/IPM.html#idkeyname_1_9462" target="_blank" rel="noopener noreferrer">In Product Management</a>) (Figure 33) registry keys via a Group Policy Preference (GPP).</p>
<figure id="attachment_13829" aria-describedby="caption-attachment-13829" style="width: 751px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure033.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13829 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure033.png" alt="Figure 33" width="751" height="1174" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure033.png 751w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure033-192x300.png 192w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure033-512x800.png 512w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure033-600x938.png 600w" sizes="auto, (max-width: 751px) 100vw, 751px" /></a><figcaption id="caption-attachment-13829" class="wp-caption-text">Figure 33</figcaption></figure>
<p>You can set these via a GPP, or, you set these in your master image&#8217;s registry and update your transform file. Before we update the transform file, there is one other registry setting to make.</p>
<p>Even though back in Figure 21 we disabled product updates, there is still one setting for updates that is set to <a href="https://www.adobe.com/devnet-docs/acrobatetk/tools/PrefRef/Windows/Updater-Win.html?zoom_highlight=updates#idkeyname_1_20396" target="_blank" rel="noopener noreferrer">Automatically download and install updates</a> (Figure 34)!</p>
<figure id="attachment_13830" aria-describedby="caption-attachment-13830" style="width: 678px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure034.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13830 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure034.png" alt="Figure 34" width="678" height="335" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure034.png 678w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure034-530x262.png 530w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure034-600x296.png 600w" sizes="auto, (max-width: 678px) 100vw, 678px" /></a><figcaption id="caption-attachment-13830" class="wp-caption-text">Figure 34</figcaption></figure>
<p>Sure enough, after installing Adobe Acrobat Read DC using the customized transform file with product updates disabled, this registry key is still set to Automatically download and install updates (Figure35).</p>
<figure id="attachment_13831" aria-describedby="caption-attachment-13831" style="width: 1090px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure035.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13831 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure035.png" alt="Figure 35" width="1090" height="198" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure035.png 1090w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure035-530x96.png 530w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure035-768x140.png 768w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure035-900x163.png 900w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure035-600x109.png 600w" sizes="auto, (max-width: 1090px) 100vw, 1090px" /></a><figcaption id="caption-attachment-13831" class="wp-caption-text">Figure 35</figcaption></figure>
<p>You can either set that value to 0 in a GPP or set it in your master image and update your transform file.</p>
<p>If you want to update your master image and then update the transform file, make the necessary changes in the master image&#8217;s registry, start the Adobe Customization Wizard, open the MSI file, and then load your customized transform file.</p>
<p>Click on <em>Registry</em> (Figure 36).</p>
<figure id="attachment_13832" aria-describedby="caption-attachment-13832" style="width: 419px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure036.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13832 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure036.png" alt="Figure 36" width="419" height="588" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure036.png 419w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure036-214x300.png 214w" sizes="auto, (max-width: 419px) 100vw, 419px" /></a><figcaption id="caption-attachment-13832" class="wp-caption-text">Figure 36</figcaption></figure>
<p>Expand HKLM/SOFTWARE/WOW6432Node/Adobe/Adobe ARM/Legacy/Reader/{GUID}</p>
<p>Click on the Mode value and drag and drop it into the <em>Destination Computer</em> window into HKLM/Software/Adobe/Adobe ARM/Legacy/Reader/[ProductCode] (Figure 37).</p>
<figure id="attachment_13833" aria-describedby="caption-attachment-13833" style="width: 1124px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure037.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13833 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure037.png" alt="Figure 37" width="1124" height="703" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure037.png 1124w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure037-480x300.png 480w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure037-768x480.png 768w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure037-900x563.png 900w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure037-600x375.png 600w" sizes="auto, (max-width: 1124px) 100vw, 1124px" /></a><figcaption id="caption-attachment-13833" class="wp-caption-text">Figure 37</figcaption></figure>
<p>Even after all these changes, we are still not done. Adobe keeps the Adobe Acrobat Update Service set to Automatically start (Figure 38).</p>
<figure id="attachment_13834" aria-describedby="caption-attachment-13834" style="width: 1019px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure038.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-13834 size-full" src="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure038.png" alt="Figure 38" width="1019" height="94" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/Figure038.png 1019w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure038-530x49.png 530w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure038-768x71.png 768w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure038-900x83.png 900w, https://www.carlwebster.com/wp-content/uploads/2018/09/Figure038-600x55.png 600w" sizes="auto, (max-width: 1019px) 100vw, 1019px" /></a><figcaption id="caption-attachment-13834" class="wp-caption-text">Figure 38</figcaption></figure>
<p>Again, this is something you can fix with a GPP or Stop and Disable the service in your master image.</p>
<p>After you make all the changes Carl Behrent recommends, you should be able to rest better knowing your users should not see any Adobe messages, and updates to Adobe Reader DC should not happen.</p>
<p>In this article, you learned to:</p>
<ul>
<li>sign up to distribute the free Adobe Acrobat Reader version DC</li>
<li>download the distributable file</li>
<li>download the Adobe Customization Wizard</li>
<li>extract the Acrobat Reader MSI file</li>
<li>customize the MSI file</li>
<li>install the customized file on your master image</li>
<li>remove additional menu items using JavaScript</li>
</ul>
<p>Thanks</p>
<p>Webster</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.carlwebster.com/learning-to-install-adobe-acrobat-reader-dc/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">13780</post-id>	</item>
		<item>
		<title>Citrix Profile Management &#8211; How to Use One Image to Point to Multiple Profile Management Stores</title>
		<link>https://www.carlwebster.com/citrix-profile-management-use-one-image-point-multiple-profile-management-stores/</link>
					<comments>https://www.carlwebster.com/citrix-profile-management-use-one-image-point-multiple-profile-management-stores/#comments</comments>
		
		<dc:creator><![CDATA[Carl Webster]]></dc:creator>
		<pubDate>Thu, 10 Aug 2017 12:44:24 +0000</pubDate>
				<category><![CDATA[Citrix Virtual Apps and Desktops]]></category>
		<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenApp/XenDesktop 7.0 - 7.7]]></category>
		<category><![CDATA[XenDesktop 5.x]]></category>
		<guid isPermaLink="false">https://www.carlwebster.com/?p=10482</guid>

					<description><![CDATA[Guest article by Hal Lange. Let me set a stage for configuration: There are multiple XenDesktop Sites for your environment.  Either Citrix Provisioning Services (PVS) or Machine Creation Service (MCS)&#8230;]]></description>
										<content:encoded><![CDATA[<p>Guest article by Hal Lange.</p>
<p>Let me set a stage for configuration:</p>
<p>There are multiple XenDesktop Sites for your environment.  Either Citrix Provisioning Services (PVS) or Machine Creation Service (MCS) is being used for image deployment.  Whether your Sites are Active/Active or Active/Passive doesn’t matter.  The only difference between the images will be the Citrix Profile Management (CPM) store that the image points to.  As we all know, using the Distributed File System (DFS) for profiles is against Microsoft&#8217;s best practices.  Using DFS for profiles is a terrible, as well as an unsupported, practice.  (<a href="https://support.microsoft.com/en-us/help/2533009/information-about-microsoft-support-policy-for-a-dfs-r-and-dfs-n-deployment-scenario" target="_blank" rel="noopener noreferrer">Information about Microsoft support policy for a DFS-R and DFS-N deployment scenario</a>).</p>
<p>Now with that said, you are using the policies for CPM configuration in any scenario (GPO, Studio, WEM, etc…).  The policies have the CPM store as the only change for each site.  My thought was let’s set the CPM service to “Delayed Start”.  Citrix has made that an impossible task.  That service must be set to Automatic to start correctly.  An old standby that I have used, restart the CPM service after the GPO has applied.  This works as far as the CPM service.  It will now log in and download users’ profiles from the correct store.</p>
<p>Now for the interesting twist.  If the CPM service crashes or is restarted, Citrix Director components break.  The Logon Duration and Personalization parts of the User Session Details will become unavailable as shown in Figure 1.</p>
<figure id="attachment_33069" aria-describedby="caption-attachment-33069" style="width: 1383px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2017/08/Figure001.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-33069 size-full" src="https://www.carlwebster.com/wp-content/uploads/2017/08/Figure001.png" alt="Figure 1" width="1383" height="593" srcset="https://www.carlwebster.com/wp-content/uploads/2017/08/Figure001.png 1383w, https://www.carlwebster.com/wp-content/uploads/2017/08/Figure001-530x227.png 530w, https://www.carlwebster.com/wp-content/uploads/2017/08/Figure001-900x386.png 900w, https://www.carlwebster.com/wp-content/uploads/2017/08/Figure001-768x329.png 768w, https://www.carlwebster.com/wp-content/uploads/2017/08/Figure001-600x257.png 600w" sizes="auto, (max-width: 1383px) 100vw, 1383px" /></a><figcaption id="caption-attachment-33069" class="wp-caption-text">Figure 1</figcaption></figure>
<p>What is happening, is that the WMI calls being made by Director to the VDA are broken.  You can see this by running the following PowerShell command:</p>
<pre class="brush: powershell; title: ; notranslate">
Get-&lt;u&gt;wmiobject&lt;/u&gt; -Class &quot;session&quot; -Namespace &quot;Root\Citrix\profiles\metrics&quot;
</pre>
<p>This PowerShell command will show results for the users that have logged in before the CPM service fails.  Any user logging in after the CPM service has been restarted will not be tracked by the WMI counters, which means Citrix Director is broken.</p>
<p>Here are the workarounds attempted:</p>
<ol>
<li>Changing the CPM service to Automatic Delayed – This is not allowed by Citrix programming</li>
<li>Changing the CPM service to Manual – Starting the service via a script after the CPM policy applied. This acts as a restart of the service and breaks the WMI session data.</li>
<li>System Variable – Setting a system variable to be used by the policy. This would dynamically change the server name but not change the policy.  This has the same effect as statically setting a server name and then trying to change it during boot.</li>
</ol>
<p>I have tried many scenarios to try and get this to work.  Citrix has been working on a fix for this as well.  This is an issue for changing CPM stores dynamically as well as the CPM service crashing.</p>
<p>The resolution that I have found so far, to be able to keep one image and change CPM stores dynamically by Site is to use a Host entry.  I set the policy to a server name that will never exist (e.g. MultiCPMServer.company.com).  I then set a policy/scheduled task to add this server to the host file with the IP of the server that I am trying to use for the CPM store.</p>
<p>Example Host file for Site A:<br />
&lt;IP of File Server for Site A&gt;        MultiCPMServer.company.com</p>
<p>Example Host file for Site B:<br />
&lt;IP of File Server for Site B&gt;         MultiCPMServer.company.com</p>
<p>While this is not the most elegant solution, it is very functional and has worked at every client that needs this.  Again….  This will only be used until Citrix resolves the issues with the CPM service breaking WMI.</p>
<p>Now, back to learning what else is broken.</p>
<p>If you have any questions, please <a href="mailto:hal.lange2@gmail.com">send me an email</a>.</p>
<p>Thanks</p>
<p>Hal Lange</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.carlwebster.com/citrix-profile-management-use-one-image-point-multiple-profile-management-stores/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">10482</post-id>	</item>
		<item>
		<title>Another Small Tool from Bart Jacobs&#8217; Toolbox</title>
		<link>https://www.carlwebster.com/another-small-tool-from-bart-jacobs-toolbox/</link>
		
		<dc:creator><![CDATA[Bart Jacobs]]></dc:creator>
		<pubDate>Thu, 29 Dec 2016 14:14:39 +0000</pubDate>
				<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenDesktop 5.x]]></category>
		<guid isPermaLink="false">https://www.carlwebster.com/?p=10083</guid>

					<description><![CDATA[Hello again! This tool is even simpler than the print driver stuff in my previous article. But again I hope this addresses a real need out there, it has done&#8230;]]></description>
										<content:encoded><![CDATA[<p>Hello again!</p>
<p>This tool is even simpler than the print driver stuff in my previous article.</p>
<p>But again I hope this addresses a real need out there, it has done so for me.</p>
<p>Everyone that has used Microsoft Remote Assistance (or some other tools) probably remembers asking the user on the other side what the name of the server/computer he or she is working on.</p>
<p>Sure you can force the users to use a wallpaper generated by bginfo.</p>
<p>Sure you can write and provide instructions to the user on how to find that information&#8230;but we all know they will keep asking you over and over again, right?</p>
<p>But actually, you want users to be able to provide that information fast and simple, and only have to tell them once, no matter what OS they are using.</p>
<p>I looked around for some tools out there, but most of them were either too complicated or just not working on an RDS/Citrix environment.</p>
<p>So I stumbled on an AutoIT script that was going in the right direction. I used it as a basis for mine, created an Exe and deployed the tool to end-users, and have it launched at startup.</p>
<p>So now every user has the same icon in their notification area and when hovering over it the name of their machine will appear.</p>
<figure id="attachment_33572" aria-describedby="caption-attachment-33572" style="width: 155px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2016/12/Figure001-1.png"><img loading="lazy" decoding="async" class="size-full wp-image-33572" src="https://www.carlwebster.com/wp-content/uploads/2016/12/Figure001-1.png" alt="Figure 1" width="155" height="59" /></a><figcaption id="caption-attachment-33572" class="wp-caption-text">Figure 1</figcaption></figure>
<p>&nbsp;</p>
<p>You can download a zip file with the compiled exe and the AutoIT source code.</p>
<p><strong>You can always find the most current files by going to </strong><strong><a title="Current Scripts" href="https://www.carlwebster.com/downloads/" target="_blank" rel="noopener">https://www.carlwebster.com/where-to-get-copies-of-the-documentation-scripts/</a> and looking in the Bart Jacobs&#8217; Toolbox section.</strong></p>
<p>Stay tuned for more!</p>
<p>Thanks</p>
<p>Bart Jacobs</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">10083</post-id>	</item>
		<item>
		<title>Another HRP, another picadm.sys bug?</title>
		<link>https://www.carlwebster.com/another-hrp-another-picadm-sys-bug/</link>
					<comments>https://www.carlwebster.com/another-hrp-another-picadm-sys-bug/#comments</comments>
		
		<dc:creator><![CDATA[Bart Jacobs]]></dc:creator>
		<pubDate>Mon, 31 Aug 2015 12:19:15 +0000</pubDate>
				<category><![CDATA[Receiver]]></category>
		<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenApp 6.5]]></category>
		<guid isPermaLink="false">https://www.carlwebster.com/?p=8599</guid>

					<description><![CDATA[Picadm.sys you say? A few years back I already wrote about picadm.sys issues: https://www.carlwebster.com/the-curious-case-of-the-slow-file-transfer/ Citrix has been updating picadm.sys numerous times since then, and also did in the latest release: HRP06.&#8230;]]></description>
										<content:encoded><![CDATA[<p>Picadm.sys you say?</p>
<p>A few years back I already wrote about picadm.sys issues: <a href="https://www.carlwebster.com/the-curious-case-of-the-slow-file-transfer/">https://www.carlwebster.com/the-curious-case-of-the-slow-file-transfer/</a></p>
<p>Citrix has been updating picadm.sys numerous times since then, and also did in the latest release: HRP06. And before that in XA650R05W2K8R2X64015 too.</p>
<p>However, it seems that XA650R05W2K8R2X64015 introduced a new(?) bug, that was also present in HRP06. That&#8217;s actually quite logical as HRP06 supersedes XA650R05W2K8R2X64015, so XA650R05W2K8R2X64015 is included in HRP06.</p>
<p>Just try this PowerShell oneliner in a XenApp session with client drives enabled and see for yourself:</p>
<p>get-process | out-file -filepath &#8220;\\client\c$\temp\proclist3.txt&#8221; -Append</p>
<p>Obviously, you need to have a c:\temp folder for this to work.</p>
<p>The first time you run this, a file will be created.</p>
<p>When running this a second the time you will find that the file on your c:\temp is not updated. Most of the time it will also throw an error: <em>Out-File : The handle is invalid.</em></p>
<p>The HRP06 version throws an error but XA650R05W2K8R2X64015 just does &#8220;nothing&#8221;.</p>
<p>Uninstalling XA650R05W2K8R2X64015 resolves the problem, I have not yet uninstalled HRP06 yet.</p>
<p>So&#8230; what&#8217;s next? I didn&#8217;t recommend installing HRP06 yet anyway, you should wait for XA650R06W2K8R2X64001, which contains the fix for rpm.dll crashes.</p>
<p>But in the meantime, I&#8217;ve opend yet another Citrix Support Case on picadm.sys. Let&#8217;s hope it gets resolved faster now&#8230;</p>
<p>Thanks</p>
<p>Bart Jacobs</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.carlwebster.com/another-hrp-another-picadm-sys-bug/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8599</post-id>	</item>
		<item>
		<title>Important Information for Those Using My Documentation Scripts</title>
		<link>https://www.carlwebster.com/important-information-using-documentation-scripts/</link>
					<comments>https://www.carlwebster.com/important-information-using-documentation-scripts/#comments</comments>
		
		<dc:creator><![CDATA[Carl Webster]]></dc:creator>
		<pubDate>Wed, 30 Jul 2014 16:21:43 +0000</pubDate>
				<category><![CDATA[Active Directory]]></category>
		<category><![CDATA[NetScaler]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[PVS]]></category>
		<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenApp 5 for Server 2003]]></category>
		<category><![CDATA[XenApp 5 for Server 2008]]></category>
		<category><![CDATA[XenApp 6.0]]></category>
		<category><![CDATA[XenApp 6.5]]></category>
		<category><![CDATA[XenApp/XenDesktop 7.0 - 7.7]]></category>
		<category><![CDATA[XenDesktop 5.x]]></category>
		<guid isPermaLink="false">https://www.carlwebster.com/?p=7374</guid>

					<description><![CDATA[Greetings, New updates to all my documentation scripts will soon be released.  There are some things you need to know first. This is the last update for the XenApp 5&#8230;]]></description>
										<content:encoded><![CDATA[<p>Greetings,</p>
<p>New updates to all my documentation scripts will soon be released.  There are some things you need to know first.</p>
<ul>
<li><strong>This is the last update for the XenApp 5 for Windows Server 2003 script.</strong></li>
<li><strong>All other scripts now require PowerShell version 3 or later.</strong></li>
<li><strong>All other scripts will no longer support Word 2007.</strong></li>
</ul>
<p>The following script updates will soon see the light of day:</p>
<ul>
<li>Active Directory V1.1</li>
<li>DHCP V1.1</li>
<li>PVS V4.2</li>
<li>XenApp 5 for Windows Server 2008 V4.2</li>
<li>XenApp 6 V4.2</li>
<li>XenApp 6.5 V4,2</li>
</ul>
<p>Those testing the XenDesktop scripts will also receive the V0.25 update for both the XenDesktop 5.x and 7.x scripts.</p>
<p>Email me if you would like to be added to the testers group for any of my scripts.</p>
<p>There has been a ton of work going on behind the scenes.  A group of hard-working and dedicated friends have been helping me work on a master template script.  This will allow anyone who wants to create a documentation script to use the template framework and create their own documentation script for any product from any vendor.  Right now the stuff to create Word, PDF and Formatted Text are in the template.  I am not an HTML person and no one has offered to create a generic &#8220;WriteHTMLLine&#8221; type of function(s) like we have for Word.</p>
<p>There are at least four other people I know of, besides me, who are using the new template script as the basis for their documentation scripts.  They have been very instrumental in shaping the template script.  I am not ready to release the template script to the public yet as one person is adding an optional GUI for all the command line parameters and there is no HTML output yet.</p>
<p>Iain Brighton has created a set of highly optimized Word Table functions that can speed up the creation, populating and formatting of Word tables by 95% or more.  Iain has done an amazing amount of work and has produced some fantastic functions that are saving and will save those of us who are using the template script a LOT of time.  Also, those who run the scripts will see a huge time decrease in the amount of time it takes to run the scripts once all the current Word tables are converted to use Iain&#8217;s functions.  I have eight documentation scripts to change so the changes will happen gradually.</p>
<p>I will also, as I convert tables to Iain&#8217;s new functions, start to add formatted text output.  This will allow you to run the scripts without having Word installed.  The DHCP script is the only script that already creates Word, PDF and Formatted Text output files.</p>
<p>Barry Schiffer started and we collaborated on <em>finally</em> fixing the bug with running the scripts on systems with multiple language operating systems and or multiple language versions of Microsoft Word.  That bug fix took a lot of detective work.  Kudos to Barry for leading me towards the solution.  The fix is already in Barry&#8217;s NetScaler V2.0 script.</p>
<p>Thanks</p>
<p>Webster</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.carlwebster.com/important-information-using-documentation-scripts/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7374</post-id>	</item>
		<item>
		<title>Summary Report for Citrix XenApp Farms</title>
		<link>https://www.carlwebster.com/summary-report-for-citrix-xenapp-farms/</link>
					<comments>https://www.carlwebster.com/summary-report-for-citrix-xenapp-farms/#comments</comments>
		
		<dc:creator><![CDATA[Carl Webster]]></dc:creator>
		<pubDate>Mon, 04 Nov 2013 11:00:35 +0000</pubDate>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenApp 5 for Server 2003]]></category>
		<category><![CDATA[XenApp 5 for Server 2008]]></category>
		<category><![CDATA[XenApp 6.0]]></category>
		<category><![CDATA[XenApp 6.5]]></category>
		<guid isPermaLink="false">https://www.carlwebster.com/?p=6237</guid>

					<description><![CDATA[While speaking at the vCommunity events in the Northeast USA put on by Robert Morris and the fine folks at Advantec Global Services, Inc (http://www.advantec.us/), several script users asked if&#8230;]]></description>
										<content:encoded><![CDATA[<p>While speaking at the vCommunity events in the Northeast USA put on by Robert Morris and the fine folks at Advantec Global Services, Inc (<a href="http://www.advantec.us/">http://www.advantec.us/</a>), several script users asked if I could add a Summary Page at the end of the documentation script.</p>
<p><span id="more-6237"></span></p>
<p>They said their managers often asked for data on how many administrators, published resources, policies, etc were used in a particular XenApp farm.  That was easy to do so I added it while waiting to speak in Philadelphia.  Some input from Mr. App-V Tim Mangan on the report layout and it was done.  I am also making this Summary Page available as a separate script.</p>
<p>This script has no options and no parameters.  It simply runs and creates a one-page report.</p>
<p>Here is a sample run from my lab XenApp 5 for Server 2008:</p>
<p>PS C:\webster&gt; .\xa5_summaryreport.ps1<br />
10/28/2013 16:44:36: Getting Farm data<br />
10/28/2013 16:44:37: Verify farm version<br />
10/28/2013 16:44:37: Farm OS is 2008<br />
10/28/2013 16:44:37: Setting up Word<br />
10/28/2013 16:44:37: Create Word comObject.  Ignore the next message.<br />
10/28/2013 16:44:37: Running Microsoft Word 2010<br />
10/28/2013 16:44:37: Create empty word doc<br />
10/28/2013 16:44:37: Disable grammar and spell checking<br />
10/28/2013 16:44:37: Return focus to main document<br />
10/28/2013 16:44:37: Move to the end of the current document<br />
10/28/2013 16:44:37:<br />
10/28/2013 16:44:37: Processing Administrators<br />
10/28/2013 16:44:37:    Retrieving Administrators<br />
10/28/2013 16:44:37:            Processing administrator <em>CITRIX_BUILTIN</em>&#42;CITRIX_ADMINISTRATORS*<br />
10/28/2013 16:44:37:            Processing administrator XA52008\administrator<br />
10/28/2013 16:44:37:            Processing administrator XA52008\carlwebster<br />
10/28/2013 16:44:37: Finished Processing Administrators<br />
10/28/2013 16:44:37:<br />
10/28/2013 16:44:37: Processing Applications<br />
10/28/2013 16:44:37:    Retrieving Applications<br />
10/28/2013 16:44:37:            Processing application Notepad<br />
10/28/2013 16:44:37:            Processing application Paint<br />
10/28/2013 16:44:37: Finished Processing Applications<br />
10/28/2013 16:44:37:<br />
10/28/2013 16:44:37: Processing Servers<br />
10/28/2013 16:44:37:    Retrieving Servers<br />
10/28/2013 16:44:37:            Processing server XA52008<br />
10/28/2013 16:44:37: Finished Processing Servers<br />
10/28/2013 16:44:37:<br />
10/28/2013 16:44:37: Processing Zones<br />
10/28/2013 16:44:37:    Setting summary variables<br />
10/28/2013 16:44:37:    Retrieving Zone Information<br />
10/28/2013 16:44:37: Finished Processing Zones<br />
10/28/2013 16:44:38:<br />
10/28/2013 16:44:38: Processing Load Evaluators<br />
10/28/2013 16:44:38:    Retrieving Load Evaluators<br />
10/28/2013 16:44:38: Finished Processing Load Evaluators<br />
10/28/2013 16:44:38:<br />
10/28/2013 16:44:38: Processing Policies<br />
10/28/2013 16:44:38:    Retrieving Policies<br />
10/28/2013 16:44:38:    Processing policy Everything including the kitchen sink<br />
10/28/2013 16:44:38: Finished Processing Policies<br />
10/28/2013 16:44:38:<br />
10/28/2013 16:44:38: Processing Print Drivers<br />
10/28/2013 16:44:38:    Retrieving Print Drivers<br />
10/28/2013 16:44:38:            Processing driver Citrix Universal Printer<br />
10/28/2013 16:44:38:            Processing driver Citrix XPS Universal Printer<br />
10/28/2013 16:44:38:            Processing driver HP Color LaserJet 2800 Series PS<br />
10/28/2013 16:44:38:            Processing driver HP Color LaserJet 4500 PCL 5<br />
10/28/2013 16:44:38:            Processing driver HP Color LaserJet 4500 PS<br />
10/28/2013 16:44:38:            Processing driver HP LaserJet Series II<br />
10/28/2013 16:44:38:            Processing driver Microsoft XPS Document Writer<br />
10/28/2013 16:44:38:            Processing driver Terminal Services Easy Print<br />
10/28/2013 16:44:38: Finished Processing Print Drivers<br />
10/28/2013 16:44:38:<br />
10/28/2013 16:44:38: Processing Printer Driver Mappings<br />
10/28/2013 16:44:38:    Retrieving Print Driver Mappings<br />
10/28/2013 16:44:38: There are no Printer Driver Mappings created<br />
10/28/2013 16:44:38: Finished Processing Printer Driver Mappings<br />
10/28/2013 16:44:38:<br />
10/28/2013 16:44:38:<br />
10/28/2013 16:44:38: Create Summary Report<br />
10/28/2013 16:44:38: Add administrator summary info<br />
10/28/2013 16:44:39: Add application summary info<br />
10/28/2013 16:44:40: Add server summary info<br />
10/28/2013 16:44:40: Add zone summary info<br />
10/28/2013 16:44:41: Add load evaluator summary info<br />
10/28/2013 16:44:41: Add policy summary info<br />
10/28/2013 16:44:41: Add print driver summary info<br />
10/28/2013 16:44:42: Add print driver mapping summary info<br />
10/28/2013 16:44:42: Add configuration logging summary info<br />
10/28/2013 16:44:43:    Finished Create Summary Page<br />
10/28/2013 16:44:43:<br />
10/28/2013 16:44:43: Finishing up Word document<br />
10/28/2013 16:44:43: Save and Close document and Shutdown Word<br />
10/28/2013 16:44:43: Closing Word<br />
10/28/2013 16:44:43: System Cleanup<br />
10/28/2013 16:44:43:<br />
10/28/2013 16:44:43: Script has completed<br />
10/28/2013 16:44:43:<br />
10/28/2013 16:44:43: C:\webster\Summary Report for XA52008.docx is ready for use<br />
10/28/2013 16:44:43:<br />
PS C:\webster&gt;</p>
<div class="mceTemp"></div>
<p><strong>You can always find the most current script by going to </strong><a title="Current Scripts" href="https://www.carlwebster.com/downloads/" target="_blank" rel="noopener noreferrer"><strong>https://www.carlwebster.com/where-to-get-copies-of-the-documentation-scripts/</strong></a></p>
<p>I hope you find this script useful.</p>
<p>Thanks</p>
<p>Webster</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.carlwebster.com/summary-report-for-citrix-xenapp-farms/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6237</post-id>	</item>
		<item>
		<title>Documenting a Citrix XenApp 6 Farm with Microsoft PowerShell and Word – Version 3</title>
		<link>https://www.carlwebster.com/documenting-a-citrix-xenapp-6-farm-with-microsoft-powershell-and-word-version-3/</link>
					<comments>https://www.carlwebster.com/documenting-a-citrix-xenapp-6-farm-with-microsoft-powershell-and-word-version-3/#comments</comments>
		
		<dc:creator><![CDATA[Carl Webster]]></dc:creator>
		<pubDate>Thu, 21 Feb 2013 11:00:42 +0000</pubDate>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenApp 6.0]]></category>
		<category><![CDATA[powershell]]></category>
		<category><![CDATA[Word]]></category>
		<category><![CDATA[word comobject]]></category>
		<category><![CDATA[xenapp 6]]></category>
		<guid isPermaLink="false">https://www.carlwebster.com/?p=5481</guid>

					<description><![CDATA[The script to document a Citrix XenApp 6 farm has proven to be very popular.  I had not always wanted to take the time to create a version of the&#8230;]]></description>
										<content:encoded><![CDATA[<p>The script to document a Citrix XenApp 6 farm has proven to be very popular.  I had not always wanted to take the time to create a version of the script that would output to a Microsoft Word document because this script had not been downloaded very much.  But in the last few months, the script has been downloaded several thousands of times.  So I finally decided it was time to create a version of this script that creates a Word document.  Ryan Revord had taken the <a title="Documenting a Citrix XenApp 6 Farm with Microsoft PowerShell" href="https://www.carlwebster.com/documenting-a-citrix-xenapp-6-farm-with-microsoft-powershell/" target="_blank" rel="noopener">XenApp 6.0 version of the script</a> and changed it to create a basic Microsoft Word document.  Ryan saved me a lot of work but I wanted improve on the document created by adding a cover page, Table of Contents and footer.  This article will explain the changes to the script to create a Word document.</p>
<p><span id="more-5481"></span></p>
<p><strong>NOTE: This script is continually updated.  You can always find the most current version by going to <a title="Current Scripts" href="https://www.carlwebster.com/where-to-get-copies-of-the-documentation-scripts/" target="_blank" rel="noopener">https://www.carlwebster.com/where-to-get-copies-of-the-documentation-scripts/</a></strong></p>
<p>As much as Microsoft pushes PowerShell for their products and on their users, I find it surprising there is no native PowerShell support for any of the Office products.  For example there is no New_WordDocument, Get-WordDocument or Save-WordDocument.  In order to use Word with PowerShell you must use the Word COM Object model.  Finding detailed information on that subject was not easy.  Fortunately for me, Jeff Hicks had <a title="San Diego 2012 PowerShell Deep Dive Slides and Demos" href="http://jdhitsolutions.com/blog/2012/05/san-diego-2012-powershell-deep-dive-slides-and-demos/" target="_blank" rel="noopener">blogged about a presentation</a> he did in 2012 where he linked to some sample PowerShell script files.  One of his sample files gave me the start I needed.</p>
<p>The prerequisites to follow along with this article are:</p>
<ul>
<li>A server, physical or virtual, running Microsoft Windows Server 2008 R2 with or without SP1</li>
<li>Citrix XenApp 6 installed with or without HRP01 or HRP02</li>
<li>Word 2007, 2010 or 2013 installed on the computer running the script</li>
</ul>
<p>I tested the script with Hotfix Rollup Pack 02.</p>
<p><strong>Note: </strong>The parts of this script that deal with creating the Word document are derived 100% from the XenApp 6.5 script.  To read the details of the changes to the script that deal with Microsoft Word, please read Documenting a Citrix XenApp 6.5 Farm with Microsoft PowerShell and Word – Version 3.  Several of the bug fixes and issues resolved for Version 3.1 of the XenApp 6.5 script are included in this script.  These include:</p>
<ul>
<li>Several typos were fixed to get rid of my southern drawl.  No more “gettin”, “settin” or “runnin”.</li>
<li>More Write-Verbose statements were added.</li>
<li>Fixed all the issues reported by running the script with Set-StrictMode –Version 2.0 set.</li>
<li>For some users, when Microsoft Word is installed, the HKCU:\Software\Microsoft\Office\Common\UserInfo\CompanyName registry key is set and for some, it is not set. For those users, the HKCU:\Software\Microsoft\Office\Common\UserInfo\Company registry key is set. The script will now check both locations.</li>
<li>Some companies do not install the Microsoft Word Templates. This cause the Cover Page and Table of Contents sections of the script to generate numerous errors. The script now checks to see if the appropriate Word Template file is loaded successfully. If not, then the Cover Page and Table of Contents are skipped. The rest of the report is generated.</li>
<li>Pat Coughlin showed me how to disable Spell Check and Grammar Check while the document is created. For large XenApp 6 Farms, this can substantially speed up the document creation. For those large farms that can generate 1000+ page documents, Word would crash trying to keep track of all the spelling and grammar errors.</li>
<li>In the Load Evaluator section, the Load Throttling and Server User load settings were added.</li>
<li>A user on StackOverflow.com showed me how to indent the Table used for the Citrix Services.</li>
<li>Now that I know how to indent the Word Tables, I added Tables for the Citrix Installed Hotfixes and the Microsoft Hotfixes.</li>
<li>The Table for the Microsoft Hotfixes now lists all the Citrix recommended Microsoft hotfixes and whether the hotfix is Installed or Not Installed.</li>
<li>Before getting information on the Citrix Services and hotfixes, the server is tested to make sure it is reachable.</li>
<li>I received a question as to whether Microsoft Word needed to be installed to create the Word document. The script now verifies that Word is installed. If not, a warning is given and the script exits.</li>
<li>I received reports of the script “crashing” if Word was running before the script was run. The script will now check to see if Word is running and if it is, the script will exit. If the script is run from a XenApp server, the script gets the Session ID of the user running the script. Then the script checks if the WinWord process is running in that session. If it is, a warning is given and the script exits.</li>
<li>Session printers with modified settings are now fully detailed</li>
</ul>
<p>In trying to find resources to figure out how to use PowerShell to create a complex Word document, I found Jeff Hick’s blog post and sample scripts.</p>
<p><a title="San Diego 2012 PowerShell Deep Dive Slides and Demos" href="http://jdhitsolutions.com/blog/2012/05/san-diego-2012-powershell-deep-dive-slides-and-demos/" target="_blank" rel="noopener">http://jdhitsolutions.com/blog/2012/05/san-diego-2012-powershell-deep-dive-slides-and-demos/</a></p>
<p>Jeff had a ZIP file with several sample PowerShell scripts.  One of them, Demo-WordReport.ps1, was extremely helpful.</p>
<p>There are three pieces of information the script needs for the Cover Page and Footer:</p>
<ol>
<li>Company Name</li>
<li>Cover Page</li>
<li>User Name</li>
</ol>
<p>Since a digitally signed version of the script is provided, these three pieces of information need to be passed to the script as parameters.  A signed PowerShell script cannot be modified or the script is rendered useless.</p>
<p>These parameters give us $CompanyName, $CoverPage and $UserName.  Each has an alias: CN for CompanyName, CP for CoverPage and UN for UserName.</p>
<p>The default for $CompanyName is read from the registry key where Microsoft Office stores user information.  For some users, when Microsoft Word is installed, the HKCU:\Software\Microsoft\Office\Common\UserInfo\CompanyName registry key is set and for some, it is not set.  For those users, the HKCU:\Software\Microsoft\Office\Common\UserInfo\Company registry key is set.  The script checks both locations.</p>
<p>The default for $CoverPage is Motion.  Motion is a Word Cover Page that comes with both versions of Word, looks good but will require a minor tweak of changing the font used by the date field to a smaller font size.  Some companies do not install the Microsoft Word Templates.  The script checks to see if the appropriate Word Template file is loaded successfully.  If not, then the Cover Page and Table of Contents are skipped.  The rest of the report is generated.</p>
<p>The default for $UserName is taken from the USERNAME environment variable.</p>
<p>The parameter names can be spelled out or the aliases can be used or any combination.  All three of these examples are valid:</p>
<p>-CompanyName “XYC, Inc.” –CoverPage “Grid” –UserName “Joe User”</p>
<p>-CN “XYC, Inc.” –CP “Grid” –UN “Joe User”</p>
<p>-CoverPage “Grid” –UN “Joe User”</p>
<p>For the third example, the default Company Name will be used.</p>
<p>For the Word document to be saved a file name is needed and for the Cover Page, a title is needed.</p>
<p>The filename for the document is the XenApp farm name with the extension DOCX.  The document is stored in the folder where the script is run.</p>
<p>Each version of Word comes with Cover Pages and only two are shared across both versions.  The version of Word installed on the computer running the script needs to be determined.  If a wrong cover page is passed as $CoverPage and that Cover Page is not in the installed version of Word, the script will run but a lot of errors will be returned.  The script validates the $CoverPage against the valid Cover Pages specific to each version of Word.</p>
<p>If an invalid Cover Page is used, the script gives an error, closes Word and exits.</p>
<p>In Version 1 of this script, in order to write out a line of output, my friend Michael B. Smith wrote a <em>Line</em> function.  That function is no longer needed.  Ryan took Michael’s function and modified it to write a line to Word.</p>
<p>The next changes in Version 3 come in the Servers section.  I added Word Tables to hold information on the Citrix services and installed Citrix hotfixes.  I know I can get more data on the services by using WMI Queries but in a large farm with XenApp servers spread geographically; those queries can cause excessive network traffic.  I am using the Get-Service cmdlet because it is native.</p>
<p>Since this script has parameters, I created help text for the script.  Running the following command from the PowerShell prompt will display the full help text.</p>
<pre class="brush: bash; title: ; notranslate">
Get-Help .\XA6_Inventory_v3.ps1 -full
</pre>
<p>You can also use –online to get taken to this article.</p>
<pre class="brush: bash; title: ; notranslate">
Get-Help .\XA6_Inventory_V3.ps1 -online
</pre>
<p>Running the script with –verbose, gives information of the script’s running.</p>
<pre class="brush: bash; title: ; notranslate">
.\xa6_inventory_v3.ps1 -CompanyName &quot;The Accidental Citrix Admin&quot; -CoverPage &quot;Facet&quot; -UserName &quot;Amalgamated Consulting Group&quot; -verbose
</pre>
<p>Sample output.</p>
<pre class="brush: plain; title: ; notranslate">
PS C:\webster&gt; .\xa6_inventory_v3.ps1 -CompanyName &quot;The Accidental Citrix Admin&quot; -CoverPage &quot;Facet&quot; -UserName &quot;Amalgamated Consulting Group&quot; -verbose
VERBOSE: Getting Farm data
VERBOSE: Setting up Word
VERBOSE: Create Word comObject.  If you are not running Word 2007, ignore the next message.
VERBOSE: The object written to the pipeline is an instance of the type &quot;Microsoft.Office.Interop.Word.ApplicationClass&quot;
 from the component's primary interop assembly. If this type exposes different members than the IDispatch members,
scripts written to work with this object might not work if the primary interop assembly is not installed.
VERBOSE: Running Microsoft Word 2013
VERBOSE: Validate company name
VERBOSE: Validate cover page
VERBOSE: Company Name: The Accidental Citrix Admin
VERBOSE: Cover Page  : Facet
VERBOSE: User Name   : Amalgamated Consulting Group
VERBOSE: Farm Name   : NewFarm
VERBOSE: Title       : Inventory Report for the NewFarm Farm
VERBOSE: Filename    : C:\webster\NewFarm.docx
VERBOSE: Load Word Templates
VERBOSE: Create empty word doc
VERBOSE: disable spell checking
VERBOSE: insert new page, getting ready for table of contents
VERBOSE: table of contents
VERBOSE: set the footer
VERBOSE: get the footer and format font
VERBOSE: Footer text
VERBOSE: add page numbering
VERBOSE: return focus to main document
VERBOSE: move to the end of the current document
VERBOSE: Processing Administrators
VERBOSE: Processing Applications
WARNING: Application information could not be retrieved
VERBOSE: Processing Configuration Logging/History Report
VERBOSE: Processing Load Balancing Policies
WARNING: Load balancing policy information could not be retrieved
VERBOSE: Processing Load Evaluators
VERBOSE: Processing Servers
VERBOSE: Testing to see if XA60 is online and reachable
VERBOSE: XA60 is online.  Citrix Services and Hotfix areas processed.
VERBOSE: Processing Citrix services for server XA60
VERBOSE: Create Word Table for Citrix services
VERBOSE: add Citrix services table to doc
VERBOSE: format first row with column headings
VERBOSE: Move table of Citrix services to the right
VERBOSE: return focus back to document
VERBOSE: move to the end of the current document
VERBOSE: Get list of Citrix hotfixes installed
VERBOSE: Processing server XA60
VERBOSE: number of hotfixes is 1
VERBOSE: Create Word Table for Citrix Hotfixes
VERBOSE: add Citrix installed hotfix table to doc
VERBOSE: format first row with column headings
VERBOSE: Move table of Citrix installed hotfixes to the right
VERBOSE: return focus back to document
VERBOSE: move to the end of the current document
VERBOSE: compare Citrix hotfixes to recommended Citrix hotfixes from CTX129229
VERBOSE: Processing Microsoft hotfixes for server XA60
VERBOSE: Create Word Table for Microsoft Hotfixes
VERBOSE: add Microsoft hotfix table to doc
VERBOSE: format first row with column headings
VERBOSE: Move table of Microsoft hotfixes to the right
VERBOSE: return focus back to document
VERBOSE: move to the end of the current document
VERBOSE: Processing Worker Groups
VERBOSE: Processing Zones
VERBOSE: Processing Citrix IMA Policies
VERBOSE: Finishing up Word document
VERBOSE: Set Cover Page Properties
VERBOSE: Update the Table of Contents
VERBOSE: Save and Close document and Shutdown Word
PS C:\webster&gt;
</pre>
<p>How to use this script?</p>
<p>I saved the script as XA6_Inventory_V3.ps1 in the C:\PSScripts folder.  From the PowerShell prompt, change to the C:\PSScripts folder, or the folder where you saved the script.  From the PowerShell prompt, type in:</p>
<p><strong>.\XA6_Inventory_V3.ps1 </strong>and press <em>Enter</em>.</p>
<p><strong>A word about Word</strong></p>
<ol>
<li>Word must be installed</li>
<li>After installation, Word should be opened, at least once, before you run the script</li>
<li>It is better to do File, Options, OK before running the script</li>
</ol>
<p>The script does very strange things if the last two items are not done.  All kinds of errors are generated by the script if Word has not been opened at least once.  The second time the script is run (without Word haven been opened), fewer errors are generated.  The third time the script is run, it runs without errors.</p>
<p>I am assuming there are registry keys and values that need to be set for the Word comObject to operate properly.</p>
<p><strong>Bottom Line:</strong> If you just installed Word, open Word and close Word before running the script.</p>
<p>If you have any suggestions for the script, please let me know.  Send an e-mail to webster@carlwebster.com.</p>
<p><strong>NOTE: This script is continually updated.  You can always find the most current version by going to <a title="Current Scripts" href="https://www.carlwebster.com/where-to-get-copies-of-the-documentation-scripts/" target="_blank" rel="noopener">https://www.carlwebster.com/where-to-get-copies-of-the-documentation-scripts/</a></strong></p>
<p>Copies of all the Cover Pages can be found here:</p>
<p><a href="https://carlwebster.sharefile.com/d-s5e9ffd7b1db4a178" target="_blank" rel="noopener">Word 2007</a></p>
<p><a href="https://carlwebster.sharefile.com/d-s309a7ffd0c7430d8" target="_blank" rel="noopener">Word 2010</a></p>
<p><a href="https://carlwebster.sharefile.com/d-sca5ecf61898465bb" target="_blank" rel="noopener">Word 2013</a></p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.carlwebster.com/documenting-a-citrix-xenapp-6-farm-with-microsoft-powershell-and-word-version-3/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5481</post-id>	</item>
		<item>
		<title>Using My Citrix XenApp 6.5 PowerShell Documentation Script with Remoting</title>
		<link>https://www.carlwebster.com/using-my-citrix-xenapp-6-5-powershell-doumentation-script-with-remoting/</link>
					<comments>https://www.carlwebster.com/using-my-citrix-xenapp-6-5-powershell-doumentation-script-with-remoting/#comments</comments>
		
		<dc:creator><![CDATA[Carl Webster]]></dc:creator>
		<pubDate>Tue, 08 Jan 2013 19:11:09 +0000</pubDate>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenApp 6.5]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[netsh advfirewall]]></category>
		<category><![CDATA[powershell]]></category>
		<category><![CDATA[TCP Port 2513]]></category>
		<category><![CDATA[windows firewall]]></category>
		<category><![CDATA[xenapp 6.5]]></category>
		<guid isPermaLink="false">https://www.carlwebster.com/?p=5216</guid>

					<description><![CDATA[I received an email from a reader wanting to get my Citrix XenApp 6.5 Farm PowerShell documentation script to work remotely.  After I wrote my original script and article, Citrix&#8230;]]></description>
										<content:encoded><![CDATA[<p>I received an email from a reader wanting to get my <a title="Documenting a Citrix XenApp 6.5 Farm with Microsoft PowerShell" href="https://www.carlwebster.com/downloads/download-info/xenapp-6-5/" target="_blank" rel="noopener">Citrix XenApp 6.5 Farm PowerShell documentation script </a>to work remotely.  After I wrote my original script and article, <a title="XenApp 6.5 Powershell SDK" href="https://carlwebster.sharefile.com/d-s9b9df5f6350489f8" target="_blank" rel="noopener">Citrix updated the XenApp 6.5 PowerShell SDK</a> to support Remoting and a Default Computer Name.  Even using the new –ComputerName parameter, he was still unable to get my script to work.</p>
<p><span id="more-5216"></span></p>
<p><strong>Note:</strong> This article was updated on November 20, 2015. Go to the bottom of this article to see the updated information.</p>
<p>I installed the Citrix XenApp 6.5 PowerShell SDK and Group Policy modules on my lab domain controller.  All my lab servers have the Windows Firewall enabled and Server Manager Remote Management enabled.</p>
<p>I found this information in the SDK help file on <em>Remoting Cmdlets</em>:</p>
<pre class="brush: plain; title: ; notranslate">
This section explains how to invoke the XenApp Commands remotely. In XenApp 6.5 the cmdlets can be remoted using
the -ComputerName parameter.  In order to facilitate running existing scripts remotely without having to make
significant changes, a default computer name can be set in the client machine. To do this a new set of cmdlets
was introduced. When the default computer name is set, all the cmdlets will automatically remote to the server
specified without having to explicitly use the -ComputerName parameter every time.

To set the default computer name:

Set-XADefaultComputerName server1
</pre>
<p>My lab XenApp 6.5 server is named XA65, so I entered on my domain controller.</p>
<pre class="brush: bash; title: ; notranslate">Set-XADefaultComputerName XA65 </pre>
<p>When I ran my documentation script, I received:</p>
<figure id="attachment_49437" aria-describedby="caption-attachment-49437" style="width: 986px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2013/01/Figure001.png"><img loading="lazy" decoding="async" class="size-full wp-image-49437" src="https://www.carlwebster.com/wp-content/uploads/2013/01/Figure001.png" alt="Figure 1" width="986" height="144" srcset="https://www.carlwebster.com/wp-content/uploads/2013/01/Figure001.png 986w, https://www.carlwebster.com/wp-content/uploads/2013/01/Figure001-530x77.png 530w, https://www.carlwebster.com/wp-content/uploads/2013/01/Figure001-900x131.png 900w, https://www.carlwebster.com/wp-content/uploads/2013/01/Figure001-768x112.png 768w, https://www.carlwebster.com/wp-content/uploads/2013/01/Figure001-600x88.png 600w" sizes="auto, (max-width: 986px) 100vw, 986px" /></a><figcaption id="caption-attachment-49437" class="wp-caption-text">Figure 1</figcaption></figure>
<p>I then ran Microsoft’s Sysinternals ProcMon to get a network trace. I found that TCP Port 2513 needed to be opened (Figure 2).</p>
<figure id="attachment_49438" aria-describedby="caption-attachment-49438" style="width: 647px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2013/01/Figure002.png"><img loading="lazy" decoding="async" class="size-full wp-image-49438" src="https://www.carlwebster.com/wp-content/uploads/2013/01/Figure002.png" alt="Figure 2" width="647" height="222" srcset="https://www.carlwebster.com/wp-content/uploads/2013/01/Figure002.png 647w, https://www.carlwebster.com/wp-content/uploads/2013/01/Figure002-530x182.png 530w, https://www.carlwebster.com/wp-content/uploads/2013/01/Figure002-600x206.png 600w" sizes="auto, (max-width: 647px) 100vw, 647px" /></a><figcaption id="caption-attachment-49438" class="wp-caption-text">Figure 2</figcaption></figure>
<p>My wife tells me I couldn’t find a 10 gallon (37.8541 Liter) jug of milk on the fridge&#8217;s top shelf!  What does this have to do with anything?  DOH! At the top of the help file, I <em>now</em> see (Figure 3):</p>
<figure id="attachment_49439" aria-describedby="caption-attachment-49439" style="width: 706px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2013/01/Figure003.png"><img loading="lazy" decoding="async" class="size-full wp-image-49439" src="https://www.carlwebster.com/wp-content/uploads/2013/01/Figure003.png" alt="Figure 3" width="706" height="103" srcset="https://www.carlwebster.com/wp-content/uploads/2013/01/Figure003.png 706w, https://www.carlwebster.com/wp-content/uploads/2013/01/Figure003-530x77.png 530w, https://www.carlwebster.com/wp-content/uploads/2013/01/Figure003-600x88.png 600w" sizes="auto, (max-width: 706px) 100vw, 706px" /></a><figcaption id="caption-attachment-49439" class="wp-caption-text">Figure 3</figcaption></figure>
<p>The help text says TCP Port 2513 must be opened on both computers, but I found I only needed it opened on the XenApp server.  To me, that is one less port open on my network.</p>
<p>I created a Windows Firewall Rule on my XenApp server to open TCP Port 2513 between the domain controller and my XenApp server (Figure 4).  The “remoteip” will need to be the computer&#8217;s IP address used to run the script.</p>
<pre class="brush: bash; title: ; notranslate"> netsh advfirewall firewall add rule name=&amp;amp;quot;Citrix PoSH TCP Port 2513&amp;amp;quot; dir=in action=allow description=&amp;amp;quot;Allow communication between XenApp and remote computer running PoSH scripts&amp;amp;quot; enable=yes profile=any remoteip=192.168.1.100 protocol=tcp localport=2513 &amp;nbsp;</pre>
<figure id="attachment_49440" aria-describedby="caption-attachment-49440" style="width: 668px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2013/01/Figure004-1.png"><img loading="lazy" decoding="async" class="size-full wp-image-49440" src="https://www.carlwebster.com/wp-content/uploads/2013/01/Figure004-1.png" alt="Figure 4" width="668" height="331" srcset="https://www.carlwebster.com/wp-content/uploads/2013/01/Figure004-1.png 668w, https://www.carlwebster.com/wp-content/uploads/2013/01/Figure004-1-530x263.png 530w, https://www.carlwebster.com/wp-content/uploads/2013/01/Figure004-1-600x297.png 600w" sizes="auto, (max-width: 668px) 100vw, 668px" /></a><figcaption id="caption-attachment-49440" class="wp-caption-text">Figure 4</figcaption></figure>
<p>The Windows Firewall GUI shows my new rule created and enabled (Figure 5).</p>
<figure id="attachment_49441" aria-describedby="caption-attachment-49441" style="width: 901px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2013/01/Figure005.png"><img loading="lazy" decoding="async" class="size-full wp-image-49441" src="https://www.carlwebster.com/wp-content/uploads/2013/01/Figure005.png" alt="Figure 5" width="901" height="149" srcset="https://www.carlwebster.com/wp-content/uploads/2013/01/Figure005.png 901w, https://www.carlwebster.com/wp-content/uploads/2013/01/Figure005-530x88.png 530w, https://www.carlwebster.com/wp-content/uploads/2013/01/Figure005-768x127.png 768w, https://www.carlwebster.com/wp-content/uploads/2013/01/Figure005-600x99.png 600w" sizes="auto, (max-width: 901px) 100vw, 901px" /></a><figcaption id="caption-attachment-49441" class="wp-caption-text">Figure 5</figcaption></figure>
<p>Now my script runs (Figure 6).</p>
<figure id="attachment_49442" aria-describedby="caption-attachment-49442" style="width: 988px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2013/01/Figure006.png"><img loading="lazy" decoding="async" class="size-full wp-image-49442" src="https://www.carlwebster.com/wp-content/uploads/2013/01/Figure006.png" alt="Figure 6" width="988" height="631" srcset="https://www.carlwebster.com/wp-content/uploads/2013/01/Figure006.png 988w, https://www.carlwebster.com/wp-content/uploads/2013/01/Figure006-470x300.png 470w, https://www.carlwebster.com/wp-content/uploads/2013/01/Figure006-900x575.png 900w, https://www.carlwebster.com/wp-content/uploads/2013/01/Figure006-768x490.png 768w, https://www.carlwebster.com/wp-content/uploads/2013/01/Figure006-600x383.png 600w" sizes="auto, (max-width: 988px) 100vw, 988px" /></a><figcaption id="caption-attachment-49442" class="wp-caption-text">Figure 6</figcaption></figure>
<p>Now you can use my XenApp 6.5 PowerShell Documentation Script with absolutely no modifications and have it work with remoting.  Thanks, Citrix, for making this so easy.</p>
<p><strong>Update November 20, 2015</strong>:</p>
<p>If you are having an issue connecting, make sure the Citrix XenApp Commands Remoting service is started. I have seen this service in three states at various locations: Manual, Automatic but not Started, and Automatic and Started.  Make sure this service is Started, and then your remote connection should succeed.</p>
<p>Thanks to my Aussie friend Jeremy Saunders for reminding me to update this article with this information.</p>
<figure id="attachment_49443" aria-describedby="caption-attachment-49443" style="width: 820px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2013/01/Figure007-1.png"><img loading="lazy" decoding="async" class="size-full wp-image-49443" src="https://www.carlwebster.com/wp-content/uploads/2013/01/Figure007-1.png" alt="Figure 7" width="820" height="616" srcset="https://www.carlwebster.com/wp-content/uploads/2013/01/Figure007-1.png 820w, https://www.carlwebster.com/wp-content/uploads/2013/01/Figure007-1-399x300.png 399w, https://www.carlwebster.com/wp-content/uploads/2013/01/Figure007-1-768x577.png 768w, https://www.carlwebster.com/wp-content/uploads/2013/01/Figure007-1-600x451.png 600w" sizes="auto, (max-width: 820px) 100vw, 820px" /></a><figcaption id="caption-attachment-49443" class="wp-caption-text">Figure 7</figcaption></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://www.carlwebster.com/using-my-citrix-xenapp-6-5-powershell-doumentation-script-with-remoting/feed/</wfw:commentRss>
			<slash:comments>24</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5216</post-id>	</item>
		<item>
		<title>E2E 2012 Hamburg, Germany Presentation (10 things in AD that can hurt your Application and Desktop Virtualization efforts and how to fix them)</title>
		<link>https://www.carlwebster.com/e2e-2012-hamburg/</link>
		
		<dc:creator><![CDATA[Carl Webster]]></dc:creator>
		<pubDate>Sat, 03 Nov 2012 16:00:12 +0000</pubDate>
				<category><![CDATA[Active Directory]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Presentations]]></category>
		<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenApp 5 for Server 2003]]></category>
		<category><![CDATA[XenApp 5 for Server 2008]]></category>
		<category><![CDATA[XenApp 6.0]]></category>
		<category><![CDATA[XenApp 6.5]]></category>
		<category><![CDATA[XenDesktop 5.x]]></category>
		<guid isPermaLink="false">https://www.carlwebster.com/?p=4976</guid>

					<description><![CDATA[Greetings, If you came to my presentation at the Experts to Experts Conference in Hamburg, Germany thanks for being there. This presentation is different from the Synergy San Francisco version&#8230;]]></description>
										<content:encoded><![CDATA[<p>Greetings,</p>
<p>If you came to my presentation at the Experts to Experts Conference in Hamburg, Germany thanks for being there. This presentation is different from the Synergy San Francisco version in that I added content for:</p>
<ul>
<li>Server 2012 AD</li>
<li>Dell vWorkspace</li>
<li>RES Workspace Manager</li>
<li>VMware View</li>
</ul>
<p>I would like to thank the following people for their help in putting together the information and for verifying its accuracy and up-to-dateness.</p>
<p>Michael B. Smith, Exchange MVP, <a title="The Essential Exchange" href="https://www.essential.exchange/blog/" target="_blank" rel="noopener noreferrer">https://www.essential.exchange/blog/</a></p>
<p>Brian Desmond, Directory Services MVP, <a title="Brian Desmond" href="http://BrianDesmond.com" target="_blank" rel="noopener noreferrer">http://BrianDesmond.com</a></p>
<p>Andrew S. Baker, Directory Services Expert, <a title="Andrew S. Baker" href="http://about.me/Andrew.S.Baker" target="_blank" rel="noopener noreferrer">http://about.me/Andrew.S.Baker</a></p>
<p>Jo Harder, former Citrix XenApp product architect, now at <a href="https://www.linkedin.com/in/joharder/" target="_blank" rel="noopener noreferrer">https://www.linkedin.com/in/joharder/</a></p>
<p>Bob Free, Directory Services Expert, PG&amp;E, Enterprise Shared Technology and Services</p>
<p>Michel Roth, Product Manager Quest Workspace, Microsoft MVP Remote Desktop Services for information on Quest Workspace Desktop Virtualization</p>
<p>Scott Bowling, Pride Technologies for information on Quest Workspace Desktop Virtualization</p>
<p>Sander van der Hoek, IBM, RES Software Certified Professional for information on RES Workspace Manager</p>
<p>Andre Leibovici, View Architect, Office of CTO &#8211; End User Computing VMware for help in finding VMware View information</p>
<p>A special Thank You goes to Echo_S from Experts Exchange for helping me resolve an issue with generating the PDF version of this presentation.</p>
<p><strong>You can always find the most current PDF by going to </strong><a title="Current Scripts" href="https://www.carlwebster.com/downloads/" target="_blank" rel="noopener noreferrer"><strong>https://www.carlwebster.com/where-to-get-copies-of-the-documentation-scripts/</strong></a></p>
<p>Thanks</p>
<p>Webster</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4976</post-id>	</item>
		<item>
		<title>Synergy 2012 Barcelona Geek Speak Live Presentation (10 things in AD that can hurt XenDesktop or XenApp and how to fix them)</title>
		<link>https://www.carlwebster.com/synergy-2012-barcelona/</link>
		
		<dc:creator><![CDATA[Carl Webster]]></dc:creator>
		<pubDate>Thu, 18 Oct 2012 07:30:22 +0000</pubDate>
				<category><![CDATA[Active Directory]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Presentations]]></category>
		<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenApp 5 for Server 2003]]></category>
		<category><![CDATA[XenApp 5 for Server 2008]]></category>
		<category><![CDATA[XenApp 6.0]]></category>
		<category><![CDATA[XenApp 6.5]]></category>
		<category><![CDATA[XenDesktop 5.x]]></category>
		<guid isPermaLink="false">https://www.carlwebster.com/?p=4973</guid>

					<description><![CDATA[Greetings, If you came to my presentation at Synergy 2012 in Barcelona, thanks for being there. I would like to thank the following people for their help in putting together&#8230;]]></description>
										<content:encoded><![CDATA[<p>Greetings,</p>
<p>If you came to my presentation at Synergy 2012 in Barcelona, thanks for being there.</p>
<p>I would like to thank the following people for their help in putting together the information and for verifying its accuracy and up-to-dateness.</p>
<p>Michael B. Smith, Exchange MVP, <a title="The Essential Exchange" href="https://www.essential.exchange/blog/" target="_blank" rel="noopener noreferrer">https://www.essential.exchange/blog/</a></p>
<p>Brian Desmond, Directory Services MVP, <a title="Brian Desmond" href="http://BrianDesmond.com" target="_blank" rel="noopener noreferrer">http://BrianDesmond.com</a></p>
<p>Andrew S. Baker, Directory Services Expert, <a title="Andrew S. Baker" href="http://about.me/Andrew.S.Baker" target="_blank" rel="noopener noreferrer">http://about.me/Andrew.S.Baker</a></p>
<p>Jo Harder, former Citrix XenApp product architect, now at <a href="https://www.linkedin.com/in/joharder/" target="_blank" rel="noopener noreferrer">https://www.linkedin.com/in/joharder/</a></p>
<p>Bob Free, Directory Services Expert, PG&amp;E, Enterprise Shared Technology and Services</p>
<p><strong>You can always find the most current PDF by going to </strong><a title="Current Scripts" href="https://www.carlwebster.com/downloads/" target="_blank" rel="noopener noreferrer"><strong>https://www.carlwebster.com/where-to-get-copies-of-the-documentation-scripts/</strong></a></p>
<p>Thanks</p>
<p>Webster</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4973</post-id>	</item>
		<item>
		<title>BriForum 2012 Chicago Presentation (10 things in AD that can hurt your Application and Desktop Virtualization efforts and how to fix them)</title>
		<link>https://www.carlwebster.com/briforum-2012-chicago/</link>
					<comments>https://www.carlwebster.com/briforum-2012-chicago/#comments</comments>
		
		<dc:creator><![CDATA[Carl Webster]]></dc:creator>
		<pubDate>Wed, 25 Jul 2012 14:15:10 +0000</pubDate>
				<category><![CDATA[Active Directory]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Presentations]]></category>
		<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenApp 5 for Server 2003]]></category>
		<category><![CDATA[XenApp 5 for Server 2008]]></category>
		<category><![CDATA[XenApp 6.0]]></category>
		<category><![CDATA[XenApp 6.5]]></category>
		<category><![CDATA[XenDesktop 5.x]]></category>
		<guid isPermaLink="false">https://www.carlwebster.com/?p=4943</guid>

					<description><![CDATA[Greetings, If you came to my presentation at BriForum 2012 in Chicago, thanks for being there.  This presentation is different from the Synergy version in that I added content for:&#8230;]]></description>
										<content:encoded><![CDATA[<p>Greetings,</p>
<p>If you came to my presentation at BriForum 2012 in Chicago, thanks for being there.  This presentation is different from the Synergy version in that I added content for:</p>
<ul>
<li>Server 2012 AD</li>
<li>Quest Workspace Desktop Virtualization</li>
<li>RES Workspace Manager</li>
<li>VMware View</li>
</ul>
<p>I would like to thank the following people for their help in putting together the information and for verifying its accuracy and up-to-dateness.</p>
<p>Michael B. Smith, Exchange MVP, <a title="The Essential Exchange" href="https://www.essential.exchange/blog/" target="_blank" rel="noopener noreferrer">https://www.essential.exchange/blog/</a></p>
<p>Brian Desmond, Directory Services MVP, <a title="Brian Desmond" href="http://BrianDesmond.com" target="_blank" rel="noopener noreferrer">http://BrianDesmond.com</a></p>
<p>Andrew S. Baker, Directory Services Expert, <a title="Andrew S. Baker" href="http://about.me/Andrew.S.Baker" target="_blank" rel="noopener noreferrer">http://about.me/Andrew.S.Baker</a></p>
<p>Jo Harder, former Citrix XenApp product architect, now at <a href="https://www.linkedin.com/in/joharder/" target="_blank" rel="noopener noreferrer">https://www.linkedin.com/in/joharder/</a></p>
<p>Bob Free, Directory Services Expert, PG&amp;E, Enterprise Shared Technology and Services</p>
<p>Michel Roth, Product Manager Quest Workspace, Microsoft MVP Remote Desktop Services for information on Quest Workspace Desktop Virtualization</p>
<p>Scott Bowling, Pride Technologies for information on Quest Workspace Desktop Virtualization</p>
<p>Sander van der Hoek, IBM, RES Software Certified Professional for information on RES Workspace Manager</p>
<p>Andre Leibovici, View Architect, Office of CTO &#8211; End User Computing VMware for help in finding VMware View information</p>
<p><strong>You can always find the most current PDF by going to </strong><a title="Current Scripts" href="https://www.carlwebster.com/downloads/" target="_blank" rel="noopener noreferrer"><strong>https://www.carlwebster.com/where-to-get-copies-of-the-documentation-scripts/</strong></a></p>
<p>Thanks</p>
<p>Webster</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.carlwebster.com/briforum-2012-chicago/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4943</post-id>	</item>
		<item>
		<title>Post Citrix Synergy 2012 Presentation for AGSI (10 things in AD that can hurt XenDesktop or XenApp and how to fix them)</title>
		<link>https://www.carlwebster.com/post-citrixsynergy-agsi/</link>
					<comments>https://www.carlwebster.com/post-citrixsynergy-agsi/#comments</comments>
		
		<dc:creator><![CDATA[Carl Webster]]></dc:creator>
		<pubDate>Thu, 14 Jun 2012 12:15:39 +0000</pubDate>
				<category><![CDATA[Active Directory]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Presentations]]></category>
		<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenApp 5 for Server 2003]]></category>
		<category><![CDATA[XenApp 5 for Server 2008]]></category>
		<category><![CDATA[XenApp 6.0]]></category>
		<category><![CDATA[XenApp 6.5]]></category>
		<category><![CDATA[XenDesktop 5.x]]></category>
		<guid isPermaLink="false">https://www.carlwebster.com/?p=4918</guid>

					<description><![CDATA[Greetings, If you came to my presentation at AGSI&#8217;s Post Citrix Synergy 2012 event in Charlotte, NC thanks for being there. I would like to thank the following people for&#8230;]]></description>
										<content:encoded><![CDATA[<p>Greetings,</p>
<p>If you came to my presentation at AGSI&#8217;s Post Citrix Synergy 2012 event in Charlotte, NC thanks for being there.</p>
<p>I would like to thank the following people for their help in putting together the information and for verifying its accuracy and up-to-dateness.</p>
<p>Michael B. Smith, Exchange MVP, <a title="The Essential Exchange" href="https://www.essential.exchange/blog/" target="_blank" rel="noopener noreferrer">https://www.essential.exchange/blog/</a></p>
<p>Brian Desmond, Directory Services MVP, <a title="Brian Desmond" href="http://BrianDesmond.com" target="_blank" rel="noopener noreferrer">http://BrianDesmond.com</a></p>
<p>Andrew S. Baker, Directory Services Expert, <a title="Andrew S. Baker" href="http://about.me/Andrew.S.Baker" target="_blank" rel="noopener noreferrer">http://about.me/Andrew.S.Baker</a></p>
<p>Jo Harder, former Citrix XenApp product architect, now at <a href="https://www.linkedin.com/in/joharder/" target="_blank" rel="noopener noreferrer">https://www.linkedin.com/in/joharder/</a></p>
<p><strong>You can always find the most current PDF by going to </strong><a title="Current Scripts" href="https://www.carlwebster.com/downloads/" target="_blank" rel="noopener noreferrer"><strong>https://www.carlwebster.com/where-to-get-copies-of-the-documentation-scripts/</strong></a></p>
<p>Thanks</p>
<p>Webster</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.carlwebster.com/post-citrixsynergy-agsi/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4918</post-id>	</item>
		<item>
		<title>Synergy 2012 San Francisco Geek Speak Live Presentation (10 things in AD that can hurt XenDesktop or XenApp and how to fix them)</title>
		<link>https://www.carlwebster.com/synergy-2012-san-fancisco-geek-speak-live-presentation/</link>
					<comments>https://www.carlwebster.com/synergy-2012-san-fancisco-geek-speak-live-presentation/#comments</comments>
		
		<dc:creator><![CDATA[Carl Webster]]></dc:creator>
		<pubDate>Fri, 11 May 2012 21:00:53 +0000</pubDate>
				<category><![CDATA[Active Directory]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Presentations]]></category>
		<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenApp 5 for Server 2003]]></category>
		<category><![CDATA[XenApp 5 for Server 2008]]></category>
		<category><![CDATA[XenApp 6.0]]></category>
		<category><![CDATA[XenApp 6.5]]></category>
		<category><![CDATA[XenDesktop 5.x]]></category>
		<guid isPermaLink="false">https://www.carlwebster.com/?p=4906</guid>

					<description><![CDATA[Greetings, If you came to my presentation at Citrix Synergy 2012 in San Francisco, thanks for being there. I would like to thank the following people for their help in&#8230;]]></description>
										<content:encoded><![CDATA[<p>Greetings,</p>
<p>If you came to my presentation at Citrix Synergy 2012 in San Francisco, thanks for being there.</p>
<p>I would like to thank the following people for their help in putting together the information and for verifying its accuracy and up-to-dateness.</p>
<p>Michael B. Smith, Exchange MVP, <a title="The Essential Exchange" href="https://www.essential.exchange/blog/" target="_blank" rel="noopener noreferrer">https://www.essential.exchange/blog/</a></p>
<p>Brian Desmond, Directory Services MVP, <a title="Brian Desmond" href="http://BrianDesmond.com" target="_blank" rel="noopener noreferrer">http://BrianDesmond.com</a></p>
<p>Andrew S. Baker, Directory Services Expert, <a title="Andrew S. Baker" href="http://about.me/Andrew.S.Baker" target="_blank" rel="noopener noreferrer">http://about.me/Andrew.S.Baker</a></p>
<p>Jo Harder, former Citrix XenApp product architect, now at <a href="https://www.linkedin.com/in/joharder/" target="_blank" rel="noopener noreferrer">https://www.linkedin.com/in/joharder/</a></p>
<p><strong>You can always find the most current PDF by going to </strong><a title="Current Scripts" href="https://www.carlwebster.com/downloads/" target="_blank" rel="noopener noreferrer"><strong>https://www.carlwebster.com/where-to-get-copies-of-the-documentation-scripts/</strong></a></p>
<p>Thanks</p>
<p>Webster</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.carlwebster.com/synergy-2012-san-fancisco-geek-speak-live-presentation/feed/</wfw:commentRss>
			<slash:comments>12</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4906</post-id>	</item>
		<item>
		<title>How To Digitally Sign a Microsoft PowerShell Script with a Third-Party Code Signing Certificate (Update April 4, 2012)</title>
		<link>https://www.carlwebster.com/how-to-digitally-sign-a-microsoft-powershell-script-with-a-third-party-code-signing-certificate/</link>
					<comments>https://www.carlwebster.com/how-to-digitally-sign-a-microsoft-powershell-script-with-a-third-party-code-signing-certificate/#comments</comments>
		
		<dc:creator><![CDATA[Carl Webster]]></dc:creator>
		<pubDate>Fri, 30 Sep 2011 20:00:08 +0000</pubDate>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenApp 5 for Server 2003]]></category>
		<category><![CDATA[XenApp 5 for Server 2008]]></category>
		<category><![CDATA[XenApp 6.0]]></category>
		<category><![CDATA[XenApp 6.5]]></category>
		<category><![CDATA[code signing]]></category>
		<category><![CDATA[powershell]]></category>
		<guid isPermaLink="false">http://webster.skyrocket.ltd/?p=3705</guid>

					<description><![CDATA[I recently wrote an article on using Microsoft PowerShell to document a Citrix XenApp 6.0 farm.  I am also in the process of finishing up follow-up articles for XenApp 5&#8230;]]></description>
										<content:encoded><![CDATA[<p>I recently wrote an article on using Microsoft PowerShell to document a Citrix XenApp 6.0 farm.  I am also in the process of finishing up follow-up articles for XenApp 5 and XenApp 6.5.  One of the options I wanted to make available is a digitally signed copy of the script used in that article.  As there may be environments where only signed PowerShell scripts are allowed, I want to make signed copies of all my PowerShell scripts available.  I still consider myself a PowerShell rookie, so I wanted to document what I had to go through to sign a PowerShell script.</p>
<p><strong>Update: I now use the Digicert Certificate Utility for Windows to sign all my scripts.</strong></p>
<p><a href="https://www.digicert.com/kb/code-signing/digicert-certificate-utility-to-sign-code.htm" target="_blank" rel="noopener noreferrer">Code Signing with the DigiCert® Certificate Utility for Windows</a></p>
<p>The first thing needed is to request a code signing certificate.  At DigiCert, I clicked on <em>Code Signing Certificates </em>(Figure 1).</p>
<figure id="attachment_20993" aria-describedby="caption-attachment-20993" style="width: 977px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20993" src="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure001-2.png" alt="Figure 1" width="977" height="438" srcset="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure001-2.png 977w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure001-2-530x238.png 530w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure001-2-900x403.png 900w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure001-2-768x344.png 768w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure001-2-600x269.png 600w" sizes="auto, (max-width: 977px) 100vw, 977px" /><figcaption id="caption-attachment-20993" class="wp-caption-text">Figure 1</figcaption></figure>
<p>I then selected <em>Buy Now</em> (Figure 2).</p>
<figure id="attachment_20995" aria-describedby="caption-attachment-20995" style="width: 746px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20995" src="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure002-2.png" alt="Figure 2" width="746" height="552" srcset="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure002-2.png 746w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure002-2-405x300.png 405w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure002-2-600x444.png 600w" sizes="auto, (max-width: 746px) 100vw, 746px" /><figcaption id="caption-attachment-20995" class="wp-caption-text">Figure 2</figcaption></figure>
<p>I then selected <em>Code Signing Cert, </em>a <em>Validity Period, </em>and clicked <em>Continue</em> (Figure 3).</p>
<figure id="attachment_20996" aria-describedby="caption-attachment-20996" style="width: 746px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20996" src="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure003-2.png" alt="Figure 3" width="746" height="792" srcset="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure003-2.png 746w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure003-2-283x300.png 283w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure003-2-600x637.png 600w" sizes="auto, (max-width: 746px) 100vw, 746px" /><figcaption id="caption-attachment-20996" class="wp-caption-text">Figure 3</figcaption></figure>
<p>Next, I selected <em>Microsoft Authenticode</em> and clicked <em>Continue </em>(Figure 4).</p>
<figure id="attachment_20997" aria-describedby="caption-attachment-20997" style="width: 746px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20997" src="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure004-2.png" alt="Figure 4" width="746" height="740" srcset="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure004-2.png 746w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure004-2-302x300.png 302w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure004-2-150x150.png 150w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure004-2-100x100.png 100w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure004-2-600x595.png 600w" sizes="auto, (max-width: 746px) 100vw, 746px" /><figcaption id="caption-attachment-20997" class="wp-caption-text">Figure 4</figcaption></figure>
<p>Next, I filled in my <em>Organization Details</em> and clicked <em>Continue</em> (Figure 5).</p>
<figure id="attachment_20998" aria-describedby="caption-attachment-20998" style="width: 759px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20998" src="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure005-2.png" alt="Figure 5" width="759" height="540" srcset="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure005-2.png 759w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure005-2-422x300.png 422w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure005-2-600x427.png 600w" sizes="auto, (max-width: 759px) 100vw, 759px" /><figcaption id="caption-attachment-20998" class="wp-caption-text">Figure 5</figcaption></figure>
<p>I then filled in my <em>Contact Details</em> and clicked <em>Continue</em> (Figure 6).</p>
<figure id="attachment_20999" aria-describedby="caption-attachment-20999" style="width: 742px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20999" src="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure006-2.png" alt="Figure 6" width="742" height="564" srcset="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure006-2.png 742w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure006-2-395x300.png 395w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure006-2-600x456.png 600w" sizes="auto, (max-width: 742px) 100vw, 742px" /><figcaption id="caption-attachment-20999" class="wp-caption-text">Figure 6</figcaption></figure>
<p>I removed the Payment step information.  I selected <em>I agree to the Terms of Service above</em> and clicked <em>Complete Order</em> (Figure 7).</p>
<figure id="attachment_21000" aria-describedby="caption-attachment-21000" style="width: 742px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-21000" src="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure007-1.png" alt="Figure 7" width="742" height="548" srcset="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure007-1.png 742w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure007-1-406x300.png 406w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure007-1-600x443.png 600w" sizes="auto, (max-width: 742px) 100vw, 742px" /><figcaption id="caption-attachment-21000" class="wp-caption-text">Figure 7</figcaption></figure>
<p>I then received an e-mail from DigiCert Support asking me to verify that I did request a Code Signing Certificate.  After I replied to the e-mail in the affirmative, I received another e-mail with a link to create the code-signing certificate (Figure 8).</p>
<figure id="attachment_21001" aria-describedby="caption-attachment-21001" style="width: 823px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-21001" src="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure008-1.png" alt="Figure 8" width="823" height="285" srcset="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure008-1.png 823w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure008-1-530x184.png 530w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure008-1-768x266.png 768w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure008-1-600x208.png 600w" sizes="auto, (max-width: 823px) 100vw, 823px" /><figcaption id="caption-attachment-21001" class="wp-caption-text">Figure 8</figcaption></figure>
<p>Clicking the link in the e-mail opens my Internet browser with the following popup (Figure 9).  I clicked <em>Yes</em>.</p>
<figure id="attachment_21002" aria-describedby="caption-attachment-21002" style="width: 415px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-21002" src="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure009-1.png" alt="Figure 9" width="415" height="229" /><figcaption id="caption-attachment-21002" class="wp-caption-text">Figure 9</figcaption></figure>
<p>Which then took me to the web site shown in Figure 10.  I then clicked <em>Generate Certificate</em>.</p>
<figure id="attachment_21003" aria-describedby="caption-attachment-21003" style="width: 824px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-21003" src="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure010-1.png" alt="Figure 10" width="824" height="416" srcset="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure010-1.png 824w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure010-1-530x268.png 530w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure010-1-768x388.png 768w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure010-1-600x303.png 600w" sizes="auto, (max-width: 824px) 100vw, 824px" /><figcaption id="caption-attachment-21003" class="wp-caption-text">Figure 10</figcaption></figure>
<p>Which then took me to the web page shown in Figure 11.</p>
<figure id="attachment_21004" aria-describedby="caption-attachment-21004" style="width: 833px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-21004" src="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure011-1.png" alt="Figure 11" width="833" height="299" srcset="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure011-1.png 833w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure011-1-530x190.png 530w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure011-1-768x276.png 768w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure011-1-600x215.png 600w" sizes="auto, (max-width: 833px) 100vw, 833px" /><figcaption id="caption-attachment-21004" class="wp-caption-text">Figure 11</figcaption></figure>
<p>I verified in Internet Explorer that the certificate is installed (Figure 12 and Figure 13).</p>
<figure id="attachment_21005" aria-describedby="caption-attachment-21005" style="width: 509px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-21005" src="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure012-1.png" alt="Figure 12" width="509" height="464" srcset="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure012-1.png 509w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure012-1-329x300.png 329w" sizes="auto, (max-width: 509px) 100vw, 509px" /><figcaption id="caption-attachment-21005" class="wp-caption-text">Figure 12</figcaption></figure>
<figure id="attachment_21006" aria-describedby="caption-attachment-21006" style="width: 408px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-21006" src="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure013-1.png" alt="Figure 13" width="408" height="508" srcset="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure013-1.png 408w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure013-1-241x300.png 241w" sizes="auto, (max-width: 408px) 100vw, 408px" /><figcaption id="caption-attachment-21006" class="wp-caption-text">Figure 13</figcaption></figure>
<p>On the computer where the Code Signing Certificate was installed, I started a PowerShell session running as Administrator.  Using the information from Don Jones’ <em>Windows PowerShell 2.0 TFM</em> book on page 149, I entered the following PowerShell command (should be one long line):</p>
<pre class="brush: powershell; title: ; notranslate">
Set-AuthenticodeSignature `
&quot;C:\Users\cwebster\Documents\carlwebster.com\Documenting a Citrix XenApp 6 Farm with Microsoft PowerShell\XA6_Inventory_Signed.ps1&quot; `
-TimestampServer &quot;http://timestamp.digicert.com/&quot; @(Get-Childitem cert:\CurrentUser\My -codesigning)&#x5B;0]
</pre>
<p>Which then returns a successful signing (Figure 14).</p>
<figure id="attachment_21009" aria-describedby="caption-attachment-21009" style="width: 985px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-21009" src="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure014-1.png" alt="Figure 14" width="985" height="214" srcset="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure014-1.png 985w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure014-1-530x115.png 530w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure014-1-900x196.png 900w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure014-1-768x167.png 768w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure014-1-600x130.png 600w" sizes="auto, (max-width: 985px) 100vw, 985px" /><figcaption id="caption-attachment-21009" class="wp-caption-text">Figure 14</figcaption></figure>
<p>Opening my script shows the added signature block (Figure 15).</p>
<figure id="attachment_21008" aria-describedby="caption-attachment-21008" style="width: 835px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-21008" src="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure015-1.png" alt="Figure 15" width="835" height="652" srcset="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure015-1.png 835w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure015-1-384x300.png 384w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure015-1-768x600.png 768w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure015-1-600x469.png 600w" sizes="auto, (max-width: 835px) 100vw, 835px" /><figcaption id="caption-attachment-21008" class="wp-caption-text">Figure 15</figcaption></figure>
<p>To verify the newly signed script, I went to my XenApp 6 server, copied the signed script to the C:\PSScripts folder, started a PowerShell session as Administrator, and changed to the C:\PSScripts folder.  I then set the PowerShell script execution policy to AllSigned (Figure 16).</p>
<figure id="attachment_21011" aria-describedby="caption-attachment-21011" style="width: 947px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-21011" src="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure016-1.png" alt="Figure 16" width="947" height="126" srcset="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure016-1.png 947w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure016-1-530x71.png 530w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure016-1-900x120.png 900w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure016-1-768x102.png 768w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure016-1-600x80.png 600w" sizes="auto, (max-width: 947px) 100vw, 947px" /><figcaption id="caption-attachment-21011" class="wp-caption-text">Figure 16</figcaption></figure>
<p>I then tried to run the original unsigned script (Figure 17).  The script would not run because it is not digitally signed.</p>
<figure id="attachment_21012" aria-describedby="caption-attachment-21012" style="width: 954px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-21012" src="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure017-1.png" alt="Figure 17" width="954" height="142" srcset="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure017-1.png 954w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure017-1-530x79.png 530w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure017-1-900x134.png 900w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure017-1-768x114.png 768w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure017-1-600x89.png 600w" sizes="auto, (max-width: 954px) 100vw, 954px" /><figcaption id="caption-attachment-21012" class="wp-caption-text">Figure 17</figcaption></figure>
<p>I then tried to run the signed script (Figure 18).</p>
<figure id="attachment_21013" aria-describedby="caption-attachment-21013" style="width: 965px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-21013" src="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure018-1.png" alt="Figure 18" width="965" height="106" srcset="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure018-1.png 965w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure018-1-530x58.png 530w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure018-1-900x99.png 900w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure018-1-768x84.png 768w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure018-1-600x66.png 600w" sizes="auto, (max-width: 965px) 100vw, 965px" /><figcaption id="caption-attachment-21013" class="wp-caption-text">Figure 18</figcaption></figure>
<p>I answered <strong>A</strong> to <em>Always run</em> scripts signed by me (Figure 19) and the script runs successfully.</p>
<figure id="attachment_21014" aria-describedby="caption-attachment-21014" style="width: 988px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-21014" src="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure019-1.png" alt="Figure 19" width="988" height="631" srcset="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure019-1.png 988w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure019-1-470x300.png 470w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure019-1-900x575.png 900w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure019-1-768x490.png 768w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure019-1-600x383.png 600w" sizes="auto, (max-width: 988px) 100vw, 988px" /><figcaption id="caption-attachment-21014" class="wp-caption-text">Figure 19</figcaption></figure>
<p>By answering <em>Always run</em> my code signing certificate was installed on the server in the Trusted Publishers store (Figure 20).</p>
<figure id="attachment_21015" aria-describedby="caption-attachment-21015" style="width: 509px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-21015" src="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure020-1.png" alt="Figure 20" width="509" height="464" srcset="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure020-1.png 509w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure020-1-329x300.png 329w" sizes="auto, (max-width: 509px) 100vw, 509px" /><figcaption id="caption-attachment-21015" class="wp-caption-text">Figure 20</figcaption></figure>
<p>The next time I run the signed script, the script automatically runs (Figure 21).</p>
<figure id="attachment_21016" aria-describedby="caption-attachment-21016" style="width: 418px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-21016" src="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure021-1.png" alt="Figure 21" width="418" height="304" srcset="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure021-1.png 418w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure021-1-413x300.png 413w" sizes="auto, (max-width: 418px) 100vw, 418px" /><figcaption id="caption-attachment-21016" class="wp-caption-text">Figure 21</figcaption></figure>
<p>What I learned is that digitally signing PowerShell scripts is simple to do.  It is not cheap, but it is simple.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.carlwebster.com/how-to-digitally-sign-a-microsoft-powershell-script-with-a-third-party-code-signing-certificate/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3705</post-id>	</item>
		<item>
		<title>Where to Get Copies of the Various Scripts</title>
		<link>https://www.carlwebster.com/where-to-get-copies-of-the-documentation-scripts/</link>
					<comments>https://www.carlwebster.com/where-to-get-copies-of-the-documentation-scripts/#comments</comments>
		
		<dc:creator><![CDATA[Carl Webster]]></dc:creator>
		<pubDate>Fri, 30 Sep 2011 19:00:16 +0000</pubDate>
				<category><![CDATA[Active Directory]]></category>
		<category><![CDATA[NetScaler]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[PVS]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenApp 5 for Server 2003]]></category>
		<category><![CDATA[XenApp 5 for Server 2008]]></category>
		<category><![CDATA[XenApp 6.0]]></category>
		<category><![CDATA[XenApp 6.5]]></category>
		<category><![CDATA[XenDesktop 5.x]]></category>
		<category><![CDATA[dhcp]]></category>
		<category><![CDATA[powershell]]></category>
		<category><![CDATA[provisioning services]]></category>
		<category><![CDATA[scripts]]></category>
		<category><![CDATA[Word]]></category>
		<category><![CDATA[word comobject]]></category>
		<category><![CDATA[xenapp]]></category>
		<category><![CDATA[xendesktop]]></category>
		<guid isPermaLink="false">http://webster.skyrocket.ltd/?p=3741</guid>

					<description><![CDATA[Many people have asked me where they can get copies of the PowerShell documentation scripts.  To make it easier to find, I have linked to all of them in this one article.]]></description>
										<content:encoded><![CDATA[<p><b>NOTE:  All current scripts require PowerShell Version 3 or later.  </b></p>
<p><strong>All current documentation scripts create a Microsoft Word 2010,  2013, or 2016/2019/O365 document.</strong></p>
<p><strong>Word 2016, Word 2019 and the Office 365 version of Word have the same version number of 16. All documentation scripts will work with Word 2019 and Word Office 365 with no changes.</strong></p>
<p><b>*****All the scripts run best on PowerShell Version 5*****</b></p>
<p>Many people have asked me where they can get copies of the various PowerShell documentation scripts. To make it easier to find, I have linked to all of them in this one article.</p>
<p>All scripts have been moved to the new <a title="Script Downloads Page" href="https://www.carlwebster.com/downloads" target="_blank" rel="noopener noreferrer">Downloads page</a>.</p>
<p>I am leaving this landing page here so I don&#8217;t break all the existing links people have to this page.</p>
<p>Thanks</p>
<p>Webster</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.carlwebster.com/where-to-get-copies-of-the-documentation-scripts/feed/</wfw:commentRss>
			<slash:comments>333</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3741</post-id>	</item>
		<item>
		<title>Finding Mismatched Citrix XenApp 5 Servers Using Microsoft PowerShell</title>
		<link>https://www.carlwebster.com/finding-mismatched-xenapp-5-servers-using-powershell/</link>
		
		<dc:creator><![CDATA[Carl Webster]]></dc:creator>
		<pubDate>Wed, 28 Sep 2011 17:30:46 +0000</pubDate>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenApp 5 for Server 2003]]></category>
		<category><![CDATA[XenApp 5 for Server 2008]]></category>
		<category><![CDATA[citrix]]></category>
		<category><![CDATA[powershell]]></category>
		<category><![CDATA[xenapp 5]]></category>
		<guid isPermaLink="false">http://webster.skyrocket.ltd/?p=3240</guid>

					<description><![CDATA[Have you ever worked with a customer that had multiple Citrix license servers and product editions?  I worked with a client recently that had upgraded their Citrix XenApp product licenses&#8230;]]></description>
										<content:encoded><![CDATA[<p>Have you ever worked with a customer that had multiple Citrix license servers and product editions?  I worked with a client recently that had upgraded their Citrix XenApp product licenses from Enterprise to Platinum and had moved to a new Citrix license server.  Their problem was that they, over the years, had an unknown number of XenApp servers that had been manually configured to use various license servers and product editions.  Their problem was compounded by having well over 100 XenApp 5 servers.  The XenApp servers were segregated into folders based on Zone name and sub-folders based on application silo name.  Manually checking every XenApp server in the Delivery Services Console would have taken a very long time.  My solution was a Microsoft PowerShell script.</p>
<p>Being fairly new to PowerShell, but having a software development background, I knew this should be a very simple script to produce.  The client simply wanted a list of XenApp servers so they could look at the license server name and product edition.  The basics of the script are shown here (lines may wrap):</p>
<pre>$Farm = Get-XAFarmConfiguration
$Servers = Get-XAServer
ForEach($Server in $Servers)
{
        $ServerConfig = Get-XAServerConfiguration -ServerName $Server.Servername
        Echo "Zone: " $server.ZoneName
        Echo "Server Name: " $server.ServerName
        Echo “Product Edition: “  $server.CitrixEdition
        If( $ServerConfig.LicenseServerUseFarmSettings )
        {
               Echo "License server: " $Farm.LicenseServerName
        }
        Else
        {
               Echo "License server: " $ServerConfig.LicenseServerName
        }
        Echo “”
}</pre>
<p><strong>Note:</strong> This script is only valid for XenApp 5 for both Server 2003 and Server 2008.  In XenApp 5, it is possible to edit each XenApp server and set a specific Citrix license server.  You could, in fact, have every XenApp server in a XenApp farm configured to use its own Citrix license server.  In XenApp 6, you <em>can</em> do the same thing but that would require the use of Citrix Computer polices, one for each server.</p>
<p>While the above script worked, it was almost useless.  With an extremely large number of servers, the output produced was unwieldy.  The customer gave me the product edition and license server name they wanted to validate against.  I updated the script with that new information and needed a way to filter the data.  PowerShell uses the traditional programming “<strong>If</strong>” statement to allow filtering the data as it is processed.  I added a variable for the license server name and an “<strong>If</strong>” statement to the script as shown below (PowerShell uses the <code>character for line continuation. ):<br />
&lt;pre&gt;$LicenseServerName = NEWLICCTX01.WEBSTERSLAB.COM<br />
$Farm = Get-XAFarmConfiguration<br />
$Servers = Get-XAServer<br />
ForEach($Server in $Servers)<br />
{<br />
    $ServerConfig = Get-XAServerConfiguration -ServerName $Server.Servername<br />
    If(($Server.CitrixEdition -ne "Platinum") -or</code><br />
    ($ServerConfig.LicenseServerUseFarmSettings -eq $False `<br />
    &#8211;and $ServerConfig.LicenseServerName -ne $LicenseServerName))<br />
    {<br />
        &lt;snip&gt;<br />
    }<br />
}<br />
The “<strong>If</strong>” statement says:</p>
<ul>
<li><strong>If</strong> the server’s product edition is <strong>not equal</strong> to “Platinum”</li>
<li><strong>Or</strong>, the server is <strong>not</strong> configured to use the farm settings for the license server <strong>and</strong> the server’s license server name is <strong>not equal</strong> to NEWLICCTX01.WEBSTERSLAB.COM</li>
<li>Output the server’s information</li>
<li>If neither condition is met, skip to the next entry in the list of servers</li>
</ul>
<p>The new script allowed me to output just the XenApp servers matching the client’s criteria.</p>
<p>Sample output:</p>
<p>Zone: ZONE1<br />
Server Name: Z1DCCTXSSO01A<br />
Product Edition: Platinum<br />
License server: oldlicctx01<br />
Zone:  ZONE7<br />
Server Name: Z7DCTRMCTX03J<br />
Product edition: Enterprise<br />
License server: NEWLICCTX01.WEBSTERSLAB.COM</p>
<p><strong>Note:</strong>  The license server names shown in the sample output reflect the entry in the License Server name field for each XenApp server.  XenApp allows as valid entries the NetBIOS name, Fully Qualified Domain Name or IP Address.</p>
<p>Sweet, I have what the client needs, now let me just output this to HTML and I am done.</p>
<p>M:\PSScripts\Get-ServerInfo.ps1 | ConvertTo-Html | Out-File M:\PSScripts\MismatchedServers.html</p>
<p>This produced the following:</p>
<table border="0" cellpadding="0">
<tbody>
<tr>
<td>
<p align="center"><strong>*</strong></p>
</td>
</tr>
<tr>
<td>112</td>
</tr>
</tbody>
</table>
<p>What the…?</p>
<p>I needed to find out what was going on here.  I typed in <strong>Get-ServerInfo.ps1 | Get-Member</strong></p>
<pre>TypeName: System.String

Name       MemberType            Definition
----             ----------            ----------
Clone            Method                System.Object Clone()
CompareTo        Method                int CompareTo(System.Object value), int CompareTo(string strB)
Contains         Method                bool Contains(string value)

&lt;snip&gt;</pre>
<p>Next, I typed in <strong>Get-Help ConvertTo-HTML:</strong></p>
<p>PS Z:\&gt; <strong>Get-Help ConvertTo-HTML</strong></p>
<p>NAME<br />
ConvertTo-Html</p>
<p>SYNOPSIS<br />
Converts Microsoft .NET Framework objects into HTML that can be displayed in a Web browser.</p>
<p>&lt;snip&gt;</p>
<p>What I see from these two pieces of information is that my script is outputting <strong>String </strong>(or text) and ConvertTo-Html is expecting an <strong>Object</strong> as input.</p>
<p>Oh, now I get it.  The light-bulb finally went off:  PowerShell wants OBJECTS, not Text.  DOH!!!</p>
<p>OK, so how do I change this script to output objects instead of text?  I found what I needed in Chapter 19 of Don Jones’ book <a href="https://www.manning.com/books/learn-windows-powershell-in-a-month-of-lunches-third-edition"><em>Learn Windows PowerShell in a Month of Lunches</em></a>.  This is going to be a lot easier than I thought because I am only working with four pieces of data.</p>
<p>All I had to do was change:</p>
<pre>Echo "Zone: " $server.ZoneName
Echo "Server Name: " $server.ServerName
Echo “Product Edition: “  $server.CitrixEdition
If( $ServerConfig.LicenseServerUseFarmSettings )
{
       Echo "License server: " $Farm.LicenseServerName
}
Else
{
       Echo "License server: " $ServerConfig.LicenseServerName  
}
Echo “”

To:

$obj = New-Object -TypeName PSObject
$obj | Add-Member -MemberType NoteProperty `
-Name ZoneName -Value $server.ZoneName
$obj | Add-Member -MemberType NoteProperty `
-Name ServerName -Value $server.ServerName
$obj | Add-Member -MemberType NoteProperty `
-Name ProductEdition -Value $server.CitrixEdition
If($ServerConfig.LicenseServerUseFarmSettings)
{
       $obj | Add-Member -MemberType NoteProperty `
    -Name LicenseServer -Value $Farm.LicenseServerName
}
Else
{
       $obj | Add-Member -MemberType NoteProperty `
    -Name LicenseServer -Value $ServerConfig.LicenseServerName                    
}
Write-Output $obj</pre>
<p>Running the command <strong>M:\PSScripts\Get-ServerInfo.ps1 | ConvertTo-Html | Out-File M:\PSScripts\MismatchedServers.html</strong>, now gives me the following results (Figure 1).</p>
<figure id="attachment_20728" aria-describedby="caption-attachment-20728" style="width: 600px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20728" src="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure001-1.png" alt="Figure 1" width="600" height="210" srcset="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure001-1.png 600w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure001-1-530x186.png 530w" sizes="auto, (max-width: 600px) 100vw, 600px" /><figcaption id="caption-attachment-20728" class="wp-caption-text">Figure 1</figcaption></figure>
<p>Perfect.  Now that the script is using objects for output, any of the ConvertTo-* or Export-To* cmdlets can be used.  But I wanted to take this adventure one step further.  The script uses a hard-coded license server name and product edition.  I want to turn the script into one that can be used by anyone and also make it an advanced function.</p>
<p>The first thing needed is a name for the function.  The purpose of the function is to Get XenApp Mismatched Servers.  Following the naming convention used by Citrix, Get-XA<em>Noun</em>, the name could be Get-XAMismatchedServer.  Why XAMismatchedServer and not XAMismatchedServers?  PowerShell convention is to use singular and not plural.</p>
<p>Function Get-XAMismatchedServer<br />
{<br />
#PowerShell statements<br />
}</p>
<p>There is more functionality that needs to be added to make this a more useful function.  Additionally, I want to learn how to turn this function into a proper PowerShell advanced function.  Some of the additions needed are:</p>
<ol>
<li>Prevent the function from running on XenApp 6+</li>
<li>Allow the use of a single XenApp Zone to restrict the output</li>
<li>Validate the Zone name entered</li>
<li>Change the function to use parameters instead of hardcoded values</li>
<li>Add debug and verbose statements</li>
<li>Add full help text to explain the function</li>
</ol>
<p>For the basis of turning this simple function into an advanced function, I am using Chapter 48 of <a href="http://www.amazon.com/Windows-PowerShell-2-0-Don-Jones/dp/0982131429"><em>Windows PowerShell 2.0 TFM</em></a> by Don Jones and Jeffery Hicks.</p>
<p>The first thing I need to add to the function is the statement that tells PowerShell this is an advanced function.</p>
<pre>Function Get-XAMismatchedServer
{
    [CmdletBinding( SupportsShouldProcess = $False, `
    ConfirmImpact = "None", DefaultParameterSetName = "" ) ]
}</pre>
<p>Even though all parameters in CmdletBinding() are the defaults, I am including them solely for the learning exercise.</p>
<p>I will also need two “helper” functions.  One to verify the version of XenApp the script is being run under and the other for validating the Zone name entered (if one was entered).  These two functions need to be declared before they are used.  This means they need to be at the top of the script.</p>
<p>The function to verify if the script is running under XenApp 5:</p>
<pre>Function IsRunningXenApp5
{
   Param( [string]$FarmVersion )
   Write-Debug "Starting IsRunningXenApp5 function"
   $XenApp5 = $false
   If($Farm.ServerVersion.ToString().SubString(0,1) -ne "6")
   {
     #this is a XenApp 5 farm, script can proceed
     $XenApp5 = $true
   }
   Else
   {
     #this is a not XenApp 5 farm, script cannot proceed
     $XenApp5 = $false
   }
   Write-Debug "Farm is running XenApp5 is $XenApp5"
   Return $XenApp5
}</pre>
<p>Result of function under XenApp 5 (Figure 2).</p>
<figure id="attachment_20729" aria-describedby="caption-attachment-20729" style="width: 466px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20729" src="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure002-1.png" alt="Figure 2" width="466" height="329" srcset="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure002-1.png 466w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure002-1-425x300.png 425w" sizes="auto, (max-width: 466px) 100vw, 466px" /><figcaption id="caption-attachment-20729" class="wp-caption-text">Figure 2</figcaption></figure>
<p>Result of function under XenApp 6 (Figure 3).</p>
<figure id="attachment_20730" aria-describedby="caption-attachment-20730" style="width: 536px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20730" src="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure003-1.png" alt="Figure 3" width="536" height="323" srcset="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure003-1.png 536w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure003-1-498x300.png 498w" sizes="auto, (max-width: 536px) 100vw, 536px" /><figcaption id="caption-attachment-20730" class="wp-caption-text">Figure 3</figcaption></figure>
<p>The function to verify that if a zone name is entered, it is valid:</p>
<pre>Function IsValidZoneName
{
   Param( [string]$ZoneName )
   Write-Debug "Starting IsValidZoneName function"
   $ValidZone = $false
   $Zones = Get-XAZone -ErrorAction SilentlyContinue
   If( -not $? )
   {
     Write-Error "Zone information could not be retrieved"
     Return $ValidZone
   }
   ForEach($Zone in $Zones)
   {
     Write-Debug "Checking zone $Zone against $ZoneName"
     Write-Verbose "Checking zone $Zone against $ZoneName"
     If($Zone.ZoneName -eq $ZoneName)
     {
        Write-Debug "Zone $ZoneName is valid $ValidZone"
        $Zones = $null
        $ValidZone = $true
     }
   }
   $Zones = $null
   Return $ValidZone
}</pre>
<p>Result of the function (Figure 4).</p>
<figure id="attachment_20731" aria-describedby="caption-attachment-20731" style="width: 464px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20731" src="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure004-1.png" alt="Figure 4" width="464" height="429" srcset="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure004-1.png 464w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure004-1-324x300.png 324w" sizes="auto, (max-width: 464px) 100vw, 464px" /><figcaption id="caption-attachment-20731" class="wp-caption-text">Figure 4</figcaption></figure>
<p>Adding parameters to the main function:</p>
<pre>Function Get-XAMismatchedServer
{
   [CmdletBinding( SupportsShouldProcess = $False,
   ConfirmImpact = "None", DefaultParameterSetName = "" ) ]

   Param( 
   [parameter(Position = 0,Mandatory=$true,
   HelpMessage = "Citrix license server name to match" )]
   [Alias("LS")]
   [string]$LicenseServerName,
   [parameter(Position = 1, Mandatory=$true,
   HelpMessage = "Citrix product edition to match: `
   Platinum, Enterprise or Advanced" )]
   [Alias("PE")]
   [ValidateSet("Platinum", "Enterprise", "Advanced")]
   [string]$ProductEdition,
   [parameter(Position = 2,Mandatory=$false, `
   HelpMessage = "XenApp zone to restrict search.  `
   Blank is all zones in farm." )]
   [Alias("ZN")]
   [string]$ZoneName = '' )
}</pre>
<p>Three parameters have been added: $LicenseServerName, $ProductEdition and $ZoneName.  These parameter names were chosen because they are what the Citrix cmdlets use.</p>
<p>All three parameters are positional.  This means the parameter name is not required.  The function could be called as either:</p>
<p><strong>Get-XAMismatchedServer -LicenseServerName CtxLic01 -ProductEdition Platinum -ZoneName EMEA</strong></p>
<p>Or</p>
<p><strong>Get-XAMismatchedServer CtxLic01 Platinum EMEA</strong></p>
<p>The LicenseServerName and ProductEdition parameters are mandatory (Figure 5).</p>
<figure id="attachment_20732" aria-describedby="caption-attachment-20732" style="width: 759px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20732" src="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure005-1.png" alt="Figure 5" width="759" height="211" srcset="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure005-1.png 759w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure005-1-530x147.png 530w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure005-1-600x167.png 600w" sizes="auto, (max-width: 759px) 100vw, 759px" /><figcaption id="caption-attachment-20732" class="wp-caption-text">Figure 5</figcaption></figure>
<p>A help message has been entered so that if a parameter is missing, help text can be requested to tell what needs to be entered (Figure 6).</p>
<figure id="attachment_20733" aria-describedby="caption-attachment-20733" style="width: 734px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20733" src="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure006-1.png" alt="Figure 6" width="734" height="297" srcset="https://www.carlwebster.com/wp-content/uploads/2011/09/Figure006-1.png 734w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure006-1-530x214.png 530w, https://www.carlwebster.com/wp-content/uploads/2011/09/Figure006-1-600x243.png 600w" sizes="auto, (max-width: 734px) 100vw, 734px" /><figcaption id="caption-attachment-20733" class="wp-caption-text">Figure 6</figcaption></figure>
<p><strong>Complete function (lines may wrap):</strong></p>
<pre>Function IsRunningXenApp5
{
   Param( [string]$FarmVersion )
   Write-Debug "Starting IsRunningXenApp5 function"
   $XenApp5 = $false
   If($Farm.ServerVersion.ToString().SubString(0,1) -ne "6")
   {
     #this is a XenApp 5 farm, script can proceed
     $XenApp5 = $true
   }
   Else
   {
     #this is not a XenApp 5 farm, script cannot proceed
     $XenApp5 = $false
   }
   Write-Debug "Farm is running XenApp5 is $XenApp5"
   Return $XenApp5
}

Function IsValidZoneName
{
   Param( [string]$ZoneName )
   Write-Debug "Starting IsValidZoneName function"
   $ValidZone = $false
   $Zones = Get-XAZone -ErrorAction SilentlyContinue
   If( -not $? )
   {
     Write-Error "Zone information could not be retrieved"
     Return $ValidZone
   }
   ForEach($Zone in $Zones)
   {
     Write-Debug "Checking zone $Zone against $ZoneName"
     Write-Verbose "Checking zone $Zone against $ZoneName"
     If($Zone.ZoneName -eq $ZoneName)
     {
        Write-Debug "Zone $ZoneName is valid $ValidZone"
        $Zones = $null
        $ValidZone = $true
     }
   }
   $Zones = $null
   Return $ValidZone
}

Function Get-XAMismatchedServer
{
   &lt;#
   .Synopsis
   Find servers not using the correct license server or
   product edition.
   .Description
   Find Citrix XenApp 5 servers that are not using the Citrix license
   server or product edition specified.  Can be restricted to a
   specific XenApp Zone.
   .Parameter LicenseServerName
   What is the name of the Citrix license server to validate servers
   against.  This parameter has an alias of LS.
   .Parameter ProductEdition
   What XenApp product edition should servers be configured to use.
   Valid input is Platinum, Enterprise or Advanced.
   This parameter has an alias of PE.
   .Parameter ZoneName
   Optional parameter.  If no XenApp zone name is specified, all zones
   in the farm are searched.
   This parameter has an alias of ZN.
   .Example
   PS C:\ Get-XAMismatchedServerInfo
   Will prompt for the Citrix license server name and product edition.
   .Example
   PS C:\ Get-XAMismatchedServerInfo -LicenseServerName CtxLic01 -ProductEdition Platinum
   Will search all XenApp zones in the XenApp 5 farm that the current XenApp 5 server
   is a member.  Any XenApp 5 server that is manually configured to use a different license
   server OR product edition will be returned.
   .Example
   PS C:\ Get-XAMismatchedServerInfo -LicenseServerName CtxLic01 -ProductEdition Platinum -ZoneName EMEA
   Will search the EMEA zone in the XenApp 5 farm that the current XenApp 5 server
   is a member.  Any XenApp 5 server that is manually configured to use a different license
   server OR product edition will be returned.
   .Example
   PS C:\ Get-XAMismatchedServerInfo -LS CtxLic01 -PE Enterprise -ZN Russia
   Will search the Russia zone in the XenApp 5 farm that the current XenApp 5 server
   is a member.  Any XenApp 5 server that is manually configured to use a different license
   server OR product edition will be returned.
   .Example
   PS C:\ Get-XAMismatchedServerInfo CtxNCC1701J Enterprise Cardassian
   Will search the dangerous Cardassian zone in the XenApp 5 farm that the current XenApp 5
   server is a member.  Any XenApp 5 server that is manually configured to use an inferior
   license server OR unworthy product edition will be returned (hopefully in one piece).
   .ReturnValue
   [OBJECT]
   .Notes
   NAME:         Get-XAMismatchedServerInfo
   VERSION:      .9
   AUTHOR:       Carl Webster (with a lot of help from Michael B. Smith)
   LASTEDIT:   May 16, 2011
   #Requires -version 2.0
   #Requires -pssnapin Citrix.XenApp.Commands
   #&gt;
   [CmdletBinding( SupportsShouldProcess = $False, ConfirmImpact = "None", DefaultParameterSetName = "" ) ]
   Param(       [parameter(
   Position = 0,
   Mandatory=$true,
   HelpMessage = "Citrix license server name to match" )]
   [Alias("LS")]
   [string]$LicenseServerName,
   [parameter(
   Position = 1,
   Mandatory=$true,
   HelpMessage = "Citrix product edition to match: Platinum, Enterprise or Advanced" )]
   [Alias("PE")]
   [ValidateSet("Platinum", "Enterprise", "Advanced")]
   [string]$ProductEdition,
   [parameter(
   Position = 2,
   Mandatory=$false,
   HelpMessage = "XenApp zone to restrict search.  Blank is all zones in farm." )]
   [Alias("ZN")]
   [string]$ZoneName = '' )
   Begin
   {
     Write-Debug "In the BEGIN block"
     Write-Debug "Retrieving farm information"
     Write-Verbose "Retrieving farm information"
     $Farm = Get-XAFarm -ErrorAction SilentlyContinue
     If( -not $? )
     {
        Write-Error "Farm information could not be retrieved"
        Return
     }
     Write-Debug "Validating the version of XenApp"
     $IsXenApp5 = IsRunningXenApp5 $Farm.ServerVersion
     If( -not $IsXenApp5 )
     {
        Write-Error "This script is designed for XenApp 5 and cannot be run on XenApp 6"
        Return
     }
     If($ZoneName -ne '')
     {
        Write-Debug "Is zone name valid"
        Write-Verbose "Validating zone $ZoneName"
        $ValidZone = IsValidZoneName $ZoneName
        If(-not $ValidZone)
        {
          Write-Error "Invalid zone name $ZoneName entered"
          Return
        }
     }
   }
   Process
   {
     Write-Debug "In the PROCESS block"
     If($ZoneName -eq '')
     {
        Write-Debug "Retrieving server information for all zones"
        Write-Verbose "Retrieving server information for all zones"
        $Servers = Get-XAServer -ErrorAction SilentlyContinue | `
        sort-object ZoneName, ServerName
     }
     Else
     {
        Write-Debug "Retrieving server information for zone $ZoneName"
        Write-Verbose "Retrieving server information for zone $ZoneName"
        $Servers = Get-XAServer -ZoneName $ZoneName -ErrorAction SilentlyContinue | `
        sort-object ZoneName, ServerName
     }
     If( $? )
     {
        ForEach($Server in $Servers)
        {
          Write-Debug "Retrieving server configuration data for server $Server"
          Write-Verbose "Retrieving server configuration data for server $Server"
          $ServerConfig = Get-XAServerConfiguration -ServerName $Server.Servername `
          -ErrorAction SilentlyContinue
          If( $? )
          {
             If($Server.CitrixEdition -ne $ProductEdition -or `
              ($ServerConfig.LicenseServerUseFarmSettings -eq $False -and `
              $ServerConfig.LicenseServerName -ne $LicenseServerName))
             {
               Write-Debug "Mismatched server $server"
               Write-Verbose "Mismatched server $server"
               $obj = New-Object -TypeName PSObject
               $obj | Add-Member -MemberType NoteProperty `
                  -Name ZoneName -Value $server.ZoneName
               $obj | Add-Member -MemberType NoteProperty `
                  -Name ServerName -Value $server.ServerName
               $obj | Add-Member -MemberType NoteProperty `
                  -Name ProductEdition -Value $server.CitrixEdition
               If($ServerConfig.LicenseServerUseFarmSettings)
               {
                  $obj | Add-Member -MemberType NoteProperty `
                    -Name LicenseServer -Value $Farm.LicenseServerName
               }
               Else
               {
                  $obj | Add-Member -MemberType `
                    NoteProperty -Name LicenseServer `
                    -Value $ServerConfig.LicenseServerName
               }
               Write-Debug "Creating object $obj"
               write-output $obj
            }
          }
          Else
          {
             Write-Error "Configuration information for server `
                   $($Server.Servername) could not be retrieved"
          }
        }
     }
     Else
     {
        Write-Error "Information on XenApp servers could not be retrieved"
     }
   }
   End
   {
     Write-Debug "In the END block"
     $servers = $null
     $serverconfig = $null
     $farm = $null
     $obj = $null
   }
}</pre>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3240</post-id>	</item>
		<item>
		<title>Learning to Install Adobe Acrobat Reader 9.0</title>
		<link>https://www.carlwebster.com/learning-to-install-acrobat-reader/</link>
					<comments>https://www.carlwebster.com/learning-to-install-acrobat-reader/#comments</comments>
		
		<dc:creator><![CDATA[Carl Webster]]></dc:creator>
		<pubDate>Fri, 12 Aug 2011 19:48:09 +0000</pubDate>
				<category><![CDATA[XenApp]]></category>
		<category><![CDATA[acrobat reader]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[how to]]></category>
		<guid isPermaLink="false">http://webster.skyrocket.ltd/?p=3330</guid>

					<description><![CDATA[Portable Document Format (PDF) files are a popular way to transfer documents between computer users.  A PDF file retains formatting for the file being transferred.  There are over 600 free&#8230;]]></description>
										<content:encoded><![CDATA[<p>Portable Document Format (PDF) files are a popular way to transfer documents between computer users.  A PDF file retains formatting for the file being transferred.  There are over 600 free viewers available on <a href="http://www.download.com" target="_blank" rel="noopener">http://www.download.com</a>, which allow the viewing of PDF files.</p>
<p>In this article, you will learn:</p>
<ul>
<li>how to sign up to distribute the free Adobe Acrobat Reader version 9</li>
<li>download the distributable file</li>
<li>download the Adobe Customization Wizard</li>
<li>extract the Acrobat Reader MSI file</li>
<li>customize the MSI file</li>
<li>install the customized file on your XenApp server</li>
<li>remove additional menu items using JavaScript</li>
</ul>
<p>While it may be less time-consuming to just download the free Acrobat Reader and use that MSI file, Adobe requires any entity that will install the program for multiple users to agree to the Adobe Reader Distribution Agreement.</p>
<p>For this article, two versions of XenApp were tested:</p>
<ul>
<li>Citrix XenApp 5 for Server 2003 Platinum (x86) with Hotfix Rollup Package 3</li>
<li>Citrix XenApp 5 for Windows Server 2008 Platinum (x86)</li>
</ul>
<p>Server 2003 will be the main testing version.  Any differences for Server 2008 will be noted.</p>
<p>To start, open your browser and go to <a href="https://www.adobe.com/" target="_blank" rel="noopener">https://www.adobe.com</a> (Figure 1).</p>
<figure id="attachment_20748" aria-describedby="caption-attachment-20748" style="width: 662px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20748" src="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure001.jpg" alt="Figure 1" width="662" height="384" srcset="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure001.jpg 662w, https://www.carlwebster.com/wp-content/uploads/2011/08/Figure001-517x300.jpg 517w, https://www.carlwebster.com/wp-content/uploads/2011/08/Figure001-600x348.jpg 600w" sizes="auto, (max-width: 662px) 100vw, 662px" /><figcaption id="caption-attachment-20748" class="wp-caption-text">Figure 1</figcaption></figure>
<p>Click on the <em>Get Adobe Reader</em> button (Figure 2).</p>
<figure id="attachment_20750" aria-describedby="caption-attachment-20750" style="width: 662px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20750" src="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure002-1.jpg" alt="Figure 2" width="662" height="384" srcset="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure002-1.jpg 662w, https://www.carlwebster.com/wp-content/uploads/2011/08/Figure002-1-517x300.jpg 517w, https://www.carlwebster.com/wp-content/uploads/2011/08/Figure002-1-600x348.jpg 600w" sizes="auto, (max-width: 662px) 100vw, 662px" /><figcaption id="caption-attachment-20750" class="wp-caption-text">Figure 2</figcaption></figure>
<p>Click <em>Distribute Adobe Reader</em> (Figure 3).</p>
<figure id="attachment_20751" aria-describedby="caption-attachment-20751" style="width: 612px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20751" src="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure003-1.jpg" alt="Figure 3" width="612" height="293" srcset="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure003-1.jpg 612w, https://www.carlwebster.com/wp-content/uploads/2011/08/Figure003-1-530x254.jpg 530w, https://www.carlwebster.com/wp-content/uploads/2011/08/Figure003-1-600x287.jpg 600w" sizes="auto, (max-width: 612px) 100vw, 612px" /><figcaption id="caption-attachment-20751" class="wp-caption-text">Figure 3</figcaption></figure>
<p>A new browser window opens.  Click <em>Adobe Reader Distribution Agreement</em> (Figure 4).</p>
<figure id="attachment_20752" aria-describedby="caption-attachment-20752" style="width: 414px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20752" src="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure004-1.jpg" alt="Figure 4" width="414" height="281" /><figcaption id="caption-attachment-20752" class="wp-caption-text">Figure 4</figcaption></figure>
<p>Fill in the necessary information (Figure 5).</p>
<figure id="attachment_20753" aria-describedby="caption-attachment-20753" style="width: 371px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20753" src="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure005-1.jpg" alt="Figure 5" width="371" height="394" srcset="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure005-1.jpg 371w, https://www.carlwebster.com/wp-content/uploads/2011/08/Figure005-1-282x300.jpg 282w" sizes="auto, (max-width: 371px) 100vw, 371px" /><figcaption id="caption-attachment-20753" class="wp-caption-text">Figure 5</figcaption></figure>
<p>Then click <em>Accept and Submit</em> (Figure 6).</p>
<figure id="attachment_20754" aria-describedby="caption-attachment-20754" style="width: 384px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20754" src="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure006-1.jpg" alt="Figure 6" width="384" height="360" srcset="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure006-1.jpg 384w, https://www.carlwebster.com/wp-content/uploads/2011/08/Figure006-1-320x300.jpg 320w" sizes="auto, (max-width: 384px) 100vw, 384px" /><figcaption id="caption-attachment-20754" class="wp-caption-text">Figure 6</figcaption></figure>
<p>You will receive an e-mail from Adobe to verify the e-mail address you entered.  Click the verification link in the e-mail.  Adobe will send you another e-mail with the information necessary to download the Redistributable version of Acrobat Reader 9.  In the second e-mail, click the link to download Adobe Reader 9.</p>
<p>Select the operating system and language that matches your XenApp server and click <em>Continue</em> (Figure 7).</p>
<figure id="attachment_20755" aria-describedby="caption-attachment-20755" style="width: 545px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20755" src="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure007-1.jpg" alt="Figure 7" width="545" height="262" srcset="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure007-1.jpg 545w, https://www.carlwebster.com/wp-content/uploads/2011/08/Figure007-1-530x255.jpg 530w" sizes="auto, (max-width: 545px) 100vw, 545px" /><figcaption id="caption-attachment-20755" class="wp-caption-text">Figure 7</figcaption></figure>
<p>Scroll down and click <em>Download</em> (Figure 8).</p>
<figure id="attachment_20756" aria-describedby="caption-attachment-20756" style="width: 366px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20756" src="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure008.jpg" alt="Figure 8" width="366" height="268" /><figcaption id="caption-attachment-20756" class="wp-caption-text">Figure 8</figcaption></figure>
<p>Save the file to the server&#8217;s desktop (Figure 9).</p>
<figure id="attachment_20757" aria-describedby="caption-attachment-20757" style="width: 420px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20757" src="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure009.jpg" alt="Figure 9" width="420" height="308" srcset="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure009.jpg 420w, https://www.carlwebster.com/wp-content/uploads/2011/08/Figure009-409x300.jpg 409w" sizes="auto, (max-width: 420px) 100vw, 420px" /><figcaption id="caption-attachment-20757" class="wp-caption-text">Figure 9</figcaption></figure>
<p>In the second e-mail from Adobe, click the link for <em>Adobe enterprise deployment tools</em>.  Scroll down and click on <em>Download the Adobe Customization Wizard</em> (Figure 10).</p>
<figure id="attachment_20758" aria-describedby="caption-attachment-20758" style="width: 520px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20758" src="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure010.jpg" alt="Figure 10" width="520" height="274" /><figcaption id="caption-attachment-20758" class="wp-caption-text">Figure 10</figcaption></figure>
<p>On the Adobe Customization Wizard 9 web page, scroll down and click on <em>Proceed to Download</em> (Figure 11).</p>
<figure id="attachment_20759" aria-describedby="caption-attachment-20759" style="width: 528px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20759" src="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure011.jpg" alt="Figure 11" width="528" height="208" /><figcaption id="caption-attachment-20759" class="wp-caption-text">Figure 11</figcaption></figure>
<p>Click <em>Download Now</em> (Figure 12).</p>
<figure id="attachment_20760" aria-describedby="caption-attachment-20760" style="width: 408px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20760" src="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure012.jpg" alt="Figure 12" width="408" height="237" /><figcaption id="caption-attachment-20760" class="wp-caption-text">Figure 12</figcaption></figure>
<p>Save the file to the Server&#8217;s desktop (Figure 13).</p>
<figure id="attachment_20761" aria-describedby="caption-attachment-20761" style="width: 420px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20761" src="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure013.jpg" alt="Figure 13" width="420" height="307" srcset="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure013.jpg 420w, https://www.carlwebster.com/wp-content/uploads/2011/08/Figure013-410x300.jpg 410w" sizes="auto, (max-width: 420px) 100vw, 420px" /><figcaption id="caption-attachment-20761" class="wp-caption-text">Figure 13</figcaption></figure>
<p>Exit your browser.</p>
<p>Double-click <em>CustWiz90_en_US.exe</em> to install the Customization Wizard.  Accept all the defaults during the installation.</p>
<p>The Acrobat Reader MSI file needs to be extracted.  Click <em>Start, Run</em>, type in <strong>&#8220;%UserProfile%\desktop\adberdr90_en_us.exe&#8221; -nos_ne</strong> and press <em>Enter</em>.  For Server 2003, the MSI file is extracted to %UserProfile%\Local Settings\Application Data\Adobe\Reader 9.0\Setup Files\READER9.  For Server 2008, the MSI file is extracted to %UserProfile%\AppData\Local\Adobe\Reader 9.0\Setup Files\READER9.</p>
<p>Copy the READER9 folder to the root of the C: drive.</p>
<p>Click <em>Start, All Programs, Adobe Customization Wizard 9</em> (Figure 14).</p>
<figure id="attachment_20762" aria-describedby="caption-attachment-20762" style="width: 284px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20762" src="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure014.jpg" alt="Figure 14" width="284" height="381" srcset="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure014.jpg 284w, https://www.carlwebster.com/wp-content/uploads/2011/08/Figure014-224x300.jpg 224w" sizes="auto, (max-width: 284px) 100vw, 284px" /><figcaption id="caption-attachment-20762" class="wp-caption-text">Figure 14</figcaption></figure>
<p>Click <em>File, Open Package</em>, type in <strong>C:\Reader9\AcroRead.msi,</strong> and press <em>Enter</em> (Figure 15).</p>
<figure id="attachment_20763" aria-describedby="caption-attachment-20763" style="width: 540px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20763" src="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure015.jpg" alt="Figure 15" width="540" height="477" srcset="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure015.jpg 540w, https://www.carlwebster.com/wp-content/uploads/2011/08/Figure015-340x300.jpg 340w" sizes="auto, (max-width: 540px) 100vw, 540px" /><figcaption id="caption-attachment-20763" class="wp-caption-text">Figure 15</figcaption></figure>
<p>Click <em>Installation Options</em> (Figure 16).</p>
<figure id="attachment_20764" aria-describedby="caption-attachment-20764" style="width: 648px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20764" src="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure016.jpg" alt="Figure 16" width="648" height="390" srcset="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure016.jpg 648w, https://www.carlwebster.com/wp-content/uploads/2011/08/Figure016-498x300.jpg 498w, https://www.carlwebster.com/wp-content/uploads/2011/08/Figure016-600x361.jpg 600w" sizes="auto, (max-width: 648px) 100vw, 648px" /><figcaption id="caption-attachment-20764" class="wp-caption-text">Figure 16</figcaption></figure>
<p>If you have both the full Adobe Acrobat and Acrobat Reader installed on the server, select which one will be the default.  Since you will be installing the customized Acrobat Reader, the options in <em>Run Installation</em> and <em>If reboot required at the end of installation</em> can be ignored.</p>
<p>Click <em>EULA and Document Status</em> (Figure 17).  Check the box <em>Suppress display of End User License Agreement (EULA)</em>.  This will prevent the EULA Agreement page from being displayed for every user the first time Acrobat Reader is run.</p>
<figure id="attachment_20765" aria-describedby="caption-attachment-20765" style="width: 660px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20765" src="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure017.jpg" alt="Figure 17" width="660" height="285" srcset="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure017.jpg 660w, https://www.carlwebster.com/wp-content/uploads/2011/08/Figure017-530x229.jpg 530w, https://www.carlwebster.com/wp-content/uploads/2011/08/Figure017-600x259.jpg 600w" sizes="auto, (max-width: 660px) 100vw, 660px" /><figcaption id="caption-attachment-20765" class="wp-caption-text">Figure 17</figcaption></figure>
<p>Click <em>Online and Acrobat.com Features</em> (Figure 18).</p>
<figure id="attachment_20766" aria-describedby="caption-attachment-20766" style="width: 660px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20766" src="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure018.jpg" alt="Figure 18" width="660" height="484" srcset="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure018.jpg 660w, https://www.carlwebster.com/wp-content/uploads/2011/08/Figure018-409x300.jpg 409w, https://www.carlwebster.com/wp-content/uploads/2011/08/Figure018-600x440.jpg 600w" sizes="auto, (max-width: 660px) 100vw, 660px" /><figcaption id="caption-attachment-20766" class="wp-caption-text">Figure 18</figcaption></figure>
<p>This page allows you to restrict updates, various help options, and Acrobat.com features.  The following are recommended for Terminal Server and Citrix environments (Figure 19):</p>
<ul>
<li>Disable all updates</li>
<li>In Adobe Reader, disable Help -&gt; Purchase Adobe Acrobat</li>
<li>Disable Help -&gt; Digital Editions</li>
<li>Disable Product Improvement Program</li>
<li>Disable Viewing of PDF with Ads for Adobe PDF</li>
<li>Disable all Acrobat.com access, including initiation and participation</li>
</ul>
<p>Note:  There are some reports of problems with viewing PDFs within a browser window.  Some reports state that the AcroRd32 process does not release memory until all browser instances are exited.  If you want to disable this ability, change <em>Display PDF in browser</em> to <em>Disable &amp; Lock</em>.</p>
<figure id="attachment_20767" aria-describedby="caption-attachment-20767" style="width: 661px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20767" src="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure019.jpg" alt="Figure 19" width="661" height="484" srcset="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure019.jpg 661w, https://www.carlwebster.com/wp-content/uploads/2011/08/Figure019-410x300.jpg 410w, https://www.carlwebster.com/wp-content/uploads/2011/08/Figure019-600x439.jpg 600w" sizes="auto, (max-width: 661px) 100vw, 661px" /><figcaption id="caption-attachment-20767" class="wp-caption-text">Figure 19</figcaption></figure>
<p>Click <em>Transform, Generate Transform</em> (Figure 20).</p>
<figure id="attachment_20768" aria-describedby="caption-attachment-20768" style="width: 288px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20768" src="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure020.jpg" alt="Figure 20" width="288" height="87" /><figcaption id="caption-attachment-20768" class="wp-caption-text">Figure 20</figcaption></figure>
<p>Name the Transform file and save it in the <em>READER9</em> folder (Figure 21).</p>
<figure id="attachment_20769" aria-describedby="caption-attachment-20769" style="width: 419px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20769" src="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure021.jpg" alt="Figure 21" width="419" height="306" srcset="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure021.jpg 419w, https://www.carlwebster.com/wp-content/uploads/2011/08/Figure021-411x300.jpg 411w" sizes="auto, (max-width: 419px) 100vw, 419px" /><figcaption id="caption-attachment-20769" class="wp-caption-text">Figure 21</figcaption></figure>
<p>Exit the Adobe Customization Wizard 9 program.</p>
<p>To install Acrobat Reader 9 with your customizations:</p>
<p>Click <em>Start, Run</em>, type in <strong>msiexec /i c:\reader9\acroread.msi TRANSFORMS=c:\reader9\CustomAR9.mst</strong> and press <em>Enter</em>.</p>
<p>Note:  Using MSIEXEC, placing the server into install mode first and execute mode after installation is unnecessary.  Please see <a href="http://msdn.microsoft.com/en-us/library/aa369521%28VS.85%29.aspx" target="_blank" rel="noopener">http://msdn.microsoft.com/en-us/library/aa369521(VS.85).aspx</a> and pages 255 and 256 of the <em>Windows Server 2008 Terminal Services Resource Kit</em>.</p>
<p>Start Acrobat Reader 9, and the EULA Agreement page is not displayed.</p>
<p>Click the Help menu and you will see two options there you do not want in a multi-user environment: <em>Repair Adobe Reader Installation</em> and <em>Online Support </em>(Figure 22).</p>
<figure id="attachment_20770" aria-describedby="caption-attachment-20770" style="width: 488px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20770" src="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure022.jpg" alt="Figure 22" width="488" height="178" /><figcaption id="caption-attachment-20770" class="wp-caption-text">Figure 22</figcaption></figure>
<p>Note:  The following information is adapted from <a href="https://stealthpuppy.com/deploying-adobe-reader-81/" target="_blank" rel="noopener noreferrer">https://stealthpuppy.com/deploying-adobe-reader-81/</a>.</p>
<p>There is no way to remove those options from the customization wizard or via a registry key.  To remove the options, you must create a JavaScript file and place it in the C:\Program Files\Adobe\Reader 9.0\Reader\Javascripts folder.</p>
<p>//HideMenu.js</p>
<p>//Hides Help &#8211; Repair Adobe Reader Installation</p>
<p>app.hideMenuItem(&#8220;DetectAndRepair&#8221;);</p>
<p>//Help &#8211; Online Support</p>
<p>app.hideMenuItem(&#8220;OnlineSupport&#8221;);</p>
<p>When Acrobat Reader is started, it may take a few seconds for the JavaScript file to remove the Help menu items (Figure 23).</p>
<figure id="attachment_20771" aria-describedby="caption-attachment-20771" style="width: 456px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-20771" src="https://www.carlwebster.com/wp-content/uploads/2011/08/Figure023.jpg" alt="Figure 23" width="456" height="143" /><figcaption id="caption-attachment-20771" class="wp-caption-text">Figure 23</figcaption></figure>
<p>There are many other menu items that can be removed using the JavaScript file.  See the link &#8220;<em>JavaScript to Hide Menu Items</em>&#8221; at <a href="http://blog.stealthpuppy.com/deployment/deploying-adobe-reader-81" target="_blank" rel="noopener">http://blog.stealthpuppy.com/deployment/deploying-adobe-reader-81</a>.</p>
<p>You have now successfully customized your Acrobat Reader 9 to work better in a Terminal Server and Citrix environment.</p>
<p>In this article, you learned to:</p>
<ul>
<li>sign up to distribute the free Adobe Acrobat Reader version 9</li>
<li>download the distributable file</li>
<li>download the Adobe Customization Wizard</li>
<li>extract the Acrobat Reader MSI file</li>
<li>customize the MSI file</li>
<li>install the customized file on your XenApp server</li>
<li>remove additional menu items using JavaScript</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://www.carlwebster.com/learning-to-install-acrobat-reader/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3330</post-id>	</item>
		<item>
		<title>Weird Errors and the Mysterious Root Cause</title>
		<link>https://www.carlwebster.com/weird-errors-and-the-mysterious-root-cause/</link>
		
		<dc:creator><![CDATA[Carl Webster]]></dc:creator>
		<pubDate>Sun, 13 Feb 2011 20:02:41 +0000</pubDate>
				<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenApp 5 for Server 2003]]></category>
		<category><![CDATA[name resolution]]></category>
		<category><![CDATA[not accepting connections]]></category>
		<category><![CDATA[protocol driver error]]></category>
		<category><![CDATA[transport driver error]]></category>
		<guid isPermaLink="false">http://webster.skyrocket.ltd/?p=701</guid>

					<description><![CDATA[Over the past few months I have come across several seemingly unrelated issues that all had one root cause.  There was not any typical correlation between the servers.  Citrix software&#8230;]]></description>
										<content:encoded><![CDATA[<p>Over the past few months I have come across several seemingly unrelated issues that all had one root cause.  There was not any typical correlation between the servers.  Citrix software was everything from Presentation Server 4.0 to XenApp 5.  Windows operating systems ranged from Windows 2000 Server up to Windows Server 2008.  Users would receive one of the following errors:</p>
<p>Cannot connect to the Citrix MetaFrame server (with one of the following statements):</p>
<ul>
<li>Protocol Driver error</li>
<li>Transport Driver error</li>
<li>The SSL Server you are trying to connect to is not accepting connections</li>
<li>The Citrix MetaFrame server you have selected is not accepting connections</li>
<li>There is no route to the specified subnet address</li>
</ul>
<p>Looking in the server’s event logs, any number of the following would be logged:</p>
<ul>
<li>The licenses required by this edition of Citrix Presentation Server are not present on the license server <em>LicenseServerName</em>.</li>
<li>This computer running Citrix Presentation Server will now stop accepting connections. This server is no longer in or could not enter a licensing grace period.</li>
<li>Error <em>errorNumber</em> received while obtaining a license for a Citrix Presentation Server client connection. A grace license has been granted.</li>
<li>Error <em>errorNumber</em> received while obtaining a license for a MetaFrame client connection. The license request has been rejected.</li>
</ul>
<p>The first course of action would be to follow the relevant Citrix Support Knowledgebase Articles:</p>
<ul>
<li>CTX105793 Error: Cannot connect to the Citrix server. Protocol Driver Error and/or Transport Driver.</li>
<li>CTX108782 Error: Cannot connect to the Citrix MetaFrame server. Protocol Driver error.</li>
<li>CTX911130 Error: &#8220;1030 &#8211; Protocol Driver Error&#8221; Troubleshooting Steps and Suggestions</li>
<li>CTX103367 Users receive a Transport Driver Error message</li>
<li>CTX101716 Error: The SSL Server You Have Selected is not accepting connections</li>
<li>CTX106531 Troubleshooting the Citrix XTE Service and Errors: There is no route to the specified address &#8230; Protocol Driver Error</li>
</ul>
<p>At the customer sites where I was working, none of the above articles or troubleshooting steps resolved the errors.  Every error above, at these specific customer sites, had the same root cause: name resolution issues.  Symptoms included:</p>
<ul>
<li>The ability to ping the Citrix license server by IP address but not by either NetBIOS name or Fully Qualified Domain Name.   For example, pinging 192.168.1.1 worked but not pinging CTXLIC01 or CTXLIC01.WebstersLab.com.</li>
<li>The ability to ping the Citrix license server from one XenApp server but not another.</li>
<li>A XenApp server would work one week but not work after all servers completed a scheduled reboot cycle.</li>
</ul>
<p>Some of the problems and solutions include:</p>
<ul>
<li>Corrupt local DNS cache.  Pinging the Citrix license server returned an invalid result or no result.  Running <strong>ipconfig /flushdns</strong> on the XenApp server fixed this symptom.</li>
<li>For the Presentation Server 4.0 farm, all the Domain Controllers were running Windows 2000 Server and all Domain Controllers pointed to themselves for primary DNS.  This created DNS Islands and not all Domain Controllers had the host record for the Citrix license server.  This was fixed by designating one Domain Controller (the one holding the PDCe FSMO role) as the central Domain Controller.  All other Domain Controllers were reconfigured to point to the central Domain Controller for primary DNS and to themselves as secondary DNS.  There was only one Active Directory site involved.  To read more about this issue, see <a href="http://support.microsoft.com/kb/275278" target="_blank" rel="noopener">http://support.microsoft.com/kb/275278</a>.  This issue does not affect DNS running on Windows Server 2003 and later.</li>
<li>A firewall separated the XenApp servers from the Citrix and Terminal Server license servers.  One XenApp server had been replaced and the IP address of the new server had not been added to the firewall to allow its traffic through.  This was resolved by added the new server’s IP address to the appropriate firewall rule.</li>
</ul>
<p>My point is this, the error you see is not always the error you have!  Don’t forget basic network troubleshooting steps.</p>
<ol>
<li>Can you ping the local loopback address?  [<strong>ping 127.0.0.1</strong> or <strong>ping localhost</strong>]</li>
<li>Gather the server’s IP configuration information.  [<strong>ipconfig /all</strong>]</li>
<li>Is the server using a static or dynamic configuration?
<ol>
<li>If dynamic, is the IP information valid?</li>
<li>Is the DHCP server reachable?</li>
<li>Can you ping the server’s IP address?  [e.g. <strong>ping 192.168.1.100</strong>]</li>
<li>Can you ping the server’s NetBIOS name?  [e.g. <strong>ping CTX01</strong>]</li>
<li>Can you ping the server’s FQDN?  [e.g. <strong>ping CTX01.WebstersLab.com</strong>]</li>
<li>Can you ping the Default Gateway?  [e.g. <strong>ping 192.168.1.1</strong>]</li>
<li>If WINS is used, can you ping the WINS server?  [e.g. <strong>ping 192.168.1.222</strong>]</li>
<li>Can you ping the DNS server?  [e.g. <strong>ping 192.168.1.200</strong>]</li>
<li>Use nslookup to test name resolution.  [e.g. <strong>nslookup carlwebster.com</strong>]</li>
</ol>
</li>
</ol>
<p>If pinging by IP address works but not pinging by NetBIOS name or FQDN then more than likely you are facing name resolution issues.</p>
<p>When working on resolving errors that appear in your Citrix environment, do not leave out verifying that something as basic as name resolution is functioning properly.  In a Windows Active Directory infrastructure, broken name resolution can have you chasing down errors that don’t really exist.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">701</post-id>	</item>
		<item>
		<title>Learning to Install Adobe Acrobat Reader 9.1</title>
		<link>https://www.carlwebster.com/learning-to-install-acrobat-reader-9-1/</link>
		
		<dc:creator><![CDATA[Carl Webster]]></dc:creator>
		<pubDate>Tue, 21 Sep 2010 01:41:13 +0000</pubDate>
				<category><![CDATA[XenApp]]></category>
		<category><![CDATA[acrobat reader]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[how to]]></category>
		<guid isPermaLink="false">http://webster.skyrocket.ltd/?p=1180</guid>

					<description><![CDATA[UPDATED April 18, 2009, for Acrobat Read 9.1 Portable Document Format (PDF) files are a popular way to transfer documents between computer users.  A PDF file retains formatting for the&#8230;]]></description>
										<content:encoded><![CDATA[<p><strong>UPDATED April 18, 2009, for Acrobat Read 9.1</strong></p>
<p>Portable Document Format (PDF) files are a popular way to transfer documents between computer users.  A PDF file retains formatting for the file being transferred.  There are over 600 free viewers available on http://www.download.com which allows the viewing of PDF files.</p>
<p>In this article, you will learn:</p>
<ul>
<li>how to sign up to distribute the free Adobe Acrobat Reader version 9.1</li>
<li>download the distributable file</li>
<li>download the Adobe Customization Wizard</li>
<li>extract the Acrobat Reader MSI file</li>
<li>customize the MSI file</li>
<li>install the customized file on your XenApp server</li>
<li>remove additional menu items using JavaScript</li>
</ul>
<p>While it may be less time-consuming to just download the free Acrobat Reader and use that MSI file, Adobe requires any entity that will install the program for multiple users to agree to the Adobe Reader Distribution Agreement.</p>
<p>For this article, two versions of XenApp were tested:</p>
<ul>
<li>Citrix XenApp 5 for Server 2003 Platinum (x86) with Hotfix Rollup Package 3</li>
<li>Citrix XenApp 5 for Windows Server 2008 Platinum (x86)</li>
</ul>
<p>Server 2003 will be the main testing version.  Any differences for Server 2008 will be noted.</p>
<p>To get started, open up your browser and go to <a href="https://www.adobe.com/" target="_blank" rel="noopener">http://www.adobe.com</a> (Figure 1).</p>
<figure id="attachment_20694" aria-describedby="caption-attachment-20694" style="width: 665px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure001.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20694 size-full" src="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure001.jpg" alt="Figure 1" width="665" height="389" srcset="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure001.jpg 665w, https://www.carlwebster.com/wp-content/uploads/2010/09/Figure001-513x300.jpg 513w, https://www.carlwebster.com/wp-content/uploads/2010/09/Figure001-600x351.jpg 600w" sizes="auto, (max-width: 665px) 100vw, 665px" /></a><figcaption id="caption-attachment-20694" class="wp-caption-text">Figure 1</figcaption></figure>
<p>Click on the <em>Get Adobe Reader</em> button (Figure 2).</p>
<figure id="attachment_20696" aria-describedby="caption-attachment-20696" style="width: 665px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure002.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20696 size-full" src="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure002.jpg" alt="Figure 2" width="665" height="389" srcset="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure002.jpg 665w, https://www.carlwebster.com/wp-content/uploads/2010/09/Figure002-513x300.jpg 513w, https://www.carlwebster.com/wp-content/uploads/2010/09/Figure002-600x351.jpg 600w" sizes="auto, (max-width: 665px) 100vw, 665px" /></a><figcaption id="caption-attachment-20696" class="wp-caption-text">Figure 2</figcaption></figure>
<p>Click <em>Distribute Adobe Reader</em> (Figure 3).</p>
<figure id="attachment_20697" aria-describedby="caption-attachment-20697" style="width: 601px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure003.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20697 size-full" src="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure003.jpg" alt="Figure 3" width="601" height="293" srcset="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure003.jpg 601w, https://www.carlwebster.com/wp-content/uploads/2010/09/Figure003-530x258.jpg 530w" sizes="auto, (max-width: 601px) 100vw, 601px" /></a><figcaption id="caption-attachment-20697" class="wp-caption-text">Figure 3</figcaption></figure>
<p>A new browser window opens.  Click <em>Adobe Reader Distribution Agreement</em> (Figure 4).</p>
<figure id="attachment_20698" aria-describedby="caption-attachment-20698" style="width: 395px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure004.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20698 size-full" src="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure004.jpg" alt="Figure 4" width="395" height="270" /></a><figcaption id="caption-attachment-20698" class="wp-caption-text">Figure 4</figcaption></figure>
<p>Fill in the necessary information (Figure 5).</p>
<figure id="attachment_20699" aria-describedby="caption-attachment-20699" style="width: 410px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure005.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20699 size-full" src="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure005.jpg" alt="Figure 5" width="410" height="454" srcset="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure005.jpg 410w, https://www.carlwebster.com/wp-content/uploads/2010/09/Figure005-271x300.jpg 271w" sizes="auto, (max-width: 410px) 100vw, 410px" /></a><figcaption id="caption-attachment-20699" class="wp-caption-text">Figure 5</figcaption></figure>
<p>Then click <em>Accept and Submit</em> (Figure 6).</p>
<figure id="attachment_20700" aria-describedby="caption-attachment-20700" style="width: 416px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure006.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20700 size-full" src="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure006.jpg" alt="Figure 6" width="416" height="390" srcset="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure006.jpg 416w, https://www.carlwebster.com/wp-content/uploads/2010/09/Figure006-320x300.jpg 320w" sizes="auto, (max-width: 416px) 100vw, 416px" /></a><figcaption id="caption-attachment-20700" class="wp-caption-text">Figure 6</figcaption></figure>
<p>You will receive an e-mail from Adobe to verify the e-mail address you entered.  Click the verification link in the e-mail.  Adobe will send you another e-mail with the information necessary to download the Redistributable version of Acrobat Reader 9.1.  In the second e-mail, click the link to download Adobe Reader 9.</p>
<p>Select the operating system and language that matches your XenApp server and click <em>Continue</em> (Figure 7).</p>
<figure id="attachment_20701" aria-describedby="caption-attachment-20701" style="width: 543px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure007.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20701 size-full" src="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure007.jpg" alt="Figure 7" width="543" height="254" srcset="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure007.jpg 543w, https://www.carlwebster.com/wp-content/uploads/2010/09/Figure007-530x248.jpg 530w" sizes="auto, (max-width: 543px) 100vw, 543px" /></a><figcaption id="caption-attachment-20701" class="wp-caption-text">Figure 7</figcaption></figure>
<p>Scroll down and click <em>Download</em> (Figure 8).</p>
<figure id="attachment_20702" aria-describedby="caption-attachment-20702" style="width: 444px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure008.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20702 size-full" src="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure008.jpg" alt="Figure 8" width="444" height="316" srcset="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure008.jpg 444w, https://www.carlwebster.com/wp-content/uploads/2010/09/Figure008-422x300.jpg 422w" sizes="auto, (max-width: 444px) 100vw, 444px" /></a><figcaption id="caption-attachment-20702" class="wp-caption-text">Figure 8</figcaption></figure>
<p>Save the file to the server&#8217;s desktop (Figure 9).</p>
<figure id="attachment_20703" aria-describedby="caption-attachment-20703" style="width: 448px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure009.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20703 size-full" src="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure009.jpg" alt="Figure 9" width="448" height="329" srcset="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure009.jpg 448w, https://www.carlwebster.com/wp-content/uploads/2010/09/Figure009-409x300.jpg 409w" sizes="auto, (max-width: 448px) 100vw, 448px" /></a><figcaption id="caption-attachment-20703" class="wp-caption-text">Figure 9</figcaption></figure>
<p>In the second e-mail from Adobe, click the link for <em>Adobe enterprise deployment tools</em>.  Scroll down and click on <em>Download the Adobe Customization Wizard</em> (Figure 10).</p>
<figure id="attachment_20704" aria-describedby="caption-attachment-20704" style="width: 516px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure010.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20704 size-full" src="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure010.jpg" alt="Figure 10" width="516" height="267" /></a><figcaption id="caption-attachment-20704" class="wp-caption-text">Figure 10</figcaption></figure>
<p>On the Adobe Customization Wizard 9 web page, scroll down and click on <em>Proceed to Download</em> (Figure 11).</p>
<figure id="attachment_20705" aria-describedby="caption-attachment-20705" style="width: 527px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure011.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20705 size-full" src="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure011.jpg" alt="Figure 11" width="527" height="205" /></a><figcaption id="caption-attachment-20705" class="wp-caption-text">Figure 11</figcaption></figure>
<p>Click <em>Download Now</em> (Figure 12).</p>
<figure id="attachment_20706" aria-describedby="caption-attachment-20706" style="width: 437px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure012.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20706 size-full" src="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure012.jpg" alt="Figure 12" width="437" height="255" /></a><figcaption id="caption-attachment-20706" class="wp-caption-text">Figure 12</figcaption></figure>
<p>Save the file to the Server&#8217;s desktop (Figure 13).</p>
<figure id="attachment_20707" aria-describedby="caption-attachment-20707" style="width: 451px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure013.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20707 size-full" src="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure013.jpg" alt="Figure 13" width="451" height="328" srcset="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure013.jpg 451w, https://www.carlwebster.com/wp-content/uploads/2010/09/Figure013-413x300.jpg 413w" sizes="auto, (max-width: 451px) 100vw, 451px" /></a><figcaption id="caption-attachment-20707" class="wp-caption-text">Figure 13</figcaption></figure>
<p>Exit your browser.</p>
<p>Double-click <em>CustWiz90_en_US.exe</em> to install the Customization Wizard.  Accept all the defaults during the installation.</p>
<p>The Acrobat Reader MSI file needs to be extracted.  Click <em>Start, Run</em>, type in <strong>&#8220;%UserProfile%\desktop\adberdr910_en_us_std.exe&#8221; -nos_ne</strong> and press <em>Enter</em>.  For Server 2003, the MSI file is extracted to %UserProfile%\Local Settings\Application Data\Adobe\Reader 9.1\Setup Files\READER9.  For Server 2008, the MSI file is extracted to %UserProfile%\AppData\Local\Adobe\Reader 9.1\Setup Files\READER9.</p>
<p>Copy the READER 9.1  folder to the root of the C: drive.</p>
<p>Click <em>Start, All Programs, Adobe Customization Wizard 9</em> (Figure 14).</p>
<figure id="attachment_20708" aria-describedby="caption-attachment-20708" style="width: 256px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure014.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20708 size-full" src="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure014.jpg" alt="Figure 14" width="256" height="407" srcset="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure014.jpg 256w, https://www.carlwebster.com/wp-content/uploads/2010/09/Figure014-189x300.jpg 189w" sizes="auto, (max-width: 256px) 100vw, 256px" /></a><figcaption id="caption-attachment-20708" class="wp-caption-text">Figure 14</figcaption></figure>
<p>Click <em>File, Open Package</em>, type in <strong>C:\Reader 9.1\Setup Files\AcroRead.msi,</strong> and press <em>Enter</em> (Figure 15).</p>
<figure id="attachment_20709" aria-describedby="caption-attachment-20709" style="width: 577px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure015.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20709 size-full" src="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure015.jpg" alt="Figure 15" width="577" height="508" srcset="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure015.jpg 577w, https://www.carlwebster.com/wp-content/uploads/2010/09/Figure015-341x300.jpg 341w" sizes="auto, (max-width: 577px) 100vw, 577px" /></a><figcaption id="caption-attachment-20709" class="wp-caption-text">Figure 15</figcaption></figure>
<p>Click <em>Installation Options</em> (Figure 16).</p>
<figure id="attachment_20710" aria-describedby="caption-attachment-20710" style="width: 645px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure016.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20710 size-full" src="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure016.jpg" alt="Figure 16" width="645" height="405" srcset="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure016.jpg 645w, https://www.carlwebster.com/wp-content/uploads/2010/09/Figure016-478x300.jpg 478w, https://www.carlwebster.com/wp-content/uploads/2010/09/Figure016-600x377.jpg 600w" sizes="auto, (max-width: 645px) 100vw, 645px" /></a><figcaption id="caption-attachment-20710" class="wp-caption-text">Figure 16</figcaption></figure>
<p>If you have both the full Adobe Acrobat and Acrobat Reader installed on the server, select which one will be the default.  Since you will be installing the customized Acrobat Reader, the options in <em>Run Installation</em> and <em>If reboot required at the end of installation</em> can be ignored.</p>
<p>Click <em>EULA and Document Status</em> (Figure 17).  Check the box <em>Suppress display of End User License Agreement (EULA)</em>.  This will prevent the EULA Agreement page from being displayed for every user the first time Acrobat Reader is run.</p>
<figure id="attachment_20711" aria-describedby="caption-attachment-20711" style="width: 645px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure017.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20711 size-full" src="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure017.jpg" alt="Figure 17" width="645" height="297" srcset="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure017.jpg 645w, https://www.carlwebster.com/wp-content/uploads/2010/09/Figure017-530x244.jpg 530w, https://www.carlwebster.com/wp-content/uploads/2010/09/Figure017-600x276.jpg 600w" sizes="auto, (max-width: 645px) 100vw, 645px" /></a><figcaption id="caption-attachment-20711" class="wp-caption-text">Figure 17</figcaption></figure>
<p>Click <em>Online and Acrobat.com Features</em> (Figure 18).</p>
<figure id="attachment_20712" aria-describedby="caption-attachment-20712" style="width: 707px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure018.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20712 size-full" src="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure018.jpg" alt="Figure 18" width="707" height="514" srcset="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure018.jpg 707w, https://www.carlwebster.com/wp-content/uploads/2010/09/Figure018-413x300.jpg 413w, https://www.carlwebster.com/wp-content/uploads/2010/09/Figure018-600x436.jpg 600w" sizes="auto, (max-width: 707px) 100vw, 707px" /></a><figcaption id="caption-attachment-20712" class="wp-caption-text">Figure 18</figcaption></figure>
<p>This page allows you to restrict updates, various help options, and Acrobat.com features.  The following are recommended for Terminal Server and Citrix environments (Figure 19):</p>
<ul>
<li>Disable all updates</li>
<li>In Adobe Reader, disable Help -&gt; Purchase Adobe Acrobat</li>
<li>Disable Help -&gt; Digital Editions</li>
<li>Disable Product Improvement Program</li>
<li>Disable Viewing of PDF with Ads for Adobe PDF</li>
<li>Disable all Acrobat.com access, including initiation and participation</li>
</ul>
<p>Note:  There are some reports of problems with viewing PDFs within a browser window.  Some reports state that the AcroRd32 process does not release memory until all browser instances are exited.  If you want to disable this ability, change <em>Display PDF in browser</em> to <em>Disable &amp; Lock</em>.</p>
<figure id="attachment_20713" aria-describedby="caption-attachment-20713" style="width: 691px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure019.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20713 size-full" src="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure019.jpg" alt="Figure 19" width="691" height="488" srcset="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure019.jpg 691w, https://www.carlwebster.com/wp-content/uploads/2010/09/Figure019-425x300.jpg 425w, https://www.carlwebster.com/wp-content/uploads/2010/09/Figure019-600x424.jpg 600w" sizes="auto, (max-width: 691px) 100vw, 691px" /></a><figcaption id="caption-attachment-20713" class="wp-caption-text">Figure 19</figcaption></figure>
<p>Click <em>Transform, Generate Transform</em> (Figure 20).</p>
<figure id="attachment_20714" aria-describedby="caption-attachment-20714" style="width: 219px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure020.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20714 size-full" src="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure020.jpg" alt="Figure 20" width="219" height="81" /></a><figcaption id="caption-attachment-20714" class="wp-caption-text">Figure 20</figcaption></figure>
<p>Name the Transform file and save it in the <em>Setup Files</em> folder (Figure 21).</p>
<figure id="attachment_20715" aria-describedby="caption-attachment-20715" style="width: 448px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure021.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20715 size-full" src="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure021.jpg" alt="Figure 21" width="448" height="327" srcset="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure021.jpg 448w, https://www.carlwebster.com/wp-content/uploads/2010/09/Figure021-411x300.jpg 411w" sizes="auto, (max-width: 448px) 100vw, 448px" /></a><figcaption id="caption-attachment-20715" class="wp-caption-text">Figure 21</figcaption></figure>
<p>Exit the Adobe Customization Wizard 9 program.</p>
<p>To install Acrobat Reader 9.1 with your customizations:</p>
<p>Click <em>Start, Run</em>, type in <strong>msiexec /i &#8220;c:\reader 9.1\setup files\acroread.msi&#8221; TRANSFORMS=&#8221;c:\reader 9.1\setup files\CustomAR91.mst&#8221;</strong> and press <em>Enter</em>.</p>
<p>Note:  Using MSIEXEC, it is not necessary to place the server into <em>install</em> <em>mode</em> first and then <em>execute</em> <em>mode</em> after installation.  Please see <a href="http://msdn.microsoft.com/en-us/library/aa369521%28VS.85%29.aspx" target="_blank" rel="noopener">http://msdn.microsoft.com/en-us/library/aa369521(VS.85).aspx</a> and pages 255 and 256 of the <em>Windows Server 2008 Terminal Services Resource Kit</em>.</p>
<p>Start Acrobat Reader 9.1 and the EULA Agreement page is not displayed.</p>
<p>Click the Help menu and you will see two options there you do not want in a multi-user environment: <em>Repair Adobe Reader Installation</em> and <em>Online Support </em>(Figure 22).</p>
<figure id="attachment_20717" aria-describedby="caption-attachment-20717" style="width: 486px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure022.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20717 size-full" src="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure022.jpg" alt="Figure 22" width="486" height="165" /></a><figcaption id="caption-attachment-20717" class="wp-caption-text">Figure 22</figcaption></figure>
<p>Note:  The following information is adapted from <a href="https://stealthpuppy.com/deploying-adobe-reader-81/" target="_blank" rel="noopener">https://stealthpuppy.com/deploying-adobe-reader-81/</a>.</p>
<p>There is no way to remove those options from the customization wizard or via a registry key.  In order to remove the options, you will need to create a JavaScript file and place it in the C:\Program Files\Adobe\Reader 9.0\Reader\Javascripts folder.</p>
<pre class="brush: plain; title: ; notranslate">
//HideMenu.js
//Hides Help - Repair Adobe Reader Installation
app.hideMenuItem(&quot;DetectAndRepair&quot;);
//Help - Online Support
app.hideMenuItem(&quot;OnlineSupport&quot;);
</pre>
<p>When Acrobat Reader is started, it may take a few seconds for the JavaScript file to remove the Help menu items (Figure 23).  On my lab server, with Acrobat Reader 9 it took around 15 to 20 seconds for the Help menu items to be removed.  With Acrobat Reader 9.1, the same process takes less than two seconds.</p>
<figure id="attachment_20719" aria-describedby="caption-attachment-20719" style="width: 455px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure023.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20719 size-full" src="https://www.carlwebster.com/wp-content/uploads/2010/09/Figure023.jpg" alt="Figure 23" width="455" height="116" /></a><figcaption id="caption-attachment-20719" class="wp-caption-text">Figure 23</figcaption></figure>
<p>There are many other menu items that can be removed using the JavaScript file.  See the link &#8220;<em>JavaScript to Hide Menu Items</em>&#8221; at <a href="http://blog.stealthpuppy.com/deployment/deploying-adobe-reader-81" target="_blank" rel="noopener">http://blog.stealthpuppy.com/deployment/deploying-adobe-reader-81</a>.</p>
<p>You have now successfully customized your Acrobat Reader 9.1 to work better in a Terminal Server and Citrix environment.</p>
<p>In this article, you learned to:</p>
<ul>
<li>sign up to distribute the free Adobe Acrobat Reader version 9.1</li>
<li>download the distributable file</li>
<li>download the Adobe Customization Wizard</li>
<li>extract the Acrobat Reader MSI file</li>
<li>customize the MSI file</li>
<li>install the customized file on your XenApp server</li>
<li>remove additional menu items using JavaScript</li>
</ul>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1180</post-id>	</item>
		<item>
		<title>How To Hide Additional Drive Letters On A Server</title>
		<link>https://www.carlwebster.com/how-to-hide-additional-drive-letters-on-a-server/</link>
					<comments>https://www.carlwebster.com/how-to-hide-additional-drive-letters-on-a-server/#comments</comments>
		
		<dc:creator><![CDATA[Carl Webster]]></dc:creator>
		<pubDate>Tue, 16 Jun 2009 15:58:12 +0000</pubDate>
				<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenApp 5 for Server 2003]]></category>
		<category><![CDATA[XenApp 5 for Server 2008]]></category>
		<category><![CDATA[GPO]]></category>
		<category><![CDATA[Group Policy]]></category>
		<category><![CDATA[Windows Server 2003]]></category>
		<category><![CDATA[xenapp]]></category>
		<guid isPermaLink="false">http://webster.skyrocket.ltd/?p=1088</guid>

					<description><![CDATA[When Creating a Server Management Group Policy on Windows Server 2003, there are two options that can be set to either Hide or Prevent users from working with the server’s&#8230;]]></description>
										<content:encoded><![CDATA[<p>When Creating a Server Management Group Policy on Windows Server 2003, there are two options that can be set to either Hide or Prevent users from working with the server’s drives:</p>
<ul>
<li>Hide these specified drives in My Computer</li>
<li>Prevent access to drives from My Computer</li>
</ul>
<p>When these options are enabled, there is a drop-down box that allows the selection of various drive combinations.  What if the drives you need hidden are not on the list?  This article will show you three ways to add any combination of drive letters to be hidden or denied access:</p>
<ol>
<li>Modify System.adm</li>
<li>Create a new ADM file</li>
<li>Use the ICAClient.adm file provided by Citrix</li>
</ol>
<p>Why bother with either manual process when there is a 3rd Party utility called GPDrivesOptions that automates the creation of the necessary information?  There are places that do not allow 3<sup>rd</sup> Party utilities to be run on Domain Controllers or Management Stations.  Also, if Change Management is used, it may take longer to go through the approval process to modify System.adm than it takes to create a new ADM file and use it for your Group Policy.</p>
<p><strong>Update February 26, 2015: The GPDrivesOptions article no longer exists on Petri.com.</strong></p>
<p>Microsoft has KB article <a href="http://support.microsoft.com/kb/231289">231289</a> that explains the process to add custom drive letter combinations.  Using KB231298, if you wanted to hide access to drives A, B, D, E, G, P, and R:</p>
<p>The 26-bit string of drive letters is represented as:</p>
<pre>11111111111111111111111111
ZYXWVUTSRQPONMLKJIHGFEDCBA</pre>
<p>If you prefer to not work in Binary, the decimal value for each drive letter is:</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="46">Drive Letter</td>
<td valign="top" width="59">Decimal Value</td>
<td valign="top" width="59">Binary Value</td>
</tr>
<tr>
<td valign="top" width="46">Z</td>
<td valign="top" width="59">
<p align="right">33554432</p>
</td>
<td valign="top" width="59">
<p align="right">10000000000000000000000000</p>
</td>
</tr>
<tr>
<td valign="top" width="46">Y</td>
<td valign="top" width="59">
<p align="right">16777216</p>
</td>
<td valign="top" width="59">
<p align="right">1000000000000000000000000</p>
</td>
</tr>
<tr>
<td valign="top" width="46">X</td>
<td valign="top" width="59">
<p align="right">8388608</p>
</td>
<td valign="top" width="59">
<p align="right">100000000000000000000000</p>
</td>
</tr>
<tr>
<td valign="top" width="46">W</td>
<td valign="top" width="59">
<p align="right">4194304</p>
</td>
<td valign="top" width="59">
<p align="right">10000000000000000000000</p>
</td>
</tr>
<tr>
<td valign="top" width="46">V</td>
<td valign="top" width="59">
<p align="right">2097152</p>
</td>
<td valign="top" width="59">
<p align="right">1000000000000000000000</p>
</td>
</tr>
<tr>
<td valign="top" width="46">U</td>
<td valign="top" width="59">
<p align="right">1048576</p>
</td>
<td valign="top" width="59">
<p align="right">100000000000000000000</p>
</td>
</tr>
<tr>
<td valign="top" width="46">T</td>
<td valign="top" width="59">
<p align="right">524288</p>
</td>
<td valign="top" width="59">
<p align="right">10000000000000000000</p>
</td>
</tr>
<tr>
<td valign="top" width="46">S</td>
<td valign="top" width="59">
<p align="right">262144</p>
</td>
<td valign="top" width="59">
<p align="right">1000000000000000000</p>
</td>
</tr>
<tr>
<td valign="top" width="46">R</td>
<td valign="top" width="59">
<p align="right">131072</p>
</td>
<td valign="top" width="59">
<p align="right">100000000000000000</p>
</td>
</tr>
<tr>
<td valign="top" width="46">Q</td>
<td valign="top" width="59">
<p align="right">65536</p>
</td>
<td valign="top" width="59">
<p align="right">10000000000000000</p>
</td>
</tr>
<tr>
<td valign="top" width="46">P</td>
<td valign="top" width="59">
<p align="right">32768</p>
</td>
<td valign="top" width="59">
<p align="right">1000000000000000</p>
</td>
</tr>
<tr>
<td valign="top" width="46">O</td>
<td valign="top" width="59">
<p align="right">16384</p>
</td>
<td valign="top" width="59">
<p align="right">100000000000000</p>
</td>
</tr>
<tr>
<td valign="top" width="46">N</td>
<td valign="top" width="59">
<p align="right">8192</p>
</td>
<td valign="top" width="59">
<p align="right">10000000000000</p>
</td>
</tr>
<tr>
<td valign="top" width="46">M</td>
<td valign="top" width="59">
<p align="right">4096</p>
</td>
<td valign="top" width="59">
<p align="right">1000000000000</p>
</td>
</tr>
<tr>
<td valign="top" width="46">L</td>
<td valign="top" width="59">
<p align="right">2048</p>
</td>
<td valign="top" width="59">
<p align="right">100000000000</p>
</td>
</tr>
<tr>
<td valign="top" width="46">K</td>
<td valign="top" width="59">
<p align="right">1024</p>
</td>
<td valign="top" width="59">
<p align="right">10000000000</p>
</td>
</tr>
<tr>
<td valign="top" width="46">J</td>
<td valign="top" width="59">
<p align="right">512</p>
</td>
<td valign="top" width="59">
<p align="right">1000000000</p>
</td>
</tr>
<tr>
<td valign="top" width="46">I</td>
<td valign="top" width="59">
<p align="right">256</p>
</td>
<td valign="top" width="59">
<p align="right">100000000</p>
</td>
</tr>
<tr>
<td valign="top" width="46">H</td>
<td valign="top" width="59">
<p align="right">128</p>
</td>
<td valign="top" width="59">
<p align="right">10000000</p>
</td>
</tr>
<tr>
<td valign="top" width="46">G</td>
<td valign="top" width="59">
<p align="right">64</p>
</td>
<td valign="top" width="59">
<p align="right">1000000</p>
</td>
</tr>
<tr>
<td valign="top" width="46">F</td>
<td valign="top" width="59">
<p align="right">32</p>
</td>
<td valign="top" width="59">
<p align="right">100000</p>
</td>
</tr>
<tr>
<td valign="top" width="46">E</td>
<td valign="top" width="59">
<p align="right">16</p>
</td>
<td valign="top" width="59">
<p align="right">10000</p>
</td>
</tr>
<tr>
<td valign="top" width="46">D</td>
<td valign="top" width="59">
<p align="right">8</p>
</td>
<td valign="top" width="59">
<p align="right">1000</p>
</td>
</tr>
<tr>
<td valign="top" width="46">C</td>
<td valign="top" width="59">
<p align="right">4</p>
</td>
<td valign="top" width="59">
<p align="right">100</p>
</td>
</tr>
<tr>
<td valign="top" width="46">B</td>
<td valign="top" width="59">
<p align="right">2</p>
</td>
<td valign="top" width="59">
<p align="right">10</p>
</td>
</tr>
<tr>
<td valign="top" width="46">A</td>
<td valign="top" width="59">
<p align="right">1</p>
</td>
<td valign="top" width="59">
<p align="right">1</p>
</td>
</tr>
</tbody>
</table>
<p>Putting &#8220;0&#8221;s for the drives to not be hidden results in:</p>
<pre>00000000101000000001011011
ZYXWVUTSRQPONMLKJIHGFEDCBA</pre>
<p>The binary string is 101000000001011011.  Converted to decimal is 163,931.</p>
<p>If you prefer to work with decimal, add up the value for each drive letter:</p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="28">A</td>
<td valign="top" width="50">
<p align="right">1</p>
</td>
</tr>
<tr>
<td valign="top" width="28">B</td>
<td valign="top" width="50">
<p align="right">2</p>
</td>
</tr>
<tr>
<td valign="top" width="28">D</td>
<td valign="top" width="50">
<p align="right">8</p>
</td>
</tr>
<tr>
<td valign="top" width="28">E</td>
<td valign="top" width="50">
<p align="right">16</p>
</td>
</tr>
<tr>
<td valign="top" width="28">G</td>
<td valign="top" width="50">
<p align="right">64</p>
</td>
</tr>
<tr>
<td valign="top" width="28">P</td>
<td valign="top" width="50">
<p align="right">32768</p>
</td>
</tr>
<tr>
<td valign="top" width="28">R</td>
<td valign="top" width="50">
<p align="right">131072</p>
</td>
</tr>
<tr>
<td valign="top" width="28"></td>
<td valign="top" width="50">
<p align="right"><strong>163931</strong></p>
</td>
</tr>
</tbody>
</table>
<p><strong>Method 1 &#8212; Modify System.adm:</strong></p>
<p>To change System.adm, go to a command prompt and type in the following commands:</p>
<ul>
<li><strong>CD %SYSTEMROOT%\INF</strong> and press Enter</li>
<li><strong>COPY SYSTEM.ADM SYSTEM_BACKUP.ADM</strong> and press Enter</li>
<li><strong>Notepad system.adm</strong></li>
</ul>
<p>With Notepad open, press <strong>Ctrl-F</strong> and Find <strong>[strings]</strong>.  Add this line to the [strings] section:</p>
<p><strong>ABDEGPR_Only=&#8221;Restrict A, B, D, E, G, P and R drives only&#8221;</strong></p>
<p>Press <strong>Ctrl-Home</strong> to return to the top, then press <strong>Ctrl-F</strong> and Find <strong>!!NoDrives</strong>.  Add this entry in the ITEMLIST section for !!NoDrives:</p>
<p><strong>NAME !!ABDEGPR_Only                  VALUE NUMERIC                  163931</strong></p>
<p>Scroll down just a little until you see the !!NoViewOnDrive Policy.  Add this entry in the ITEMLIST section for !!NoViewOnDrive  Save the System.adm file and exit Notepad.</p>
<p><strong>NAME !!ABDEGPR_Only                  VALUE NUMERIC                  163931</strong></p>
<p>See Figures 1 and 2 for system.adm before changes and Figures 3 and 4 for system.adm after changes.</p>
<figure id="attachment_20269" aria-describedby="caption-attachment-20269" style="width: 604px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure001-1.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20269 size-full" src="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure001-1.jpg" alt="Figure 1 (system.adm before changes)" width="604" height="469" srcset="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure001-1.jpg 604w, https://www.carlwebster.com/wp-content/uploads/2009/06/Figure001-1-386x300.jpg 386w, https://www.carlwebster.com/wp-content/uploads/2009/06/Figure001-1-600x466.jpg 600w" sizes="auto, (max-width: 604px) 100vw, 604px" /></a><figcaption id="caption-attachment-20269" class="wp-caption-text">Figure 1 (system.adm before changes)</figcaption></figure>
<figure id="attachment_20271" aria-describedby="caption-attachment-20271" style="width: 391px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure002-1.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20271 size-full" src="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure002-1.jpg" alt="Figure 2 (system.adm before changes)" width="391" height="125" /></a><figcaption id="caption-attachment-20271" class="wp-caption-text">Figure 2 (system.adm before changes)</figcaption></figure>
<figure id="attachment_20272" aria-describedby="caption-attachment-20272" style="width: 601px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure003-1.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20272 size-full" src="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure003-1.jpg" alt="Figure 3 (system.adm after changes)" width="601" height="485" srcset="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure003-1.jpg 601w, https://www.carlwebster.com/wp-content/uploads/2009/06/Figure003-1-372x300.jpg 372w" sizes="auto, (max-width: 601px) 100vw, 601px" /></a><figcaption id="caption-attachment-20272" class="wp-caption-text">Figure 3 (system.adm after changes)</figcaption></figure>
<figure id="attachment_20273" aria-describedby="caption-attachment-20273" style="width: 477px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure004-1.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20273 size-full" src="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure004-1.jpg" alt="Figure 4 (system.adm after changes)" width="477" height="134" /></a><figcaption id="caption-attachment-20273" class="wp-caption-text">Figure 4 (system.adm after changes)</figcaption></figure>
<div class="mceTemp"></div>
<p>Save the System.adm file, exit Notepad and exit the command prompt.  In the Group Policy Object Editor, right-click <em>Administrative Templates</em> in the <em>User Configuration</em> section and select <em>Add/Remove Templates&#8230;</em> (Figure 5).</p>
<figure id="attachment_20274" aria-describedby="caption-attachment-20274" style="width: 360px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure005-1.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20274 size-full" src="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure005-1.jpg" alt="Figure 5" width="360" height="236" /></a><figcaption id="caption-attachment-20274" class="wp-caption-text">Figure 5</figcaption></figure>
<p>Click <em>system</em> and then the <em>Remove</em> button (Figure 6).</p>
<figure id="attachment_20275" aria-describedby="caption-attachment-20275" style="width: 435px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure006-1.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20275 size-full" src="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure006-1.jpg" alt="Figure 6" width="435" height="267" /></a><figcaption id="caption-attachment-20275" class="wp-caption-text">Figure 6</figcaption></figure>
<p>Click the <em>Add&#8230;</em> button, scroll to find system.adm, click <em>system.adm,</em> and then click <em>Open</em> (Figure 7).</p>
<figure id="attachment_20276" aria-describedby="caption-attachment-20276" style="width: 420px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure007-1.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20276 size-full" src="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure007-1.jpg" alt="Figure 7" width="420" height="309" srcset="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure007-1.jpg 420w, https://www.carlwebster.com/wp-content/uploads/2009/06/Figure007-1-408x300.jpg 408w" sizes="auto, (max-width: 420px) 100vw, 420px" /></a><figcaption id="caption-attachment-20276" class="wp-caption-text">Figure 7</figcaption></figure>
<p>Click <em>Close</em> (Figure 8).</p>
<figure id="attachment_20277" aria-describedby="caption-attachment-20277" style="width: 436px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure008-1.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20277 size-full" src="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure008-1.jpg" alt="Figure 8" width="436" height="265" /></a><figcaption id="caption-attachment-20277" class="wp-caption-text">Figure 8</figcaption></figure>
<p>Expand <em>Administrative Templates</em>, expand <em>Windows Components</em>, click <em>Windows Explorer</em> and double-click <em>Hide these specified drives from My Computer</em> (Figure 9).</p>
<figure id="attachment_20278" aria-describedby="caption-attachment-20278" style="width: 639px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure009-1.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20278 size-full" src="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure009-1.jpg" alt="Figure 9" width="639" height="426" srcset="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure009-1.jpg 639w, https://www.carlwebster.com/wp-content/uploads/2009/06/Figure009-1-450x300.jpg 450w, https://www.carlwebster.com/wp-content/uploads/2009/06/Figure009-1-600x400.jpg 600w" sizes="auto, (max-width: 639px) 100vw, 639px" /></a><figcaption id="caption-attachment-20278" class="wp-caption-text">Figure 9</figcaption></figure>
<p>Click the Dropdown box, the new drive restriction selection is now available (Figure 10).</p>
<figure id="attachment_20279" aria-describedby="caption-attachment-20279" style="width: 403px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure010-1.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20279 size-full" src="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure010-1.jpg" alt="Figure 10" width="403" height="444" srcset="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure010-1.jpg 403w, https://www.carlwebster.com/wp-content/uploads/2009/06/Figure010-1-272x300.jpg 272w" sizes="auto, (max-width: 403px) 100vw, 403px" /></a><figcaption id="caption-attachment-20279" class="wp-caption-text">Figure 10</figcaption></figure>
<p>Select the new drive restriction and repeat for the <em>Prevent access to drives from My Computer</em> policy setting (Figure 11).</p>
<figure id="attachment_20280" aria-describedby="caption-attachment-20280" style="width: 401px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure011-1.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20280 size-full" src="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure011-1.jpg" alt="Figure 11" width="401" height="444" srcset="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure011-1.jpg 401w, https://www.carlwebster.com/wp-content/uploads/2009/06/Figure011-1-271x300.jpg 271w" sizes="auto, (max-width: 401px) 100vw, 401px" /></a><figcaption id="caption-attachment-20280" class="wp-caption-text">Figure 11</figcaption></figure>
<p>Exit editing the GPO and the new drive restrictions have been added to your GPO.</p>
<p><strong>Method 2 &#8212; Create a new ADM file:</strong></p>
<p>Why use Method 2?  If changes are not allowed to be made or Change Control processes must be followed to make changes to files installed by the Operating System, then Method 2 is an easy option.  It should take less than five minutes to complete Method 2.</p>
<p>To create a new ADM file, go to a command prompt and type in the following commands:</p>
<ul>
<li><strong>CD %SYSTEMROOT%\INF</strong> and press Enter</li>
<li><strong>Notepad HideDrives.adm</strong></li>
<li>Answer Yes to the <em>Do you want to create a new file? </em>popup</li>
</ul>
<p>Enter, or copy and paste, the following text into the new HideDrives.adm file:</p>
<pre class="brush: plain; title: ; notranslate">
#if version &amp;gt;= 3
CLASS USER
CATEGORY !!WindowsComponents
	CATEGORY !!WindowsExplorer
		KEYNAME &amp;quot;Software\Microsoft\Windows\CurrentVersion\Policies\Explorer&amp;quot;
		POLICY !!NoDrives
			EXPLAIN !!NoDrives_Help
			PART !!NoDrivesDropdown       DROPDOWNLIST NOSORT REQUIRED
			VALUENAME &amp;quot;NoDrives&amp;quot;
				ITEMLIST
					NAME !!ShowAll       VALUE NUMERIC       0
					NAME !!HideAll       VALUE NUMERIC       67108863 DEFAULT
					NAME !!ABDEGPR_Only       VALUE NUMERIC       163931
				END ITEMLIST
			END PART
		END POLICY
		POLICY !!NoViewOnDrive
			EXPLAIN !!NoViewOnDrive_Help
			PART !!NoViewOnDriveDropdown       DROPDOWNLIST NOSORT REQUIRED
			VALUENAME &amp;quot;NoViewOnDrive&amp;quot;
				ITEMLIST
					NAME !!ShowAll       VALUE NUMERIC       0
					NAME !!HideAll       VALUE NUMERIC       67108863 DEFAULT
					NAME !!ABDEGPR_Only       VALUE NUMERIC       163931
				END ITEMLIST
			END PART
		END POLICY
	END CATEGORY ; WindowsExplorer
END CATEGORY ; WindowsComponents
#endif
&#x5B;strings]
NoDrives=&amp;quot;Show only certain drives in My Computer&amp;quot;
NoDrives_Help=&amp;quot;Removes the icons representing all but selected hard drives from My Computer&amp;quot;
NoDrivesDropdown=&amp;quot;Pick one of the following combinations&amp;quot;
NoViewOnDrive=&amp;quot;Prevent access to drives from My Computer.&amp;quot;
NoViewOnDrive_Help=&amp;quot;Prevents users from using My Computer to gain access to the content of selected drives.&amp;quot;
NoViewOnDriveDropdown=&amp;quot;Pick one of the following combinations&amp;quot;
WindowsComponents=&amp;quot;Windows Components&amp;quot;
WindowsExplorer=&amp;quot;Windows Explorer&amp;quot;
ShowAll=&amp;quot;Show all drives&amp;quot;
HideAll=&amp;quot;Hide all drives&amp;quot;
ABDEGPR_Only=&amp;quot;Restrict A, B, D, E, G, P and R drives only&amp;quot;
</pre>
<p>Save the HideDrives.adm file, exit Notepad, and exit the command prompt.  In the Group Policy Object Editor, create a New Group Policy Object (GPO), name it <strong>Hide Server Drives</strong>. Edit the Hide Server Drives GPO, right-click <em>Administrative Templates</em> in the <em>User Configuration</em> section, and select <em>Add/Remove Templates&#8230;</em> (Figure 12).</p>
<p><strong>Update 10-Jan-2014.  To keep you from having weird characters placed in your text file by Copy &amp; Paste, I have placed a copy of HideDrives.adm <a title="HideDrives.adm file. Right-click and SaveAs HideDrives.adm" href="https://carlwebster.sharefile.com/d-s73d4107f5924b6da" target="_blank" rel="noopener noreferrer">here</a>.</strong></p>
<figure id="attachment_20281" aria-describedby="caption-attachment-20281" style="width: 360px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure012-1.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20281 size-full" src="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure012-1.jpg" alt="Figure 12" width="360" height="236" /></a><figcaption id="caption-attachment-20281" class="wp-caption-text">Figure 12</figcaption></figure>
<p>In this GPO, the only policies used are:</p>
<ul>
<li>Hide these specified drives in My Computer</li>
<li>Prevent access to drives from My Computer</li>
</ul>
<p>To remove excess policies for this single purpose group policy, remove the other five Policy Templates (Figure 13):</p>
<ul>
<li>conf</li>
<li>inetres</li>
<li>system</li>
<li>wmplayer</li>
<li>wuau</li>
</ul>
<figure id="attachment_20282" aria-describedby="caption-attachment-20282" style="width: 433px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure013-1.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20282 size-full" src="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure013-1.jpg" alt="Figure 13" width="433" height="267" /></a><figcaption id="caption-attachment-20282" class="wp-caption-text">Figure 13</figcaption></figure>
<p>Click <em>Add&#8230;</em>, click <em>HideDrives.adm,</em> and then click <em>Open</em> (Figure 14).</p>
<figure id="attachment_20283" aria-describedby="caption-attachment-20283" style="width: 563px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure014-1.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20283 size-full" src="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure014-1.jpg" alt="Figure 14" width="563" height="411" srcset="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure014-1.jpg 563w, https://www.carlwebster.com/wp-content/uploads/2009/06/Figure014-1-411x300.jpg 411w" sizes="auto, (max-width: 563px) 100vw, 563px" /></a><figcaption id="caption-attachment-20283" class="wp-caption-text">Figure 14</figcaption></figure>
<p>Click <em>Close</em> (Figure 15).</p>
<figure id="attachment_20286" aria-describedby="caption-attachment-20286" style="width: 434px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure015-1.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20286 size-full" src="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure015-1.jpg" alt="Figure 15" width="434" height="267" /></a><figcaption id="caption-attachment-20286" class="wp-caption-text">Figure 15</figcaption></figure>
<p>Expand <em>Administrative Templates</em>, expand <em>Windows Components</em>, click <em>Windows Explorer</em> and double-click <em>Hide these specified drives from My Computer</em> (Figure 16).</p>
<figure id="attachment_20287" aria-describedby="caption-attachment-20287" style="width: 404px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure016-1.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20287 size-full" src="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure016-1.jpg" alt="Figure 16" width="404" height="446" srcset="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure016-1.jpg 404w, https://www.carlwebster.com/wp-content/uploads/2009/06/Figure016-1-272x300.jpg 272w" sizes="auto, (max-width: 404px) 100vw, 404px" /></a><figcaption id="caption-attachment-20287" class="wp-caption-text">Figure 16</figcaption></figure>
<p>Click <em>Enabled</em> and from the drop-down box select the new <em>Restrict A, B, D, E, G, P and R drives only</em> option (Figure 17).</p>
<figure id="attachment_20288" aria-describedby="caption-attachment-20288" style="width: 401px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure017-1.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20288 size-full" src="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure017-1.jpg" alt="Figure 17" width="401" height="446" srcset="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure017-1.jpg 401w, https://www.carlwebster.com/wp-content/uploads/2009/06/Figure017-1-270x300.jpg 270w" sizes="auto, (max-width: 401px) 100vw, 401px" /></a><figcaption id="caption-attachment-20288" class="wp-caption-text">Figure 17</figcaption></figure>
<p>Repeat for the <em>Prevent access to drives from My Computer</em> policy setting (Figure 18).</p>
<figure id="attachment_20289" aria-describedby="caption-attachment-20289" style="width: 401px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure018-1.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20289 size-full" src="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure018-1.jpg" alt="Figure 18" width="401" height="446" srcset="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure018-1.jpg 401w, https://www.carlwebster.com/wp-content/uploads/2009/06/Figure018-1-270x300.jpg 270w" sizes="auto, (max-width: 401px) 100vw, 401px" /></a><figcaption id="caption-attachment-20289" class="wp-caption-text">Figure 18</figcaption></figure>
<p>Exit editing the GPO and the new drive restrictions have been added to your GPO.</p>
<p><strong>Method 3 &#8212; Use the ICAClient.adm file provided by Citrix:</strong></p>
<p>If you are using Citrix XenApp and are also using the ICA Client version 10.x or higher than Citrix (akes available <a href="https://support.citrix.com/article/CTX220108" target="_blank" rel="noopener noreferrer">ICAClient.adm</a>.  Using this ADM file allows you to specify any combination of drive letters with no math involved.  Also, this ADM file is fully supported by Citrix if it has not been altered.  Citrix recommends using ICAClient.adm as the preferred way of controlling drives.  This GPO, in conjunction with the client-side XenApp plug-in, controls access to the specified drive letters.</p>
<p>Either download ICAClient.adm.zip and extract the ICAClient.adm file to c:\Windows\inf or copy the file from C:\Program Files\Citrix\ICA Client\Configuration.  In the Group Policy Object Editor, create a New Group Policy Object (GPO), name it <strong>ICAClient Hide Server Drives</strong>. Edit the Hide Server Drives GPO, right-click <em>Administrative Templates</em> in the <em>User Configuration</em> section, and select <em>Add/Remove Templates&#8230;</em> (Figure 19).</p>
<figure id="attachment_20290" aria-describedby="caption-attachment-20290" style="width: 360px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure019-1.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20290 size-full" src="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure019-1.jpg" alt="Figure 19" width="360" height="236" /></a><figcaption id="caption-attachment-20290" class="wp-caption-text">Figure 19</figcaption></figure>
<p>In this GPO, the only policy that will be used is Client drive mapping.</p>
<p>To remove excess policies for this single purpose group policy, remove the other five Policy Templates (Figure 20):</p>
<ul>
<li>conf</li>
<li>inetres</li>
<li>system</li>
<li>wmplayer</li>
<li>wuau</li>
</ul>
<figure id="attachment_20294" aria-describedby="caption-attachment-20294" style="width: 433px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure020-1.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20294 size-full" src="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure020-1.jpg" alt="Figure 20" width="433" height="267" /></a><figcaption id="caption-attachment-20294" class="wp-caption-text">Figure 20</figcaption></figure>
<p>Click <em>Add&#8230;</em>, click <em>icaclient.adm,</em> and then click <em>Open</em> (Figure 21).</p>
<figure id="attachment_20296" aria-describedby="caption-attachment-20296" style="width: 558px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure021-1.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20296 size-full" src="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure021-1.jpg" alt="Figure 21" width="558" height="409" srcset="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure021-1.jpg 558w, https://www.carlwebster.com/wp-content/uploads/2009/06/Figure021-1-409x300.jpg 409w" sizes="auto, (max-width: 558px) 100vw, 558px" /></a><figcaption id="caption-attachment-20296" class="wp-caption-text">Figure 21</figcaption></figure>
<p>Click <em>Close</em> (Figure 22).</p>
<figure id="attachment_20297" aria-describedby="caption-attachment-20297" style="width: 436px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure022-1.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20297 size-full" src="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure022-1.jpg" alt="Figure 22" width="436" height="266" /></a><figcaption id="caption-attachment-20297" class="wp-caption-text">Figure 22</figcaption></figure>
<p>Expand <em>Administrative Templates</em>, expand <em>Citrix Components</em>, expand <em>Presentation Server Client</em>, click <em>Remoting client devices,</em> and double-click <em>Client drive mapping</em> (Figure 23).</p>
<figure id="attachment_20298" aria-describedby="caption-attachment-20298" style="width: 401px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure023-1.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20298 size-full" src="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure023-1.jpg" alt="Figure 23" width="401" height="445" srcset="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure023-1.jpg 401w, https://www.carlwebster.com/wp-content/uploads/2009/06/Figure023-1-270x300.jpg 270w" sizes="auto, (max-width: 401px) 100vw, 401px" /></a><figcaption id="caption-attachment-20298" class="wp-caption-text">Figure 23</figcaption></figure>
<p>Click <em>Enabled</em>, make sure <em>Enable client drive mapping</em> is checked and enter <strong>ABDEGPR </strong>in the box for <em>Do not map drives: </em>and click <em>OK</em> (Figure 24).</p>
<figure id="attachment_20299" aria-describedby="caption-attachment-20299" style="width: 401px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure024-1.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="wp-image-20299 size-full" src="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure024-1.jpg" alt="Figure 24" width="401" height="445" srcset="https://www.carlwebster.com/wp-content/uploads/2009/06/Figure024-1.jpg 401w, https://www.carlwebster.com/wp-content/uploads/2009/06/Figure024-1-270x300.jpg 270w" sizes="auto, (max-width: 401px) 100vw, 401px" /></a><figcaption id="caption-attachment-20299" class="wp-caption-text">Figure 24</figcaption></figure>
<p>Exit editing the GPO and the new drive restrictions have been added to your GPO.</p>
<p>In this article, you learned three methods of adding additional drive letters to hide or prevent access for use on your Terminal or XenApp Servers.</p>
<p>Thanks</p>
<p>Webster</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.carlwebster.com/how-to-hide-additional-drive-letters-on-a-server/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1088</post-id>	</item>
	</channel>
</rss>
