<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.brianmadden.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Guest Bloggers</title><link>http://www.brianmadden.com/blogs/guestbloggers/default.aspx</link><description>Articles from other community members</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 (Build: 30929.2835)</generator><item><title>Perspectives on VDI from a total n00b</title><link>http://www.brianmadden.com/blogs/guestbloggers/archive/2011/09/09/perspectives-on-vdi-from-a-total-n00b.aspx</link><pubDate>Fri, 09 Sep 2011 13:00:00 GMT</pubDate><guid isPermaLink="false">a59ee4a9-9560-4436-b47c-b649e4ba6aaa:163771</guid><dc:creator>Justin Meisinger</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.brianmadden.com/blogs/guestbloggers/rsscomments.aspx?PostID=163771</wfw:commentRss><comments>http://www.brianmadden.com/blogs/guestbloggers/archive/2011/09/09/perspectives-on-vdi-from-a-total-n00b.aspx#comments</comments><description>&lt;p&gt;I&amp;rsquo;ve been with TechTarget &amp;amp; BrianMadden.com&amp;nbsp;for exactly one year now. In my initial interviews with Brian and Gabe, they asked whether I knew anything about virtual computing. I answered "yes," which wasn&amp;rsquo;t a lie, but now I realize it wasn&amp;rsquo;t exactly true either.&lt;/p&gt;
&lt;p class="p1"&gt;Up until that point, my experience with virtualization was limited to using the Windows RDC client on my Macbook so I wouldn&amp;rsquo;t have to get up to add torrents to my desktop computer&amp;rsquo;s download queue.&amp;nbsp;(Yes, I&amp;rsquo;m that lazy.)&amp;nbsp;&amp;nbsp;I had also dabbled with an, umm.... &amp;ldquo;evaluation&amp;rdquo; copy of Parallels Desktop for Mac thanks to the aforementioned torrents. (Although it never worked right for me and I gave up on it pretty fast.)&lt;/p&gt;
&lt;p class="p1"&gt;But what a difference a year makes! In the past twelve months&amp;nbsp;I&amp;rsquo;ve attended two VMworlds, Citrix Synergy, two &lt;a href="https://www.brianmadden.com:443/blogs/videos/archive/2011/07/22/brian-and-gabe-walk-the-floor-at-briforum-chicago-2011.aspx"&gt;BriForums&lt;/a&gt;, read countless Brian and Gabe articles, and shot videos with knowledgeable people such as &lt;a href="https://www.brianmadden.com:443/blogs/tv/archive/2011/01/13/brian-madden-tv-32-ces-coverage-motorola-atrix-and-a-conversation-with-jim-moyle.aspx"&gt;Atlantis Computing&amp;rsquo;s Jim Moyle&lt;/a&gt;. I now know that desktop virtualization isn&amp;rsquo;t just a single protocol or product, and may be comprised of RDP, PCoIP, SPICE, RemoteFX, EOP, HDX... the list goes on and on, seemingly growing with every vendor show we hit.&lt;/p&gt;
&lt;p class="p1"&gt;And this all got me thinking: How does &lt;em&gt;anyone&lt;/em&gt; jump into this and expect to understand it? I mean there are dozens, if not hundreds of vendors with multiple solutions--some proprietary, some not. Some vendors like &lt;a href="https://www.brianmadden.com:443/blogs/morevideos/archive/2011/07/21/ncomputing-demo-lab-video-from-briforum-2011-chicago.aspx"&gt;Ncomputing&lt;/a&gt;&amp;nbsp;sell an end-to-end solution controlling the hardware, software, and everything in-between while others try to slip into your existing setup on nothing more than a flash drive and a prayer.&lt;/p&gt;
&lt;p class="p1"&gt;And of course there's the fact that the majority of the discussions on this website center around &lt;a href="https://www.brianmadden.com:443/blogs/brianmadden/archive/2011/09/08/the-myth-of-desktop-transformation-will-we-ever-get-there-or-will-the-big-3-lead-us-astray.aspx"&gt;whether or not VDI is even for you&lt;/a&gt; and your business. And I'll tell you what: I&amp;rsquo;ve read every article published in over the past year and I still don&amp;rsquo;t have a clue. As an industry, &lt;a href="https://www.brianmadden.com:443/blogs/gabeknuth/archive/2011/06/29/defining-desktop-virtualization-how-are-we-still-having-this-conversation.aspx"&gt;VDI can&amp;rsquo;t even seem to be defined&lt;/a&gt;&amp;nbsp;with precision.&lt;/p&gt;
&lt;p class="p1"&gt;As Brian has written before, we don&amp;rsquo;t use VDI at TechTarget. It doesn&amp;rsquo;t suit our use cases at all. Especially mine... You ever try video editing a high definition video file over a WAN? Me neither, and it likely isn&amp;rsquo;t happening anytime soon even with all the &lt;a href="https://www.brianmadden.com:443/blogs/morevideos/archive/2011/05/27/citrix-synergy-2011-video-gabe-interviews-citrix-about-hdx-3d.aspx"&gt;fancy HDX3DRDPCoIP&lt;/a&gt;&amp;nbsp;(George Lucas, this is not the droid you&amp;rsquo;re looking for) blah-bity-blah coming out this year. Earlier this year, Brian tried setting up VDI for just himself, running a server out of his closet at home. It had a dedicated cable line out and he tried to access it from work on our DSL. Success was non-existent. And he KNOWS what he&amp;rsquo;s doing! What the hell am I expected to do?&lt;/p&gt;
&lt;p class="p1"&gt;We&amp;rsquo;re not the typical use case, though. Then again, is there a typical VDI use case? I guess one could say businesses with sensitive material and a penchant for letting their employees work remotely is the ideal case. Beyond a few government agencies, I honestly couldn&amp;rsquo;t think of too many examples that fit this paradigm. Price-points are dropping for virtualizing desktops in the office, I guess, but it still has a lot of the old gremlins. Janice over in Accounting still tends to lose her LOLcat wallpaper every time she &amp;lsquo;reboots&amp;rsquo; her VM. My takeaway from all this is that, no matter how seemingly mainstream this all is, it&amp;rsquo;s really still niche. Your IT guy might get all giddy but it's unlikely The Situation will be all over a bare-metal hypervisor anytime soon unless &lt;a href="https://www.brianmadden.com:443/blogs/morevideos/archive/2010/12/07/mokafive-3-0-overview-from-cto-john-whaley.aspx"&gt;MokaFive&lt;/a&gt;&amp;nbsp;starts handing out spray tans.&lt;/p&gt;
&lt;p class="p1"&gt;A friend of mine recently asked about my work and I threw out a few examples of companies we work with. She had actually heard of Citrix, and we talked a little about possibilities. In the end, we decided we still couldn&amp;rsquo;t stand trying to use Windows 7 on an iPad. It felt like trying to drive a remote control car with my hands tied behind my back in a snowstorm.&lt;/p&gt;
&lt;p class="p1"&gt;So, what&amp;rsquo;s my point to all this hating?&lt;/p&gt;
&lt;p class="p1"&gt;Put away the pitchfork, it&amp;rsquo;s actually the opposite. This stuff is really exciting. Think about it: you have your computer, that thing that was either tethered to your desk like a boat anchor or you carried around in a giant padded bag, for the past 20+ years all of a sudden accessible from ANYWHERE. If I drop my &lt;a href="https://www.brianmadden.com:443/blogs/gabeknuth/archive/2011/06/22/I-got-a-Chromebook-_2800_and-I-might-return-it_21002900_.-Here_2700_s-my-review_3A00_.aspx"&gt;Chromebook&lt;/a&gt;&amp;nbsp;down one of San Francisco&amp;rsquo;s gorgeous sewer drains or my iPad gets run over by a bus, it&amp;rsquo;s a bad day but I&amp;rsquo;m not left sobbing because my drunken college photos are gone forever. I just need a new endpoint.&lt;/p&gt;
&lt;p class="p1"&gt;What we&amp;rsquo;re seeing now is the tip of the iceberg, the Wright Brothers flyer of methodology. Steve Jobs likes to say we&amp;rsquo;re in a post-PC world, but I disagree. I think we&amp;rsquo;re entering a post-physical PC world. Your PC experience will be alive and well, just not strapped down like the old ball and chain. The public is all &amp;ldquo;cloud-happy&amp;rdquo; now with the &lt;a href="https://www.brianmadden.com:443/topics/Consumerization+of+IT/default.aspx"&gt;consumerization of IT&lt;/a&gt;, but I think what you&amp;rsquo;re really seeing is two technologies destined to get together and birth the next iteration of our computing experience. Your apps, your data, your stupid cat wallpaper, your everything, accessible anywhere, on any device, delivered remotely over blazing 4G networks and deliciously fast FIOS. And not just companies, but everyone.&lt;/p&gt;
&lt;p class="p1"&gt;Imagine instead of needing a new computer, you just pop on to your &lt;a href="https://www.brianmadden.com:443/blogs/morevideos/archive/2011/07/21/wyse-demo-lab-video-from-briforum-2011-chicago.aspx"&gt;Wyse thin client&lt;/a&gt;, log on and &amp;ldquo;upgrade&amp;rdquo; your $10/month subscription from the 2 GHz PC experience to the $20/month 4 GHz with GPU acceleration version. You&amp;rsquo;d never buy another computer again&amp;hellip;even upgrading a Mac isn't that easy. No longer does VDI seem scary but even less scary than the current purchasing cycle, and way easier for the consumer.&lt;/p&gt;
&lt;p class="p1"&gt;Will all this come to pass? I don&amp;rsquo;t know. I&amp;rsquo;m dreaming pretty big here, but it&amp;rsquo;s not like companies aren&amp;rsquo;t toying with it. This is all coming from someone who gains all his knowledge from trade show demos whichdon&amp;rsquo;t even always work right when being hosted on a carefully manicured local server. But even a noob like me can see the value and the future in it. I guess I've learned something after all.&lt;/p&gt;
&lt;p class="p1"&gt;Subnote: If anything here is wrong, remember, I&amp;rsquo;m your typical consumer. We don&amp;rsquo;t always get Ghz vs. Megabytes or GPUs vs CPUs. We definitely don&amp;rsquo;t understand what a thin client vs. a &lt;a href="https://www.brianmadden.com:443/blogs/gabeknuth/archive/2011/07/27/hp-s-got-a-zero-client-or-do-they-either-way-it-s-cool.aspx"&gt;zero client&lt;/a&gt;&amp;nbsp;is. And there are literally billions of me who haven&amp;rsquo;t discovered any of this yet..but they will.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.brianmadden.com/aggbug.aspx?PostID=163771" width="1" height="1"&gt;</description></item><item><title>Can V3's specialized VDI host/storage solution compete against the big boys of HP, Dell, and Cisco?</title><link>http://www.brianmadden.com/blogs/guestbloggers/archive/2011/08/12/can-v3-s-specialized-vdi-host-storage-solution-compete-against-the-big-boys-of-hp-dell-and-cisco.aspx</link><pubDate>Fri, 12 Aug 2011 04:01:00 GMT</pubDate><guid isPermaLink="false">a59ee4a9-9560-4436-b47c-b649e4ba6aaa:162755</guid><dc:creator>Jack Madden</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.brianmadden.com/blogs/guestbloggers/rsscomments.aspx?PostID=162755</wfw:commentRss><comments>http://www.brianmadden.com/blogs/guestbloggers/archive/2011/08/12/can-v3-s-specialized-vdi-host-storage-solution-compete-against-the-big-boys-of-hp-dell-and-cisco.aspx#comments</comments><description>&lt;p&gt;Startup hardware vendor V3 Systems is offering &lt;a href="http://searchvirtualdesktop.techtarget.com/definition/Host-Based-Virtual-Machine"&gt;VDI&lt;/a&gt;-specific servers with claims of high performance and ease of use. But some people wonder whether they&amp;rsquo;re nothing more than just a fancy bezel on a Super Micro server with a Fusion-io card.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://www.brianmadden.com:443/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bglive/v3-server.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;V3 came on the scene about a year ago promising to make VDI practical for the masses, with co-founder Peter Bookman bringing his experience at Fusion-io to the table. Their website claims reduced CapEx and OpEx, simplicity, and ease of use, all through a 1U plug and play box that can deploy 50-300 desktops in an hour. They have shown demonstrations of VDI desktops that are 2 to 8 times faster than physical desktops, using a solid state infrastructure from Fusion-io.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;In marketing materials, V3 compares their solution to SAN-based VDI deployment, which is somewhat of a &lt;a href="https://www.brianmadden.com:443/blogs/brianmadden/archive/2010/07/14/f-the-san-vdi-storage-should-be-local.aspx"&gt;polarizing&lt;/a&gt; &lt;a href="https://www.brianmadden.com:443/blogs/ronoglesby/archive/2010/07/27/brian-s-wrong-about-vdi-and-local-storage.aspx"&gt;issue&lt;/a&gt;. More importantly, though, we also have to remember that VDI is not for everyone, but rather for limited use cases. Like Brian &lt;/span&gt;&lt;a href="https://www.brianmadden.com:443/blogs/brianmadden/archive/2011/04/07/the-quot-unfiltered-truth-quot-about-desktop-virtualization-in-16-minutes-brian-s-silicon-angle-tv-interview.aspx"&gt;&lt;span&gt;said&lt;/span&gt;&lt;/a&gt;&lt;span&gt;, &amp;ldquo;Most people need VDI like [they] need a hole in their head.&amp;rdquo;&amp;nbsp;&lt;/span&gt;&lt;span&gt;Also, we know how &lt;/span&gt;&lt;a href="https://www.brianmadden.com:443/blogs/brianmadden/archive/2009/12/08/how-to-lie-with-cost-models.aspx"&gt;&lt;span&gt;suspect &lt;/span&gt;&lt;/a&gt;&lt;span&gt;claims about &amp;nbsp;anything to do with cost models can be. With that disclaimer, we have to look at V3 just within the context of other high IOPS VDI solutions.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;It turns out that V3 is coming into a space that&amp;rsquo;s already pretty full. At first glance, it even seems like V3 is a bit late to the Fusion-io party, too. IBM was partnering with Fusion-io since &lt;/span&gt;&lt;a href="http://www-03.ibm.com/press/us/en/pressrelease/24996.wss"&gt;&lt;span&gt;Project Quicksilver&lt;/span&gt;&lt;/a&gt;&lt;span&gt; was wowing people back in 2008, and is now even offering a &lt;/span&gt;&lt;a href="http://www-304.ibm.com/shop/americas/content/home/store_IBMPublicUSA/en_US/ibmfusionio.html"&gt;&lt;span&gt;discount&lt;/span&gt;&lt;/a&gt;&lt;span&gt; on its products. Dell has had a relationship with Fusion-io since its early days, and HP also offers Fusion-io products.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;So if you can buy a Fusion-io card bundled into a &amp;ldquo;real&amp;rdquo; server, why buy a Super Micro from V3? On one hand, this appliance could make a first-time VDI implementation easy and fast. On the other hand, if an IT department can&amp;rsquo;t figure out how to pick out a server from one of the big guys, then they have no business doing VDI anyway.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Beyond the offerings from the bigger companies&amp;mdash;companies that IT departments already have relationships with&amp;mdash;there are other solutions out there&amp;mdash;Whiptail, XtremIO, STEC&amp;mdash;that remind us that V3 is not alone. Whiptail markets their XLR8r (&amp;ldquo;accelerator&amp;rdquo;... get it? :) for VDI among other uses, not in the focused way of V3&amp;rsquo;s marketing. XtremIO seems to be going in a similar direction; while they don&amp;rsquo;t have any products yet, they did get $14m in Round B funding last month. Pivot3 is doing some interesting things area with its vBank, then there&amp;rsquo;s also Xiotech&amp;rsquo;s hybrid solution, the list just goes on and on.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;With all of these competitors using similar or identical technology, why choose V3? True, it &lt;/span&gt;&lt;span&gt;is&lt;/span&gt;&lt;span&gt; really cool to see their demos of a slickly-packaged, VDI specific appliance out-performing the fastest traditional desktops. And their marketing seems to cut through the crowd, essentially saying, &amp;ldquo;Look, we can actually, finally do this VDI thing now, with a cool, sexy appliance built from scratch!&amp;rdquo; But it remains that there are many other products out there can do the exact same thing.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;So will a small, highly-targeted company have the advantage in a crowded field? Or will more established companies or different technologies edge them out?&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.brianmadden.com/aggbug.aspx?PostID=162755" width="1" height="1"&gt;</description></item><item><title>Do SIDs matter anymore? Do we really need Sysprep for VDI?</title><link>http://www.brianmadden.com/blogs/guestbloggers/archive/2011/04/13/do-sids-matter-anymore.aspx</link><pubDate>Wed, 13 Apr 2011 19:21:00 GMT</pubDate><guid isPermaLink="false">a59ee4a9-9560-4436-b47c-b649e4ba6aaa:159217</guid><dc:creator>Rick Mack</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.brianmadden.com/blogs/guestbloggers/rsscomments.aspx?PostID=159217</wfw:commentRss><comments>http://www.brianmadden.com/blogs/guestbloggers/archive/2011/04/13/do-sids-matter-anymore.aspx#comments</comments><description>&lt;p&gt;I had another reminder today that SIDs *do* matter in a virtual Windows environment!&lt;/p&gt;
&lt;p&gt;We used to religiously change SIDs with a variety of third-party tools (e.g. Ghostwalker, newSID, etc.), but between Mark Russinovich stating that SID changes were no longer necessary and the speed advantages of various &amp;ldquo;Quick prep&amp;rdquo; tools which I&amp;rsquo;ll define below, everyone kind of forgot why we bothered changing machine SIDs.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;d like to start by talking about what happened to me today, and then expand a bit about the scenarios where SIDs matter very much indeed.&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Never Clone a Domain Controller without Sysprep&lt;/h2&gt;
&lt;p&gt;I was working in a new sandboxed lab environment, where I had cloned an existing server, changed the server ID and IP address, and started building servers. The first server cloned became a domain controller, the next a management server, the third a file/print server. Logging on as the local or domain administrator, everything worked fine.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;But when another domain administrator account logged on to the management or file/print server, things were decidedly odd. Stuff like trying to ping the DC failed with an &amp;ldquo;Unable to contact IP driver. General failure&amp;rdquo; error. A lot of network stuff just failed and yet you could do an nslookup. It turned out to be a SID issue which was resolved by changing the machine SID (management and file/print) with sysprep. There&amp;rsquo;s a lesson here somewhere because if I&amp;rsquo;d sysprep&amp;rsquo;d the DC beforehand I wouldn&amp;rsquo;t have noticed.&lt;/p&gt;
&lt;h3&gt;So why did this happen and why don&amp;rsquo;t we see this problem normally?&amp;nbsp;&lt;/h3&gt;
&lt;p&gt;When you dcpromo a machine to turn it into a domain controller, the first DC uses the machine SID as the domain SID, whereas subsequent DCs pick up the same SID as the first DC. In the good old days you could create a remote DC by using newSID (Sysinternals) to change a machine SID to match the SID of an existing domain controller. In this case, all the clones had the same SID so the domain SID and the local machine SIDs were identical.&lt;/p&gt;
&lt;p&gt;A user SID consists of two parts, a domain/machine part and then a user number or more correctly relative ID (RID), for example S-1-5-21-636461855-2365528612-2953867313-67402, where S-1-5-21-636461855-2365528612-2953867313 is the domain SID (or machine SID if logged on as local user) and 67402 is the RID. It&amp;rsquo;s important to stress that this is normally a unique identifier for that user.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Well as you&amp;rsquo;ve probably figured out, this is not quite true, because we have a special case here. The administrator account always has a user id of 500, so in our sandbox lab, both the domain administrator and local administrator account on all the machines had the same SID. Where it gets more interesting is when a domain admin (not administrator) logs on to one of these clones, because the domain SID is the same as the machine SID. So the operating system thinks this is a local user, but the RID isn&amp;rsquo;t in the local SAM database and gets very confused and peculiar things start happening. Run sysprep and things work as they should.&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Cloned &amp;ldquo;Quick prep&amp;rsquo;d&amp;rdquo; Virtual Desktops and Local Administrator Security&lt;/h2&gt;
&lt;p&gt;Desktop virtualization (VDI specifically) is another scenario where having identical SIDs can potentially be a problem. There are a number of technologies, which I&amp;rsquo;ll call quick_prep as a generic term because a whole lot of other word combinations are proprietary. In the virtual machine (VM) provisioning context, quick_prep is a way of cloning or creating new virtual machines (VMs) quickly without running sysprep. Quick_prep generally involves cloning an existing image that is domain joined, changing the machine ID and hostname of the target VM and re-joining the target VM to a domain using pre-created domain machine accounts.&lt;/p&gt;
&lt;p&gt;Early versions of Windows had issues with identical SIDs and security equivalence between machines, but I didn&amp;rsquo;t think this would still be true for Windows 7. After all, both Mark Russinovich and Pete Downing (Citrix and formerly Ardence) &lt;a href="http://blogs.technet.com/b/markrussinovich/archive/2009/11/03/3291024.aspx"&gt;suggested it wasn&amp;rsquo;t a problem&lt;/a&gt; from a security viewpoint. Both VMware View and Citrix XenDesktop (Provisioning Services) offer &amp;ldquo;quick_prep&amp;rdquo; methods and while the technology is a bit different, the end result is the same. So, armed with this knowledge, and despite the errors above that I got from cloning a Domain Controller, I thought we would still be on safe ground when cloning Windows 7 virtual desktops with quick_prep.&lt;/p&gt;
&lt;p&gt;I should point out that today in Quest vWorkspace we use Microsoft sysprep, because it&amp;rsquo;s the only method &lt;a href="http://support.microsoft.com/default.aspx?scid=kb;EN-US;314828"&gt;officially supported by Microsoft&lt;/a&gt;. (Note that even sysprep has a &lt;a href="http://support.microsoft.com/kb/828287"&gt;restricted list of supported configurations&lt;/a&gt;.)&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m going to present an example, which happens to be XenDesktop because it was handy, but any quick_prep technology is likely to give you the same result. The screen shot below is from a newly-provisioned Citrix XenDesktop 5.0 Windows 7 VM. Both machines are domain members but the logged-in user is the local (not domain) administrator (xdwin7-008\administrator).&lt;/p&gt;
&lt;p&gt;&lt;img src="https://www.brianmadden.com:443/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/guestbloggers/localadmin.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Note that I was able to open the c$ share on another newly cloned XenDesktop 5 Windows 7 VM for read/write access without authentication! This isn&amp;rsquo;t supposed to happen! Windows 7 is a lot more secure?&lt;/p&gt;
&lt;p&gt;While I had assumed that additional user credentials would be required, they weren&amp;rsquo;t. What we see here is user equivalence between two VMs having the same SID, because both users have the same name, SID+RID and password. If I change the local administrator&amp;rsquo;s password, log out and back in again I need credentials to get to the other VM&amp;rsquo;s C$ share.&lt;/p&gt;
&lt;p&gt;That isn&amp;rsquo;t so bad because even if you have local administrator rights and can change the common admin account password, that doesn&amp;rsquo;t give you open access to other VM&amp;rsquo;s. But how easy is it to find the local admin password?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Most of the password cracks for Windows 7 depend on accessing the Windows 7 system disk after booting to a linux CD with SAM cracking tools. That&amp;rsquo;s not going to work in this scenario, but if you could get a copy of the security account manager (SAM) hive to crack offline, then it wouldn&amp;rsquo;t be that hard.&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s an old NT 4 resource kit tool called regback that used to do a nice job of backing up and restoring registry hives. It turns out that regback still works with Windows 7, provided you have administrator rights.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Once you&amp;rsquo;ve got a copy of the SAM, it&amp;rsquo;s just a matter of using a password cracking tool to crack the NT hash.&lt;/p&gt;
&lt;p&gt;That gives you the credentials to get network access (via default C$ and admin$ shares) to any other quick_prep&amp;rsquo;d VM made from the same template. Sounds bad, but when you considered that any provisioning technology, sysprep included, generally has a common local administrator account, quick_preped machines are from this viewpoint no more or less secure. Except for one area that is sufficiently important that it has to be highlighted. Anything running in the local administrator context has unsecured access to any other VM made from the same parent. That has some really interesting ramifications when it comes to a virus/worm that infects one VM and then has full access to all the other VMs because of the security equivalence. If that happens I hope you&amp;rsquo;ve got a good antivirus!&lt;/p&gt;
&lt;h2&gt;SCCM and KMS&lt;/h2&gt;
&lt;p&gt;Of course sysprep does a lot more than just change a machine&amp;rsquo;s SID, it also changes the CMID (client machine ID) which is used by KMS for licensing, and so tracking the number of Microsoft licenses in use might get a whole lot harder too. (See http://support.microsoft.com/kb/929829)&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The last, rather broader SID-related issue comes about because a number of machine management products use the local machine SID or a derivative as an identifier in their inventories. Even Microsoft has SID dependencies.&lt;/p&gt;
&lt;p&gt;If we look at SCCM it doesn&amp;rsquo;t look like a good an example because it uses a non-SID identifier, an SMS GUID. Provided the SCCM client is installed after cloning, you don&amp;rsquo;t have a problem. If you&amp;rsquo;re unfortunate enough to have the SCCM client already installed on the VM before you converted it to a template, you will have a major house-keeping problem resolving duplicate GUIDS.&lt;/p&gt;
&lt;p&gt;Of course, there is a mechanism to change the SMS GUID if any of the following parameters change:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The SMBIOS serial number (no change in quickprep)&lt;/li&gt;
&lt;li&gt;The machine SID (no change in quickprep)&lt;/li&gt;
&lt;li&gt;The hardware ID (see below)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The HardwareID may change if any 3 of the parameters below are changed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;FirstdriveSerial (no change in quickprep)&lt;/li&gt;
&lt;li&gt;MAC Address (yes &amp;ndash; will change)&lt;/li&gt;
&lt;li&gt;CDROM device (no change in quickprep)&lt;/li&gt;
&lt;li&gt;DisplayAdapter (no change in quickprep)&lt;/li&gt;
&lt;li&gt;HWIDVersion (no change in quickprep)&lt;/li&gt;
&lt;li&gt;ProcessorSerial (not sure here)&lt;/li&gt;
&lt;li&gt;DiskDevice (no change in quickprep)&lt;/li&gt;
&lt;li&gt;SCSIAdapter (no change in quickprep)&lt;/li&gt;
&lt;li&gt;DiskAdapter (no change in quickprep)&lt;/li&gt;
&lt;li&gt;ProcessorType (no change in quickprep, in homogeneous cluster)&lt;/li&gt;
&lt;li&gt;RAMSizeMB (no change in quickprep)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Since we&amp;rsquo;ve only got 1 or 2 changes it&amp;rsquo;s probable that the HardwareID won&amp;rsquo;t change so our VM will have the same SMS GUID as the parent template. So unless you&amp;rsquo;re careful, quickprep and SCCM aren&amp;rsquo;t a good pairing if you want to manage your persistent VMs.&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;So, do SIDs matter? I guess it depends. In a scenario of non-persistent VMs where you can blow away and re-provision the whole fleet if there&amp;rsquo;s a problem, where you don&amp;rsquo;t let users have local administrator rights, the answer is a slightly qualified &amp;ldquo;no&amp;rdquo;. If you&amp;rsquo;ve got persistent VMs, let users have local administrator rights and intend to use something to manage the VMs, quick_prep may not be a very good idea and you may need to stick with the full &amp;ldquo;sysprep&amp;rdquo;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.brianmadden.com/aggbug.aspx?PostID=159217" width="1" height="1"&gt;</description></item><item><title>Reverse Seamless &amp; RES VDX: Separating facts from fiction</title><link>http://www.brianmadden.com/blogs/guestbloggers/archive/2011/03/09/reverse-seamless-amp-res-vdx-separating-facts-from-fiction.aspx</link><pubDate>Wed, 09 Mar 2011 05:00:00 GMT</pubDate><guid isPermaLink="false">a59ee4a9-9560-4436-b47c-b649e4ba6aaa:157995</guid><dc:creator>Max Ranzau</dc:creator><slash:comments>17</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.brianmadden.com/blogs/guestbloggers/rsscomments.aspx?PostID=157995</wfw:commentRss><comments>http://www.brianmadden.com/blogs/guestbloggers/archive/2011/03/09/reverse-seamless-amp-res-vdx-separating-facts-from-fiction.aspx#comments</comments><description>&lt;p&gt;&lt;em&gt;[Note from Brian: We&amp;#39;ve had an interesting conversation the past few days on BrianMadden.com and SearchVirtualDesktop.com about RES Software&amp;#39;s Reverse Seamless product. I first wrote &amp;quot;&lt;a href="http://searchvirtualdesktop.techtarget.com/feature/RES-Software-launches-standalone-reverse-seamless-VDI-tool"&gt;RES Software launches standalone reverse seamless VDI tool&lt;/a&gt;&amp;quot; where I generally praised the product&amp;#39;s awesomeness. Then earlier this week we published a blog post from&amp;nbsp;AppDetective called&amp;nbsp;&amp;quot;&lt;a href="https://www.brianmadden.com:443/blogs/appdetective/archive/2011/03/07/why-quot-reverse-seamless-quot-is-not-as-cool-as-brian-thinks-it-is.aspx"&gt;Why reverse seamless is not as cool as Brian thinks it is&lt;/a&gt;.&amp;quot; After dozens of comments it&amp;#39;s become clear that this is a hot topic, so I thought it made sense for RES themselves to join the conversation. And that&amp;#39;s what today&amp;#39;s post is. (But don&amp;#39;t worry. This is it! I promise no more posts on this topic for awhile. :)]&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Let me first start this article off by providing some context. My name is Max Ranzau, and yes, I do work for &lt;a href="https://www.brianmadden.com:443/topics/RES+Software/default.aspx"&gt;RES Software&lt;/a&gt;. However, I&amp;#39;ve been running &lt;a href="http://resguru.com/"&gt;my own independent blog&lt;/a&gt; (as in &amp;quot;not RES sponsored&amp;quot;) for well over two years, giving me a certain level of impartiality. I work with the RES technology, and that&amp;#39;s it. In the last decade I&amp;#39;ve made my living doing just that, even for seven years prior to joining the company in 2007.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ll cite and paraphrase
P.T. Barnum&amp;#39;s; &amp;quot;there&amp;#39;s no such thing as bad publicity.&amp;quot; I&amp;#39;m not sure
my esteemed colleagues in marketing would agree, which is exactly
why I&amp;#39;m not in marketing :) However, it&amp;#39;s blatantly obvious that some have an
axe to grind with RES for having the audacity to file for a patent on something
that was invented and put into production years ago and then actually sell this
patented product to customer who will benefit from the solution. Hence, there
is a need for clarifying a few misconceptions and dispelling the associated
myths. I&amp;rsquo;d like to thank Brian for providing us with the opportunity to do so.&lt;/p&gt;
&lt;p&gt;So, let&amp;#39;s set the record
straight:&lt;/p&gt;
&lt;h3&gt;Myth: VDX is not secure!&lt;/h3&gt;
&lt;p&gt;What is there to secure?
The remote session is completely and utterly separated from the local session.
If you&amp;#39;re worried about sending certain MIME types or file extensions over the
wire, then just switch them off. It&amp;#39;s all fully configurable via the server
side component (called the &amp;quot;VDX Engine&amp;quot;). See the guide &lt;a href="http://support.ressoftware.com/Modules/Downloads/Eval.aspx?DownloadGuid=1a73f154-4438-e011-85a9-005056bb474c"&gt;here&lt;/a&gt;
for details.&lt;/p&gt;
&lt;p&gt;Second, if the local windows
endpoint is a security concern, there are solutions available to solve that
issue, (like RES Workspace Manager and several others).&lt;/p&gt;
&lt;p&gt;Third, sending
information over the wire is not a security concern because we use the virtual
channels inside the carrier protocol (&lt;a href="https://www.brianmadden.com:443/topics/Citrix+HDX/default.aspx"&gt;HDX&lt;/a&gt; or &lt;a href="https://www.brianmadden.com:443/topics/Microsoft+RDP/default.aspx"&gt;RDP&lt;/a&gt;). Both can be encrypted.
Additional encryption can also be added on top--VDX doesn&amp;#39;t really care. While
security folks can be perceived as the party-poopers of the industry, their
jobs are usually justified. It&amp;#39;s those few individuals among them who cry wolf
in a misguided quest for job security that we need to worry about.&lt;/p&gt;
&lt;h3&gt;Myth: VDX is not cool!&lt;/h3&gt;
&lt;p&gt;Actually, it&amp;#39;s very cool.
At least that&amp;#39;s what our thousands of customers tell us. Especially with the
Z-order stuff enabling a local app to be able to be sandwiched in-between a
remote desktop and a remote application. This makes the blendign very
convincing for the user. (For more info about how VDX actually works, see this &lt;a href="http://resguru.com/technote-library/rg033-how-vdx-works/"&gt;article&lt;/a&gt; on my blog.) There is a definitely a need for it and
we&amp;#39;re seeing them hotcakes sell quite well already!&lt;/p&gt;
&lt;h3&gt;Myth: VDX does not use virtual channels!&lt;/h3&gt;
&lt;p&gt;Yes it does. Period.&lt;/p&gt;
&lt;h3&gt;Myth: Danger! Danger! Third party!&lt;/h3&gt;
&lt;p&gt;It almost sounds like this
is supposed to be a bad thing. Yet on a Windows platform, everybody except
Microsoft is a third party &amp;mdash; Citrix, VMware and RES included. Take the &lt;a href="http://en.wikipedia.org/wiki/Third-party_software_component"&gt;Wikipedia&lt;/a&gt;&amp;nbsp;definition for reference: &amp;quot;In computer
programming, a third-party software component is a reusable software component
developed to be either freely distributed or sold by an entity other than the
original vendor of the development platform.&amp;quot; So yes, per definition RES
VDX is indeed a third party application, but can we please dispense with the
negative implication? It&amp;rsquo;s like complaining that water is wet.&lt;/p&gt;
&lt;h3&gt;Myth: RES Software is a small vendor: It&amp;#39;s risky!&lt;/h3&gt;
&lt;p&gt;Everybody has an
unpleasant vendor experience sooner or later, but let&amp;#39;s try not to judge a book
by its cover--or the number of pages for that matter. RES Software has been
around for over twelve years, and if I&amp;#39;ve got anything to do with it, we&amp;#39;ll be here
for at least another twelve. The numbers are solid, the technologies are sound (we
happen to have multiple other
products in addition to VDX) and
we are continuing to form strong alliances with the major players in the
market. Also remember that all the big guys were also once the size of RES Software.&lt;/p&gt;
&lt;h3&gt;Myth: VDX may not support Aero!&lt;/h3&gt;
&lt;p&gt;[Max: Post publishing--I had to do a slight redaction here] VDX is Aero aware. However it&amp;#39;s not currently possible to bring the &amp;quot;glass-effect&amp;quot; into a remote session. What happens is that the VDX Plugin component on the client side disables the Aeroglass effect locally while the remote session is in effect, and then re-enables it when the session ends. Just for the record VDX also works fine with x64 systems.&lt;/p&gt;
&lt;h3&gt;Myth: VDX should be free!&lt;/h3&gt;
&lt;p&gt;No it shouldn&amp;#39;t. At least
not yet. RES has never registered this or any other patent just to sit on it
and milk it for cash. Our major revenue streams comes from selling RES
Workspace Manager and RES Automation Manager. In regards to reverse seamless
windows, RES Software has provided value to customers for the last eight years
starting with the Subscriber and the Workspace Extender agents. These were
baked into our own Workspace Manager product (formerly known as PowerFuse) for
years. (See this &lt;a href="http://resguru.com/2011/03/making-sense-of-subscribers-extenders-and-vdx/"&gt;article&lt;/a&gt; for the development
history.)&lt;/p&gt;
&lt;p&gt;Now since RES released VDX
as a stand-alone product, if someone feels it should all of a sudden be a part
of someone else&amp;rsquo;s protocol, feel free to encourage that vendor to talk to RES
about this. I&amp;#39;m sure the &amp;quot;powers that be&amp;quot; are busy sorting it out one way or
the other. That&amp;#39;s above my pay grade to discuss anyway. Either way, until whatever
happens, RES Software will exercise its right to develop, patent and sell great
technology like any other vendor on the market. And, ultimately, that&amp;rsquo;s a
benefit for our customer base.&lt;/p&gt;
&lt;p&gt;Thank you for your
attention&lt;/p&gt;
&lt;p&gt;Max Ranzau
(&lt;a href="http://twitter.com/resguru"&gt;@resguru&lt;/a&gt;)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.brianmadden.com/aggbug.aspx?PostID=157995" width="1" height="1"&gt;</description></item><item><title>A closer look at the new "Dynamic Memory" feature of Hyper-V: is it worth it for VDI?</title><link>http://www.brianmadden.com/blogs/guestbloggers/archive/2011/01/27/a-closer-look-at-the-new-quot-dynamic-memory-quot-feature-of-hyper-v-is-it-worth-it-for-vdi.aspx</link><pubDate>Thu, 27 Jan 2011 05:27:00 GMT</pubDate><guid isPermaLink="false">a59ee4a9-9560-4436-b47c-b649e4ba6aaa:156614</guid><dc:creator>Michel  Roth</dc:creator><slash:comments>23</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.brianmadden.com/blogs/guestbloggers/rsscomments.aspx?PostID=156614</wfw:commentRss><comments>http://www.brianmadden.com/blogs/guestbloggers/archive/2011/01/27/a-closer-look-at-the-new-quot-dynamic-memory-quot-feature-of-hyper-v-is-it-worth-it-for-vdi.aspx#comments</comments><description>&lt;p&gt;Microsoft Windows Server 2008 R2 Service Pack 1 will introduce two major new features: RemoteFX and Dynamic Memory. I&amp;#39;ve written about RemoteFX &lt;a href="http://www.thincomputing.net/2010/11/15/an-up-close-review-of-microsoft-remotefx-in-windows-server-2008-r2-sp1-and-windows-7-sp1/"&gt;before&lt;/a&gt; (as has &lt;a href="https://www.brianmadden.com:443/blogs/tags/RemoteFX/default.aspx?GroupID=4"&gt;Brian&lt;/a&gt;), so today&amp;#39;s focus is Dynamic Memory (from the VDI perspective). We&amp;#39;ll also look at the inevitable question of how it compares to the memory management technologies in VMware ESX.&lt;/p&gt;
&lt;h2&gt;What is Dynamic Memory?&lt;/h2&gt;
&lt;p&gt;Dynamic Memory is a new feature of Microsoft Windows Server 2008 R2 Service Pack 1, or more specifically &lt;em&gt;Hyper-V&lt;/em&gt; in Microsoft Windows Server 2008 R2 SP1. It lets you to take all of the memory in that Hyper-V host and dynamically distribute it across all of the VMs. (Hence the name &amp;quot;Dynamic Memory&amp;quot; -- possibly the first time a Microsoft feature name actually makes sense!) Dynamic Memory changes the way Hyper-V manages memory and makes it closer to the way CPU resources are managed, namely, shared across all VMs on the host. While I wish Dynamic Memory was as exactly as &amp;quot;dynamic&amp;quot; as CPU, we aren&amp;#39;t &lt;em&gt;quite&lt;/em&gt; there yet. In reality, the Dynamic Memory feature basically automates hot adding and removal of memory to a guest VM. (Super virtualization geeks might remember that the hot adding of memory in Hyper-V was actually &lt;a href="http://www.thincomputing.net/.../microsoft-drops-several-windows-server-virtualization-features-in-favour-of-delevering-on.html"&gt;planned&lt;/a&gt; for the first release back in 2007 but never made it.)&lt;/p&gt;
&lt;h2&gt;How does Hyper-V Dynamic Memory work?&lt;/h2&gt;
&lt;p&gt;The best non-technical way describe how Dynamic Memory works is to say that Hyper-V will give the guest VMs the right amount of RAM based on their actual usage. Of course there&amp;#39;s a little bit more to it than that. Dynamic Memory works with the &amp;lsquo;driver enlightened&amp;rsquo; architecture of Hyper-V. On the Hyper-v host, the Virtual Service Provider (VSP) manages the allocation of physical memory resources between the various virtual machines running on the host. Inside the enlightened guest, the Virtual Service Consumer (VSC) collects the information to determine virtual machine&amp;rsquo;s memory needs and executes necessary operations to add or remove memory.&lt;/p&gt;
&lt;p&gt;Sounds cool right? Just &amp;quot;enable&amp;quot; it and be done? Unfortunately&amp;nbsp;like I said, we&amp;#39;re not quite there yet. You still need to configure some other parameters. Take a look at this screenshot:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://www.brianmadden.com:443/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/guestbloggers/hyper_2D00_v-memory-management.jpg" alt="" align="center" /&gt;&lt;/p&gt;
&lt;p&gt;Specifically, there are these 4 Dynamic Memory parameters:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Startup RAM&lt;/strong&gt; is the amount of RAM that Hyper-V will always give the host. Microsoft recommends that this is set to the minimum RAM system requirements of the guest OS.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Maximum RAM&lt;/strong&gt; is the upper&amp;nbsp;limit of how much RAM the guest can grow to. This defaults to, and has a max value of, 64GB&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Memory buffer&lt;/strong&gt; is slightly more complicated. It&amp;#39;s the amount of extra memory that&amp;#39;s reserved for the guest in addition to the committed memory that the guest VM is asking of Hyper-V. Think of it like the desired &amp;quot;extra&amp;quot; memory for that guest.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Memory weight&lt;/strong&gt; allows you to specify the importance of a VM in actual RAM allocation. The higher the memory weight, the higher the likelihood that VM will indeed get that memory. Memory weight will only kick in when the host is almost out of RAM.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Is Hyper-V Dynamic Memory any good for VDI?&lt;/h2&gt;
&lt;p&gt;Definitely! I love it.&lt;/p&gt;
&lt;p&gt;I&amp;#39;ll qualify by saying that I&amp;#39;m a&amp;nbsp;&amp;lsquo;desktop virtualization guy,&amp;rsquo; not a &amp;lsquo;server virtualization guy.&amp;rsquo; (In this case that&amp;#39;s a very good thing.) Let me explain: Desktop virtualization was hard enough when it was just Terminal Server, and the addition of VDI meant that things haven&amp;rsquo;t got any easier. If anything, it&amp;#39;s made desktop virtualization harder. My personal opinion that VDI should be a lot easier and there are many steps that can be taken to achieve that, and making sure you use the RAM on your host as efficiently as possible is a great example of that which the Dynamic Memory feature gives you.&lt;/p&gt;
&lt;p&gt;But while Dynamic Memory simplifies memory assignments, it creates new questions to answer like &lt;em&gt;What should the memory buffer be?&lt;/em&gt; or &lt;em&gt;How important is this VM?&lt;/em&gt; which are not that simple to answer. This is the part where it&amp;#39;s great to be a &amp;lsquo;desktop virtualization guy&amp;rsquo; because for VDI you shouldn&amp;rsquo;t care! :) There should be no reason why you&amp;#39;d need to change the memory buffer or the memory weight in a VDI environment. You can even keep the Maximum RAM left at its default (64GB) in most cases. So knowing that, Dynamic Memory comes really close to fulfilling the goal of memory being a completely shared and transparent resource like CPU.&lt;/p&gt;
&lt;p&gt;That said, it may be worth experimenting with various Dynamic Memory configurations for your VDI environment. For example, you could&amp;nbsp;provide Windows 7 virtual desktops with the minimum required memory (or even less!) to really put Dynamic Memory to work. You can also consider setting the &amp;lsquo;Maximum RAM&amp;rsquo; to a lower limit: 2GB for example. This could possibly improve VM density since it limits the impact of VMs that eat up heaps of memory (for either good or bad reasons). Either way, make sure you watch the &amp;ldquo;Available Memory&amp;rdquo; performance counter in &amp;ldquo;Hyper-V Dynamic Memory Balancer&amp;rdquo; on the R2 SP1 Hyper-V host to make sure that you don&amp;rsquo;t overcommit memory on your host or else performance will plummet when you start paging too much. &lt;em&gt;Some&lt;/em&gt; paging can be okay and safe (because the kernel is never paged out), but too much paging will definitely kill performance. Making the most of Dynamic Memory can really be worth your while. In fact Microsoft has&lt;a href="http://blogs.technet.com/b/virtualization/archive/2010/11/08/hyper-v-dynamic-memory-test-for-vdi-density.aspx"&gt; seen improvements of up to 40%&lt;/a&gt; (!) in density for VDI workloads.&lt;/p&gt;
&lt;h2&gt;So it&amp;#39;s all good?&lt;/h2&gt;
&lt;p&gt;It is for the most part. Without going into extreme detail on how Hyper-V assigns memory, it&amp;#39;s important to know that Hyper-V talks to the guest OS to find out how much memory it actually needs and then allocates it as needed. Just be aware that if you run apps in your guest that query the OS for the amount of memory available on launch or use product installers that check the amount of memory before the install starts, these might cause a problem because sometimes they won&amp;rsquo;t continue when they &amp;lsquo;determine&amp;rsquo; there&amp;#39;s too little RAM available.&lt;/p&gt;
&lt;p&gt;The reason for this is that Hyper-V allocates the extra memory when it&amp;#39;s actually being requested by the OS, not when some random application queries from within the guest for the available memory. So if you do run into that situation, you&amp;#39;ll need to set the minimum memory parameters of the guest to match the memory requirements of the product installer. In practicality this shouldn&amp;#39;t be a big deal biggie because you&amp;#39;ll probably use a &amp;lsquo;golden image&amp;rsquo; of sorts so that install will be a one-time thing anyway. The problem becomes larger when an application queries for a certain amount of memory at launch and fails to start correctly if it doesn&amp;#39;t find what it&amp;#39;s expecting. The only option you have in that case is to set the minimum memory parameters of the guest to match the memory requirements of that application (but at the expense of limiting the efficiency of Dynamic Memory).&lt;/p&gt;
&lt;p&gt;Finally you might also run into some weirdness with apps that do their own memory management. Some apps will grab all the memory they can in order to get the best performance. While this might be fine on a single-use PC, it&amp;#39;s not such a good idea on a Dynamic Memory-enabled guest. The best option for these scenarios is to lower the Maximum memory for that VM, but again, this limits the efficiency of Dynamic Memory.&lt;/p&gt;
&lt;h2&gt;And of course, the fine print leads to one big caveat&lt;/h2&gt;
&lt;p&gt;It&amp;#39;s important to know that in order to use Dynamic Memory, you need to upgrade not just Hyper-V (to 2008 R2 SP1), but also the in-guest &amp;lsquo;integration components&amp;rsquo; (which are what allow the guest OS to be able to use the Dynamic Memory feature.) Unfortunately Dynamic Memory will only work on these guest operating systems:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows Server 2008 R2&lt;/li&gt;
&lt;li&gt;Windows Server 2008 (SP2)&lt;/li&gt;
&lt;li&gt;Windows Server 2003 R2&lt;/li&gt;
&lt;li&gt;Windows Server 2003 (SP2)&lt;/li&gt;
&lt;li&gt;Windows 7 (Enterprise and Ultimate only)&lt;/li&gt;
&lt;li&gt;Windows Vista (Enterprise and Ultimate only)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That&amp;rsquo;s right. No Windows XP! And only the Enterprise and Ultimate Editions of Windows 7! (Although&lt;span&gt;&amp;nbsp;it really isn&amp;#39;t that bad because you need the Enterprise or Ultimate Edition of Windows 7&amp;nbsp;&lt;/span&gt;to be able to do VDI&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://download.microsoft.com/download/5/0/5/5059CBF7-F736-4D1E-BF90-C28DADA181C5/Microsoft%20VDI%20and%20Windows%20VDA%20FAQ%20v2%200.pdf-3aDXuFRGlXwew&amp;amp;cad=rja"&gt;&lt;span&gt;anyway&lt;/span&gt;&lt;/a&gt;&lt;span&gt;.)&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;Doesn&amp;#39;t VMware ESX have this as well?&lt;/h2&gt;
&lt;p&gt;Yes and no.&lt;/p&gt;
&lt;p&gt;VMware ESX has&amp;nbsp;memory management techniques of its own (and has had most of them for a long time now). The most important techniques (&lt;a href="http://www.vmware.com/files/pdf/techpaper/vsp_41_perf_memory_mgmt.pdf"&gt;great doc here&lt;/a&gt;) are Idle Memory Tax (IMT), Second Level Paging (Hypervisor swapping) and Memory Compression (new in ESX 4.1). Instead of scrutinizing all the different technologies VMware uses and how these compare to Dynamic Memory, let&amp;rsquo;s have a look at the goal of both Microsoft and VMware with their techniques.&lt;/p&gt;
&lt;p&gt;Both companies have the goal to maximize the RAM usage on the host which is exactly what&amp;#39;s needed for VDI. The most important difference between VMware&amp;#39;s and Microsoft&amp;#39;s approach in my mind is that Dynamic Memory allocates memory on demand (in &amp;lsquo;real-time&amp;rsquo;) whereas VMware&amp;rsquo;s memory management techniques pre-allocate memory and then uses several memory management techniques to reclaim unused memory. With VMware it&amp;#39;s also easier to oversubscribe the physical memory of the host (note how I didn&amp;#39;t use the word &lt;em&gt;overcommit&lt;/em&gt;!) and I think that&amp;#39;s a risk in most current VDI deployments. No matter how you slice it or dice it, when RAM is oversubscribed it introduces a higher probability of paging. This in return means a huge increase in IOPS. I guess it should go without saying that this is something you should avoid at all costs in VDI environments.&lt;/p&gt;
&lt;h2&gt;So should I move my VDI environment to Hyper-V now?&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s interesting to see how the same questions keep popping up. In the past, every time a new version of Terminal Server came out, people would ask &lt;em&gt;Do I still need Citrix?&lt;/em&gt; This question about Hyper-V feels the same and the answer is also the same: it depends. It depends on what you need out of your hypervisor. From the VDI perspective you should want to maximize the usage of the RAM on your host to its guests in the most flexible and efficient way. That&amp;rsquo;s exactly what Hyper-V 2008 R2 SP1 gives you. But of course it&amp;#39;s also in ESX today. I don&amp;rsquo;t think Dynamic Memory will be the reason for people to abandon ESX en masse. I do think that, looking at memory management from a VDI perspective, Hyper-V fits the bill just as well as ESX does, if not better.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.brianmadden.com/aggbug.aspx?PostID=156614" width="1" height="1"&gt;</description></item><item><title>An introduction to VMware View 3, Part 3 of 3 – Special Considerations and Best Practices</title><link>http://www.brianmadden.com/blogs/guestbloggers/archive/2009/01/26/an-introduction-to-vmware-view-3-part-3-of-3-special-considerations-and-best-practices.aspx</link><pubDate>Mon, 26 Jan 2009 19:01:00 GMT</pubDate><guid isPermaLink="false">a59ee4a9-9560-4436-b47c-b649e4ba6aaa:124516</guid><dc:creator>Roland van der Kruk</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.brianmadden.com/blogs/guestbloggers/rsscomments.aspx?PostID=124516</wfw:commentRss><comments>http://www.brianmadden.com/blogs/guestbloggers/archive/2009/01/26/an-introduction-to-vmware-view-3-part-3-of-3-special-considerations-and-best-practices.aspx#comments</comments><description>&lt;p&gt;&lt;em&gt;In this three-part article series, Roland van der Kruk, a freelance consultant in The Netherlands, takes a look at the new features of VMware View 3, as well as best practices learned while doing a deployment for a customer. &lt;a href="http://www.brianmadden.com/blogs/guestbloggers/archive/2009/01/15/an-introduction-to-vmware-view-3-features-and-best-practices-part-1-of-3.aspx"&gt;Part 1&lt;/a&gt; provides information and insight on new features, &lt;a href="http://www.brianmadden.com/blogs/guestbloggers/archive/2009/01/18/an-introduction-to-vmware-view-3-part-2-of-3-linked-clones.aspx"&gt;Part 2&lt;/a&gt; looks at Linked Clones, and Part 3 (this article) will look at special considerations and best practices for deployment.&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;High available, secure remote access&lt;/h3&gt;
&lt;p&gt;Unfortunately, a high available configuration to access VMware View while being outside the corporate network can be very different between organizations. I have been doing some research reading the &lt;a href="http://www.vmware.com/resources/techresources/1028"&gt;VMware VDM 2 Load Balancing Guide&lt;/a&gt; to find out more about load balancing and secure remote access. In today&amp;rsquo;s enterprise environments, gateway devices like Citrix Netscaler/Access Gateway or Cisco ASA are more or less common practice. They are configured as a mandatory termination point for sessions originating from outside the corporate network connecting to resources inside the corporate network. &lt;/p&gt;
&lt;p&gt;Initially, two http sessions are set up between the client and the Connection Servers to which the load balancer redirected the client request. One session is for communication with the web page, the View Portal, and one is for the RDP connection that can be configured to be packed into http or https. By default, a Connection Server replies to the client http request with a response in which its own hostname is sent back to the client. Using the default configuration of a Connection Server would then result in having to open up the necessary ports on the firewalls between the Gateway device and all Connection servers as the client will try to communicate directly with the Connection Server once it received the Connection Servers&amp;rsquo; hostname in the http response. In the configuration page of the View Administrator however, you can modify the default behavior by configuring an &amp;lsquo;External URL&amp;rsquo; that will be given back to the client. The External URL will have to be configured on each Connection Server that you have.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.brianmadden.com/controlpanel/blogs/posteditor.aspx/$clip_image002[4].jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;img src="http://www.brianmadden.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/guestbloggers/ViewP33.png" alt="" /&gt;&lt;br /&gt;&lt;/em&gt;&lt;em&gt;Picture 16 &amp;ndash; Part of the screen that appears when clicking a Connection Server and choosing &amp;lsquo;Edit&amp;rsquo;.&lt;/em&gt; &lt;/p&gt;
&lt;p&gt;An External URL can be configured and also a direct connection to desktops, resulting in bypassing the Connection Server for direct communication with the virtual machine that a user needs. If you configure the External URL to be the DNS name of the load balancer, you will have two moments on which load balancing will take place; initially to set up the communication to the View Portal, and subsequently, if a session to a Virtual Machine is started. &lt;/p&gt;
&lt;p&gt;According to VMware in the Load Balancing Guide, for proper load balancing to work the load balancer needs to be configured for SSL Offloading. SSL Offloading is necessary because a load balancer cannot see what&amp;rsquo;s inside an SSL request. All requests are coming from one Gateway device, which means that all the load would go to the initially chosen Connection Server. Also, sticky sessions need to be configured on the load balancer to support RDP connections over http. This means that SSL connections can be setup to the load balancer, but the load balancer will strip off the encryption and forward the requests to the Connection Servers as http. This actually means that communication from the load balancer to a Connection Server is going over HTTP where, for example, a cookie insert by the load balancing device will result in being able to provide RDP sessions consistently going to the same Connection Server&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;This also means two more things: &lt;/li&gt;
&lt;li&gt;Username and password are passed to the Connection Server in clear text between the load balancing device and the Connection Server. &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;As the Connection Server is configured for http and not https, the RDP sessions will be packed in http as well. This might not be a problem because the connection from the internet to the Gateway device is already tunneled in https, but I wanted to point that out anyway. &lt;/p&gt;
&lt;p&gt;Compared with Citrix Web Interface, where integrated logon with Kerberos authentication is an option, this seems like an issue that VMware could address better. Also to get a Cisco ASA to work, probably a View Plugin for ASA would be a GREAT idea...&lt;/p&gt;
&lt;h3&gt;Server Provisioning&lt;/h3&gt;
&lt;p&gt;When I made the comparison of View 3.0 with Citrix Provisioning Server, I wondered how View 3.0 could be used to deploy Terminal Servers or even Citrix Servers. The official line from VMware says that only Desktop Operating Systems are supported. I tried it for myself and, indeed, a Virtual Server with a snapshot and a View Agent installed is not &amp;lsquo;discovered&amp;rsquo; in a desktop pool deployment wizard. Too bad, because a tool for cloning Citrix servers, like the one from &lt;a href="http://www.citrixtools.net/en/Home/newsid374/170.aspx"&gt;CitrixTools.net&lt;/a&gt; could do a good job here, handling all Citrix specific services and settings with Sysprep being used by Virtual Center to deploy uniquely identifiably virtual machines. Active Directory policies could be adjusted to make all this work without further administrative interaction.&lt;/p&gt;
&lt;p&gt;Maybe I&amp;rsquo;m going too far here comparing View with XenDesktop/Provisioning Server? I see a lot of similarity between the two products, even though entirely different techniques are used. I might say that putting OS changes in a &amp;lsquo;memory state cache&amp;rsquo; as Provisioning Server does is a more elegant solution than creating and deleting snapshots, but the result can be the same; Instantly provisioned machines that are deleted as soon as they reboot.&lt;/p&gt;
&lt;h3&gt;Machine Account password&lt;/h3&gt;
&lt;p&gt;A virtual machine with a snapshot can only be used by View 3.0 (or probably VMware ESX) as a master image if the machine is joined to a domain. For this reason, I would apply the same local policy as I would normally do with a sequencing or packaging machine, and then disable Windows machine account password resets. If your company policy or personal preference requires machine account password changes, you can change the default &amp;lsquo;change password interval&amp;rsquo; to the maximum of 999 days. Both of these options can be changed in the Group Policy editor:&lt;/p&gt;
&lt;p&gt;Start/run/gpedit.msc &amp;gt;&lt;/p&gt;
&lt;p&gt;Computer configuration/Windows settings/Security settings/local policies/Security options:&lt;/p&gt;
&lt;p&gt;- Domain member: Disable machine account password changes - enabled&lt;/p&gt;
&lt;p&gt;- Domain member: Maximum machine account password age &amp;ndash; 999 days&lt;/p&gt;
&lt;h3&gt;Display Protocol&lt;/h3&gt;
&lt;p&gt;I have to mention that I was at least a little disappointed when I noticed that nothing was done about optimizing RDP. It is especially important if you plan to deploy Windows XP, which probably has the worst version of RDP still available, and you have to provide desktops to users over high latency connections. I must admit that I haven&amp;rsquo;t yet tested performance using RDP with a typical Indian latency of (so the story goes) up to 300 milliseconds, but I can image implementations being cancelled because of this shortcoming. The Group Policy Administrative Templates provided with View will really be necessary to optimize RDP as far as possible, but of course the advanced options available in ICA are really an entirely different story. &lt;/p&gt;
&lt;p&gt;In the &lt;a href="http://www.vmware.com/resources/wp/view_reference_architecture_register.html"&gt;Reference Architecture Kit&lt;/a&gt; on the VMware site, VMware actually acknowledges this problem by stating that RDP is a good protocol for LAN connections or WAN connections with up to 150 ms latency. If you have to provide virtual desktops over high latency connections however, using RDP might not be a good idea. VMware mentions solutions like Sun Microsystems&amp;rsquo; Appliance Link Protocol&amp;trade; (ALP) used in Sun Ray&amp;trade; thin client implementations and Pano Logic&amp;rsquo;s Console Direct, but getting into those is out of the scope of this document. I did find a network tool that can configure latency up to 400 ms, so I will test this in the near future.&lt;/p&gt;
&lt;h3&gt;Sizing&lt;/h3&gt;
&lt;p&gt;Also in the &lt;a href="http://www.vmware.com/resources/wp/view_reference_architecture_register.html"&gt;Reference Architecture Kit&lt;/a&gt;, a setup is described for separate ESX clusters for VDI. For my customer, I will also use separate ESX clusters. Although, since clusters cannot contain more than 8 nodes, my customer will have to change from their standard cluster configuration of 13 hosts per cluster. I found that approximately 17 power users can be placed on a machine with two quad core CPU&amp;rsquo;s and 24 Gb of memory. Because of the memory sharing feature, ESX even promises to be the best option on which to run VDI environments, as other hypervisors do not support memory sharing. I plan to use the same Virtual Center that I already have running for my server environment, which already is one of the largest in Europe. However I will probably have to keep a close eye on performance, as Virtual Center probably also has its limits. &lt;/p&gt;
&lt;h3&gt;User experience monitoring&lt;/h3&gt;
&lt;p&gt;When you are planning to use VMware View, I recommend looking at &amp;lsquo;User Experience Monitoring&amp;rsquo; products. Products from eG Innovations and RTO PinPoint can provide valuable information on both frond end and back end performance, giving you great insight in what delay is caused where. Implementing that could save you a lot of time in the end.&lt;/p&gt;
&lt;h3&gt;A final word or two&amp;hellip;&lt;/h3&gt;
&lt;p&gt;VMware did a good job with View 3.0. They put all configuration options for the View 3.0 product into one console, which is really excellent work. The console is intuitive and fast. Options are logically grouped and put into only four distinct console windows. The new linked clone technology is probably a bit harder to understand as consequences for disk space usage are not properly documented by VMware. (Linked clones were covered in Part 2 of this article series) &lt;/p&gt;
&lt;p&gt;The term &amp;lsquo;persistent desktop&amp;rsquo; needs some explanation because it can be misunderstood as a desktop for power users &amp;ndash; like a dedicated desktop. In actuality, it means that all the desktops are kept in a consistent state by the administrator, which is certainly not a &amp;ldquo;power user&amp;rdquo; type desktop.&lt;/p&gt;
&lt;p&gt;Furthermore, most essential options are available; universal printing, single sign-on, instant and automatic desktop creation, even the experimental &amp;acute;offline desktop feature&amp;acute; can be used. Unfortunately, optimizations on the RDP protocol are lacking, which in some cases might result in unworkable situations because of network latency. Customers using VMware ESX could strategically choose for View 3.0 because of the tight integration with Virtual Infrastructure. With the Premier&amp;nbsp;license bundles that also includes ThinApp/Thinstall, the combination makes for a promising offering in the VDI market. I wonder what VMware&amp;acute;s next move will be.&lt;/p&gt;
&lt;h3&gt;Useful links&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://www.vmware.com/resources/techresources/1028"&gt;VMware VDM 2 Load Balancing Guide&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.vmware.com/pdf/viewmanager3_admin_guide.pdf"&gt;Administration Guide - View Manager 3.0&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.vmware.com/resources/wp/view_reference_architecture_register.html"&gt;VMware View Reference Architecture Kit&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.brianmadden.com/blogs/guestbloggers/archive/2009/01/15/an-introduction-to-vmware-view-3-features-and-best-practices-part-1-of-3.aspx"&gt;Part One of this article series&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.brianmadden.com/blogs/guestbloggers/archive/2009/01/18/an-introduction-to-vmware-view-3-part-2-of-3-linked-clones.aspx"&gt;Part Two of this article series&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Roland van der Kruk is a freelance consultant in The Netherlands. He currently works with server-based computing and desktop delivery solutions. Roland can be contacted by email at roland@sbcprojects.com or through his website at http://www.sbcprojects.com.&lt;/em&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.brianmadden.com/aggbug.aspx?PostID=124516" width="1" height="1"&gt;</description></item><item><title>An introduction to VMware View 3, Part 2 of 3 – Linked Clones</title><link>http://www.brianmadden.com/blogs/guestbloggers/archive/2009/01/18/an-introduction-to-vmware-view-3-part-2-of-3-linked-clones.aspx</link><pubDate>Sun, 18 Jan 2009 13:56:00 GMT</pubDate><guid isPermaLink="false">a59ee4a9-9560-4436-b47c-b649e4ba6aaa:124210</guid><dc:creator>Roland van der Kruk</dc:creator><slash:comments>22</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.brianmadden.com/blogs/guestbloggers/rsscomments.aspx?PostID=124210</wfw:commentRss><comments>http://www.brianmadden.com/blogs/guestbloggers/archive/2009/01/18/an-introduction-to-vmware-view-3-part-2-of-3-linked-clones.aspx#comments</comments><description>&lt;p&gt;&lt;em&gt;In this three-part article series, Roland van der Kruk, a freelance consultant in The Netherlands, takes a look at the new features of VMware View 3, as well as best practices learned while doing a deployment for a customer. &lt;a href="http://www.brianmadden.com/blogs/guestbloggers/archive/2009/01/15/an-introduction-to-vmware-view-3-features-and-best-practices-part-1-of-3.aspx"&gt;Part 1&lt;/a&gt; provides information and insight on new features, Part 2 (this article) looks at Linked Clones, and Part 3 (released later this week) will look at special considerations and best practices for deployment.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Linked Clones&lt;/h2&gt;
&lt;p&gt;The big question to most people is probably: &amp;lsquo;What are linked clones and how do they work?&amp;rsquo;. Some of you may expect similar functionality to Citrix Provisioning Server where optimization in disk space can be significantly realized, and indeed VMware does somewhat the same, but with very different technology. Let&amp;rsquo;s see how VMware does it.&lt;/p&gt;
&lt;p&gt;The essence of linked clones is Thin Provisioning; saving on expensive storage cost. Thin provisioning with View 3.0 can be realized using a &amp;ldquo;master virtual machine&amp;rdquo;, which is just a regular virtual machine that you create and then take a snapshot. That virtual machine will be used as the basis for rapid and thin OS deployment. Please notice that I mentioned a virtual machine &amp;ldquo;snapshot&amp;rdquo;, not a virtual machine &amp;ldquo;template&amp;rdquo;. &lt;/p&gt;
&lt;p&gt;You prepare a virtual machine with the Desktop OS of your choice (Server Operating Systems are not supported) exactly the way that you like your master image to be. When all components and settings are properly set, you then have to install the VMware View Agent (which contains the components mentioned &lt;a href="http://www.brianmadden.com/blogs/guestbloggers/archive/2009/01/15/an-introduction-to-vmware-view-3-features-and-best-practices-part-1-of-3.aspx"&gt;in the previous article&lt;/a&gt;), shut down the virtual machine and take a (first) snapshot. I might add that the master virtual machine has to be domain joined, for which I could not find the reason. After that, desktop deployment can start. &lt;/p&gt;
&lt;p&gt;In the View Administrator console, choose the &amp;lsquo;Desktops and Pools&amp;rsquo;, as this is where desktops and desktop pools can be added and/or edited. In the right pane of the &amp;lsquo;Desktops and Pools&amp;rsquo; tab, five other tabs appear, the most left being the &amp;lsquo;Desktops and Pools&amp;rsquo; view. Here you can choose &amp;lsquo;Add&amp;rsquo; to start a wizard that guides you through the steps necessary for adding a desktop or a desktop pool. The following choices are presented:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Individual Desktop&lt;/strong&gt;, this option will start a wizard to provide users with access to a single virtual or physical computer on which the View Agent is installed. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automated Desktop Pool&lt;/strong&gt;, this option starts a wizard to automatically create one or more desktops in a pool. The explanatory text for this option states that desktops are based on &amp;ldquo;virtual machine templates,&amp;rdquo; which is wrong.&amp;nbsp; You need to have a normal virtual machine from which you will take a snapshot (as mentioned above).&amp;nbsp; &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Manual Desktop Pool,&lt;/strong&gt; this option will start a wizard to provide access to an existing set of virtual or physical PC&amp;rsquo;s that have the View Agent installed.&lt;strong&gt;&lt;/strong&gt; &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Microsoft Terminal Services Desktop Pool,&lt;/strong&gt; this option starts a wizard to publish Terminal Server desktops to View Portal users.&lt;strong&gt;&lt;/strong&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I don&amp;rsquo;t want to get into details with every option mentioned, but continue with the most eye catching option, the Automated Desktop Pool. The automated desktop pool can consist of any number of persistent or non-persistent desktops. &lt;/p&gt;
&lt;p&gt;After a persistent desktop pool is created and a user is assigned a certain desktop, the mapping between user and assigned desktop is written to the ADAM database (see &lt;a href="http://www.brianmadden.com/blogs/guestbloggers/archive/2009/01/15/an-introduction-to-vmware-view-3-features-and-best-practices-part-1-of-3.aspx"&gt;Part 1&lt;/a&gt; for more information on how ADAM is used). Every time the user logs on to the View Portal, the same desktop will be available and the state of the virtual machine is exactly the way he or she left it with the previous logoff. This option is similar to the &amp;lsquo;permanent disk&amp;rsquo; in Citrix Provisioning Server. A persistent desktop pool can contain any number of desktops, and once created, the pool can also be edited to increase the number of desktops in the pool. In the wizard, as depicted below, the initial number of desktops to be created is set to 5, the total number of desktops in the pool is set to 100 and as soon as the number of available desktops falls below 5, the number of available desktops is matched to meet the configured criteria by creating more machines in the pool, until the maximum number of desktops in the pool is reached.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.brianmadden.com/controlpanel/blogs/posteditor.aspx/$clip_image002[3].jpg"&gt;&lt;img src="http://www.brianmadden.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/guestbloggers/ViewP26.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Picture 6 &amp;ndash; Advanced configuration of the number of desktops in a pool in the Deployment Wizard&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Both persistent and non persistent desktops can be created using the &amp;lsquo;linked clone&amp;rsquo; technology, which in fact means that deployed desktops can be altered by assigning the desktops to a different snapshot or even to an entirely different virtual machine. The main difference between a persistent and a non persistent desktop is that persistent desktops can contain a second virtual disk to which the &amp;lsquo;Documents and settings&amp;rsquo; folder is moved. User data is effectively put on another disk, so in case an administrator decides to assign a different snapshot or image to a user, all user data in the &amp;lsquo;Documents and Settings&amp;rsquo; folder will still be available. Of course, this can also be accomplished by modifying the User Shell Folders of each user with Active Directory GPO or script to alter all default folders, but with the View 3.0 option, user data will be locally available, presumably resulting in better performance. &lt;/p&gt;
&lt;p&gt;I wonder if this is really a useful option, as user data can only be reached by going to the machine itself and opening the folder, whereas with folder redirection, all user data can be redirected to a central network share, substantially simplifying central administration, in my opinion. If the central network share is located on fast NAS heads, performance might still decrease a little, but management of user data only locally available on virtual machines is not a very attractive option in larger environments.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.brianmadden.com/controlpanel/blogs/posteditor.aspx/$clip_image004[4].jpg"&gt;&lt;img src="http://www.brianmadden.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/guestbloggers/ViewP27.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Picture 7 &amp;ndash; A separate disk for personal data, available in a linked clone.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;What actually happens as the wizard is finished is that a copy of the master virtual machine is made, together with a copy of the snapshot. The size of the copies, however, is not a complete copy of the master virtual machine. I deployed a master image with a system drive of 20 GB with a snapshot, which resulted in a copy of 6 GB for the system drive and a few Kb for the snapshot.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.brianmadden.com/controlpanel/blogs/posteditor.aspx/$clip_image006[4].jpg"&gt;&lt;img src="http://www.brianmadden.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/guestbloggers/ViewP28.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Picture 8 - User data drive of a persistent desktop for a specific user.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The folders and disks are automatically created and the folders and files contain some GUID that is associated with master desktop and user.&lt;/p&gt;
&lt;p&gt;To (hopefully) clarify the components, the following Virtual Center folder arrangement is depicted:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.brianmadden.com/controlpanel/blogs/posteditor.aspx/$clip_image0"&gt;&lt;img src="http://www.brianmadden.com/emoticons/emotion-14.gif" alt="Devil" /&gt;.jpg&amp;quot;&amp;gt;&lt;img src="http://www.brianmadden.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/guestbloggers/ViewP29.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Picture 9 - Virtual Center containing all folders necessary for a View 3.0 deployment.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The above picture shows that &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;VMware virtual machine templates can be used to deploy master images &lt;/li&gt;
&lt;li&gt;Master images with at least one snapshot are best placed in a separate folder to make sure you don&amp;rsquo;t mix things up &lt;/li&gt;
&lt;li&gt;Linked Clones are best placed in a separate folder, where subfolders can be created to place non persistent and persistent linked clones &lt;/li&gt;
&lt;li&gt;You can (and probably will) have other virtual pc&amp;rsquo;s or virtual servers in your Virtual Center &lt;/li&gt;
&lt;li&gt;On the bottom of Picture 9 the automatically generated folders are shown, which are all created by View 3.0 as a result of a desktop pool deployment wizard in the View Administrator console. A replica folder and a source folder are created for each desktop pool that uses linked clone technology. All folders created automatically are fully managed by View 3.0 and are only to be administered through the View Administrator console. &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Linked Clone disk characteristics&lt;/h3&gt;
&lt;p&gt;So, how does View 3.0 handle disks and disk space for linked clones?&lt;/p&gt;
&lt;p&gt;In my tests I created a Windows XP SP2 image with a system drive of &lt;strong&gt;20 GB&lt;/strong&gt;. In the Automated desktop pool wizard, I chose to configure 5 linked clones, where initially 1 linked clone was created immediately after finishing the wizard, and where always 1 desktop would be available for new user logon until the maximum number of desktops in the pool has been reached. Also I chose to create a separate User data disk of &lt;strong&gt;2 GB&lt;/strong&gt; for the &amp;lsquo;Documents and Settings&amp;rsquo; folder to be placed.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.brianmadden.com/controlpanel/blogs/posteditor.aspx/$clip_image010[4].jpg"&gt;&lt;img src="http://www.brianmadden.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/guestbloggers/ViewP210.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Picture 10 - Step in deployment wizard where OS Data and User Data stores can be selected with&lt;/em&gt;&lt;a href="http://www.brianmadden.com/controlpanel/blogs/posteditor.aspx/$clip_image012[3].jpg"&gt;&lt;em&gt;&lt;/em&gt;&lt;/a&gt;&lt;a href="http://www.brianmadden.com/controlpanel/blogs/posteditor.aspx/$clip_image012[4].jpg"&gt;&lt;img src="http://www.brianmadden.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gabeknuth/ViewArrow.png" alt="" /&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;After finishing the wizard, a replica folder and a source folder are created which are used as templates, of which clones are created by View 3.0&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.brianmadden.com/controlpanel/blogs/posteditor.aspx/$clip_image014[4].jpg"&gt;&lt;img src="http://www.brianmadden.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/guestbloggers/ViewP211.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Picture 11 - Replica folder of an automated, persistent desktop pool, derived from a 20 GB system disk&lt;/em&gt;&lt;/p&gt;
&lt;h5&gt;&lt;a href="http://www.brianmadden.com/controlpanel/blogs/posteditor.aspx/$clip_image016[4].jpg"&gt;&lt;img src="http://www.brianmadden.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/guestbloggers/ViewP212.png" alt="" /&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;&lt;em&gt;Picture 12 - Source folder of an automated, persistent desktop pool with a configured user data disk of 2 GB&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.brianmadden.com/controlpanel/blogs/posteditor.aspx/$clip_image018[4].jpg"&gt;&lt;img src="http://www.brianmadden.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/guestbloggers/ViewP213.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Picture 13 &amp;ndash; System disk of a linked clone, available to an end user using a system disk of 20 GB&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.brianmadden.com/controlpanel/blogs/posteditor.aspx/$clip_image020[4].jpg"&gt;&lt;img src="http://www.brianmadden.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/guestbloggers/ViewP214.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Picture 14 &amp;ndash; User data disks, mapped as D-drive in the users&amp;rsquo; virtual desktop, for two users with a maximum of 2 GB per user&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In the table below, all components are mentioned to deploy at least one desktop pool based on one Desktop Operating System. The &amp;lsquo;linked clone system disk&amp;rsquo; will initially be around 100 MB and can grow up to the original size of the Master VM. A &lt;em&gt;Desktop Refresh&lt;/em&gt; (discussed below) can be scheduled or executed manually to return the linked clone system disks to its&amp;rsquo; original size.&lt;/p&gt;
&lt;p&gt;
  
&lt;table cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;System disk of Desktop OS template, used to create &amp;lsquo;Master Image Virtual Machines&amp;rsquo;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;20 Gb&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;System disk of a &amp;lsquo;Master Image Virtual Machine&amp;rsquo;, containing a Desktop OS including (a) snapshot(s)&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;20 Gb&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Replica folder and source folder derived from the &amp;acute;Master Image&amp;acute;, created for a desktop pool with an unlimited of linked clones&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;6 Gb&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Linked clone system disk per OS&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;100 MB - ??&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Linked clone user data disk per user&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;2048 MB (configurable)&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Table 2 &amp;ndash; Linked Clone disk size example&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Desktop recompose, refresh, rebalance&lt;/h3&gt;
&lt;p&gt;At all times, deployed desktops can be altered when created using the linked clone technology. &lt;/p&gt;
&lt;p&gt;A &lt;strong&gt;Desktop Recompose&lt;/strong&gt; means that a deployed desktop state is altered. It can be assigned a different snapshot of possibly even entirely an different master virtual machine.&lt;/p&gt;
&lt;p&gt;A &lt;strong&gt;Desktop Refresh&lt;/strong&gt; means that a linked clone desktop is brought back to the state of initial roll out. This actually means that the system disk is reverted to the moment it was deployed, including its size and contents. If a separate user disk was used in the deployment wizard, all user data on that disk remains intact.&lt;/p&gt;
&lt;p&gt;A &lt;strong&gt;Desktop Rebalance&lt;/strong&gt; means balancing virtual machine disks across available data stores (LUN&amp;rsquo;s). If a VMware ESX data reaches its capacity, a rebalance can take care of automatic data migration of deployed virtual machine disks to different ESX data stores.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.brianmadden.com/controlpanel/blogs/posteditor.aspx/$clip_image022[4].jpg"&gt;&lt;img src="http://www.brianmadden.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/guestbloggers/ViewP215.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Picture 15 - View on a persistent desktop in the &amp;lsquo;Persistent&amp;rsquo; desktop pool, which can be removed, reset (OS reset), edited (recomposed or refreshed) or rebalanced&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Linked clones, persistent desktops and OS maintenance; 1 + 1 + 1 = 1?&lt;/h3&gt;
&lt;p&gt;Another thought came to mind worth mentioning. In my test I created a desktop pool with the combined technologies of linked clones and persistent desktops. Of course on these desktops, I do have to perform maintenance, as Microsoft hotfixes come out the second Tuesday of the month and who knows what else needs to be updated. Initially I thought I could use the linked clone technology for this; update my master virtual machine with hotfixes, take a new snapshot and link all deployed desktop to the new snapshot. If all is well this will work, however, what happens to my &amp;lsquo;persistent desktops&amp;rsquo; if I do that? In fact, all users having made changes to the OS (I chose to allow certain users to install their own applications) lose their OS customizations and their applications. &lt;/p&gt;
&lt;p&gt;After linking desktops to a new snapshot, it appears that the only thing that is really persistent about the &amp;lsquo;persistent desktop&amp;rsquo; is what is on the user data disk, which contains the &amp;lsquo;documents and settings folder&amp;rsquo; and maybe some data, but not the entire installed application the user needed. Ergo, if I want to maintain my OS with hotfixes using linked clone technology or &amp;lsquo;Desktop Recompose&amp;rsquo;, while at the same time keeping users&amp;rsquo; customizations to the OS, I will have to use a tool like SMS/SCCM, Radia or whatever your standard corporate application distribution method is. My question then is: what does &amp;lsquo;Persistent Desktop&amp;rsquo; really mean? &lt;/p&gt;
&lt;p&gt;I performed one more test to see how intelligent the linked clone snapshotting technology really is when it comes to managing disk space. I started off with a Persistent Desktop:&lt;/p&gt;
&lt;p&gt;- System disk: 230 MB&lt;/p&gt;
&lt;p&gt;After I logged on as an administrative user, I copied an installation of Eclipse, sized 354 MB, to the System disk of my virtual machine.After the file copy, my System disk looked like this:&lt;/p&gt;
&lt;p&gt;- System disk: 607 MB&lt;/p&gt;
&lt;p&gt;I decided to delete the Eclipse folder. After deletion, the system disk looked like this:&lt;/p&gt;
&lt;p&gt;- System disk: 607 MB&lt;/p&gt;
&lt;p&gt;Conclusion: The Eclipse folder doesn&amp;rsquo;t seem to be deleted and the data is still available in the snapshot.&lt;/p&gt;
&lt;p&gt;I decided to copy the exact same Eclipse folder again to the same destination on the system disk, which then looked like this (I also tested another destination; c:\temp, which had the same result):&lt;/p&gt;
&lt;p&gt;- System disk: 623 MB&lt;/p&gt;
&lt;p&gt;Apparently, some check was done as the linked clone disk reused the data that was marked as &amp;lsquo;deleted&amp;rsquo;.&lt;/p&gt;
&lt;p&gt;After I removed Eclipse again, the system disk looked like this:&lt;/p&gt;
&lt;p&gt;- System disk: 640 MB&lt;/p&gt;
&lt;p&gt;Now since Eclipse is deleted off disk and the system disk still has the size of 640 MB, which means the data is still there, maybe the snapshot technology is intelligent enough to mark the space as deleted so it can be filled up with other data. I copy some other data to the system disk that is smaller than the size of the data that could be &amp;lsquo;marked for deletion&amp;rsquo;. After copying a 219 MB folder, the disk looks like this:&lt;/p&gt;
&lt;p&gt;- System disk: 852 MB&lt;/p&gt;
&lt;p&gt;Conclusions: &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Providing linked clones to users that have full control to the system, resulting in user initiated changes to the OS like copying data, removing it, etc., will end up in a system disk that eventually has a bigger size than if the OS was provided to the user without the linked cloning technology.&lt;/li&gt;
&lt;li&gt;If a View Administrator decided to refresh the OS because he added some hotfixes or extra software, all user modifications to the OS are deleted. In fact the System Disk is simply deleted and a new linked clone is generated off the new state of the &amp;lsquo;master image&amp;rsquo;.&lt;/li&gt;
&lt;li&gt;What &amp;lsquo;Persistent desktop&amp;rsquo; actually means is that the state of a disk provided by a View Administrator is &amp;lsquo;persistent&amp;rsquo;. A desktop can be made persistent by recomposing or (scheduled) refreshing the deployed linked clones, resulting in exactly the state that a View Administrators expects it to be. From the view of end users using Linked Cloned Desktops, no persistence can actually be guaranteed, because all user actions will be undone by &amp;lsquo;Desktop Refresh&amp;rsquo; or &amp;lsquo;Desktop Recompose&amp;rsquo;.&lt;/li&gt;
&lt;li&gt;As soon as user modifications to the System Disk need to be persistent, no linked clone technology should be used. Instead, 1-on-1 desktops need to be provided, in which deployment tools like SCCM or Altiris will have to be available to maintain the system.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Roland van der Kruk is a freelance consultant in The Netherlands. He currently works with server-based computing and desktop delivery solutions. Roland can be contacted by email at roland@sbcprojects.com or through his website at http://www.sbcprojects.com.&lt;/em&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.brianmadden.com/aggbug.aspx?PostID=124210" width="1" height="1"&gt;</description></item><item><title>An introduction to VMware View 3 features and best practices, Part 1 of 3</title><link>http://www.brianmadden.com/blogs/guestbloggers/archive/2009/01/15/an-introduction-to-vmware-view-3-features-and-best-practices-part-1-of-3.aspx</link><pubDate>Thu, 15 Jan 2009 14:50:00 GMT</pubDate><guid isPermaLink="false">a59ee4a9-9560-4436-b47c-b649e4ba6aaa:124089</guid><dc:creator>Roland van der Kruk</dc:creator><slash:comments>21</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.brianmadden.com/blogs/guestbloggers/rsscomments.aspx?PostID=124089</wfw:commentRss><comments>http://www.brianmadden.com/blogs/guestbloggers/archive/2009/01/15/an-introduction-to-vmware-view-3-features-and-best-practices-part-1-of-3.aspx#comments</comments><description>&lt;p&gt;&lt;em&gt;In this three-part article series, Roland van der Kruk, a freelance consultant in The Netherlands, takes a look at the new features of VMware View 3, as well as best practices learned while doing a deployment for a customer. Part 1 (this article) provides information and insight on new features, &lt;a href="http://www.brianmadden.com/blogs/guestbloggers/archive/2009/01/18/an-introduction-to-vmware-view-3-part-2-of-3-linked-clones.aspx"&gt;Part 2&lt;/a&gt; looks at Linked Clones, and Part 3 will look at special considerations and best practices for deployment.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Early December 2008, VMware released their new product for the VDI market, VMware View 3.0. As a rather substantial update to the former version, VMware VDM 2.0, apparently the product name also had to undergo a change to underline the differences between the new product and its predecessor. In this article I will discuss the (new) features in View 3.0 and the way they work. I will first describe the components on which the product is based. Then I will focus on the different deployment types possible with View 3.0 and what happens during and after deploying different types of &amp;lsquo;desktop pools&amp;rsquo;. &lt;/p&gt;
&lt;p&gt;My experience with the new product is mainly based on an implementation that I did for a customer, who had a specific use case to provide desktop operating systems to developers around the globe. I will sometimes refer to other use cases as there are quite a few, however perhaps the biggest question that everyone probably has will remain unanswered, as the technology that makes up VDI is still developing. Where we can speak of an accepted and well known technology like Citrix XenApp, VDI is not nearly there yet. The question of how VDI will result in better return on investment than desktop deployment methods being used for many years now is not clear. It all depends on use cases and things like high availability requirements and hardware cost. Financial differences and justifications for using VDI or a traditional desktop model are not discussed in this article.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s first start with a description that VMware uses to describe the product and take it from there. &lt;/p&gt;
&lt;p&gt;VMware describes View 3.0 as follows:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;lsquo;The Next Generation of VDI, delivering rich, personalized desktops to any device with all benefits of centralized management&amp;rsquo;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;View 3.0 was created using different technologies that are found in other VMware products. Examples of technology used in View 3.0 include snapshotting as seen in VMware Workstation (see picture 1); VMware OS cloning as used in ESX; and Tomcat is used for the Web based administration console, which we have seen before in the free VMware Server product (including the &amp;ldquo;self-signed, untrusted certificates&amp;rdquo; &amp;lsquo;feature,&amp;rsquo; which is enabled by default ;-).&lt;/p&gt;
&lt;p&gt;Managing View 3.0 is fairly straightforward. It is quite easy to use once you are accustomed to the components and terminology used with this product. Troubleshooting might turn out different, so let&amp;rsquo;s hope this product is as stable as should be.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.brianmadden.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gabeknuth/View1.png" alt="" /&gt;&lt;br /&gt;&lt;em&gt;Picture 1 - Snapshotting in VMware Workstation&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;VMware View 3.0 only supports VMware Infrastructure and is not a hypervisor-independent product. In fact, due to the new technologies that were added to View 3.0, it also imposes some requirements to the Virtual Infrastructure you are using. Before installing the first bit of View 3.0, you should check the version you are running on. View 3.0 is supported starting with VMware Infrastructure 3.02, however VI 3.5 u3 is recommended since linked clones are supported, which is probably the part raising most questions but also promising the best use cases. Both ESX 3.5 as ESX 3.5i can be used for View 3.0.&lt;/p&gt;
&lt;h2&gt;Components and terminology&lt;/h2&gt;
&lt;p&gt;Although setting up View 3.0 in fact can be quite straightforward, at first I found it difficult to figure out which components were doing what, communicating where, and for what purpose. I will try to explain the product by naming and describing all of the important components and terms used in the product. &lt;/p&gt;
&lt;h3&gt;View Connection Server&lt;/h3&gt;
&lt;p&gt;A connection server is a server acting as desktop broker. It facilitates two web sites; one for users that want to access a virtual desktop and one for administrators managing the View 3.0 environment. The Connection Server communicates with Active directory and maps Active Directory users and groups to virtual desktops and desktop pools. This information, together with configuration data, is stored in a local LDAP database, for which VMware decided to use ADAM (Active Directory Application Mode). The ADAM database can be viewed through the locally installed ADAM AdsiEdit.&lt;/p&gt;
&lt;p&gt;Although the choice for ADAM as a database seems a good choice, unfortunately this also causes confusion, as with ADAM, a second LDAP database is introduced next to Active Directory. Confusion can arise when looking at the log messages in the Event log of the View Administrator console, where sometimes errors point to the ADAM LDAP database, while the actual error might be caused in communication towards Active Directory or vice versa. &lt;/p&gt;
&lt;p&gt;When the Connection Server software is installed, the &amp;lsquo;VMware View Connection Server&amp;rsquo; service is added, running under &amp;lsquo;local system&amp;rsquo;.&lt;/p&gt;
&lt;h3&gt;View Replica Server&lt;/h3&gt;
&lt;p&gt;The installation package for the Connection Server also contains the installation source for the &amp;lsquo;View Replica Server&amp;rsquo;. A View Replica Server is a Connection Server with its own replica of the ADAM database stored locally. All configuration data and changes are instantaneously replicated to all replica servers, resulting in entirely independent Connection Servers, being able to act on their own in case of failure of other replica servers.&lt;/p&gt;
&lt;h3&gt;View Security Server&lt;/h3&gt;
&lt;p&gt;The installation package for the Connection Server also contains the installation source for a &amp;lsquo;View Security Server&amp;rsquo;. A View Security Server acts somewhat like a Citrix Secure Gateway Server (the free software version) and is typically placed in a DMZ. Installation is very straightforward and the only important thing to configure is a 1-on-1 connection to a View Connection Server. After having connected a Security Server to a Connection Server, all instances of all Connection Servers are added to the configuration of the Security Server, not introducing awkward availability situations where a Security Server is available but its attached Connection Server is not. No ADAM database is stored locally and in fact the Security Server only function is to tunnel communication from the outside world users to the internal Connection servers over SSL. By simply entering the hostname of the security server in a web browser, the View Portal page is displayed, which actually is the View Portal page of a connection server.&lt;/p&gt;
&lt;h3&gt;View Portal&lt;/h3&gt;
&lt;p&gt;View Portal is the web page that facilitates users in accessing their desktops and is run on the Connection Server. After pointing a web browser to &lt;a href="https://connectionservername"&gt;https://connectionservername&lt;/a&gt;, a logon screen appears in which all domains are available that are trusted by the domain to which the Connection Server was added. View Portal is the default web page on each Connection Server and is secured with self-signed certificates out of the box. Unfortunately with View 3.0, access to the View Portal is still not possible from Windows Server 2003 R2 machines, as was the case with VDM 2. Surprisingly enough, it is possible to access virtual desktops from Windows Server 2003, but only with the View Client software installed.&lt;/p&gt;
&lt;h3&gt;View Administrator/View Manager&lt;/h3&gt;
&lt;p&gt;The console from which all View management can be done, like View configuration, desktop deployment, user session management and log event viewing has in fact two names; &amp;lsquo;View Administrator&amp;rsquo; and &amp;lsquo;View Manager&amp;rsquo;, as can be seen when the web based console is started. To start managing View 3.0, point a web browser to &lt;a href="https://servername.domain/admin"&gt;https://servername.domain/admin&lt;/a&gt;. Make sure you read that correctly; it is NOT &lt;a href="https://servername.domain/adm"&gt;https://servername.domain/adm&lt;/a&gt;, a little something that could eat you up for awhile if you don&amp;rsquo;t pay attention ;-). View configuration is done from one console that contains all possible configuration settings; a relief if you are accustomed to the different consoles that Citrix offers with their VDI product :) (see picture 2). Licenses, the connection to the Virtual Center server(s) and the account to perform all necessary actions in Virtual Center, the accounts to use that have permissions to add computer accounts in Active Directory, smart card support, a current usage overview, session timeout settings, SSL communication to the broker, login messages and more, it can all be accomplished using this one console which is even conveniently arranged. Hurray for VMware!&lt;/p&gt;
&lt;p&gt;Perhaps a disadvantage would be that no real delegation of control can be configured; either you are a View administrator or you are not. No room for user session management only, or permissions to only modify specific desktops or pools; one down for VMware&amp;hellip;&lt;/p&gt;
&lt;p&gt;The four tabs in the administration console are: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Desktops and Pools&lt;/strong&gt; - An overview of all desktop pools and other resources like Terminal Severs or bare metal pc&amp;rsquo;s, which can also be offered to users if the View Agent is installed. If the tab for Desktops and Pools is selected, sub windows appear on which all active sessions, accessible desktops, offline desktops and desktop policies can be viewed and managed.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Users and Groups&lt;/strong&gt; - An overview of desktop entitlements to Active Directory users and groups&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Configuration &amp;ndash; &lt;/strong&gt;All configuration for View 3.0 can be done here as mentioned before&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Events - &lt;/strong&gt;All events about desktop pool creation, desktop refresh etc. Events can be searched and filtered on number of days through the always-good-to-know symbol that VMware uses to show that more options are available: the triangle ;-) which looks like this:&lt;img src="http://www.brianmadden.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gabeknuth/ViewArrow.png" alt="" /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="http://www.brianmadden.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gabeknuth/View2.png" alt="" /&gt;&lt;br /&gt;&lt;em&gt;Picture 2 &amp;ndash; VMware View Administrator, configuration tab&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.brianmadden.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gabeknuth/View3.png" alt="" /&gt;&lt;br /&gt;&lt;em&gt;Picture 3 - An view on the &amp;lsquo;Desktops and Pools&amp;rsquo; tab in the View Administrator console, showing two desktop pools; one non persistent, one persistent&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;View Composer&lt;/h3&gt;
&lt;p&gt;View composer is a separate piece of software that has to be installed on the Virtual Center server if you want to use linked clones. Prior to doing that, a database needs to be created for which I used an MS SQL 2005 database, but SQL Express is also supported. You might consider using a separate account for the View Composer to run under, however I used the Active Directory Service account that Virtual Center is running under and granted the account dbowner rights on the LinkedClones database. &lt;/p&gt;
&lt;p&gt;While installing the View Composer software, the &amp;lsquo;&lt;em&gt;VMware View Composer&amp;rsquo;&lt;/em&gt; service is added as a Windows Service, however I could not finish the installation until I changed the logon credentials to run under the same account that &amp;lsquo;&lt;em&gt;VMware Virtual Center Server&amp;rsquo;&lt;/em&gt; service is running on. In the &lt;a href="http://www.vmware.com/pdf/viewmanager3_admin_guide.pdf"&gt;Administrators&amp;rsquo; guide for View Manager 3.0, page 104&lt;/a&gt; or in Table 1 below, you can see exactly which permissions are needed for View Composer to work.
  
&lt;/p&gt;
&lt;table cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;Privilege &lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;Group Privilege(s) to Enable&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;Folder&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Create Folder&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;Data store &lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Browse Data store, File Management&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;Virtual Machine &lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Inventory Configuration State&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Provisioning &amp;gt; Clone&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Provisioning &amp;gt; Allow Disk Access&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;Resource &lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Assign Virtual Machine To Resource Pool&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;Global &lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Enable Methods, Disable Methods&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;em&gt;Table 1 -&lt;strong&gt; &lt;/strong&gt;View Composer Account &amp;ndash; Minimal Privileges in Virtual Center&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;View Agent&lt;/h3&gt;
&lt;p&gt;View Agent is the component that you install inside the virtual machine that you want to use as a master VM. With the machine that you decide to make the &amp;lsquo;Master Virtual Machine&amp;rsquo;, you can deploy other virtual machines that are cloned from the Master VM. The VMware view agent consists of the following components:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.brianmadden.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gabeknuth/View4.png" alt="" /&gt;&lt;br /&gt;&lt;em&gt;Picture 4 &amp;ndash; Custom setup window of the View agent which is installed on the master VM&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&amp;middot; &lt;strong&gt;VDM Secure Authentication&lt;/strong&gt; &amp;ndash; This feature will install a piece of software that handles single sign-on. A user has to enter his credentials either on the View Portal or in the View Agent that is installed locally on his computer, and these credentials can be passed to the virtual desktop provided by View 3.0. This works in conjunction with the View Client, in which you can configure to use SSL for your communication or not.&lt;/p&gt;
&lt;p&gt;&amp;middot; &lt;strong&gt;USB Redirection&lt;/strong&gt; &amp;ndash; This feature handles connections from the clients&amp;rsquo; desktop USB devices to the virtual machine. I&amp;rsquo;ve already found out that HP USB keyboards with integrated smart card readers are not supported and requested an update for that particular device. There are probably more devices that are not yet supported, so make sure you test the devices that you might plan to use in your company&amp;rsquo;s View 3.0 future.&lt;/p&gt;
&lt;p&gt;&amp;middot; &lt;strong&gt;VMware View Composer Agent&lt;/strong&gt; &amp;ndash; This feature needs to be installed if you plan to use linked clones, more on that in Part 2 of this article.&lt;/p&gt;
&lt;p&gt;&amp;middot; &lt;strong&gt;Virtual Printing&lt;/strong&gt; &amp;ndash; This feature installs ThinPrint universal printing software. I found version 7.8.0.3 of the ThinPrint Output Gateway, dated 07/12/2007 and version 1.0.0.11 of the PostScript driver, which is more recent, dating from 6/18/2008. I concluded that with advanced multi-functional devices, not all options like stapling your papers are supported, in contrast to the Citrix Universal Printer driver, in which you can open the client devices&amp;rsquo; local printer properties window and access all options available in the native client driver. However, most options like paper size, orientation and duplex printing are available with the Virtual Printing feature.&lt;/p&gt;
&lt;h3&gt;View Client&lt;/h3&gt;
&lt;p&gt;View client is the component that end users have to install on their own system. With this client, USB redirection and single sign-on are supported. The View client installation package is automatically pushed if users having logged on to View Portal do not have the Client installed. The installation is straightforward, but unfortunately not available as web plug-in, so administrative permissions are required for the end user to install it. The view agent looks a bit like the regular RDP client from Microsoft; you start the client, enter the connection server that you want to logon to and after successful authentication, available resources are displayed in the View Client (see picture 5). &lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.brianmadden.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gabeknuth/View5.png" alt="" /&gt;&lt;br /&gt;&lt;em&gt;Picture 5 &amp;ndash; Logon screens of the View Client, which needs to be installed on the client pc of end users.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Part 2 will be released in the next few days and cover Linked Clones.&amp;nbsp; Part 3, available early next week, will discuss VMware View 3 best practices.&amp;nbsp; &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Roland van der Kruk is a freelance consultant in The Netherlands. He
currently works with server-based computing and desktop delivery
solutions. Roland can be contacted by email at &lt;a href="mailto:roland@sbcprojects.com"&gt;roland@sbcprojects.com&lt;/a&gt; or through his website at &lt;a href="http://www.sbcprojects.com"&gt;http://www.sbcprojects.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.brianmadden.com/aggbug.aspx?PostID=124089" width="1" height="1"&gt;</description></item><item><title>How to Deploy the XenApp Web Plugin (ICA Web Client) v11 via Web Interface 4.6 and Web Interface 5.0</title><link>http://www.brianmadden.com/blogs/guestbloggers/archive/2008/11/10/how-to-deploy-the-xenapp-web-plugin-ica-web-client-v11-via-web-interface-4-6-and-web-interface-5-0.aspx</link><pubDate>Mon, 10 Nov 2008 22:20:00 GMT</pubDate><guid isPermaLink="false">a59ee4a9-9560-4436-b47c-b649e4ba6aaa:121735</guid><dc:creator>Katie Koepke</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.brianmadden.com/blogs/guestbloggers/rsscomments.aspx?PostID=121735</wfw:commentRss><comments>http://www.brianmadden.com/blogs/guestbloggers/archive/2008/11/10/how-to-deploy-the-xenapp-web-plugin-ica-web-client-v11-via-web-interface-4-6-and-web-interface-5-0.aspx#comments</comments><description>&lt;p&gt;For those who would like a quick &amp;ldquo;Google-able&amp;rdquo; article on how to deploy the new XenApp Web Plugin (formerly known as the web client) this is the article for you.&lt;/p&gt;
&lt;p&gt;To do this, you basically follow the instructions from &lt;a href="http://support.citrix.com/article/CTX114097"&gt;CTX114097, &amp;ldquo;Deploying the Web Client 10.1 for Windows through Web Interface 4.6&amp;rdquo;&lt;/a&gt; but with a few modifications.&lt;/p&gt;
&lt;p&gt;First, &lt;a href="http://www.citrix.com/English/ss/downloads/details.asp?downloadId=1681207&amp;amp;productId=186&amp;amp;c1=sot2755"&gt;download the XenApp Web Plugin from Citrix&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;For Web Interface 4.6&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Rename XenAppWeb.msi to Ica32Web.msi.&lt;/li&gt;
&lt;li&gt;Copy Ica32Web.msi to \Program Files\Citrix\Web Interface\4.6.0\Clients\ica32. (Create the ica32 directory if it does not exist.)&lt;/li&gt;
&lt;li&gt;From a command prompt run iisreset.&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;For Web Interface 5.0:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Copy XenAppWeb.msi to \Program Files\Citrix\Web Interface\5.0.1\Clients\ica32.&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;(A rename of the file is not necessary.)From a command prompt run iisreset. &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Automatic Deployment and Installation of the Web Client&lt;/h3&gt;
&lt;p&gt;Web Interface 4.5 was the last version of Web Interface where automatic deployment and installation of the web client was an option. This is due to increased browser security in Internet Explorer and Vista making this capability too difficult. That said, you can only configure &amp;quot;automatic detection&amp;quot; in versions 4.6 and 5.0 as described above, versus &amp;quot;automatic deployment.&amp;quot;&lt;/p&gt;
&lt;p&gt;You should run Web Interface 4.6 instead 4.5 but if you must know how to configure automatic deployment, refer Citrix&amp;#39;s article &amp;quot;&lt;a href="http://support.citrix.com/article/CTX112732"&gt;How to Deploy the ICA Web Client Through Web Interface 4.5&lt;/a&gt;.&amp;quot;&lt;/p&gt;
&lt;p&gt;*Special thanks to Bertine Luzincourt and Scott McDonald from Citrix for their help!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.brianmadden.com/aggbug.aspx?PostID=121735" width="1" height="1"&gt;</description></item><item><title>Vista Aero Glass for VDI: What's real today</title><link>http://www.brianmadden.com/blogs/guestbloggers/archive/2008/02/24/vista-aero-glass-for-vdi-what-s-real-today.aspx</link><pubDate>Sun, 24 Feb 2008 22:00:25 GMT</pubDate><guid isPermaLink="false">a59ee4a9-9560-4436-b47c-b649e4ba6aaa:12813</guid><dc:creator>Glenda Canfield</dc:creator><slash:comments>17</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.brianmadden.com/blogs/guestbloggers/rsscomments.aspx?PostID=12813</wfw:commentRss><comments>http://www.brianmadden.com/blogs/guestbloggers/archive/2008/02/24/vista-aero-glass-for-vdi-what-s-real-today.aspx#comments</comments><description>Recently at the &lt;a href="/blog/TimMangan/Thoughts-from-Citrix-Summit-Keynote-day-1"&gt;Citrix Summit&lt;/a&gt; I collaborated with the Citrix Multimedia Virtualization Team to present a demo using XenDesktop / PortICA to deliver Vista Aero Glass from HP 2500 series blade PCs to HP&amp;#39;s t5730 (XPe) / t5735 (Linux) thin clients. (PortICA is &amp;quot;port ICA,&amp;quot; which is a Citrix implementation of the ICA protocol being served by a Vista workstation for VDI scenarios. The demo we presented was completely dependant on PortICA which requires XenDesktop. This is &lt;em&gt;not&lt;/em&gt; officially supported by Citrix or HP at this time.) &lt;p&gt;I also participated in a panel discussion with two members of the Citrix&amp;#39;s Multimedia Virtualization team: &lt;a href="http://community.citrix.com/blogs/citrite/derekt/"&gt;Derek Thorslund&lt;/a&gt;, Product Strategist, and Juan Rivera, Sr. Development Manager. We discussed &lt;a href="http://community.citrix.com/blogs/citrite/derekt/2008/02/01/Video+of+Apollo+at+the+Summit+08+Tech+Lab"&gt;Project Apollo&lt;/a&gt; as well as the various protocols and what the use case would be for each. If you attended Summit you should be able to download the video recording and slide deck from the session. (Session ID 806 - Multimedia Requirements for Desktop and Application Virtualization)&lt;/p&gt;&lt;p&gt;In this article, I would like to discuss a bit about how this demo worked and review some of the technical components required to deliver a Vista Aero Glass desktop to a remote client. Before I do this, let&amp;#39;s review the two different protocols that I&amp;#39;ll reference:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Citrix Project Apollo (PortICA, via the Thin Wire Virtual Channel):&lt;/em&gt;&lt;/strong&gt; Project Apollo is currently pre-alpha, but my understanding is that the graphics travel inside the ICA Protocol over the Thin Wire virtual channel. Glass graphics are compressed on the backend (or the VDI instance, in this case of a blade PC or workstation blade) and then decompressed on the client side using a CODEC that will probably be embedded in the ICA Client. The Connection Broker for this will of course be the XenDesktop broker.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;HP Remote Graphics Software (RGS):&lt;/em&gt;&lt;/strong&gt; HP&amp;#39;s RGS is a protocol that allows realtime remote access to graphics over a LAN providing a local user experience.&amp;nbsp;RGS uses a proprietary HP3 CODEC.&amp;nbsp; A key benefit here is if you&amp;#39;re using a pure HP-based solution, this protocol can be brokered by SAM (Session Allocation Manager, a broker which is sold with HP solutions only.)&lt;/p&gt;&lt;p&gt;Both of the above protocols work in essentially the same way.&amp;nbsp;They&amp;#39;re both screenscrape-based protocols. The graphics are compressed on the backend resource and decompressed on the end point using a CODEC. Both PortICA/Apollo and RGS are capable of remoting Vista Aero Glass to NON-Vista Aero end points. &lt;em&gt;(UPDATE: Since writing this article, HP contacted me to clarify that remoting Aero Glass is not &amp;quot;officially&amp;quot; supported over RGS, despite the fact that the lead RGS developer told me otherwise. So take that for what it&amp;#39;s worth!)&lt;/em&gt;&lt;/p&gt;&lt;h2&gt;What&amp;#39;s the difference between a Blade PC and a Workstation Blade?&lt;/h2&gt;&lt;p&gt;Now that we&amp;#39;ve looked at the protocols, let&amp;#39;s look at something else that I&amp;#39;ll discuss in this article: &amp;quot;Blade PCs&amp;quot; and &amp;quot;Workstation Blades.&amp;quot; Most people probably use the two terms interchangeably, but hardware vendors like HP do not. To HP, these are two different things. The main difference is&amp;nbsp;the hardware specs of the two, although there&amp;#39;s a cost difference as well. (Although in reality, any high-end graphically-intense VDI solution is going to be expensive. In most cases when it comes to a solution around high-end graphics, money is not the key factor and the decisions are based on performance and end user experience/perception.)&lt;/p&gt;&lt;h3&gt;HP 2500 series &amp;quot;Blade PC&amp;quot;&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;AMD Athlon 64 X2 3000+ dual-core processor&lt;/li&gt;&lt;li&gt;80GB Serial ATA 5400 RPM hard drive&lt;/li&gt;&lt;li&gt;1GB DDR2 SDRAM PC2 5300 (667 MHz) expandable to 4GB (2 SODIMM slots)&lt;/li&gt;&lt;li&gt;Two Broadcom 590 10/100 Integrated NICs, capable of PXE Boot&lt;/li&gt;&lt;li&gt;Embedded ATI DirectX 9-compliant graphics card&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;HP Documentation indicates this is &amp;ldquo;ideal for knowledge workers requiring cost effective access to many applications with increased graphics&amp;rdquo;.&lt;/p&gt;&lt;h3&gt;HP xw460c &amp;quot;Workstation Blade&amp;quot;&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;1 or 2 Intel Xeon dual-core processors running at up to 2.66 GHz&lt;/li&gt;&lt;li&gt;NVIDIA Quadro FX high performance graphics adapter&lt;/li&gt;&lt;li&gt;Up to 16GB of ECC, DDR2 memory running at 667 MHz&lt;/li&gt;&lt;li&gt;Two 1 GB/s NICs&lt;/li&gt;&lt;li&gt;1 to 2 high-speed Serial Attached SCSI disk drives&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;HP Documentation indicates this is &amp;ldquo;ideal for engineers, designers, and traders with applications requiring more demanding 2D/3D graphics and/or the support of more than two displays&amp;rdquo;&lt;/p&gt;&lt;p&gt;As you can see, a &amp;quot;Workstation Blade&amp;quot; is a much higher-end device, with more processors, more RAM, and a SCSI disk. It is truly an Engineer&amp;#39;s Workstation in a blade form factor, whereas a &amp;quot;Blade PC&amp;quot; is more like a typical end-user&amp;#39;s computer.&lt;/p&gt;&lt;h2&gt;The collaboration between HP and Citrix&lt;/h2&gt;&lt;p&gt;What made the collaboration between HP and Citrix on Project Apollo interesting in my mind are two things:&lt;/p&gt;&lt;p&gt;The first is that most servers do not have a GPU in them, and even if they did, you cannot share the GPU in a hypervisor solution because of I/O issues. So to provide a full multimedia experience you only have two &amp;ldquo;realistic&amp;rdquo; choices: a blade PC or a workstation blade because each is a 1-to-1 connection which means each user gets their own GPU. You &lt;em&gt;must&lt;/em&gt; have a resource on the backend that is Vista Aero Glass capable in order to deliver it to an end point such as a Thin Client. (Of course it&amp;#39;s also necessary to have an protocol algorithm that can support it, i.e. PortICA or RGS.)&lt;/p&gt;&lt;p&gt;NOTE:&amp;nbsp; For those of you unfamiliar with the recommended hardware requirements for Vista Aero Glass, they are a 1GHz processor, 1GB of RAM, and a DirectX 9-capable 3D graphics system.&lt;/p&gt;&lt;p&gt;The use case for this would be end users who are working with graphically-intense applications.&amp;nbsp;As the .Net 3.0 architecture becomes more widely adopted and more WPF and 3D applications are deployed, people will be forced to migrate to Vista to take advantage of them.&amp;nbsp;It is not currently possible to get this experience from XP.&amp;nbsp;Nor can you get it from Vista in a virtual machine because Aero Glass is not supported in VMs. Most users are leveraging productivity applications today so for the most part hypervisor-based VDI is sufficient to meet their needs.&lt;/p&gt;&lt;p&gt;However, the more common VDI becomes, the use case for Blade PCs and Workstation Blades will become more compelling as a solution. Certainly some of the existing barriers to adoption will be a thing of the past. The way I see it, with servers becoming more commoditized (with the advent of hypervisors in general, but especially with the embedded hypervisor), the more important the end user experience will become.&amp;nbsp;That means MULTIMEDIA!&lt;/p&gt;&lt;p&gt;A potential road block that I see is having a broker to manage the connections. I understand that at this time the only qualified connection broker is HP&amp;#39;s SAM Broker.&amp;nbsp;A key benefit here is if you&amp;#39;re using a pure HP-based solution, the RGS protocol can be brokered by SAM (Session Allocation Manager). Both RGS and SAM have been fully qualified on both the HP Blade PCs &amp;amp; Workstation Blades.&amp;nbsp;Today you can remote Vista Aero to XP with RGS but it is not available for Thin Clients.&lt;/p&gt;&lt;p&gt;The second interesting thought is the idea of delivering Vista Aero Glass to a thin client, particularly a Linux-based thin client. Linux is becoming a very attractive option for customers as VDI is becoming more popular simply because the idea of paying for a license for two Microsoft operating systems is unappealing to pretty much everyone.&amp;nbsp; There are also a lot of customers who look at Linux and think &amp;ldquo;zero maintenance.&amp;rdquo; In some cases they see that as being more important--more so even than the cost of two Microsoft licenses.&amp;nbsp;A barrier here is end user acceptance. You have to get buy-in from them for this to be successfully deployed. I can say having worked with Linux thin clients, most are starting to look and feel closer to Windows but there is still a marked difference in how you navigate.&lt;/p&gt;&lt;p&gt;I see a great future for VDI, but until the server GPU I/O problem is solved Blade PCs and Workstation Blades are really the only viable solution if you want a complete Vista Aero Glass and Multimedia experience in a VDI scenario. Both HP (RGS) and Citrix (PortICA) are doing some pretty cool work around this and I find it intriguing that it will soon be possible to get a Vista Aero Glass experience using Blade PC&amp;#39;s/Workstation Blades to deliver a real-time multimedia experience to a Thin Client, whether it is XPe or Linux.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.brianmadden.com/aggbug.aspx?PostID=12813" width="1" height="1"&gt;</description></item><item><title>VB Script to Backup / Restore CPS policies</title><link>http://www.brianmadden.com/blogs/guestbloggers/archive/2007/12/06/vb-script-to-backup-restore-cps-policies.aspx</link><pubDate>Thu, 06 Dec 2007 06:31:46 GMT</pubDate><guid isPermaLink="false">a59ee4a9-9560-4436-b47c-b649e4ba6aaa:12460</guid><dc:creator>Mark Elliott</dc:creator><slash:comments>39</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.brianmadden.com/blogs/guestbloggers/rsscomments.aspx?PostID=12460</wfw:commentRss><comments>http://www.brianmadden.com/blogs/guestbloggers/archive/2007/12/06/vb-script-to-backup-restore-cps-policies.aspx#comments</comments><description>&lt;p&gt;In response to several requests in our forums, Mark Elliott has written a couple of VB scripts that backup and restore policies stored in a Citrix Presentation Server 4.0 or 4.5 farm.&lt;/p&gt;&lt;p&gt;The backup script is pretty straightforward. It allows you to parse two (optional) parameters:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Logging detail level&lt;/li&gt;&lt;li&gt;XML file name the policy information is written to&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The restore script has some more parameters, all of which are optional. For example, you can:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Specify the logging detail&lt;/li&gt;&lt;li&gt;Whether or not to apply the policy filter&lt;/li&gt;&lt;li&gt;Whether or not to overwrite a policy if it already exists&lt;/li&gt;&lt;li&gt;The name of the XML file that you&amp;#39;re restoring (from the backup script)&lt;/li&gt;&lt;li&gt;The policy name (if you only want to restore a subset of the policies in the XML file)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://www.brianmadden.com/downloads/get/VB-Script-to-Backup--Restore-CPS-policies"&gt;Download a ZIP file containing these two scripts here.&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.brianmadden.com/aggbug.aspx?PostID=12460" width="1" height="1"&gt;</description><enclosure url="http://www.brianmadden.com/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.01.24.60/CitrixPolicyBackup.zip" length="14137" type="application/x-compressed" /></item><item><title>How to Automate the Backup of a SQL Server 2005 Express Data Store</title><link>http://www.brianmadden.com/blogs/guestbloggers/archive/2007/05/07/how-to-automate-the-backup-of-a-sql-server-2005-express-data-store.aspx</link><pubDate>Mon, 07 May 2007 07:13:31 GMT</pubDate><guid isPermaLink="false">a59ee4a9-9560-4436-b47c-b649e4ba6aaa:11279</guid><dc:creator>Katie Koepke</dc:creator><slash:comments>34</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.brianmadden.com/blogs/guestbloggers/rsscomments.aspx?PostID=11279</wfw:commentRss><comments>http://www.brianmadden.com/blogs/guestbloggers/archive/2007/05/07/how-to-automate-the-backup-of-a-sql-server-2005-express-data-store.aspx#comments</comments><description>&lt;p&gt;I recently built a Presentation Server 4.5 (PS 4.5) farm where the decision was made to use a SQL Server 2005 Express database as the IMA data store. When it came time to create an automated backup of the data store, I soon realized the process was not at simple as creating a SQL job in a friendly GUI as with a full-blown SQL Server install, or running DSMAINT BACKUP. This article describes how automate the backup a SQL Server Express data store without having to purchase a third-party tool or without having to learn SQL programming. That said, this document is intended for the non-SQL savvy administrator unfamiliar with creating T-SQL statements.&lt;/p&gt;&lt;p&gt;As you may know, it&amp;rsquo;s very easy to install and use a SQL Server Express database as your data store since Citrix provides at custom batch file in the PS 4.5 Support folder. Running \Support\SqlExpress_2005_SP1\SetupSqlExpressForCPS.cmd automatically installs and configures a SQL Server Express instance named CITRIX_METAFRAME. By default, three SQL Server Express configuration tools (SQL Server Configuration Manager, SQL Server Error and Usage Reporting, and SQL Server Surface Area Configuration) are also installed on the server, but none of these can be used to configure a backup.&lt;/p&gt;&lt;h2&gt;Creating the Database Backup Script&lt;/h2&gt;&lt;p&gt;For further SQL Server Express management options &lt;a href="http://msdn.microsoft.com/vstudio/express/sql/download/"&gt;download and install SQL Server Management Studio Express&lt;/a&gt; .&amp;nbsp; This is a free tool from Microsoft and will be used to create a script to backup your data store.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Once the tool is installed, launch Microsoft SQL Server Management Studio Express and connect to the CITRIX_METAFRAME instance.&lt;/li&gt;&lt;li&gt;Expand Databases and you will see the MF20 database. (This is the default name of the database that was created when creating the Presentation Server farm.)&lt;/li&gt;&lt;li&gt;Right click the MF20 database and select &amp;ldquo;Tasks | Backup&amp;rdquo;.&amp;nbsp; A dialog box appears allowing you to define different options such as what type of backup (full or differential) you want to do, backup destination etc. Configure the available options as desired then click the &amp;ldquo;Options&amp;rdquo; page on the left-hand column. Continue configuring options accordingly. For example, you may want to select &amp;ldquo;overwrite all existing backup sets.&amp;rdquo;&lt;/li&gt;&lt;li&gt;Once all desired options are set, select &amp;ldquo;Script | Actions to File&amp;rdquo; and enter a desired file name, for example, &amp;ldquo;DatastoreBackup,&amp;rdquo; and specify the location where to save the file.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;This creates a .SQL file which scripts the options you defined in the prior step. The contents of your .SQL file may look like this:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://www.brianmadden.com/library/content/sql%20backup.jpg" alt=" " width="432" height="388" /&gt;&lt;/div&gt; &lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;BACKUP DATABASE [MF20] TO&amp;nbsp; DISK = N&amp;#39;C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\MF20.bak&amp;#39; WITH NOFORMAT, INIT,&amp;nbsp; NAME = N&amp;#39;MF20-Full Database Backup&amp;#39;, SKIP, NOREWIND, NOUNLOAD,&amp;nbsp; STATS = 10&lt;br /&gt;GO&lt;/p&gt;&lt;p&gt;To test your .SQL file run the following from a command prompt.&lt;/p&gt;&lt;p&gt;sqlcmd -S .\CITRIX_METAFRAME -i &amp;quot;C:\&amp;lt;enter path to .sql file&amp;gt;\DatastoreBackup.sql&amp;quot;&lt;/p&gt;&lt;p&gt;If the MF20.bak file was created with the correct data and time stamp then you know your script works. By default the MF20.bak is located in C:\Program Files\Microsoft SQL Server\MSSQL\MSSQL\Backup. (This folder might be &amp;ldquo;MSSQL.1&amp;rdquo; or &amp;ldquo;MSSQL.x&amp;rdquo; depending on what else is on your server.)&lt;/p&gt;&lt;h2&gt;Automating the Database Backup&lt;/h2&gt;&lt;p&gt;You can automate the backup process by creating two Scheduled Tasks.&lt;/p&gt;&lt;h3&gt;SQLCMD Scheduled Task&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;First, create a Scheduled Task to automate the .SQL script created above. Use the Scheduled Task Wizard and when asked to select a program browse to use browse to C:\Program Files\Microsoft SQL Server\90\Tools\binn\ SQLCMD.exe. Define the Schedule Task parameters accordingly and click &amp;ldquo;Finish&amp;rdquo;.&lt;/li&gt;&lt;li&gt;Go the properties of the newly created Scheduled Task and edit the Run command as such.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&amp;quot;C:\Program Files\Microsoft SQL Server\90\Tools\Binn\SQLCMD.EXE&amp;quot; -S .\CITRIX_METAFRAME -i &amp;quot;C:\Program Files\Microsoft SQL Server\DatastoreBackup.sql&amp;quot;&lt;/p&gt;&lt;h3&gt;Copy MF20.bak Scheduled Task&lt;/h3&gt;Next, create a simple batch file to copy the MF20.bak from the local server to a network share located on server being backed up regularly.&amp;nbsp; For example, create a file named, &amp;ldquo;CopyMF20bak.cmd&amp;rdquo;, with the following contents. &amp;nbsp;&lt;p&gt;copy &amp;quot;C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\MF20.bak&amp;quot; &amp;quot;\\&amp;lt;servername&amp;gt;\&amp;lt;sharename&amp;gt;\&amp;quot;&lt;/p&gt;&lt;p&gt;Lastly, create a simple Command Prompt Scheduled Task and configure accordingly. (Make sure to run this Scheduled Task after the SQLCMD Scheduled Task.)&amp;nbsp; Go to the properties of the newly created Scheduled Task and edit the Run command to point to the location of CopyMF20bak.cmd (or your respective batch file name).&lt;/p&gt;&lt;h3&gt;Resources&lt;/h3&gt;&lt;p&gt;&lt;a href="http://www.sqldbatips.com/showarticle.asp?ID=27"&gt;http://www.sqldbatips.com/showarticle.asp?ID=27&lt;/a&gt; &lt;br /&gt;&lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=487021&amp;amp;SiteID=1"&gt;http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=487021&amp;amp;SiteID=1&lt;/a&gt; &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/vstudio/express/sql/download/"&gt;http://msdn.microsoft.com/vstudio/express/sql/download/&lt;/a&gt; &lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.brianmadden.com/aggbug.aspx?PostID=11279" width="1" height="1"&gt;</description></item><item><title>Login Consultants releases free tool for converting MSI packages to SoftGrid sequences!</title><link>http://www.brianmadden.com/blogs/guestbloggers/archive/2007/03/06/login-consultants-releases-free-tool-for-converting-msi-packages-to-softgrid-sequences.aspx</link><pubDate>Tue, 06 Mar 2007 12:10:00 GMT</pubDate><guid isPermaLink="false">a59ee4a9-9560-4436-b47c-b649e4ba6aaa:11058</guid><dc:creator>Jeroen van de Kamp</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.brianmadden.com/blogs/guestbloggers/rsscomments.aspx?PostID=11058</wfw:commentRss><comments>http://www.brianmadden.com/blogs/guestbloggers/archive/2007/03/06/login-consultants-releases-free-tool-for-converting-msi-packages-to-softgrid-sequences.aspx#comments</comments><description>&lt;p&gt;Now that Softricity has been &lt;a href="http://www.brianmadden.com/content/content.asp?ID=593"&gt;acquired by Microsoft&lt;/a&gt; and its &lt;a href="http://www.brianmadden.com/content/content.asp?ID=619"&gt;price has been decreased&lt;/a&gt; so much, interest for SoftGrid is rapidly growing. Most enterprises have invested in MSI-based application packaging, and converting these packages into SoftGrid sequences can be laborious. To address this, Dennis Damen and Rodney Medina have created the SoftGrid Migration tool (SMGT). The SoftGrid Migration Tool is an add-on for the native SoftGrid Sequencer that helps you quickly “convert” existing automated application setups to SoftGrid Virtualized Applications (a.k.a. &amp;quot;streams&amp;quot; or &amp;quot;sequences&amp;quot;) with the least possible amount of user intervention. This tool can be a huge benefit if you&amp;#39;re planning to integrate SoftGrid with an existing software distribution sytem like SMS or Altiris. (If you want to virtualize applications that only have a manual setup, we still recommend using the native SoftGrid Sequencer.)&lt;/p&gt;
&lt;p&gt;When using the SoftGrid Migration Tool for converting applications the SoftGrid sequencing, best practices still apply. (Check out &lt;a href="http://support.microsoft.com/kb/932137/en-us"&gt;Microsoft KB article 932137&lt;/a&gt; for a list of sequencing best practices.)&lt;/p&gt;
&lt;p&gt;The SoftGrid Migration Tool was written in Visual Basic 2005 and requires the .NET Framework 2.0 or higher in order to work. 
  It&amp;#39;s very easy to use:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;From the zip file, copy the SGMT.exe, defaults.ini, and SettingsChanged.exe to the sequencer machine and start the SGMT executable.&lt;/li&gt;
  &lt;li&gt;Add the automated application setup(s) that needs to be converted to one virtual application.&lt;/li&gt;
  &lt;li&gt;Enter the appropriate SoftGrid Sequencing settings.&lt;/li&gt;
  &lt;li&gt;Click Start.&lt;/li&gt;
  &lt;li&gt;When done, copy the content of the entered output path to the SoftGrid Server’s content folder.&lt;/li&gt;
  &lt;li&gt;Import/Add the application to the SoftGrid Management Console.&lt;/li&gt;
  &lt;li&gt;Always test the application afterwards!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The tool is 100% freeware and available &lt;a href="http://www.loginconsultants.com/index.php?option=com_docman&amp;amp;task=doc_details&amp;amp;gid=10&amp;amp;Itemid=62"&gt;from Login Consultants download section&lt;/a&gt; (free registration required).&lt;/p&gt;
&lt;p align="center"&gt;&lt;img src="http://www.brianmadden.com/content/images/sgmt2.gif" width="400" height="305" alt="" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.brianmadden.com/aggbug.aspx?PostID=11058" width="1" height="1"&gt;</description></item><item><title>Updated: Lanmanserver and Lanmanworkstation Tuning</title><link>http://www.brianmadden.com/blogs/guestbloggers/archive/2007/02/19/updated-lanmanserver-and-lanmanworkstation-tuning.aspx</link><pubDate>Tue, 20 Feb 2007 00:00:00 GMT</pubDate><guid isPermaLink="false">a59ee4a9-9560-4436-b47c-b649e4ba6aaa:10073</guid><dc:creator>Michel  Roth</dc:creator><slash:comments>36</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.brianmadden.com/blogs/guestbloggers/rsscomments.aspx?PostID=10073</wfw:commentRss><comments>http://www.brianmadden.com/blogs/guestbloggers/archive/2007/02/19/updated-lanmanserver-and-lanmanworkstation-tuning.aspx#comments</comments><description>&lt;p&gt;Fileserving in Windows environments is usually of critical importance. After all, if you can&amp;#39;t reach your files or have to wait five minutes every time you browse a share, the heat starts to build up in the IT department.&lt;/p&gt;
&lt;p&gt; File serving is more than just saving a file to your home directory. I wrote a two-part article on &lt;a href="http://www.msterminalservices.org"&gt;MSTerminalServices.org&lt;/a&gt; on file serving and Terminal server environments. I suggest you read that article (&lt;a href="http://www.msterminalservices.org/articles/Fileserving-Terminal-Server-Environments-Part1.html"&gt;Part 1&lt;/a&gt; and &lt;a href="http://www.msterminalservices.org/articles/Fileserving-Terminal-Server-Environments-Part2.html"&gt;Part 2&lt;/a&gt; ) first to get a feel for the proper context of this article.&lt;/p&gt;
&lt;p&gt; One of the main reasons I wrote that article is that fileserving can easily become a bottleneck if not configured properly, especially in Terminal Server environments.&lt;/p&gt;
&lt;p&gt; To solve these performance problems, you sometimes have to tune the fileserver (lanmanserver) and the “fileserver-client” (lanmanworkstation). However, this isn’t for the faint of heart and can cause huge problems if you do it wrong. Unfortunately, documentation on these tuning parameters is rather scarce.&lt;/p&gt;
&lt;p&gt; So in this article, I’ll try to explain what the important parameters are, what they do, and how they relate to each other. Once you know this, you&amp;#39;ll be able to tune your fileserving environments yourself.&lt;/p&gt;
&lt;p&gt; Before we jump into this, please note that there are also a great deal optimizations that you can do in the &amp;quot;Terminal Server  Terminal Server Client&amp;quot; hemisphere. Although the basic fileserving principles also apply in that area, this article is not meant to help you perform those optimizations. Also, there is a lot of additional tweaking you can do in other parts of the (Terminal Server) registry. I&amp;#39;ve purposely left these optimizations out because I wanted this article to focus on the performance of Fileserving components only.&lt;/p&gt;
&lt;p&gt; This article was written assuming you’re running Windows 2000 (SP4+) or Windows Server 2003, Service Pack 1.&lt;/p&gt;
&lt;h2&gt;  Core Components &lt;/h2&gt;
&lt;p&gt;Before we get down and dirty, we need to take a look at the core components that the Windows file serving environment is made of. File serving in Windows is a classic example of a Client-Server mechanism. All you have to do become a file server is to check the box “file and printer sharing for Microsoft networks” in the network connection properties box. On the other end all you have to do to “use” this file server is to check the box “client for Microsoft Networks”.&lt;/p&gt;
&lt;p&gt; Both the server and the client components are run as a service. Not surprisingly, this is the &amp;quot;Server&amp;quot; service for the server component and the &amp;quot;Workstation&amp;quot; service for the client components.&lt;/p&gt;
&lt;p&gt; Settings for these services are stored in the Windows registry. For the Server service this location is: &lt;strong&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver&lt;/strong&gt;. The corresponding location for the Workstation service is &lt;strong&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanworkstation&lt;/strong&gt;.&lt;/p&gt;
&lt;h3&gt;Lanmanserver &lt;/h3&gt;
&lt;p&gt;By default, the lanmanserver registry key on a freshly installed Windows Server 2003 Service Pack 1 machine looks like this:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" hspace="0" src="http://www.brianmadden.com/content/images/lanmanserver.jpg" align="baseline" border="0" /&gt;&lt;/p&gt;
&lt;p&gt;The first sub key we encounter is the “AutotunedParameters” key. If you look at it you&amp;#39;ll see that it&amp;#39;s empty. Don’t worry--it’s supposed to be empty. This registry key exists because, by default, the Server service is auto-tuning. This means that every time the system boots, the server takes a look at the hardware configuration and incorporates any changes in the configuration of the Server service. Changes in hardware that are monitored are the amount of memory and the number of processors. There’s even a formula for it:&lt;/p&gt;
&lt;p&gt; (4*(MB*SMBServerPerfSetting)*OSVersion/1)*(#Processors)&lt;/p&gt;
&lt;p&gt;where:&lt;/p&gt;
&lt;p&gt;MB = Megabytes RAM on the server&lt;br /&gt;
  SMBServerPerfSetting = .5 if &amp;quot;Minimize Memory Used&amp;quot;&lt;br /&gt;
  SMBServerPerfSetting = 1 if &amp;quot;Balance&amp;quot;&lt;br /&gt;
  SMBServerPerfSetting = 2 if &amp;quot;Maximize Throughput for File Sharing&amp;quot;&lt;br /&gt;
  OSVersion = 2 if running NTServer with &amp;gt; 16MB RAM&lt;br /&gt;
  #Processors = is the number of processors in the system&lt;/p&gt;
&lt;p&gt;In the formula you’ll notice that it refers to the SMBServerPerfSetting. This brings us to the only GUI ‘tool” native to Windows that you can use to “tune” the Server service. When you select the properties of a connection and then select the properties of “file and printer sharing for Microsoft networks”, you should end up with a window like this:&lt;/p&gt;
&lt;p align="center"&gt;&lt;img alt="" hspace="0" src="http://www.brianmadden.com/content/images/optimize-lanmanserver.jpg" align="baseline" border="0" /&gt;&lt;/p&gt;
&lt;p&gt;This is where you can optimize the Server service for a specific role. Consequently, if you do the numbers you’ll see that the higher you set the SMBServerPerfSetting, the higher the outcome of the formula is. But what is this number? Good question.&lt;/p&gt;
&lt;p&gt; This number represents the value Windows will use for the MaxWorkItems, an important value in tuning the Server service. However, MaxWorkItems is just one of the parameters you can set to tune your fileserver. Let’s take a look at the (registry) values.&lt;/p&gt;
&lt;h3&gt;Parameters&lt;/h3&gt;
&lt;p&gt;Before we begin discussing the relevant parameters you can use to tune the Server service you should know that you should create them in the parameters sub key of the lanmanserver registry key. Let’s take look at the most important parameters:&lt;/p&gt;
&lt;h4&gt;MaxWorkItems&lt;/h4&gt;
&lt;p&gt;As said, MaxWorkItems isn’t the only thing tuning the Server service. It is one of the most important parameters though. What does this parameter mean? Well, MaxWorkItems specifies the maximum number or work items (receive buffers for file requests) that the Server service is permitted to allocate at one time. If this limit is reached, you get really bad performance out of your file server on even no performance (new connections to the file server are denied).&lt;/p&gt;
&lt;p&gt;Possible values: 1-65535&lt;/p&gt;
&lt;h4&gt;InitWorkItems&lt;/h4&gt;
&lt;p&gt;This configures the number of work items allocated to a processor during startup. (The &amp;quot;initial&amp;quot; work items.) If this number is too low, it can significantly reduce performance or even deny new connections to the file server.&lt;/p&gt;
&lt;p&gt;Possible values: 1-512&lt;/p&gt;
&lt;h4&gt;MaxMpxCt&lt;/h4&gt;
&lt;p&gt; This parameter permits a fileserver to provide a suggested maximum number of simultaneous outstanding client requests to itself. During negotiation of the Server Message Block dialect on this initial connection, this value is passed to the client&amp;#39;s redirector where the limit on outstanding requests is enforced. A higher value can increase server performance, but requires more use of server work items (MaxWorkItems).&lt;/p&gt;
&lt;p&gt;Possible values: 1-65535&lt;/p&gt;
&lt;h4&gt;MaxWorkItems and MaxMpxCt Relationship&lt;/h4&gt;
&lt;p&gt;The value for MaxWorkItems must be at least four times as large as that for MaxMpxCt. For example, if MaxMpxCt has a value of 4096, then MaxWorkItems needs to have a value of at least 16384.&lt;/p&gt;
&lt;h4&gt;MaxRawWorkItems&lt;/h4&gt;
&lt;p&gt;This value determines the maximum number of raw receive buffers that a server can allocate. If this limit is reached, server performance may be degraded.&lt;/p&gt;
&lt;p&gt; Possible values: 1-512&lt;/p&gt;
&lt;h4&gt;MaxFreeConnections&lt;/h4&gt;
&lt;p&gt;This value controls the number of free connection blocks that are maintained for each endpoint.&lt;/p&gt;
&lt;p&gt;Possible values: 2–4096 &lt;/p&gt;
&lt;h4&gt;MinFreeConnections&lt;/h4&gt;
&lt;p&gt;This value specifies the minimum number of free connection blocks to be maintained for each endpoint. This setting can sometimes dramatically improve performance.&lt;/p&gt;
&lt;p&gt;Possible values: 0–256 &lt;/p&gt;
&lt;h4&gt;SizReqBuf&lt;/h4&gt;
&lt;p&gt;This specifies the size of a WorkItem (see MaxWorkItems) that the Server service uses. Small WorkItems use less memory, but large WorkItems can improve performance.&lt;/p&gt;
&lt;p&gt; When running applications that use a lot of copy or move functions to a remote server (profiles anyone?), the speed at which this function completes is determined by network speed (of course) and by the SMB size. By increasing this WorkItems size, you will allow the server to complete its file copies faster. This will increase the performance of the application making the copy/move calls.&lt;/p&gt;
&lt;p&gt; For computers running Windows Server 2003 and with 512 MB or more of physical memory, the default size of the request buffers is 16,644 bytes; for servers with less physical memory, the default size is 4,356 bytes. If this entry is present in the registry, its value overrides the default value.&lt;/p&gt;
&lt;p&gt;Possible values: 1-65535&lt;/p&gt;
&lt;h2&gt; Lanmanworkstation&lt;/h2&gt;
This key is where all the configuration data for the Workstation service is stored. The lanmanworkstation key by default, looks like this on a freshly installed Windows Server 2003 Service Pack 1 machine:
&lt;p&gt;&lt;img alt="" hspace="0" src="http://www.brianmadden.com/content/images/lanmanworkstation.jpg" align="baseline" border="0" /&gt;&lt;/p&gt;
&lt;p&gt;As you can see, there’s no “AutotunedParameters” here. However, there is a &amp;quot;parameters&amp;quot; sub key in which we can do some tuning. It is not uncommon (especially in Terminal Server environments) to have to tune the Workstation service to alleviate performance problems. This is due to the nature of Terminal Servers. My article on MSTerminalServices.org discusses this in detail, but in a nutshell it’s like this: the workstation service was (and is) designed for a single workstation (like your desktop). However, a Terminal Server can easily host 50 desktop sessions, but unless you do manually intervene this server most likely is still configured just as your desktop would be. It’s pretty obvious that this could lead to some performance problems.&lt;/p&gt;
&lt;h3&gt;Parameters&lt;/h3&gt;
&lt;p&gt;Although there aren’t that many important parameters like in lanmanserver, there are still a few parameters of the Workstation service you should definitely know about.&lt;/p&gt;
&lt;h4&gt;MaxCmds&lt;/h4&gt;
&lt;p&gt;Specifies the maximum number of network control blocks that the redirector can reserve. The value of this entry coincides with the number of execution threads that can be outstanding simultaneously. Increase this value to improve network throughput, especially if you are running applications that perform more than 15 operations simultaneously.&lt;/p&gt;
&lt;p&gt;MaxCmds actually serves the same purpose as the MaxMpxCt on the Fileserver. Not surprisingly these two parameters have a special relationship. It’s like this: whenever an SMB session is setup (i.e. a shared file is accessed), the SMB session is negotiated. During this negotiation the Fileserver passes down the value of MaxMpxCt to the client (a Terminal server for example). The client then compares this value to his own MaxCmds value. The lower of the two values then is used to set a maximum on the number of outstanding client requests to the File server.&lt;/p&gt;
&lt;p&gt;Possible values: 1-65535&lt;/p&gt;
&lt;h4&gt;MaxThreads&lt;/h4&gt;
&lt;p&gt;The MaxThreads specifies how many threads are allowed to run at once. (Each thread allows one outstanding operation.) By increasing this you can increase the amount of simultaneous work. Each extra execution thread will take 1 Kbyte of additional NonPaged pool memory.&lt;/p&gt;
&lt;p&gt;Possible values: 1-255&lt;/p&gt;
&lt;h4&gt;MaxCollectionCount&lt;/h4&gt;
&lt;p&gt;Specifies the amount of data that must be present in the buffer of the redirector to trigger a write operation. If the amount of data in the buffer meets or exceeds this value, then it is written immediately. Otherwise, it is retained in the buffer until either more data is added or the value of the CollectionTime entry expires.&lt;/p&gt;
&lt;p&gt;Possible values: 1-65535&lt;/p&gt;
&lt;h4&gt;Monitoring &lt;/h4&gt;
&lt;p&gt;Problems stemming from poor fileserving performance can sometimes be a bit tricky to pinpoint. One way to make sure is by using good ol’ perfmon. The problem with interpreting perfmon counters is that you can never know what the &amp;quot;right&amp;quot; value is unless you have baselined your environment properly. So what to monitor and how to interpret those values is entirely up to you. However, there are some counters you can monitor that I can give some basic tips on. Configure perfmon to monitor the following counters:&lt;/p&gt;
&lt;h4&gt;Physical Disk&lt;/h4&gt;
&lt;p&gt;You can measure this on the Terminal Server as well, but you should start at the file server. If the queue length is more than one for a sustained period of time, then your disks are hyperventilating. Give them some air: up your I/O throughput. Look on the software-side: are you paging a lot? (that&amp;#39;ll kill your I/O throughput right there) or is your system disk heavily fragmented? Or on the hardware side: buy faster disks (15K SCSI) or upgrade your RAID controller.&lt;/p&gt;
&lt;h4&gt;Redirector&lt;/h4&gt;
&lt;p&gt;This is something you should only measure on your Terminal Server(s). You should monitor the &amp;quot;current commands&amp;quot; in the Redirector object. If the value is higher than 20 during sustained periods of time then you could have a bottleneck.&lt;/p&gt;
&lt;h4&gt;Server Work Queues&lt;/h4&gt;
&lt;p&gt;The Server Work Queues object should be monitored on the File server. You should monitor the &amp;quot;Available WorkItems&amp;quot; counter. Sustained values smaller than ten mean that the File server is running out of work items. When it does, performance really starts to plummet. Make sure this doesn&amp;#39;t happen by upping the MinFreeworkItems value.&lt;/p&gt;
&lt;h4&gt;Server&lt;/h4&gt;
&lt;p&gt;In this object there&amp;#39;s a counter called &amp;quot;Work Item Shortages&amp;quot;. This value represents the number of times no work items were available or couldn&amp;#39;t be allocated to service a file request. Obviously if you see any other value than zero, you need to start worrying. Upping the InitWorkItems or MaxWorkItems could help out here.&lt;/p&gt;
&lt;p&gt; Again, there&amp;#39;s so much more you can monitor but interpreting the results depends heavily on your environment. Just browsing the performance monitor objects I mentioned and playing around with it will give you a lot more information.&lt;/p&gt;
&lt;h2&gt;Tuning&lt;/h2&gt;
&lt;p&gt; So what do I set these registry values to? Unfortunately it’s not that simple. For starters, it depends on your specific environment. Also, an unfortunately side effect of almost every one of these registry values is that when they are increased, they consume more kernel memory. Seeing as (the lack of) kernel memory is often a bottleneck in scaling up in Terminal Server environments, you should be very careful in adjusting/creating the registry settings we discussed. If you are not careful, you could end up having more performance problems than you started out with. You need to know why.&lt;/p&gt;
&lt;p&gt; Tuning LanManServer and LanManWorkstation in the registry, requires the use of more Non-Paged Pool memory. This can be a real issue on the File Server (LanManServer). Let me briefly explain where Non-Paged pool memory fits into the whole “2GB-Kernel--Memory-Bottleneck-Of-32-Bit-Windows”. &lt;/p&gt;
&lt;p&gt; When you have a 32 bit operating system, this means that you have a 32 bit address space. That translates to 4GB of addressable memory space (2 to the power of 32). This 4GB is evenly shared between the user mode and kernel mode. User mode is the memory space that applications run in and kernel mode is used by the system for everything else. This 2 GB kernel mode memory is divided into several areas, amongst which is the NonPaged Pool. Because there’s only 2GB to share, the NonPaged pool gets configured with a maximum size at boot time. By default this is 256 MB.  This 256 MB is the area in which you should perform your (LanManServer) tuning.&lt;/p&gt;
&lt;p&gt; Why should you worry about this 256 MB? Well, because if the NonPaged pool is depleted then your system usually becomes unresponsive until some NonPaged pool becomes available again. So how does this apply to LanManServer tuning? Well, if you tune LanManServer in such a way that it allocates memory than the NonPaged pool has available and you indeed use up ALL of that allocated memory then you have effectively pushed Windows beyond its limits.&lt;/p&gt;
&lt;p&gt; So what should you do? A safe way of doing it is to tune LanManServer in such a way that it can never deplete the NonPaged pool.  The amount of memory LanManServer allocates in the NonPaged Pool is primarily determined by two parameters: MaxWorkItems and SizReqBuf. So if you set MaxWorkItems to 8192 and SizReqBuf to 16644 (default) (which in reality is 20480 due to tracking overhead) the amount of memory LanManServer will allocate is (8192  x 20480 bytes) 160 MB. This fits nicely into the 256 MB NonPaged Pool area. &lt;br /&gt;
  So it basically boils down to this: If you have more than 512 MB of memory in your Terminal Server (which is every Terminal Server on earth and adjacent planets) then SizReqBuf starts out at 16644. This allows you to push the MaxWorkItems value to 8192. If you try higher numbers to create more of these similar sized WorkItems AND your File Servers tries to use these, you run the chance of running out of NonPaged Pool.&lt;/p&gt;
&lt;p&gt; So there is however a decent chance that  having 8192 WorkItems does not cut it for you. This is when the bits start to hit the fan. If you’re in that rather sad place, you really have only three options, with option 3 being the safest choice:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Try making the size of the WorkItems smaller (trough the SizeReqBuf parameter) so you can safely set higher MaxWorkItems values. For example: If you set SizReqBuf lower to 8322 (plus a overhead of 3836 makes 12158 bytes) then this would allow you to have 13800 WorkItems ( 160MB / 12158 bytes). &lt;br /&gt;
  &lt;/li&gt;
  &lt;li&gt;You could even try to up the MaxWorkItems and SizeReqBuf values further with the risk that you run out of NonPagedPool. Now, you should also know that you can tune the Kernel Mode memory in such a way that more memory is allocated to the NonPagedPool. The downside to this is of course is that this memory is taken away from other parts of the Kernel Mode memory. I wouldn’t go there if I were you (unless you’re up there with the likes of Mark Russinovich).&lt;br /&gt;
  &lt;/li&gt;
  &lt;li&gt;Make sure that less Work Items are demanded from the File Server. This is a topic on its own but quick suggestions are: limit folder redirection (especially Application Data) or / and distribute File Services (put for example home directories on one Fileserver and redirected folders on another).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;.ADM Templates&lt;strong&gt;&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;I have provided two .adm templates, one for lanmanserver and one for lanmanworkstation. I&amp;#39;ve separated these purposely because the lanmanserver adm template should be applied to your File Server and the lanmanworkstation adm template should be applied to your Terminal Servers.&lt;/p&gt;
&lt;h3&gt;Thincomputing.net Lanmanserver Tuning.zip&lt;/h3&gt;
&lt;p&gt;
  This template (&lt;a href="http://www.thincomputing.net/download.php?view.10"&gt;download&lt;/a&gt;) contains all of the Lanmanserver parameters discussed in this article. When you import the ADM template and enable the policy, it will set the following parameters to the maximum recommended, safe values:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;MaxWorkItems &lt;/li&gt;
  &lt;li&gt;InitWorkItems &lt;/li&gt;
  &lt;li&gt;MaxMpxCt &lt;/li&gt;
  &lt;li&gt;MaxRawWorkItems &lt;/li&gt;
  &lt;li&gt;MaxFreeConnections &lt;/li&gt;
  &lt;li&gt;MinFreeConnections &lt;/li&gt;
  &lt;li&gt;SizReqBuf&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These optimizations should applied to your FILESERVER, not your Terminal Server. I&amp;#39;ve included the possibility to &amp;#39;undo&amp;#39; the optimizations made the template. You can do this by selecting -Undo Lanmanserver Optimizations- and REBOOTING.&lt;/p&gt;
&lt;h3&gt;    Thincomputing.net Lanmanworkstation Tuning.zip&lt;/h3&gt;
&lt;p&gt;
  This template (&lt;a href="http://www.thincomputing.net/download.php?view.11"&gt;download&lt;/a&gt;) contains all of the discussed Lanmanworkstation parameters in this article. When you import the ADM template and enable the policy, it will set the following parameters to the maximum recommended, safe values:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;MaxThreads &lt;/li&gt;
  &lt;li&gt;MaxCollectionCount &lt;/li&gt;
  &lt;li&gt;MaxCmds&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These optimizations should applied to your TERMINAL SERVER, not your File server. I&amp;#39;ve included the possibility to &amp;#39;undo&amp;#39; the optimizations made the template. You can do this by selecting -Undo Lanmanworkstation Optimizations- and REBOOTING.&lt;/p&gt;
&lt;h2&gt;Final Thoughts &lt;/h2&gt;
&lt;p&gt; Although some settings have been improved in Windows 2000 and even more in Windows Server 2003, I must say that I’m a bit disappointed that file serving problems like I discussed in the article are still quite common in Terminal Server environments. These problems have been around just as long as Terminal Server has, and one would think these problems would at least be a lot less common, but maybe that’s just my point of view.&lt;/p&gt;
&lt;p&gt; Microsoft, finally, recently has published an excellent article which discusses these issues in very good detail. This article isn’t just about Terminal Server environments but it is still the best article Microsoft has ever written on the subject. Bookmark &lt;a href="http://support.microsoft.com/kb/317249"&gt;KB317249.&lt;/a&gt; &lt;br /&gt;
  I hope that this document has provided you with enough knowledge to combat file serving performance problems.&lt;/p&gt;
&lt;p&gt; There’s however a good chance that these problems with the file serving components of Windows will relatively soon be something of the past or at least be a lot less common. Windows Vista and Longhorn server will incorporate many changes, amongst which are major revisions in the file serving components. For example Vista comes with a major revision of the SMB protocol identified as SMB 2.0. The current protocol (SMB 1.0) was built to support file-serving solutions a couple of decades ago and was based on the assumptions existing then.&lt;br /&gt;
  These are some of the key enhancements in SMB 2.0:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;SMB 2.0 supports an arbitrary, extensible      way of compounding operations to reduce round trips. This makes the      protocol less chatty as compared to SMB 1.0. Chattiness of SMB 1.0 has      often been a major pain point. &lt;/li&gt;
  &lt;li&gt;SMB 2.0 supports much larger buffer sizes      compared to SMB 1.0. &lt;/li&gt;
  &lt;li&gt;SMB 2.0 greatly grows the restrictive      constants in the protocol, so we never need to worry about the protocol      itself being the limiting factor for scalability. This includes increasing      the number of concurrent open file handles on the server, and the number      of shares that a server can share out, among other things. &lt;/li&gt;
  &lt;li&gt;SMB 2.0 supports durable handles that can      withstand short network glitches.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All these enhancements in SMB 2.0 will result in better performance and security over LAN and WAN.&lt;/p&gt;
&lt;p&gt;Sounds good huh? I’ll believe it when I see it, but the file serving future looks bright!&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.brianmadden.com/aggbug.aspx?PostID=10073" width="1" height="1"&gt;</description></item><item><title>How to use hot-pluggable client USB storage devices with Citrix Presentation Server</title><link>http://www.brianmadden.com/blogs/guestbloggers/archive/2007/02/14/how-to-use-hot-pluggable-client-usb-storage-devices-with-citrix-presentation-server.aspx</link><pubDate>Thu, 15 Feb 2007 00:00:00 GMT</pubDate><guid isPermaLink="false">a59ee4a9-9560-4436-b47c-b649e4ba6aaa:11038</guid><dc:creator>Dennis Damen</dc:creator><slash:comments>13</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.brianmadden.com/blogs/guestbloggers/rsscomments.aspx?PostID=11038</wfw:commentRss><comments>http://www.brianmadden.com/blogs/guestbloggers/archive/2007/02/14/how-to-use-hot-pluggable-client-usb-storage-devices-with-citrix-presentation-server.aspx#comments</comments><description>&lt;p&gt;A lot of people have been complaining about USB disk support in Citrix Presentation Server. When a user connects a USB drive while working in a Citrix ICA session, the drive will not become visible in that session. While Microsoft has already added support for this in their RDP protocol, Citrix lags behind on implementing this in ICA.&lt;/p&gt;
&lt;p&gt;While researching the possibilities of adding support for this &amp;lsquo;hot plugging&amp;rsquo; myself, I stumbled upon a great tool called &amp;lsquo;USBDLM&amp;rsquo; written by Uwe Sieber.&amp;nbsp; By default, Windows allocates the first available drive letter to an inserted USB storage device which makes management of this device somewhat troublesome. USBDLM installs as a service on a Win32 client and enables YOU, the administrator, to predefine where and how USB disks are made available to your operating system using a simple ini-file. (Just the way we like it!)&lt;/p&gt;
&lt;p&gt;While reading the manual, I also came across the possibility to mount USB storage devices to a predefined &lt;u&gt;folder&lt;/u&gt;. This is when I realized that this tool could be of great value to the Citrix community. Below you will find a set of instructions on how to make hot plugging USB disks possible within your environment.&lt;/p&gt;
&lt;h2&gt;The How to Guide &lt;/h2&gt;
&lt;p&gt;First of all, download USBDLM from &lt;a href="http://www.uwe-sieber.de/usbdlm_e.html"&gt;http://www.uwe-sieber.de/usbdlm_e.html&lt;/a&gt;, extract it, and follow the simple steps as described below. Mind you, USBDLM is NOT free for commercial use so please read the license agreement.&lt;/p&gt;
&lt;h3&gt;Step 1: Edit the configuration file (on the client)&lt;/h3&gt;
&lt;p&gt;In the UBDLM directory you will find a USBDLM_example.ini file. Copy this file, rename it to &amp;ldquo;USBDLM.ini,&amp;rdquo; and open it using notepad. Scroll down to the [setting] part and add the &amp;ldquo;&lt;em&gt;ForceDriveLetters=1&amp;rdquo;&lt;/em&gt; setting. Now, scroll down to the [DriveLetters] section and change the &lt;em&gt;&amp;ldquo;Letter1=&amp;rdquo;&lt;/em&gt; to &lt;em&gt;&amp;ldquo;Letter1=C:\USB\%DiskName%&amp;rdquo;&lt;/em&gt;.&amp;nbsp; Make sure you save the ini file in ANSI format. UNICODE is not supported.&lt;/p&gt;
&lt;h3&gt;Step 2: Creating a mount folder (on the client)&lt;/h3&gt;
&lt;p&gt;As said, USBDLM is able to mount a USB storage device to a folder instead of assigning a drive letter to it. To enable this feature we need to pre-create a folder where USBDLM can mount the USB storage device. Following the previous step we need to create a folder called &amp;ldquo;C:\USB&amp;rdquo;. The folder %DiskName% &lt;u&gt;will&lt;/u&gt; be auto-created.&lt;/p&gt;
&lt;h3&gt;Step 3: Making all USB storage devices available through &lt;u&gt;one&lt;/u&gt; drive letter (on the client)&lt;/h3&gt;
&lt;p&gt;Substitute the folder that we created in the previous step using the user&amp;rsquo;s login script. CMD-based login scripts could add the following line: &amp;ldquo;SUBST X: C:\USB&amp;rdquo;.&amp;nbsp; From now on all client USB devices will be available though this drive letter.&lt;/p&gt;
&lt;h3&gt;Step 4: Enable Client drive mappings (on the server)&lt;/h3&gt;
&lt;p&gt;There are a number of ways to enable client drive mapping for your Citrix farm. Use the method that best suits your environment. &lt;/p&gt;
&lt;h3&gt;Step 5: Log on to Citrix farm&lt;/h3&gt;
&lt;p&gt;Log on to your farm with client drives enabled. The substituted drive will be visible as a normal client drive. Now insert your USB storage device and wait for the contents to show up.&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s a screen shot from the client showing the local USB device and the remote folder. &lt;/p&gt;
&lt;p align="center"&gt;&lt;img src="http://www.brianmadden.com/content/images/USBdrive.jpg" width="455" height="421" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Have fun!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.brianmadden.com/aggbug.aspx?PostID=11038" width="1" height="1"&gt;</description></item></channel></rss>
