<?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>Kraft Kennedy &#124; Technology Blog &#187; Citrix</title>
	<atom:link href="http://blogs.kraftkennedy.com/index.php/tag/citrix/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.kraftkennedy.com</link>
	<description>Trends and insight into legal technology, infrastructure and strategic thinking.</description>
	<lastBuildDate>Tue, 31 Jan 2012 14:24:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Monitoring RAM Cache Used w/ PowerShell</title>
		<link>http://blogs.kraftkennedy.com/index.php/2011/12/19/monitoring-ram-cache-used-w-powershell/</link>
		<comments>http://blogs.kraftkennedy.com/index.php/2011/12/19/monitoring-ram-cache-used-w-powershell/#comments</comments>
		<pubDate>Mon, 19 Dec 2011 20:25:30 +0000</pubDate>
		<dc:creator>Clinton Gates</dc:creator>
				<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Citrix]]></category>
		<category><![CDATA[PVS]]></category>

		<guid isPermaLink="false">http://blogs.kraftkennedy.com/?p=3975</guid>
		<description><![CDATA[As we try to engineer the best available working environment for our end users, more and more clients have tried to store user cache in memory.  While this does provide the best performance, it also has it&#8217;s limitations discussed in this blog post by my colleague Jeff Silverman.  If you have the ability to store [...]]]></description>
			<content:encoded><![CDATA[<p>As we try to engineer the best available working environment for our end users, more and more clients have tried to store user cache in memory.  While this does provide the best performance, it also has it&#8217;s limitations discussed in <a href="http://blogs.kraftkennedy.com/index.php/2011/06/08/citrix-provisioning-server-understanding-the-limitations-of-write-cache-in-target-device-ram/">this blog post</a> by my colleague Jeff Silverman.  If you have the ability to store the user cache in memory it&#8217;s important to also monitor just how full that memory allotment is getting.  If it fills up, and Windows has no where to write user information, the system most likely end in a BSOD for the user.</p>
<p>Citrix provides a nice PowerShell command to query the RAM cache used via the MCLI PowerShell snap-in.  This snap-in (McliPSSnapIn.dll) comes standard with Provisioning Server Console install and is located in C:\Program Files\Citrix\Provisioning Services Console.  Before it can be added to PowerShell, the dll must be registered on any system wish to run the query from.</p>
<p>To register the dll on a 64-bit machine, run the following PowerShell command:</p>
<ul>
<li><strong>C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\InstallUtil.exe &#8216;C:\Program Files\Citrix\Provisioning Services Console\McliPSSnapIn.dll&#8217;</strong></li>
</ul>
<p>To add the snap-in to a PowerShell command prompt, run the following command:</p>
<ul>
<li><strong>Add-PSSnapin -Name McliPSSnapIn</strong></li>
</ul>
<p>Run the following command against a XenApp server to see how much RAM cache is used:</p>
<ul>
<li><strong>mcli-get deviceinfo -p devicename={servername} -f status</strong></li>
</ul>
<p>The second number returned in the status section is the percentage of the RAM Cache used.</p>
<p><a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/12/RAMCacheUsed.png"><img class="size-full wp-image-3986 alignnone" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/12/RAMCacheUsed.png" alt="" width="298" height="53" /></a></p>
<table border=0><tr><td width="215">
<!-- Start WP Socializer - Social Buttons - Output -->
<div class="wp-socializer 16px">
<ul class="wp-socializer-none columns-no">
 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 
</ul> 
<div class="wp-socializer-clearer"></div></div>
<!-- End WP Socializer - Social Buttons - Output -->
</td><td>
<!-- Start WP Socializer Plugin - Retweet Button -->
<script type="text/javascript">
<!--
tweetmeme_url = "http://blogs.kraftkennedy.com/index.php/2011/12/19/monitoring-ram-cache-used-w-powershell/"; tweetmeme_style = "compact"; tweetmeme_source = "kraftkennedy"; 

--></script>
<script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script>
<!-- End WP Socializer Plugin - Retweet Button -->
</td></tr></table>]]></content:encoded>
			<wfw:commentRss>http://blogs.kraftkennedy.com/index.php/2011/12/19/monitoring-ram-cache-used-w-powershell/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Citrix Provisioning Server &#8211; Re-Enable MAK Activation</title>
		<link>http://blogs.kraftkennedy.com/index.php/2011/09/17/citrix-provisioning-server-re-enable-mak-activation/</link>
		<comments>http://blogs.kraftkennedy.com/index.php/2011/09/17/citrix-provisioning-server-re-enable-mak-activation/#comments</comments>
		<pubDate>Sat, 17 Sep 2011 16:33:46 +0000</pubDate>
		<dc:creator>Jeff Silverman</dc:creator>
				<category><![CDATA[Desktop Deployment]]></category>
		<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[activation]]></category>
		<category><![CDATA[Citrix]]></category>
		<category><![CDATA[MAK]]></category>
		<category><![CDATA[Provisioning Server]]></category>

		<guid isPermaLink="false">http://blogs.kraftkennedy.com/?p=3834</guid>
		<description><![CDATA[Citrix Provisioning Server supports two methods of Windows volume activation – MAK and KMS.  I’ve found the latter to be the preferred approach, since when set up properly it requires little if any maintenance.  There are occasions, however, where you need to use MAK – perhaps it’s the only key you have available or your [...]]]></description>
			<content:encoded><![CDATA[<p>Citrix Provisioning Server supports two methods of Windows volume activation – MAK and KMS.  I’ve found the latter to be the preferred approach, since when set up properly it requires little if any maintenance.  There are occasions, however, where you need to use MAK – perhaps it’s the only key you have available or your implementation is smaller than KMS’s 25-computer activation threshold.  In these cases you’ll want to follow Citrix’s guidance for implementing MAK activation (MAKtivation) <a href="http://support.citrix.com/proddocs/topic/provisioning-56/pvs-collections-mac-license-manage.html">here</a>.  This post isn’t intended to cover those steps in detail.  Rather, it’s intended to cover the situation where you need to run MAK activation again after it’s been run successfully.  By design, the option to “Manage MAK Activations” disappears from the Provisioning Server console after it’s been run successfully, and this post describes how to get that option back.</p>
<p>First, let’s take a quick look at the MAKtivation process.<span id="more-3834"></span>  Before any target devices are activated, the following option is available in the Provisioning Server console:</p>
<ul><a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/09/image.png"><img style="border: 0px currentColor;padding-top: 0px;padding-right: 0px;padding-left: 0px" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/09/image_thumb.png" border="0" alt="image" width="530" height="240" /></a></ul>
<p>Selecting that option brings up the following dialogue:</p>
<ul> <a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/09/image1.png"><img style="border: 0px currentColor;padding-top: 0px;padding-right: 0px;padding-left: 0px" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/09/image_thumb1.png" border="0" alt="image" width="187" height="234" /></a></ul>
<p>Assuming you’ve installed <a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=11936">Microsoft VAMT 2.0</a> on all Provisioning Servers, simply enter your MAK key, click OK, and you’re off to the (somewhat slow but effective) races.  When all target devices are activated you’ll receive the following confirmation, and your target devices should be free of any Windows activation warnings.</p>
<ul><a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/09/image2.png"><img style="border: 0px currentColor;padding-top: 0px;padding-right: 0px;padding-left: 0px" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/09/image_thumb2.png" border="0" alt="image" width="218" height="90" /></a></ul>
<p>You’ll also notice that the option to “Manage MAK Activations” no longer appears in the Provisioning Server console:</p>
<ul><a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/09/image3.png"><img style="border: 0px currentColor;padding-top: 0px;padding-right: 0px;padding-left: 0px" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/09/image_thumb3.png" border="0" alt="image" width="531" height="249" /></a></ul>
<p>This process worked well until I upgraded the VDA in my vDisk to support XenDesktop 5.5.  After rebooting, Windows reported that hardware had changed and that I needed to reactivate.  Unfortunately no one told Provisioning Server because the MAKtivation option was still gone, temporarily leaving me in unactivated and unable to reactivate purgatory.</p>
<p>Per <a href="http://support.citrix.com/proddocs/topic/provisioning-56/pvs-collections-mac-license-manage.html">Citrix’s guidance</a>, an automated vDisk update process must be followed in order to preserve MAKtivation.  Yeah&#8230; so we&#8217;re gonna have to go ahead and break that on purpose by manually disassociating the vDisk from the affected target devices:</p>
<ul><a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/09/image4.png"><img style="border: 0px currentColor;padding-top: 0px;padding-right: 0px;padding-left: 0px" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/09/image_thumb4.png" border="0" alt="image" width="531" height="196" /></a></ul>
<ul><a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/09/image5.png"><img style="border: 0px currentColor;padding-top: 0px;padding-right: 0px;padding-left: 0px" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/09/image_thumb5.png" border="0" alt="image" width="203" height="307" /></a></ul>
<p>Ensure your target devices are powered off and confirm that the vDisk associations are removed in the console:</p>
<ul><a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/09/image6.png"><img style="border: 0px currentColor;padding-top: 0px;padding-right: 0px;padding-left: 0px" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/09/image_thumb6.png" border="0" alt="image" width="529" height="172" /></a></ul>
<p>Once that’s done, manually reassociate the vDisk, boot your target devices, and *POOF* the MAKtivation option is back:</p>
<ul><a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/09/image7.png"><img style="margin: 0px;border: 0px currentColor;padding-top: 0px;padding-right: 0px;padding-left: 0px" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/09/image_thumb7.png" border="0" alt="image" width="530" height="240" /></a></ul>
<table border=0><tr><td width="215">
<!-- Start WP Socializer - Social Buttons - Output -->
<div class="wp-socializer 16px">
<ul class="wp-socializer-none columns-no">
 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 
</ul> 
<div class="wp-socializer-clearer"></div></div>
<!-- End WP Socializer - Social Buttons - Output -->
</td><td>
<!-- Start WP Socializer Plugin - Retweet Button -->
<script type="text/javascript">
<!--
tweetmeme_url = "http://blogs.kraftkennedy.com/index.php/2011/09/17/citrix-provisioning-server-re-enable-mak-activation/"; tweetmeme_style = "compact"; tweetmeme_source = "kraftkennedy"; 

--></script>
<script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script>
<!-- End WP Socializer Plugin - Retweet Button -->
</td></tr></table>]]></content:encoded>
			<wfw:commentRss>http://blogs.kraftkennedy.com/index.php/2011/09/17/citrix-provisioning-server-re-enable-mak-activation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Citrix Receiver Tech Preview&#8221; for Chrome OS hits Chrome Web Store</title>
		<link>http://blogs.kraftkennedy.com/index.php/2011/08/10/citrix-receiver-tech-preview-for-chrome-os-hits-chrome-web-store/</link>
		<comments>http://blogs.kraftkennedy.com/index.php/2011/08/10/citrix-receiver-tech-preview-for-chrome-os-hits-chrome-web-store/#comments</comments>
		<pubDate>Wed, 10 Aug 2011 23:57:12 +0000</pubDate>
		<dc:creator>Danny Wnek</dc:creator>
				<category><![CDATA[Desktop Deployment]]></category>
		<category><![CDATA[Chrome OS]]></category>
		<category><![CDATA[Citrix]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenDesktop]]></category>

		<guid isPermaLink="false">http://blogs.kraftkennedy.com/?p=3743</guid>
		<description><![CDATA[Several weeks ago I posted about my shiny, new Chromebook and the notable lack of a Citrix receiver for the Chrome OS, despite it being unveiled at Citrix Synergy back in May.  It appears my weeks of patient waiting have finally paid off: earlier today, Citrix released a &#8220;tech preview&#8221; of its receiver for the [...]]]></description>
			<content:encoded><![CDATA[<p>Several weeks ago I <a title="Chrome Citrix Receiver, where art thou?" href="http://blogs.kraftkennedy.com/index.php/2011/06/15/chrome-citrix-receiver-where-art-thou/">posted about my shiny, new Chromebook</a> and the notable lack of a Citrix receiver for the Chrome OS, despite it being unveiled at Citrix Synergy back in May.  It appears my weeks of patient waiting have finally paid off: earlier today, Citrix released a &#8220;tech preview&#8221; of its receiver for the Chrome OS via the Chrome Web Store.</p>
<p style="text-align: center;"><a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/08/Citrix1.bmp"><img class="aligncenter size-full wp-image-3747" title="Citrix Receiver Banner" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/08/Citrix1.bmp" alt="" width="487" height="194" /></a></p>
<p>As expected, the new receiver requires some <a href="http://www.citrix.com/chromeos">updates</a> to your existing XenApp or XenDesktop environment to work (you&#8217;ll need a MyCitrix login to download them).  Additionally, the receiver currently only supports XenDesktop 5.0 and XenApp 6.0 environments running on Windows Server 2008 R2.  Whether that list will be expanded as the receiver matures &#8211; given that this is still listed as a tech preview &#8211; remains to be seen.</p>
<p>The release of this new receiver, though currently limited to a very small market, could be the start of a much broader shift in how remote users access Citrix environments, and we&#8217;re quite excited to finally get our hands on it.  We&#8217;ll work on getting our environment set up in the next day or two to give the new receiver &#8211; as well as that Chromebook that&#8217;s been sitting on my desk &#8211; a run for its money.</p>
<table border=0><tr><td width="215">
<!-- Start WP Socializer - Social Buttons - Output -->
<div class="wp-socializer 16px">
<ul class="wp-socializer-none columns-no">
 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 
</ul> 
<div class="wp-socializer-clearer"></div></div>
<!-- End WP Socializer - Social Buttons - Output -->
</td><td>
<!-- Start WP Socializer Plugin - Retweet Button -->
<script type="text/javascript">
<!--
tweetmeme_url = "http://blogs.kraftkennedy.com/index.php/2011/08/10/citrix-receiver-tech-preview-for-chrome-os-hits-chrome-web-store/"; tweetmeme_style = "compact"; tweetmeme_source = "kraftkennedy"; 

--></script>
<script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script>
<!-- End WP Socializer Plugin - Retweet Button -->
</td></tr></table>]]></content:encoded>
			<wfw:commentRss>http://blogs.kraftkennedy.com/index.php/2011/08/10/citrix-receiver-tech-preview-for-chrome-os-hits-chrome-web-store/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Chrome Citrix Receiver, where art thou?</title>
		<link>http://blogs.kraftkennedy.com/index.php/2011/06/15/chrome-citrix-receiver-where-art-thou/</link>
		<comments>http://blogs.kraftkennedy.com/index.php/2011/06/15/chrome-citrix-receiver-where-art-thou/#comments</comments>
		<pubDate>Wed, 15 Jun 2011 21:19:09 +0000</pubDate>
		<dc:creator>Danny Wnek</dc:creator>
				<category><![CDATA[Desktop Deployment]]></category>
		<category><![CDATA[Chrome OS]]></category>
		<category><![CDATA[Citrix]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenDesktop]]></category>

		<guid isPermaLink="false">http://blogs.kraftkennedy.com/?p=3517</guid>
		<description><![CDATA[It&#8217;s not too often that I get excited by the release of a new product.  I&#8217;ve certainly never waited outside a store to be one of the first people to have a new device, and, in fact, I almost always wait a few months until the bugs are worked out before I commit to buying [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s not too often that I get excited by the release of a new product.  I&#8217;ve certainly never waited outside a store to be one of the first people to have a new device, and, in fact, I almost always wait a few months until the bugs are worked out before I commit to buying something. When I got an invitation from Google a few weeks ago to be part of their Chromebook pre-release, however, I jumped on the opportunity about as quickly as I could.<span id="more-3517"></span></p>
<div id="attachment_3522" class="wp-caption aligncenter" style="width: 426px"><a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/chromebook1.jpg"><img class="size-full wp-image-3522" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/chromebook1.jpg" alt="" width="416" height="298" /></a><p class="wp-caption-text">The Samsung Chromebook Series 5 </p></div>
<p>Chrome OS, which officially launches on June 15th,  is  Google&#8217;s much-anticipated entry into the operating system space.  At first glance, it looks like little more than a Chrome browser window.  At second glance, you realize that it really is just a browser on steroids.  This makes perfect sense, because the OS is centered around Google&#8217;s (lofty) assertion that the applications we use day to day on our current machines are &#8220;legacy&#8221; apps, and that the future of computing lies in web-based applications.  While I fully agree with the second part of that statement and am continually impressed by what web apps are able to do these days, many Enterprise applications are far from being web app ready.  That&#8217;s where the Citrix Receiver comes into play.  Citrix&#8217;s XenApp platform has long been utilized to access published applications on non-Windows operating system,  and Citrix&#8217;s <a href="http://www.citrix.com/English/NE/news/news.asp?newsID=2311983">announced support for Chrome OS</a> opens up a whole world of possibilities for the new operating system.  Unfortunately, as of this afternoon, the Receiver continues to be missing-in-action from the Chrome Web Store.</p>
<p style="text-align: center;">&nbsp;</p>
<div id="attachment_3528" class="wp-caption aligncenter" style="width: 526px"><a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/WebStore.jpg"><img class="size-full wp-image-3528   " src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/WebStore.jpg" alt="" width="516" height="272" /></a><p class="wp-caption-text">Plenty of angry birds, but no Citrix Receiver.</p></div>
<p>What excites me about Google&#8217;s new operating system is how vastly different it is than the competition.  They set out to redefine how we think about personal computing in a web-centric world, and that in turn requires users to change some of their behavior.  I don&#8217;t expect Chromebooks to be springing up in large numbers in the legal sector any time soon (despite Google&#8217;s <a href="http://www.computerworld.com/s/article/9216631/Google_Chromebook_focuses_on_enterprise_push">compelling Enterprise offers</a>), but they are perfectly suited for mobile users and it won&#8217;t be long before people start asking about them for remote access.  I&#8217;ll be keeping an eye out of the Citrix Receiver and plan on reporting back on how it handles the XenApp environment once I have it up and running.</p>
<table border=0><tr><td width="215">
<!-- Start WP Socializer - Social Buttons - Output -->
<div class="wp-socializer 16px">
<ul class="wp-socializer-none columns-no">
 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 
</ul> 
<div class="wp-socializer-clearer"></div></div>
<!-- End WP Socializer - Social Buttons - Output -->
</td><td>
<!-- Start WP Socializer Plugin - Retweet Button -->
<script type="text/javascript">
<!--
tweetmeme_url = "http://blogs.kraftkennedy.com/index.php/2011/06/15/chrome-citrix-receiver-where-art-thou/"; tweetmeme_style = "compact"; tweetmeme_source = "kraftkennedy"; 

--></script>
<script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script>
<!-- End WP Socializer Plugin - Retweet Button -->
</td></tr></table>]]></content:encoded>
			<wfw:commentRss>http://blogs.kraftkennedy.com/index.php/2011/06/15/chrome-citrix-receiver-where-art-thou/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Citrix Provisioning Server &#8211; Understanding the Limitations of Write Cache in Target Device RAM</title>
		<link>http://blogs.kraftkennedy.com/index.php/2011/06/08/citrix-provisioning-server-understanding-the-limitations-of-write-cache-in-target-device-ram/</link>
		<comments>http://blogs.kraftkennedy.com/index.php/2011/06/08/citrix-provisioning-server-understanding-the-limitations-of-write-cache-in-target-device-ram/#comments</comments>
		<pubDate>Wed, 08 Jun 2011 20:47:39 +0000</pubDate>
		<dc:creator>Jeff Silverman</dc:creator>
				<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Citrix]]></category>
		<category><![CDATA[Provisioning Server]]></category>
		<category><![CDATA[Write Cache]]></category>

		<guid isPermaLink="false">http://blogs.kraftkennedy.com/?p=3369</guid>
		<description><![CDATA[As server and storage hardware continues to evolve, and now that Citrix has introduced Machine Creation Services (MCS) as an alternative deployment methodology to conflict with compliment Provisioning Server (PvS), architects and engineers have more complexity flexibility than ever with regard to virtual desktop infrastructure (VDI) design.  While MCS is somewhat limited, PvS provides flexibility [...]]]></description>
			<content:encoded><![CDATA[<p>As server and storage hardware continues to evolve, and now that Citrix has introduced Machine Creation Services (MCS) as an alternative deployment methodology to <span style="text-decoration: line-through">conflict with</span> compliment Provisioning Server (PvS), architects and engineers have more <span style="text-decoration: line-through">complexity</span> flexibility than ever with regard to virtual desktop infrastructure (VDI) design.  While MCS is somewhat limited, PvS provides flexibility with regard to write cache and vDisk location.  There are performance, redundancy, and other tradeoffs associated with these choices, however, and it’s important to fully understand them when designing a solution.<br />
<span id="more-3369"></span><br />
With regard to write cache location PvS offers four options – target device RAM, target device HD, server cache, and difference disk.  The implications of each are discussed <a href="http://support.citrix.com/article/CTX119469">here</a>, but this article focuses on one in particular &#8211; RAM.  It’s the fastest, but it’s also the most expensive and typically the most limited from a capacity perspective.  Also, unlike the other options that grow the cache file as needed (up to the limit of available drive space), the size of RAM cache is fixed and when you run out bad things happen.  Specifically, Citrix states that “if more different sectors are written than the size of the cache, the device will hang.”  It’s important to understand exactly what that means, especially since it isn’t quite what you might think, at least not at the time of this writing.  The sections below illustrate RAM cache’s seemingly unusual behavior, explain why it occurs, dig a bit deeper into specific examples, and discuss what we might see in the future.</p>
<p><strong><span style="font-size: small">Test Configuration</span></strong></p>
<p>The tests below use XenDesktop 5 SP1 and Provisioning Server 5.6 SP1.  The target VM is Windows 7 64-bit SP1 running on vSphere 4.1 and is configured with 4Gb RAM.<br />
<a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image39.png"><img style="border: 0px currentColor;padding-top: 0px;padding-right: 0px;padding-left: 0px;margin-right: 0px;margin-left: 0px" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image_thumb39.png" border="0" alt="image" width="214" height="122" /></a></p>
<p>The vDisk is configured with 2Gb RAM cache.<br />
<a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image40.png"><img style="border: 0px currentColor;padding-top: 0px;padding-right: 0px;padding-left: 0px" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image_thumb40.png" border="0" alt="image" width="302" height="118" /></a></p>
<p>This results in 4Gb total, 2Gb usable in Windows.<br />
<a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image41.png"><img style="border: 0px currentColor;padding-top: 0px;padding-right: 0px;padding-left: 0px" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image_thumb41.png" border="0" alt="image" width="348" height="112" /></a></p>
<p><strong><span style="font-size: small">The Clown Car</span></strong><br />
<br />We’ll begin with a fresh VDI session.  The PvS system tray applet shows 1% of the system cache is used.<br />
<a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image42.png"><img style="border: 0px currentColor;padding-top: 0px;padding-right: 0px;padding-left: 0px" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image_thumb42.png" border="0" alt="image" width="237" height="302" /></a></p>
<p>We’ll then saturate the RAM cache by generating a 2Gb test file.<br />
<a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image43.png"><img style="border: 0px currentColor;padding-top: 0px;padding-right: 0px;padding-left: 0px" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image_thumb43.png" border="0" alt="image" width="239" height="151" /></a></p>
<p>The test file is created successfully and the RAM cache is maxed at 100%.<br />
<a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image44.png"><img style="border: 0px currentColor;padding-top: 0px;padding-right: 0px;padding-left: 0px" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image_thumb44.png" border="0" alt="image" width="162" height="125" /></a><br />
<a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image45.png"><img style="border: 0px currentColor;padding-top: 0px;padding-right: 0px;padding-left: 0px" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image_thumb45.png" border="0" alt="image" width="520" height="167" /></a><br />
<a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image46.png"><img style="border: 0px currentColor;padding-top: 0px;padding-right: 0px;padding-left: 0px" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image_thumb46.png" border="0" alt="image" width="215" height="274" /></a></p>
<p>Since we started with 30Mb and wrote another 2048Mb that should be it for our session, right?  Not quite.  Let’s copy a 1Gb Exchange ISO from the network…<br />
<a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image47.png"><img style="border: 0px currentColor;padding-top: 0px;padding-right: 0px;padding-left: 0px" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image_thumb47.png" border="0" alt="image" width="519" height="179" /></a></p>
<p>…and download a 900Mb Windows service pack from the Internet.<br />
<a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image48.png"><img style="border: 0px currentColor;padding-top: 0px;padding-right: 0px;padding-left: 0px" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image_thumb48.png" border="0" alt="image" width="521" height="193" /></a></p>
<p>“Shut the front door!” you say?  “Does Windows still work?”  Well, <a href="http://www.youtube.com/watch?v=9OfsABOGw3c">this video</a> of the Swedish Chef plays perfectly.<br />
<a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image49.png"><img style="border: 0px currentColor;padding-top: 0px;padding-right: 0px;padding-left: 0px" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image_thumb49.png" border="0" alt="image" width="408" height="321" /></a></p>
<p>I’m also able to create and save content in Paint, WordPad, etc.  Weird, right?  Let’s take a look at why this occurs.</p>
<p><strong><span style="font-size: small">The Explanation (per Citrix engineering)</span></strong></p>
<p>When Citrix network stack interface driver (bnistack) MIoProcessWcRamWriteTransaction detects insufficient memory it returns successful to the caller (Windows) without actually saving the data to the RAM cache, so if Windows never reads the same data back, practically unlimited data can be added (though it may be limited by other factors like available disk space – Windows will prevent you from creating a 10Gb file when you have 8Gb free on your vDisk, for example).  Once the RAM cache becomes saturated errors are logged as follows:<br />
<a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image50.png"><img style="border: 0px currentColor;padding-top: 0px;padding-right: 0px;padding-left: 0px" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image_thumb50.png" border="0" alt="image" width="568" height="433" /></a><br />
<a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image51.png"><img style="border: 0px currentColor;padding-top: 0px;padding-right: 0px;padding-left: 0px" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image_thumb51.png" border="0" alt="image" width="569" height="435" /></a></p>
<p>Unfortunately by the time you attempt to access the Event Log your system is likely frozen, and if it’s a Standard image without redirected log files you’re out of luck when the frozen session is reset.</p>
<p><strong><span style="font-size: small">Digging Deeper</span></strong></p>
<p>What does the explanation above really mean?  Does it hold up in practice?  Where does excess data go if it isn’t actually written?  What happens when you attempt to access excess data?  The examples below explore these questions.</p>
<p><span style="text-decoration: underline">Example 1</span></p>
<p>Upon logging on to a fresh VDI session and opening my test file creator, I have over 6 Gb free on the C drive…<br />
<br /><a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image52.png"><img style="margin: 0px;border: 0px currentColor;padding-top: 0px;padding-right: 0px;padding-left: 0px" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image_thumb52.png" border="0" alt="image" width="171" height="57" /></a></p>
<p>…and memory usage is as follows:<br />
<a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image53.png"><img style="border: 0px currentColor;padding-top: 0px;padding-right: 0px;padding-left: 0px" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image_thumb53.png" border="0" alt="image" width="363" height="137" /></a></p>
<p>I then create five separate 450Gb test files.<br />
<a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image161.png"><img style="border: 0px currentColor;padding-top: 0px;padding-right: 0px;padding-left: 0px" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image16_thumb.png" border="0" alt="image" width="522" height="217" /></a></p>
<p>As the files are created RAM cache utilization increases, memory in use remains roughly constant, standby memory (Windows system cache) increases, and free memory decreases.</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="167" valign="top"></td>
<td style="text-align: center" width="149" valign="top"><strong>RAM Cache</strong></td>
<td style="text-align: center" width="157" valign="top"><strong>Memory In Use</strong></td>
<td style="text-align: center" width="166" valign="top"><strong>Standby Memory</strong></td>
<td style="text-align: center" width="159" valign="top"><strong>Free Memory</strong></td>
</tr>
<tr>
<td style="text-align: left" width="167" valign="top">Start</td>
<td style="text-align: center" width="149" valign="top">20 Mb (1%)</td>
<td style="text-align: center" width="157" valign="top">676 Mb</td>
<td style="text-align: center" width="166" valign="top">257 Mb</td>
<td style="text-align: center" width="159" valign="top">1111 Mb</td>
</tr>
<tr>
<td style="text-align: left" width="167" valign="top">TestFile1</td>
<td style="text-align: center" width="149" valign="top">472 Mb (23%)</td>
<td style="text-align: center" width="157" valign="top">684 Mb</td>
<td style="text-align: center" width="166" valign="top">711 Mb</td>
<td style="text-align: center" width="159" valign="top">650 Mb</td>
</tr>
<tr>
<td width="167" valign="top">TestFile2</td>
<td style="text-align: center" width="149" valign="top">922 Mb (45%)</td>
<td style="text-align: center" width="157" valign="top">684 Mb</td>
<td style="text-align: center" width="166" valign="top">1161 Mb</td>
<td style="text-align: center" width="159" valign="top">204 Mb</td>
</tr>
<tr>
<td width="167" valign="top">TestFile3</td>
<td style="text-align: center" width="149" valign="top">1380 Mb (67%)</td>
<td style="text-align: center" width="157" valign="top">649 Mb</td>
<td style="text-align: center" width="166" valign="top">1385 Mb</td>
<td style="text-align: center" width="159" valign="top">10 Mb</td>
</tr>
<tr>
<td width="167" valign="top">TestFile4</td>
<td style="text-align: center" width="149" valign="top">1831 Mb (89%)</td>
<td style="text-align: center" width="157" valign="top">648 Mb</td>
<td style="text-align: center" width="166" valign="top">1386 Mb</td>
<td style="text-align: center" width="159" valign="top">0 Mb</td>
</tr>
<tr>
<td style="text-align: left" width="167" valign="top">TestFile5</td>
<td style="text-align: center" width="149" valign="top">2048 Mb (100%)</td>
<td style="text-align: center" width="157" valign="top">645 Mb</td>
<td style="text-align: center" width="166" valign="top">1394 Mb</td>
<td style="text-align: center" width="159" valign="top">4 Mb</td>
</tr>
<tr>
<td style="text-align: left" width="167" valign="top">TestFile<em>n</em></td>
<td style="text-align: center" width="149" valign="top">2048 Mb (100%)</td>
<td style="text-align: center" width="157" valign="top">~645 Mb</td>
<td style="text-align: center" width="166" valign="top">~1394 Mb</td>
<td style="text-align: center" width="159" valign="top">~4 Mb</td>
</tr>
</tbody>
</table>
<p>I can continue creating test files up to the limit of available hard drive space, at which point the following error is generated:</p>
<p><a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image54.png"><img style="margin: 0px;border: 0px currentColor;padding-top: 0px;padding-right: 0px;padding-left: 0px" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image_thumb54.png" border="0" alt="image" width="171" height="96" /></a></p>
<p>In other words, similar to “The Clown Car” above, I was able to generate test files that far exceeded the RAM cache before encountering an issue, and if I’d had a larger hard drive I would have been able to generate more.</p>
<p>So where did the data go?  We see in the table above that as test files are created the RAM cache increases in direct proportion to test file size until no more RAM cache remains.  Standby memory increases and free memory decreases in a similar manner, presumably showing that Windows is caching the most recently created data for quick access later, though this can’t really be considered “storage” for purposes of this analysis.</p>
<p>So what about the excess?  Let’s look at another example&#8230;</p>
<p><span style="text-decoration: underline">Example 2</span><br />
<br />Five 450 Gb test files are created, thus saturating RAM cache.  Attempting to open any of them results in an immediate system freeze and eventual reset.  In addition, deleting one or more of them then attempting to open one that remains results in an immediate freeze and eventual reset.  Finally, deleting all five files, creating a sixth, and attempting to open it results in an immediate freeze and eventual reset.  This suggests that once the RAM cache is saturated, attempting to access any content within it freezes the system.</p>
<p><span style="text-decoration: underline">Example 3</span></p>
<p>Four 450 Gb test files are created and RAM cache is at 89%.  Any one of them are opened.  A fifth is then created, thus saturating RAM cache.  We would appear to be in the same position as the previous example, but this time any of the first four files can be opened again and opening the fifth freezes the system.  This suggests that opening a file before the RAM cache is saturated somehow “protects” cache contents.</p>
<p><span style="text-decoration: underline">Example 4</span></p>
<p>Four 450 Gb test files are created and RAM cache is at 89%.  Any one of them are deleted.  RAM cache remains at 89%.  A fifth file is created.  RAM cache remains at 89%.  This suggests that deleted info isn’t reclaimed (or at least isn’t reported as reclaimed by the Virtual Disk Status applet) but is available for reuse when deleted.</p>
<p><span style="text-decoration: underline">Example 5</span></p>
<p>Four 450 Gb test files are created and RAM cache is at 89%.  Attempting to open all 4 maxes out memory in use, the system begins paging, the page file consumes additional RAM cache, and when RAM cache becomes saturated the system freezes.</p>
<p><strong><span style="font-size: small">Conclusions</span></strong><br />
<br />The examples above suggest the following:</p>
<ul>
<li>RAM cache can be reused, but not reclaimed, up to the point of saturation.</li>
<li>RAM cache saturation will likely not be apparent to end users.</li>
<li>Once the saturation point is reached, data is at risk.</li>
<li>If no files in the cache were accessed prior to saturation, any attempt to access cache contents will result in a freeze.</li>
<li>If any file in the cache is accessed prior to saturation, contents in the cache prior to reaching saturation appear to be “protected.”</li>
<li>Page file size and use is another important consideration.</li>
</ul>
<p><strong><span style="font-size: small">Future</span></strong></p>
<p>Citrix engineering has acknowledged that this is a bug, and has indicated that the fix should be to crash (BSOD) when RAM cache becomes saturated. “The fix should be to crash?  Really?” Yes, following the philosophy that existing user data should be protected and further corruption should be prevented.</p>
<p><strong><span style="font-size: small">Final Thoughts</span></strong></p>
<p>As a best practice, a proof of concept with write cache on the server is recommended as it allows analysis of write cache size over time.  Once confidence is established with regard to write cache size, cost/benefit analysis can be performed relative to write cache location.</p>
<p>Thanks to my colleagues <a href="http://blogs.kraftkennedy.com/index.php/author/liebowitz/">Matt Liebowitz</a> and <a href="http://blogs.kraftkennedy.com/index.php/author/patel/">Niraj Patel</a> for their help with this post.</p>
<table border=0><tr><td width="215">
<!-- Start WP Socializer - Social Buttons - Output -->
<div class="wp-socializer 16px">
<ul class="wp-socializer-none columns-no">
 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 
</ul> 
<div class="wp-socializer-clearer"></div></div>
<!-- End WP Socializer - Social Buttons - Output -->
</td><td>
<!-- Start WP Socializer Plugin - Retweet Button -->
<script type="text/javascript">
<!--
tweetmeme_url = "http://blogs.kraftkennedy.com/index.php/2011/06/08/citrix-provisioning-server-understanding-the-limitations-of-write-cache-in-target-device-ram/"; tweetmeme_style = "compact"; tweetmeme_source = "kraftkennedy"; 

--></script>
<script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script>
<!-- End WP Socializer Plugin - Retweet Button -->
</td></tr></table>]]></content:encoded>
			<wfw:commentRss>http://blogs.kraftkennedy.com/index.php/2011/06/08/citrix-provisioning-server-understanding-the-limitations-of-write-cache-in-target-device-ram/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Customizing and branding NetScaler nCore with integrated Citrix Web Interface</title>
		<link>http://blogs.kraftkennedy.com/index.php/2011/06/02/customizing-and-branding-netscaler-ncore-with-integrated-citrix-web-interface/</link>
		<comments>http://blogs.kraftkennedy.com/index.php/2011/06/02/customizing-and-branding-netscaler-ncore-with-integrated-citrix-web-interface/#comments</comments>
		<pubDate>Thu, 02 Jun 2011 16:00:00 +0000</pubDate>
		<dc:creator>Niraj Patel</dc:creator>
				<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Citrix]]></category>
		<category><![CDATA[Netscaler]]></category>
		<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenDesktop]]></category>

		<guid isPermaLink="false">http://blogs.kraftkennedy.com/?p=3045</guid>
		<description><![CDATA[Sometime last year, Citrix released support for an integrated Web Interface for the NetScaler nCore.  This was a welcome addition to the already versatile NetScaler appliance.  Most of my clients had leveraged a couple Windows Server 2008 R2  hosts to serve as the Citrix Web Interface and used a NetScaler to load balance them.  Integrating the [...]]]></description>
			<content:encoded><![CDATA[<p>Sometime last year, Citrix released support for an integrated Web Interface for the NetScaler nCore.  This was a welcome addition to the already versatile NetScaler appliance.  Most of my clients had leveraged a couple Windows Server 2008 R2  hosts to serve as the Citrix Web Interface and used a NetScaler to load balance them.  Integrating the Web Interface function within the NetScaler itself seemed like a no brainer as it reduces two Windows hosts (which need to be patched, managed, maintained, etc.) and unifies management on the NetScaler appliance itself.  The idea of replacing the Web Interface on a NetScaler sounds like a great idea at first blush, but the Web Interface is usually branded and customized to at least some degree that poses a challenge.  Specifically, most of my clients perform at least some level of customization to their Web Interface.  This might be something as simple as adding a logo or disclaimer, deploying the Online Plugin, or something more involved that includes adding multiple links and changing to a custom skin.  Citrix&#8217;s own documentation is lacking when it comes to making these customizations on the NetScaler and Web Interface in the form of disparate knowledge base articles.  In practice, most Citrix administrators (myself included) would likely feel more comfortable customizing a Web Server running under the IIS platform over one running on Apache Tomcat, so in this post I step through different &#8216;basic&#8217; customizations that I expect every organization would want to do if they had a NetScaler nCore running the integrated Web Interface.</p>
<p>(One last thing to note, to be fair, there are some Citrix KB articles that document some of the steps below that I used to help me compile some of this information, but it is not as organized and is disparate.)<span id="more-3045"></span></p>
<p><strong><span style="font-size: small;">Adding a corporate logo to the splash screen</span></strong></p>
<p>Even if organizations are not doing many advanced customizations, this is a basic task that I see most firms do. It can be done right from the Citrix Web Interface Management console if the Web Interface was running on a Windows Server/IIS box. Completing on the NetScaler is a bit more tedious. Without getting into too many details about where the authentication point is configured (that might only require only one of these logos to be customized) , the two logos in question are as follows:</p>
<p><strong>Citrix Access Gateway logo:</strong></p>
<blockquote><p><img style="padding-left: 0px; padding-right: 0px; padding-top: 0px; border-width: 0px;" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/clip_image001_thumb.png" border="0" alt="clip_image001" width="313" height="83" /></p></blockquote>
<p><strong>Citrix Web Interface logo:</strong></p>
<blockquote><p><a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/clip_image002.png"><img style="padding-left: 0px; padding-right: 0px; padding-top: 0px; border-width: 0px;" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/clip_image002_thumb.png" border="0" alt="clip_image002" width="244" height="58" /></a></p></blockquote>
<p>First thing you&#8217;ll want to do is get an SFTP client to login to the NetScaler appliance. I use <a href="http://winscp.net/eng/index.php">WinSCP</a>, but any client should do.  The other thing I would recommend procuring before starting is the correct size and file format of your corporate logos . (It is important these logos are the appropriate size or they will get squashed or cut up on the page.) For the &#8216;Citrix Access Gateway&#8217; splash logo, that would be going with a 265&#215;62 pixel GIF file. Name this file &#8220;<span style="color: #9b00d3;"><strong>ctxHeader01.gif</strong></span>&#8220;.  For the &#8216;Web Interface&#8217; logo, that would be a 59&#215;25 pixel PNG file. Name this file &#8220;<span style="color: #9b00d3;"><strong>CitrixLogoHeader.png</strong></span>”.  Once you have procured these custom corporate logos, they need to be replaced on the NetScaler appliance itself with the default images.  Once connected to the appliance with an SFTP client, replace the default logos with the newly created ones in the following locations:</p>
<ol>
<li>
<div><strong>Citrix Access Gateway logo:</strong> <span style="color: #9b00d3;"><strong>&lt;root&gt;/netscaler/ns_gui/vpn/images</strong></span></div>
</li>
<li>
<div><strong>Web Interface logo:</strong> <span style="color: #9b00d3;"><strong>&lt;root&gt;/var/wi/tomcat/webapps/Citrix/XenApp/media*</strong></span></div>
</li>
</ol>
<p>*Note: This location would be the name of whatever the Web Interface site was named on the NetScaler.  In my example, it was “XenApp”.</p>
<p>Once the files have been replaced, the NetScaler splash page and the Web Interface should be reflected immediately with the updated logos.  The one caveat here is that these logos will be replaced back to default every time the appliance is rebooted.  Not to worry though, there are some basic steps to follow to make sure they are copied back the appropriate location each time, so that they are updated after an appliance reboot.</p>
<p>Follow the basic steps below to complete this:</p>
<ol>
<li>Create &#8220;<strong><span style="color: #9b00d3;">c</span><span style="color: #9b00d3;">ustomizations</span></strong>&#8221; folder in the following location:  <span style="color: #9b00d3;"><strong>&lt;root&gt;/var/customizations</strong><span style="color: #000000;">.</span></span></li>
<li>Copy the custom &#8220;<span style="color: #9b00d3;"><strong>ctxHeader01.gif</strong></span>&#8221; and &#8220;<span style="color: #9b00d3;"><strong>CitrixLogoHeader.png</strong></span>&#8221; files to this newly created folder.</li>
<li>Browse to <span style="color: #9b00d3;"><strong>&lt;root&gt;\flash\nsconfig</strong></span> and insert the following lines to the bottom of the <span style="color: #9b00d3;"><strong>rc.netscaler</strong></span> file and hit save.</li>
</ol>
<blockquote><p><strong><em><span style="color: #0000ff;">cp /var/customizations/ctxHeader01.gif /netscaler/ns_gui/vpn/images/ctxHeader01.gif<br />
cp /netscaler/ns_gui/vpn/images/ctxHeader01.gif /var/customizations/<br />
cp /var/customizations/CitrixLogoHeader.png /var/wi/webapps/Citrix/XenApp/media/CitrixLogoHeader.png*<br />
cp /var/wi/webapps/Citrix/XenApp/media/CitrixLogoHeader.png /var/customizations/*</span></em></strong></p></blockquote>
<p>*Note: This location would be the name of whatever the Web Interface site was called on the Netscaler</p>
<p><strong><span style="font-size: small;">Adding a disclaimer to the NetScaler splash page</span></strong></p>
<p>Similar to adding a corporate logo, most organizations opt to add some type of disclaimer to the Citrix Web Interface site for legal reasons.  The process to complete this is significantly more tedious when doing this on a NetScaler than doing this on a Citrix Web Interface/Citrix Secure Gateway setup that leverages Windows IIS.   Follow the steps below to add a disclaimer to the NetScaler:</p>
<ol>
<li>Edit the index.html in the location: <span style="color: #9b00d3;"><strong>&lt;root&gt;/netscaler/ns_gui/vpn/index.html</strong><span style="color: #000000;">.</span></span></li>
<li>Underneath line 116 in <span style="color: #9b00d3;"><strong>index.html</strong></span>, input the <span style="color: #ff0000;"><strong>following text</strong></span> with the organizations custom disclaimer and save the file.</li>
<p><em><span style="color: #0000ff;"><strong>&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td align=&#8221;right&#8221;&gt;&lt;span style=&#8221;display:none&#8221;&gt;&lt;img src=&#8221;/vpn/images/LoginButtonRolloverGlow.gif&#8221;/&gt;&lt;/span&gt;&lt;input type=&#8221;submit&#8221; id=&#8221;Log_On&#8221; value=&#8221;" class=&#8221;CTX_CaxtonButton&#8221; onclick=&#8221;ns_check();&#8221; onmouseover=&#8221;this.className=&#8217;CTX_CaxtonButton_Hover&#8217;;&#8221; onmouseout=&#8221;this.className=&#8217;CTX_CaxtonButton&#8217;;&#8221;/&gt;&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;/table&gt;<br />
&lt;/div&gt;<br />
&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;/table&gt;<br />
<span style="color: #ff0000;">&lt;!&#8211; Disclaimer customization &#8211;&gt;<br />
This is a private computer system. It is for authorized use only. Users, whether authorized or unauthorized, acknowledge that there is no right or expectation of privacy with respect to any communication, information, or file sent, received or stored through this computer, e-mail, voicemail or other electronic systems.<br />
&lt;!&#8211; End of Disclaimer customization&#8211;&gt;</span><br />
&lt;/FORM&gt;<br />
&lt;script language=&#8221;javascript&#8221; type=&#8221;text/javascript&#8221;&gt;</strong></span></em></p>
<li>The disclaimer should apply immediately once the <span style="color: #9b00d3;"><strong>index.html</strong></span> is saved.</li>
<li>Again, like the corporate logos in the previous step, this setting will reset if the NetScaler appliance is rebooted.  In the &#8220;<strong><span style="color: #9b00d3;">c</span><span style="color: #9b00d3;">ustomizations</span></strong>&#8221; (created in the previous step) folder copy the newly edited <strong><span style="color: #9b00d3;">index.html</span></strong></li>
<li>Browse to <span style="color: #9b00d3;"><strong>&lt;root&gt;\flash\nsconfig</strong></span> and insert the following lines to the bottom of the <strong><span style="color: #9b00d3;">rc.netscaler</span></strong> file and hit save.</li>
</ol>
<blockquote><p><strong><em><span style="color: #0000ff;">cp /var/customizations/index.html /netscaler/ns_gui/vpn/index.html<br />
cp /netscaler/ns_gui/vpn/index.html /var/customizations/</span></em></strong></p>
<p><a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image35.png"><img style="padding-left: 0px; padding-right: 0px; padding-top: 0px; border: 0px;" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/image_thumb35.png" border="0" alt="image" width="326" height="182" /></a></p></blockquote>
<p><strong><span style="font-size: small;">Deploying the Citrix Online Plugin</span></strong></p>
<p>One of the most basic customizations that I recommend organizations do is deploy the Citrix Online Plugin from the organizations web interface site instead of the default redirection to the Citrix download page if a client is not detected.  Deploying the client from the Web Interface simplifies the experience for users who are connecting with non firm workstations and ensures the same version that was tested and deployed on firm workstations is deployed to non workstations that require the client.  Again, completing this task from the Windows IIS Web Interface is a fairly straightforward, however the task is not as a straight forward on the Web Interface running on the Netscaler.  Actually, I found the task to be particularly challenging because I could not find good documentation, but below are the steps that worked for me:</p>
<ol>
<li>Create ‘<span style="color: #9b00d3;"><strong>Clients’</strong></span> folder structure in the following location and copy the Citrix Online Plugin executable in the following path: <span style="color: #9b00d3;"><strong>&lt;root&gt;/var/wi/tomcat/webapps/Citrix/XenApp/Clients/Windows/On-line Plugin/CitrixOnlinePluginWeb.exe*</strong></span></li>
<li>Update the WebInterface.conf file (see below for more details) and uncomment “<span style="color: #0000ff;"><strong>UpgradeClientsAtLogin=On</strong></span><span style="color: #000000;">”</span></li>
<li>Save configuration and reboot NetScaler.</li>
</ol>
<p>*Note: The folders here are case sensitive.</p>
<p><strong><span style="font-size: small;">General Management of the Web Interface running on NetScaler</span></strong></p>
<p>Most administrators who managed the Citrix Web Interface are accustomed to leveraging the management console that is bundled with the install.  Not only does it allow for basic management of the Web Interface site, over the years Citrix has added more and more functionality within the GUI console to handle most customizations and advanced options that previously required folks to manually update the <span style="color: #9b00d3;"><strong>Webinterface.conf</strong></span> file.  Unfortunately, Citrix takes a few steps back with the integrated Web Interface on the NetScaler.  There is absolutely no management console for it and administrators are forced to make update the <span style="color: #9b00d3;"><strong>Webinterface.conf</strong></span> file to configure any custom settings they might need to make.  This<a href="http://support.citrix.com/proddocs/topic/web-interface-impington/wi-webinterface-conf-parameters-gransden.html"> link to Citrix&#8217;s eDocs</a> library details out all the parameters that can be configured in the <span style="color: #9b00d3;"><strong>Webinterface.conf</strong></span> file for all the different settings the Web Interface accepts for any additional customization/management that needs to be done.</p>
<blockquote><p><a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/clip_image004.png"><img style="padding-left: 0px; padding-right: 0px; padding-top: 0px; border-width: 0px;" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/06/clip_image004_thumb.png" border="0" alt="clip_image004" width="347" height="131" /></a></p></blockquote>
<table border=0><tr><td width="215">
<!-- Start WP Socializer - Social Buttons - Output -->
<div class="wp-socializer 16px">
<ul class="wp-socializer-none columns-no">
 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 
</ul> 
<div class="wp-socializer-clearer"></div></div>
<!-- End WP Socializer - Social Buttons - Output -->
</td><td>
<!-- Start WP Socializer Plugin - Retweet Button -->
<script type="text/javascript">
<!--
tweetmeme_url = "http://blogs.kraftkennedy.com/index.php/2011/06/02/customizing-and-branding-netscaler-ncore-with-integrated-citrix-web-interface/"; tweetmeme_style = "compact"; tweetmeme_source = "kraftkennedy"; 

--></script>
<script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script>
<!-- End WP Socializer Plugin - Retweet Button -->
</td></tr></table>]]></content:encoded>
			<wfw:commentRss>http://blogs.kraftkennedy.com/index.php/2011/06/02/customizing-and-branding-netscaler-ncore-with-integrated-citrix-web-interface/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Why is VDI as a desktop replacement a non starter for so many law firms?</title>
		<link>http://blogs.kraftkennedy.com/index.php/2011/05/16/why-is-vdi-as-a-desktop-replacement-a-non-starter-for-so-many-law-firms/</link>
		<comments>http://blogs.kraftkennedy.com/index.php/2011/05/16/why-is-vdi-as-a-desktop-replacement-a-non-starter-for-so-many-law-firms/#comments</comments>
		<pubDate>Mon, 16 May 2011 14:39:53 +0000</pubDate>
		<dc:creator>Niraj Patel</dc:creator>
				<category><![CDATA[Desktop Deployment]]></category>
		<category><![CDATA[Citrix]]></category>
		<category><![CDATA[Thin Client]]></category>
		<category><![CDATA[VDI]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenDesktop]]></category>

		<guid isPermaLink="false">http://blogs.kraftkennedy.com/?p=2414</guid>
		<description><![CDATA[Why is VDI as a desktop replacement a non starter for so many law firms?  I attempt to answer this question pointedly in this post based on my experience over the last 18 months when talking to different law firms about VDI.  However, let me take a step back and frame the question.  While I don&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>Why is VDI as a desktop replacement a non starter for so many law firms?  I attempt to answer this question pointedly in this post based on my experience over the last 18 months when talking to different law firms about VDI.  However, let me take a step back and frame the question.  While I don&#8217;t have actual statistics, I would make the statement that most law firms are still on Windows XP and have thought about or are planning a Windows 7 desktop in the near future.   Invariably, this will result in the firm entertaining a VDI (for desktop replacement) solution for their planned Windows 7 desktop.  The conversation usually doesn&#8217;t get far after that….  Why is that?  This post is a look at why VDI environments are non starters in law firms or specifically, why they have not seen the traction that the industry (Citrix, VMware, Gartner) would have you to believe.  I&#8217;ll preface once again that VDI might be seeing traction in other industries, however I&#8217;ll focus on the <strong>five</strong> reasons why I feel VDI is not gaining traction in the legal space.</p>
<p>(As an aside, this post is only talking to VDI and in particular as a desktop replacement and not other use cases that may include, but are not limited to training rooms, war rooms, remote access, etc.)<span id="more-2414"></span></p>
<p><strong>Licensing is confusing and expensive</strong></p>
<p>The finger is first pointed at Microsoft and their ever changing (confusing) licensing scheme for VDI.   A quick browse of the <a href="http://download.microsoft.com/download/7/8/4/78480C7D-DC7E-492E-8567-F5DD5644774D/VDA_Brochure.pdf">VDI licensing guide</a> details <em><strong>seven </strong></em>scenarios and the licensing implications for using VDI with respect to each.  Does it really need to be this confusing?  Can&#8217;t Microsoft license VDI in the same way they license Terminal Servers to simplify this?  The other hindrance here is the essential requirement that an organization purchase Software Assurance for desktops or purchase a VDA for each user/device connecting to a VDI desktop.  This is a cost of about $100 per user/desktop that some firms have not been used to shelling out.  Most of the firms that I have worked with (specifically the SMBs) don&#8217;t purchase Software Assurance for Windows desktops as they purchase Windows OEM licenses from Dell, HP, etc.</p>
<p>Let&#8217;s now point the finger at Citrix.  I have a law firm client at the moment that currently leverages XenApp as a desktop replacement and owns a XenApp license for every user in the firm.  &#8220;Upgrading&#8221; these licenses to XenDesktop using Citrix&#8217;s <a href="http://citrixinformation.com/tradeupcalculator/">trade up calculator</a> results in the firm paying $20,000 (retail) to convert their existing (140) concurrent use XenApp licenses to named user/device XenDesktop licenses.  Should they want to continue to leverage CCU licenses for XenDesktop, they would have to shell out almost $50,000&#8230;.  &#8216;Yes&#8217;, they are technically now getting XenDesktop and XenApp as part of the upgrade, but I would contend that if Citrix allowed a 1:1 conversion from XenApp CCU licenses to XenDesktop  CCU licenses (and did not give XenApp for &#8220;free&#8221; as part of it), it would be more palpable for customers (but clearly less profitable for Citrix) to make the conversion.</p>
<p><strong>Citrix and VMware&#8217;s Offline VDI solutions are not there yet</strong></p>
<p>Let me start by acknowledging there are less and less scenarios in which a user is &#8220;offline&#8221; the days.  However there are still scenarios in which users are offline or have a degraded connection that require a <span style="text-decoration: underline;"><strong>functional </strong></span>offline VDI solution.  Specifically, airplanes, spotty WiFi in hotels (my personal pet peeve) and public spots along with low bandwidth/high latency air cards among other scenarios.  VMware&#8217;s botched approach with its Type II hypervisor with checking in/out VMs would not meet expectations of law firm users.  Citrix&#8217;s approach with its Type I hypervisor, XenClient, is promising but is still a 1.0 product one year later.  The HCL for XenClient is also limited to a subset of machines and the server piece (Synchronizer) of XenClient is also only available for Citrix XenServer, which also makes it a non starter.  The bottom line is that the current offerings by Citrix and VMware are just not good enough from a usability/manageability perspective for law firms to accept it.</p>
<p><strong>Organization politics and delegation of responsibilities</strong></p>
<p>This section is very specific to the legal space as most firms are structured such that there are &#8220;Infrastructure&#8221; folks and &#8220;Applications&#8221; folks that work in individual silos.  The Infrastructure folks are primarily responsible for networking, security, messaging, virtualization, shared storage, sometimes Citrix XenApp, etc. while the &#8220;Applications&#8221; folks are responsible for Windows desktops, user profile management, software distribution, application integration and the overall user experience.  My experience has been that most Applications folks don&#8217;t want to touch the Infrastructure, and Infrastructure folks definitely don&#8217;t want to deal with anything user facing.  If a firm were to embark on a VDI initiative, it would require tight collaboration between the two different silos as a successful VDI implementation requires careful infrastructure planning as well as application integration for good user experience.  Of course, fighting organizational politics and contention of responsibilities is left up to a CIO, but I see this is another reason why VDI goes nowhere in law firms.</p>
<p><strong>User Experience is not as good as local desktops</strong></p>
<p>Isn&#8217;t this what a desktop is all about?  If a firm invests hundreds of thousands of dollars in a new VDI desktop, and the user perception is that it doesn&#8217;t perform as well as the traditional desktop it was replacing, is the project a success?  PCoIP and ICA protocols have improved significantly along with some of the HDX and user experience improvement with the latest versions of XenDesktop and View, however designing a VDI desktop to perform as well as a typical local desktop (4 cores/4 GB RAM) with Windows 7 is still difficult to impossible.  Specifically when it comes to media (audio and video) and resource intensive applications.</p>
<p><strong>The local desktop is still required</strong></p>
<p>Ideally, a VDI environment would leverage a BYOPC or Thin Terminal model in which the local corporate desktop is obsolete and not required.  Users would have their own PC and Thin Terminals to access their &#8220;managed&#8221; corporate VDI desktop in which all their applications were available to them.  Unfortunately, its not that black and white at law firms.  To start, law firms have hundreds of applications and making them all available through a VDI desktop is very challenging even with application virtualization solutions.  Additionally, the local desktop in some way provides an &#8220;insurance policy&#8221; for firms to allow for local applications (outside the VDI desktop) in some facet.  This could be business applications such as a browser toolbar required for collaboration, or  Adobe PDF reader to view large PDF files a user brings in on a DVD.  These local applications could also be non-business applications such as DVD video software and iTunes.  The point is that law firms have knowledge workers who have an array of IT demands with respect to their applications and user experience and the local desktop would not get replaced<br />
even with VDI.  I am not saying it is impossible, it would just be very hard.</p>
<p>The fact that the local desktop is still required creates multiple management points for IT as they have to not only manage a VDI desktop, they have to continue to maintain, service, patch, etc. a local Windows desktop.  Citrix and VMware would contend that the capital costs of VDI is not where the savings are, but the operational costs are where all the savings come from.  I am sure there are some fancy marketing charts or Gartner charts that attempt to prove this, but let&#8217;s take them at their word.  The challenge here is that most law firm&#8217;s would not be replacing their local desktops (with Thin Terminals) should they move forward with a VDI solution.</p>
<p><strong>Honorable Mention</strong></p>
<p>Capital costs for shared storage and virtualization infrastructure, Thin environments with XenApp/Terminal Servers can be built for a fraction of the cost of VDI.</p>
<p><strong>Conclusions</strong></p>
<p>I am going to end this post by saying the success to any VDI environment (or any technology project for that matter) is knowing your use case and business requirements.  This has been drilled into me by my colleague <a href="http://blogs.kraftkennedy.com/index.php/author/liebowitz/">Matt Liebowitz</a> who probably starts every VDI conversation with the phrase &#8220;know your use case&#8221;.  Too many times technologists lose sight of the business requirements and use cases for a particular technology before attempting to fit a square peg in a round hole.  VDI offers obvious benefits in some areas over a traditional desktop, but it isn&#8217;t a one size fits all model.   The use case I focus on in this post (VDI as a desktop replacements) relay my thoughts on why most firms see VDI as an non starter because the challenges associated with implementing VDI outweighs the firm&#8217;s business requirements for doing it.  <strong>Is VDI a non starter for all law firms?  Absolutely not.</strong> There are some scenarios in which a firm&#8217;s business requirements and existing desktop circumstances make VDI an attractive and potentially more cost effective approach than a traditional desktop.</p>
<table border=0><tr><td width="215">
<!-- Start WP Socializer - Social Buttons - Output -->
<div class="wp-socializer 16px">
<ul class="wp-socializer-none columns-no">
 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 
</ul> 
<div class="wp-socializer-clearer"></div></div>
<!-- End WP Socializer - Social Buttons - Output -->
</td><td>
<!-- Start WP Socializer Plugin - Retweet Button -->
<script type="text/javascript">
<!--
tweetmeme_url = "http://blogs.kraftkennedy.com/index.php/2011/05/16/why-is-vdi-as-a-desktop-replacement-a-non-starter-for-so-many-law-firms/"; tweetmeme_style = "compact"; tweetmeme_source = "kraftkennedy"; 

--></script>
<script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script>
<!-- End WP Socializer Plugin - Retweet Button -->
</td></tr></table>]]></content:encoded>
			<wfw:commentRss>http://blogs.kraftkennedy.com/index.php/2011/05/16/why-is-vdi-as-a-desktop-replacement-a-non-starter-for-so-many-law-firms/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Outlook 2010 and XenApp 6: Cached Mode?</title>
		<link>http://blogs.kraftkennedy.com/index.php/2011/05/02/outlook-2010-and-xenapp-6-cached-mode/</link>
		<comments>http://blogs.kraftkennedy.com/index.php/2011/05/02/outlook-2010-and-xenapp-6-cached-mode/#comments</comments>
		<pubDate>Tue, 03 May 2011 02:05:13 +0000</pubDate>
		<dc:creator>Brian Podolsky</dc:creator>
				<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Cached Mode]]></category>
		<category><![CDATA[Citrix]]></category>
		<category><![CDATA[Outlook]]></category>
		<category><![CDATA[Outlook 2010]]></category>
		<category><![CDATA[XenApp]]></category>

		<guid isPermaLink="false">http://blogs.kraftkennedy.com/?p=2352</guid>
		<description><![CDATA[For the longest time (read: forever), we were led to believe that Outlook simply does not run in Cached Mode on Windows Terminal Servers. But that has actually changed with Outlook 2010 and Server 2008 R2. This does not mean that you should deploy Outlook 2010 in Cached Moe on your Server 2008 R2 XenApp servers, but [...]]]></description>
			<content:encoded><![CDATA[<p>For the longest time (read: forever), we were led to believe that Outlook simply does not run in Cached Mode on Windows Terminal Servers. But that has actually changed with Outlook 2010 and Server 2008 R2. This does not mean that you <strong>should</strong> deploy Outlook 2010 in Cached Moe on your Server 2008 R2 XenApp servers, but it means that you <strong>could</strong>.  From a <a href="http://technet.microsoft.com/en-us/library/ee620554.aspx" target="_blank">Microsoft Technet</a> article:</p>
<blockquote><p>To achieve optimal results when you use Outlook with Remote Desktop Services, pay attention to how you customize your Outlook configuration. For example, in Outlook 2010 you can configure Cached Exchange Mode with Remote Desktop Services.</p></blockquote>
<p>The article is careful to mention that you&#8217;d need to have enough disk space on the server to handle each user&#8217;s OST file. Maybe this makes sense for small environments with only one Terminal Server and tidy mailboxes. I can count on less than one hand how many firms fall into that category.</p>
<p>Based on our experience, we recommend disabling Cached Mode on any XenApp server we put in place. At the same time, we want to allow our users to run in Cached Mode on their Windows 7 desktops. How do we achieve this?  Through the use of Loopback Policy, we can ensure that when users log in to a XenApp server, Cached Mode will be disabled.  This policy will override the settings within a MAPI profile that is roamed or flexed to the XenApp server. When the user logs back into their Windows 7 desktop, they are happily working in Cached Mode again.</p>
<p>This is just another example of how technology can change without much fanfare.  For many years, we never hard to worry about this situation. The mere fact that the user was logging in to a Terminal Server with Outlook 2003 meant that Cached Mode would be disabled no matter what. But with Outlook 2010 and Server 2008 R2/XenApp, a successful implementation relies on a successful configuration of the environment. You can download the Microsoft White Paper on the planning considerations of Outlook 2010 on Server 2008 R2 <a href="http://go.microsoft.com/fwlink/?LinkId=200170" target="_blank">here</a>.</p>
<table border=0><tr><td width="215">
<!-- Start WP Socializer - Social Buttons - Output -->
<div class="wp-socializer 16px">
<ul class="wp-socializer-none columns-no">
 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 
</ul> 
<div class="wp-socializer-clearer"></div></div>
<!-- End WP Socializer - Social Buttons - Output -->
</td><td>
<!-- Start WP Socializer Plugin - Retweet Button -->
<script type="text/javascript">
<!--
tweetmeme_url = "http://blogs.kraftkennedy.com/index.php/2011/05/02/outlook-2010-and-xenapp-6-cached-mode/"; tweetmeme_style = "compact"; tweetmeme_source = "kraftkennedy"; 

--></script>
<script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script>
<!-- End WP Socializer Plugin - Retweet Button -->
</td></tr></table>]]></content:encoded>
			<wfw:commentRss>http://blogs.kraftkennedy.com/index.php/2011/05/02/outlook-2010-and-xenapp-6-cached-mode/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Citrix Receiver for iPad &#8211; Subject Alternative Names Not Supported</title>
		<link>http://blogs.kraftkennedy.com/index.php/2011/04/25/citrix-receiver-for-ipad-subject-alternative-names-not-supported/</link>
		<comments>http://blogs.kraftkennedy.com/index.php/2011/04/25/citrix-receiver-for-ipad-subject-alternative-names-not-supported/#comments</comments>
		<pubDate>Mon, 25 Apr 2011 19:46:12 +0000</pubDate>
		<dc:creator>Jeff Silverman</dc:creator>
				<category><![CDATA[Apple Computing]]></category>
		<category><![CDATA[Citrix]]></category>
		<category><![CDATA[iPad Receiver]]></category>
		<category><![CDATA[SAN certificate]]></category>
		<category><![CDATA[SSL certificate]]></category>
		<category><![CDATA[subject alternative name]]></category>
		<category><![CDATA[UC certificate]]></category>
		<category><![CDATA[Unified Communications]]></category>

		<guid isPermaLink="false">http://blogs.kraftkennedy.com/?p=2314</guid>
		<description><![CDATA[I recently encountered an issue on an iPad where the Citrix Receiver was able to connect to a XenApp farm and enumerate applications but was not able to launch them. Attempting to launch resulted in the black screen and spinning wheel, which eventually timed out and returned to the application list. The environment consisted of [...]]]></description>
			<content:encoded><![CDATA[<p>I recently encountered an issue on an iPad where the Citrix Receiver was able to connect to a XenApp farm and enumerate applications but was not able to launch them. Attempting to launch resulted in the black screen and spinning wheel, which eventually timed out and returned to the application list. The environment consisted of Citrix XenApp 5 for Windows 2003, Citrix Receiver for iPad 4.2.3, Citrix Web Interface 5.4, Citrix Secure Gateway 3.2.1.</p>
<p>I contacted Citrix support and learned that the Receiver does not currently support Subject Alternative Name (SAN) certificates (a.k.a. Unified Communications or UC certificates) unless the principal name (the “Issued to” name) is the first entry in the subject alternative name list.  Since the first entry in the subject alternative name list IS the principal name, this is another way of saying that subject alternative names are not currently supported.<span id="more-2314"></span></p>
<p>In the example below, <strong>example.domain.com</strong> is the principal name.</p>
<p><a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/04/image4.png"><img style="border: 0px currentColor; padding-top: 0px; padding-right: 0px; padding-left: 0px;" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/04/image_thumb4.png" border="0" alt="image" width="329" height="430" /></a></p>
<p>It’s also the first entry in the subject alternative name list, so if I want to use it when connecting with the Receiver I’ll be in good shape.</p>
<p><a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/04/image5.png"><img style="border: 0px currentColor; padding-top: 0px; padding-right: 0px; padding-left: 0px;" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/04/image_thumb5.png" border="0" alt="image" width="328" height="429" /></a></p>
<p>However, if I connect to another entry that’s lower in the subject alternative name list, <strong>mobile.domain.com</strong> for example, it will fail.</p>
<p><a href="http://blogs.kraftkennedy.com/wp-content/uploads/2011/04/image6.png"><img style="border: 0px currentColor; padding-top: 0px; padding-right: 0px; padding-left: 0px;" src="http://blogs.kraftkennedy.com/wp-content/uploads/2011/04/image_thumb6.png" border="0" alt="image" width="326" height="426" /></a></p>
<p>Hopefully Citrix will resolve this issue in a future release. In the meantime I hope you find this information helpful.</p>
<table border=0><tr><td width="215">
<!-- Start WP Socializer - Social Buttons - Output -->
<div class="wp-socializer 16px">
<ul class="wp-socializer-none columns-no">
 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 
</ul> 
<div class="wp-socializer-clearer"></div></div>
<!-- End WP Socializer - Social Buttons - Output -->
</td><td>
<!-- Start WP Socializer Plugin - Retweet Button -->
<script type="text/javascript">
<!--
tweetmeme_url = "http://blogs.kraftkennedy.com/index.php/2011/04/25/citrix-receiver-for-ipad-subject-alternative-names-not-supported/"; tweetmeme_style = "compact"; tweetmeme_source = "kraftkennedy"; 

--></script>
<script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script>
<!-- End WP Socializer Plugin - Retweet Button -->
</td></tr></table>]]></content:encoded>
			<wfw:commentRss>http://blogs.kraftkennedy.com/index.php/2011/04/25/citrix-receiver-for-ipad-subject-alternative-names-not-supported/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Quick thoughts on upgrading to Netscaler 9.3 nCore</title>
		<link>http://blogs.kraftkennedy.com/index.php/2011/04/25/quick-thoughts-on-upgrading-to-netscaler-9-3-ncore/</link>
		<comments>http://blogs.kraftkennedy.com/index.php/2011/04/25/quick-thoughts-on-upgrading-to-netscaler-9-3-ncore/#comments</comments>
		<pubDate>Mon, 25 Apr 2011 13:47:07 +0000</pubDate>
		<dc:creator>Niraj Patel</dc:creator>
				<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Citrix]]></category>
		<category><![CDATA[Netscaler]]></category>
		<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenDesktop]]></category>

		<guid isPermaLink="false">http://blogs.kraftkennedy.com/?p=2280</guid>
		<description><![CDATA[Another month, another new build of the Netscaler.  It seems that every month Citrix has a new incremental build of the Netscaler.  A few weeks ago, version 9.3 of the Netscaler (and along with the VPX) was released.  While these incremental builds are usually not blog worthy, 9.3  introduces some features, changes that are important [...]]]></description>
			<content:encoded><![CDATA[<p>Another month, another new build of the Netscaler.  It seems that every month Citrix has a new incremental build of the Netscaler.  A few weeks ago, version 9.3 of the Netscaler (and along with the VPX) was released.  While these incremental builds are usually not blog worthy, 9.3  introduces some features, changes that are important to note as well as my thoughts on upgrading from a previous version.</p>
<p><strong>Upgrading to Netscaler 9.3</strong></p>
<p>It was a no brainer upgrading my 9.2 VPX 1000 Netscalers (running the “classic” code) to 9.3 by downloading the update from Citrix and following the GUI wizard.  The process took less than 20 minutes and went without error or any downtime since my Netscalers are setup in an HA pair.  It was pretty straightforward to perform a failover, upgrade, and repeat.</p>
<p>What is important to note is that after version 9.3 there will be no new releases of the Netscaler “classic” code in favor of the “nCore” code.  To provide some background, with the release of Netscaler 9.2 last year, Citrix made their nCore code available to the VPX appliances as it was previously only available for the physical MPX boxes.  At the same time, the existing code set was dubbed “classic” and each new revision of 9.2x was released in both classic and nCore flavors.  The change also bumped up the minimum requirements of the Netscaler VPX from 1 vCPU and 1 GB of RAM (running on classic) to a heftier 2 vCPU and 4 GB of RAM if you are running nCore.  For environments leveraging some of the advanced content caching and acceleration features, nCore might make sense, however for ones using the Netscaler for ICA/SSL proxy and application level load balancing, there is limited value in the nCore code.  (I don’t care to go into the specific improvements to the code, architecture that nCore brings over classic, but feel free to read <a href="http://www.citrix.com/site/resources/dynamic/salesDocs/NetScaler_nCore_WP_153632.pdf">this Citrix Whitepaper</a> if you are interested.)  The notable here is that after version 9.3, Citrix will no longer be releasing updates to the “classic” version of the code, thus forcing you to run nCore going forward.<span id="more-2280"></span></p>
<p><strong>Integrated Citrix Web Interface on Netscaler nCore</strong></p>
<p>While technically, this has been available since 9.2 version of the Netscaler running nCore, I figured I would mention this feature in this post.  The Citrix Web Interface which is required for any XenApp or XenDesktop solution can be integrated within the Netscaler.  (<a href="http://support.citrix.com/article/CTX127544">This Citrix Technote</a> shows you how.)  The ability to spin up Citrix Web Interface sites on the Netscaler appliance is an attractive solution for a number of reasons.  The first is a reduction in at least two Windows 2008 R2 servers that are typically dedicated for the Citrix Web Interface.  While this might not mean much from a licensing perspective when running Windows 2008 R2 Datacenter in a virtualized environment, an argument can be made that the all-inclusive (within the Netscaler) is simpler to manage than Windows 2008 R2 boxes that require patches and anti-virus among other things.  I usually allocate 2 GB of RAM and 1 vCPU for a Windows 2008 R2 server running Citrix Web Interface, so reducing a couple of these servers also provides a nominal reduction of resources to the virtualization solution.</p>
<p>One thing to note about integrating the Web Interface on the Netscaler are the implications about customizing it.  Most organizations brand their Citrix Web Interface to some degree.  This might mean something simple as adding a banner, logo, disclaimer, or something more complex that includes custom fields, embedded links, etc.  Completing these customizations on a Windows/IIS server is significantly easier for Systems Administrators than completing them on the embedded web server of the Netscaler.  While Citrix does provide a GUI driven interface to customize the logo and banner, advanced customizations of the integrated Web Interface can be challenging.</p>
<p>Over the next week, I’ll be upgrading my environment with integrated Web Interface on my 9.3 Netscalers to replace my existing Windows 2008 R2 based Web Interface servers.  I plan to follow up this post with my thoughts, findings and successes/failures in customizing it, so stay tuned.</p>
<table border=0><tr><td width="215">
<!-- Start WP Socializer - Social Buttons - Output -->
<div class="wp-socializer 16px">
<ul class="wp-socializer-none columns-no">
 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 

 <li><a href="" title="" target="_blank"><img src="http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-16px.gif" alt="" style="width:16px; height:16px; background: transparent url(http://blogs.kraftkennedy.com/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-16px.png) no-repeat; background-position:0px -px; border:0;"/></a></li> 
</ul> 
<div class="wp-socializer-clearer"></div></div>
<!-- End WP Socializer - Social Buttons - Output -->
</td><td>
<!-- Start WP Socializer Plugin - Retweet Button -->
<script type="text/javascript">
<!--
tweetmeme_url = "http://blogs.kraftkennedy.com/index.php/2011/04/25/quick-thoughts-on-upgrading-to-netscaler-9-3-ncore/"; tweetmeme_style = "compact"; tweetmeme_source = "kraftkennedy"; 

--></script>
<script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script>
<!-- End WP Socializer Plugin - Retweet Button -->
</td></tr></table>]]></content:encoded>
			<wfw:commentRss>http://blogs.kraftkennedy.com/index.php/2011/04/25/quick-thoughts-on-upgrading-to-netscaler-9-3-ncore/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

