<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4834634390856475978</id><updated>2012-01-24T18:05:59.016+01:00</updated><category term='Windows Mobile'/><category term='Thecus'/><category term='N7700'/><category term='iSCSI'/><category term='Windows 2008'/><category term='VMWare'/><category term='Western Digital'/><category term='Other'/><category term='Microsoft SoftGrid'/><category term='App-V'/><category term='Microsoft SQL Server'/><title type='text'>Tim's trash of thoughts</title><subtitle type='html'>Every now and then you run into a small discovery that you know you will ever need again in your life. This is where I throw together all of mine. Perhaps they come in handy for you too...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>43</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-428531541299124636</id><published>2010-12-22T09:07:00.003+01:00</published><updated>2010-12-22T09:33:00.083+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='N7700'/><category scheme='http://www.blogger.com/atom/ns#' term='Western Digital'/><category scheme='http://www.blogger.com/atom/ns#' term='Thecus'/><title type='text'>A note on Western Digital 2001FASS drives</title><content type='html'>About a year ago, I decided to open my wallet and cough up some serious money for a good NAS solution for my home usage. With an ESX whitebox, a growing number of pictures and other digital parafernalia that I like to (permanently) store, I decided that a standalone NAS solution would be more reliable than relying on a single (now aging) RAID controller in my ESX whitebox. After all, a NAS is "system independent" so it can be accessed from any device, as long as there is a network. A few weeks later, I ordered the Thecus N7700 NAS from eBay, together with three Western Digital Caviar Black 2 TB disks (type: WD2001FASS). In the meantime, I upgraded to 5 disks.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Neglecting some configurational complexities between ESX and the Thecus (see &lt;a href="http://timjacobs.blogspot.com/2010/11/note-on-esx-4x-and-iscsi-devices.html"&gt;my previous blogpost on ESX's iSCSI implementation changes in 4.1&lt;/a&gt;), everything has been running very fine... until yesterday.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;At 17:04 yesterday evening, I received a gmail notification from the Thecus NAS (yes, it sends mails through gmail) indicating one of the Caviar Black disks had failed and that my RAID5 array was now degraded. I was a bit surprised and already fearing another "Sea-gate" incident with another series of continuously failing disks (the "gate" prefix being so popular with "cablegate", I decided to introduce another one :) ). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I decided to remove the affected disk and run the Western Digital drive diagnostic tools on it (which took a dreadfully long 4 and a half hours). Sure enough, a Full Drive test revealed that there were some bad sectors on the drive but that they were succesfully remapped to the spare capacity that drives get exactly to compensate for a few bad blocks. Still, the RAID array was degraded and the drive was reported as being failed (even though it seems to be very easily fixable), so I decided to dive a little deeper into what happened in an attempt to discover why this is not automatically fixed by the drive when such a bad block is discovered.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What I found out, seriously pissed me off. Western Digital does support a mechanism to automatically remap bad blocks to the spare capacity on the drive. However, this can take a few moments so the question rises how the drive should communicate with the RAID controller to report that it is currently busy to do some block remapping. Western Digital has a technology which they refer to as &lt;a href="http://en.wikipedia.org/wiki/Time-Limited_Error_Recovery"&gt;TLER - Time Limited Error Recovery&lt;/a&gt; to delay the RAID array of marking a drive as failed. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Fantastic! The only problem is that this software feature is disabled in the 2001FASS drives, simply because it is considered a "consumer" drive. The even more expensive (and trust me, I had to use all my tactics to convince my wife to cough up the money for what I consider a really expensive drive) RE or "RAID edition" drives are in fact almost identical to the 2001FASS drives, with the exception that they have the TLER feature enabled.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Basically, this means that the 2001FASS drive is &lt;b&gt;not suitable&lt;/b&gt; for RAID arrays. When a drive encounters a bad block, it will immediately marked as failed even though this is not the case. Talking about a serious bummer! &lt;a href="http://www.tomshardware.co.uk/forum/257590-14-wd20ears-safe-raid#t1826604"&gt;Some report that TLER is not needed for Linux&lt;/a&gt; (which is basically what the Thecus NAS is, a Linux box) but my experience seems to contradict this slightly.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For me, this is an important reason not to buy Western Digital anymore -- you need to cough up an additional bucket of money for a feature that should be enabled in &lt;i&gt;any&lt;/i&gt; drive -- after all, all motherboards today support a basic RAID functionality! Or, if you want to upgrade at a given time from one drive to multiple drives... &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-428531541299124636?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/428531541299124636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=428531541299124636' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/428531541299124636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/428531541299124636'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2010/12/note-on-western-digital-2001fass-drives.html' title='A note on Western Digital 2001FASS drives'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-8400251020861382906</id><published>2010-11-24T22:32:00.006+01:00</published><updated>2010-11-24T23:06:08.202+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='N7700'/><category scheme='http://www.blogger.com/atom/ns#' term='iSCSI'/><category scheme='http://www.blogger.com/atom/ns#' term='VMWare'/><category scheme='http://www.blogger.com/atom/ns#' term='Thecus'/><title type='text'>A note on ESX 4.x and my iSCSI devices</title><content type='html'>A few weeks ago, I decided to extend my iSCSI NAS (Thecus N7700) from 3x 2TB Western Digital Caviar Black disks to 5x 2TB Western Digital Caviar Black disks. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Trouble has been my companion ever since. I have been experiencing some serious performance issues since the RAID extension, and was fearing that the different firmware versions of the new Caviar Blacks was confusing my NAS system; mixing firmwares in RAID systems does not seem to be a best practice. The symptoms were very simple: from the moment a lot of I/O was generated (think: 160 MB/s write speeds to the NAS), ESX would loose the iSCSI link to the NAS, which was choking on all that traffic with a 100% CPU usage. As you very well know, storage is ESX's Achilles heel, and very shortly after that, the vmkernel logs would be flooding with messages indicating a path failure to the NAS:&lt;/div&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  &gt;0:00:41:06.581 cpu1:4261)NMP: nmp_PathDetermineFailure: SCSI cmd RESERVE failed on path vmhba36:C0:T0:L3, reservation state on device t10.E4143500000000000000000040000000AE70000000000100 is unknown.&lt;br /&gt;0:00:41:06.581 cpu1:4261)ScsiDeviceIO: 1672: Command 0x16 to device "t10.E4143500000000000000000040000000AE70000000000100" failed H:0x2 D:0x0 P:0x0 Possible sense data: 0x0 0x0 0x0.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;After a multitude of firmware up- and downgrades on the Thecus N7700 and a lot of conversation with Thecus Support (which by the way I want to thank for their patience with a guy like me working in an &lt;a href="http://www.thecus.com/Downloads/HDD_List/N7700_N7700SAS_N8800_N8800SAS_SATA_HDD_list_2010-09-02.pdf"&gt;unsupported scenario&lt;/a&gt;!), I stumbled across some a strange error message that I had not seen before on an ESX host:&lt;/div&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  &gt;0:00:41:06.733 cpu0:4113)FS3: 8496: Long VMFS3 rsv time on 'NASStorage04' (held for 3604 msecs). # R: 1, # W: 1 bytesXfer: 2 sectors&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Some googling quickly pointed me to a few &lt;a href="https://forums.openfiler.com/viewtopic.php?pid=19087#p19087"&gt;interesting&lt;/a&gt; &lt;a href="http://communities.vmware.com/thread/280337"&gt;threads&lt;/a&gt;, which talked about a &lt;a href="http://kb.vmware.com/kb/1002598"&gt;VMware KB 1002598&lt;/a&gt; discussing performance issues on EMC Clariion systems with iSCSI. It seems that the iSCSI initiator in ESX allows for for delayed ACK's which apparently is important in situations of network congestion. Knowing that the N7700's CPU usage can sometimes peak to 100% and that this can very briefly can lock up the network link on the N7700, I decided to disable the Delayed ACK's, following the procedure in the VMware KB... &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Great success! Performance was rock solid again, and I have no longer experienced ESX hangs ever since!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This made me think a bit, and I remember that I first noticed the performance issues a few weeks after upgrading to ESX 4.0 Update 2 -- I suppose some default setting has changed from a vanilla ESX 4.0 (which I was running earlier) to ESX 4.0 Update 2 that seems to disturb the good karma that I had going between my ESX host and N7700 NAS earlier. Let it be known to the world that also the N7700 with firmwares 2.01.09, 3.00.06 and 3.05.02.2 (the ones I tried) also is subject to the iSCSI symptoms described in &lt;a href="http://kb.vmware.com/kb/1002598"&gt;VMware KB 1002598&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-8400251020861382906?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/8400251020861382906/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=8400251020861382906' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/8400251020861382906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/8400251020861382906'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2010/11/note-on-esx-4x-and-iscsi-devices.html' title='A note on ESX 4.x and my iSCSI devices'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-8069620824340550291</id><published>2010-11-05T17:40:00.006+01:00</published><updated>2010-11-05T23:33:52.697+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows 2008'/><title type='text'>The joy of WSUS</title><content type='html'>After a rather unpleasant electrical powerspike earlier this week had made some of my harddisks go wierd (crashing my ESX server with an equally unpleasant PSOD), a quick inspection revealed that no real harm was done -- except for one of the dozen RAID arrays that I have decided to do an automatic rebuild (no real issue). That finished after a few hours so I was able to go back to my comfortable sofa and enjoy some more quality prime time TV (lol). At least, so I thought...&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A few hours later I discovered that my domain controller had not survived the ESX crash and was very unpleasantly complaining about a corrupted registry. Deciding that a bare metal (or virtual metal) Active Directory disaster recovery was not really necessary on my home network (recreating the three user accounts was less effort ;) ), I decided to reinstall my entire domain controller. About 30 minutes after that decision, I was again running a new AD domain with the users recreated and the most important servers already rejoined to the domain.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So what did I forget to configure in my enthousiasm to just reinstall the entire bunch? Certificate services, DFS namespace, DHCP server, re-ACL of file server, recreation of user profiles and also my own WSUS server (which were all happily running on my domain controller as well -- beat that SBS!).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My own WSUS server I hear you say? Well yes, with the very unpleasant (which you will have noticed already is the word of today) bandwidth limitations we have in Belgium, my ISP decides to punish me with some low-bandwidth connection after transferring more than 80 GB of data. That is quite sufficient but I prefer not spending it on downloading all my Windows updates 14 times (which is about the total number of virtual machines, physical laptops and desktops I have running on a frequent basis). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Given that my WSUS partition was about 120 GB and 98% filled, the doom scenario of seeing my entire data transfer that my ISP allows me for this month being entirely consumed by frikkin' Windows updates after reinstalling WSUS &amp;amp; synchronizing for the first time, slowly started to set in. An entire month of "small band" in this digital age? The horror... the horror...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So I decided to spend a few megabytes of datatransfer of very actively googling whether it is possible to prevent WSUS from downloading all the updates from the internet. After all, the registry corruption of the domain controller had completely borked its functionality, yet the separate partition (and separate VMDK) which was holding the WSUSContent directory was undamaged.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Most fora and blogs I found on recycling WSUSContent when performing a new installation, refer to a TechNet page called &lt;a href="http://technet.microsoft.com/en-us/library/cc720512(WS.10).aspx"&gt;"Set Up a Disconnected Network (Import and Export Updates)"&lt;/a&gt; , which explains how the WSUSContent can be copied from one server to other -- however, they are always exporting &amp;amp; importing the WSUS database as well; unfortunately this database got lost when I -- again -- enthousiastically wiped the entire corrupted OS VMDK. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So I just decided to have a go and installed WSUS from scratch, and I pointed the WSUSContent directory to the partition which already contained the updates from the old server. Then I did the following:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Configured the WSUS server exactly has before (with the same products to update)&lt;/li&gt;&lt;li&gt;Performed the first initial synchronization (this took a long time but using the network bandwidth monitoring in the vSphere client I could clearly see that only minimal amounts of data were transferred during this synchronization -- no actual content was downloaded!)&lt;/li&gt;&lt;li&gt;Approved all the updates that were previously also approved.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;This turns out to work quite nicely; apparently when WSUS detects that the updates are already downloaded to disk, it will recycle the existing content! Hurray for WSUS and for not torturing me with small band for an entire month!!&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-8069620824340550291?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/8069620824340550291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=8069620824340550291' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/8069620824340550291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/8069620824340550291'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2010/11/joy-of-wsus.html' title='The joy of WSUS'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-8067314999336763702</id><published>2010-04-01T18:00:00.004+02:00</published><updated>2010-04-01T19:09:49.349+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VMWare'/><title type='text'>ESX Whitebox &amp; RAID controller failures - an epic struggle</title><content type='html'>The past few days have been a bit tense. Not only was there a deadline at work (an interesting study at one of our customers that had to be finished before end of March 2010), but also yesterday, my ESX whitebox decided to die on me. Of course, I took my screwdriver and box of recovery CD's and went to work.. A reconstruction of the epic struggle to get everything back to work (yes, ):&lt;br /&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;March 31, 8:00 AM&lt;/b&gt;. The (old &amp;amp; faithful 100 Mbps) 3Com switch that my PC's are currently connected to -- after having moved and being too lazy to install CAT6 cabling in my new house so I don't live between UTP cables, the wife loves it-- has crashed and had a blinking "&lt;i&gt;Alert!&lt;/i&gt;" light; after disconnecting the power, the switch got back up again.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;March 31, 8:05 AM.&lt;/b&gt; No internet connectivity; road works again, like the day before? Nope, turns out my ESX box, which runs a virtual m0no0wall router, has completely frozen and can only be brought back by a hard reset.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;March 31; 8:10 AM. &lt;/b&gt;Thirdly, I discovered my Dell Perc 5i controller now freezes the computer after the power has been cycled. Interesting. Trying to enter the Perc 5i BIOS for configuration also freezes the computer. Fear kicks in. &lt;/li&gt;&lt;/ul&gt;About a year ago, I already burned a Perc 5i controller (including the sizzling, smoke and fireworks) and I decided to buy a second hand controller from eBay again. That replacement never fully worked as I liked it (for example, after resetting the computer, the controller is no longer recognized -- in fact it is only recognized after a power cycle; strange!). A bit pissed off, I blame myself for accepting a half-and-half working controller for hosting all my data (family pictures, personal documents, ...). I'm already fearing that I will have to buy a replacement controller &amp;amp; restore all my data from Amazon S3 &amp;amp; &lt;a href="http://www.jungledisk.com/"&gt;JungleDisk&lt;/a&gt; (which I subscribed to after the previous controller went up on smoke)... weeks of downtime.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;b&gt;March 31, 8:30 AM. &lt;span class="Apple-style-span" style="font-weight: normal;"&gt;I remember that shortly after I got the Perc 5i controller, I got a few warnings about ECC errors being discovered in the DIMM that provides the read/write cache. I decide to replace the DIMM as BIOS's crashing all of the sudden seems a bit unreal. Unfortunately, to no avail.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;March 31, 8:45 AM. &lt;/b&gt;After some fiddling around with the controller, I notice the Perc 5i BIOS is accessible without any drives connected. Puzzling, but after performing a factory reset of the card (erasing the FlashROM) and performing a "foreign array import" of my two RAID arrays, the disks are discovered again &amp;amp; the computer tries to boot up. All this is followed by a little dance of happiness around the computer, thanking the computer gods for resurrecting the RAID array.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;March 31, 8:55 AM&lt;/b&gt;. Immediately after the import, all volumes seem to report suspicious RAID consistency and an automated consistency check &amp;amp; back initilization is automatically started. The just recovered peace of mind is disturbed and fear for data corruption kicks in. Anyway, the only thing to do is wait several hours for the data consistency checks to complete, so I just boot into ESX.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;March 31, 8:57 AM.&lt;/b&gt; ESX now freezes somewhere halfway in the boot. Turns out I am running an unpatched vSphere 4.0 which still has an older megaraid_sas. I remember &lt;a href="http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1013026"&gt;issues&lt;/a&gt; were reported with this driver and this is confirmed when inspecting the vmkernel logs. They reveal that the megasas driver is receiving tons of AEN events (Automated Event Notifications):&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;esx01 vmkernel: 0:03:28:31.377 cpu3:4193)&lt;6&gt;megasas_hotplug_work[6]: event code 0x006e&lt;br /&gt;esx01 vmkernel: 0:03:28:31.387 cpu3:4193)&lt;6&gt;megasas_hotplug_work[6]: aen registered&lt;br /&gt;esx01 vmkernel: 0:03:28:31.518 cpu1:4485)&lt;6&gt;megasas_service_aen[6]: aen received&lt;br /&gt;esx01 vmkernel: 0:03:28:31.518 cpu0:4196)&lt;6&gt;megasas_hotplug_work[6]: event code 0x006e&lt;br /&gt;esx01 vmkernel: 0:03:28:31.528 cpu0:4196)&lt;6&gt;megasas_hotplug_work[6]: aen registered&lt;br /&gt;esx01 vmkernel: 0:03:29:51.334 cpu3:4251)&lt;6&gt;megasas_service_aen[6]: aen received&lt;br /&gt;esx01 vmkernel: 0:03:29:51.334 cpu2:4205)&lt;6&gt;megasas_hotplug_work[6]: event code 0x0071&lt;br /&gt;esx01 vmkernel: 0:03:29:51.349 cpu2:4205)&lt;6&gt;megasas_hotplug_work[6]: aen registered&lt;br /&gt;esx01 vmkernel: 0:03:29:54.318 cpu3:4246)&lt;6&gt;megasas_service_aen[6]: aen received&lt;br /&gt;esx01 vmkernel: 0:03:29:54.318 cpu0:4207)&lt;6&gt;megasas_hotplug_work[6]: event code 0x0071&lt;br /&gt;esx01 vmkernel: 0:03:29:54.334 cpu0:4207)&lt;6&gt;megasas_hotplug_work[6]: aen registered&lt;br /&gt;esx01 vmkernel: 0:03:29:57.405 cpu3:4246)&lt;6&gt;megasas_service_aen[6]: aen received&lt;br /&gt;esx01 vmkernel: 0:03:29:57.405 cpu2:4193)&lt;6&gt;megasas_hotplug_work[6]: event code 0x0071&lt;br /&gt;esx01 vmkernel: 0:03:29:57.421 cpu2:4193)&lt;6&gt;megasas_hotplug_work[6]: aen registered&lt;br /&gt;&lt;/pre&gt;For an unknown reason, the ESX server is unable to cope with the massive amount of events received and slows down dreadfully (In retrospect I noticed it did not actually crash).&lt;br /&gt;&lt;br /&gt;I decide to boot back into the Perc 5i BIOS and let the consistency check finish. Turns out again everything freezes before I can enter the BIOS so I need to disconnect all drives again, perform a factory reset &amp;amp; re-import my RAID arrays. I let the consistency checks start &amp;amp; hurry to work.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;March 31, 21:00 PM. &lt;/b&gt;Consistency checks have finished but now ESX refuses to boot up, no longer finding the service console VMDK &amp;amp; reports:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;VSD mount/Bin/SH:cant access TTY job control turned off.&lt;/pre&gt;&lt;br /&gt;Interesting. I discover a &lt;a href="http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1012142"&gt;VMware KB&lt;/a&gt; that describes this behavior, which explains that sometimes LUN's can be discovered as snapshots when changes are made at the storage array. I conclude that my consistency checks &amp;amp; foreign array importing might have messed up the identifiers such that now ESX can no longer find the Service Console VMDK and goes berserk. After following the steps in the KB (basically resignaturing all VMFS volumes), everything works again. Afterwards, I discover that I had switched the two cables connecting both of my RAID arrays (cable 1 got attached to port 2 and vice versa). Doh!!!&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;b&gt;March 31, 21:30 PM. &lt;/b&gt;Time to install ESX 4.0 update 1a; yet again, another issue: not enough diskspace to install the patches! After cleaning up the /var/cache/esxupdate, sufficient diskspace is available.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;March 31, 22:00 PM. &lt;/b&gt;After having booted up everything, I again notice a very bad performance of ESX, and my suspicion is confirmed when I notice again the same megaraid_sas AEN events in the vmkernel logs. Strangely enough the error only occurs when I access my fileserver virtual machine, which is the only virtual machine that runs on the second of two RAID arrays... hmmm.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;April 1, 13:00 PM.&lt;/b&gt; Some time for further analysis. I start a virtual machine running on my first RAID array and see that no AEN events are logged in the vmkernel log. Then I decide to add the VMDK's of my fileserver, all hosted on my second RAID array, one by one. The first VMDK is hotadded to a Windows 2008 virtual machine fine and I can see the data is still intact. Big relief! But indeed, when adding the second and third VMDK, the AEN events are flooding the vmkernel logs again.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;At this time, I am becoming more and more convinced that not the Perc 5i controller is involved for the issues, but one or more disks in the second RAID array. &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;April 1, 14:00 PM. &lt;span class="Apple-style-span" style="font-weight: normal; "&gt;I decide I want to have a look at the Perc 5i controller logs to see if errors are logged at the HBA level. Since the Perc 5i uses a LSI logic chip, I use the procedure &lt;a href="http://timjacobs.blogspot.com/2008/05/installing-lsi-logic-raid-monitoring.html"&gt;I blogged about&lt;/a&gt; a while back to install the MegaCLI tool again.&lt;br /&gt;&lt;br /&gt;At this point, I discover that it is no longer possible to use the LSI MegaCLI tools under vSphere. I guess VMware finally decided that the Service Console has to run as a virtual machine and the Perc 5i card is no longer exposed inside the Service Console. LSI MegaCLI therefor reports that no compatible controllers are present. Bummer! Apparantly some people report in &lt;a href="http://communities.vmware.com/thread/228615"&gt;the VMware Community forums&lt;/a&gt; that LSI MSM (remote management server?) seems to work with limited functionality but I decide not to try to install this.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;b&gt;April 1, 17:00  PM. &lt;/b&gt;Time to think of an alternative way of discovering what is wrong in the second RAID array. It is a RAID5 array of 4 Seagate 1 TB disks (yes, the &lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;ST31000340AS series that had &lt;a href="http://www.tomshardware.com/news/seagate-500gb-1tb-firmware-update,6867.html"&gt;the firmware issues&lt;/a&gt;)&lt;/span&gt;&lt;/b&gt;, and my suspicion is now that a single disk has failed, but the failure is not picked up by the Perc 5i controller, or not reported by the disk firmware. That is particularly bad because I don't want to pull the wrong disk out of a RAID5 array with a failed disk -- obviously causing a total data loss, which would be very, very, very, VERY depressing after all the happiness that I still had my data ;).&lt;br /&gt;&lt;br /&gt;Time to pull out the Seagate selftests and indeed, testing each drive individually revealed that one of the drives had failed. &lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;So the conclusion is: time for another RMA! I now have had each of my four Seagate 1 TB disks fail on me. In fact, out of the 8 Seagate drives I own, I have already requested 7 RMA's. At times like these I remember why I coughed up a massive amount of money to get my hands on the Western Digital Caviar Black edition (which AFAIK is the last consumer disk to provide a 5 year warranty).&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-8067314999336763702?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/8067314999336763702/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=8067314999336763702' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/8067314999336763702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/8067314999336763702'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2010/04/esx-whitebox-raid-controller-failures.html' title='ESX Whitebox &amp; RAID controller failures - an epic struggle'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-1351694115717026323</id><published>2009-08-31T13:19:00.011+02:00</published><updated>2009-08-31T13:48:17.458+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VMWare'/><title type='text'>Hosting your DNS on vSphere 4 - caveat</title><content type='html'>For a while now, I was having an issue with my whitebox ESX4.0 server: after rebooting this machine, I was unable to connect to it using the vSphere client. The error I was receiving was a simple "503: Service unavailable". The hostd.log on the host was filled with errors like:&lt;br /&gt;&lt;br /&gt;--F637FB90 warning 'Proxysvc Req00002'-- Connection to localhost:8309 failed with error N7Vmacore15SystemExceptionE(Connection refused).&lt;br /&gt;&lt;br /&gt;and I noticed that the /var/log/messages contains a lot of vmware-authd start &amp;amp; stop messages. I struggled and managed to find a workaround which consisted of:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Logging onto the service console as root&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Edit the &lt;b&gt;/etc/vmware/hostd/config.xml&lt;/b&gt; file and disabling the "proxysvc" component of hostd.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Restart the hostd process (service mgmt-vmware restart)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Wait for all my autostart VM's to come online&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Re-enable the "proxysvc" and restart hostd once again&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;Today, I discovered &lt;a href="http://communities.vmware.com/thread/216408"&gt;this thread&lt;/a&gt; on the VMware communities which contained the answer I was looking for: the DNS servers I had configured on my ESX box were virtual machines running on the box itself (in my case: a &lt;a href="http://m0n0.ch/wall/"&gt;m0n0wall virtual appliance&lt;/a&gt; and a Windows 2008 domain controller with DNS). Apparently this disrupts the proxysvc component of hostd (since the virtual DNS servers are not reachable at the time hostd is first started - autostart is yet to kick in), causing it to fail to start properly and preventing vSphere client connections. Furthermore, this prevented the autostart of VM's all together, thus never getting DNS to get up and running at all.&lt;br /&gt;&lt;br /&gt;The solution was to clear my &lt;b&gt;/etc/resolv.conf&lt;/b&gt; file and now everything works fine immediately after a reboot (no more attempts to connect to a virtual machine that is not yet running)! This completely slashes DNS support (in particular if you are using HA, you'll need to do good /etc/hosts maintenance). Since your typical production environment probably is not running the entire DNS infrastructure as a or several virtual machine(s), you probably are never exposed to this issue anyway.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-1351694115717026323?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/1351694115717026323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=1351694115717026323' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/1351694115717026323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/1351694115717026323'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2009/08/hosting-your-dns-on-vsphere-4-caveat.html' title='Hosting your DNS on vSphere 4 - caveat'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-6485361283662776428</id><published>2009-04-09T18:45:00.009+02:00</published><updated>2009-04-09T19:19:05.694+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VMWare'/><title type='text'>Active Directory over SSL in VMware Lifecycle Manager</title><content type='html'>I recently have been playing around with &lt;a href="http://www.vmware.com/products/lcm/"&gt;VMware's Lifecycle Manager&lt;/a&gt; appliance, and one of the small "gotcha's" I ran into was how to configure secure communications between the LCM appliance and the Active Directory backend I was authenticating against.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_tOIlP1THwEk/Sd4owiEpZOI/AAAAAAAABT4/Z9fbRWGi_Ms/s1600-h/20090409-LCMLDAP.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 176px;" src="http://4.bp.blogspot.com/_tOIlP1THwEk/Sd4owiEpZOI/AAAAAAAABT4/Z9fbRWGi_Ms/s320/20090409-LCMLDAP.png" alt="" id="BLOGGER_PHOTO_ID_5322736623843632354" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;After configuring LCM to use Active Directory and SSL, I was getting the following error message:&lt;br /&gt;&lt;blockquote&gt;Error: Unable to connect to LDAP Server / simple bind failed: dc.pretnet.local:636&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;In order to get the SSL authentication working for Active Directory (or LDAP in general), you need to be sure that the Certificate Authority that issues your domain controller certificates is trusted by the appliance (you don't need to actually import the domain controller certificate itself, just the issuing CA is sufficient). This is done by going through the following steps:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;First, obtain a copy of the issuing certification authority's certificate (without private key obviously). Ensure that it is in the X.509 format, Base64 encrypted or DER encrypted. The appliance doesn't seem to support certificate containers (P7B format), so when you export the certificate using the Certificates MMC, ensure you select one of the first two options as the export format!!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_tOIlP1THwEk/Sd4sP6rqZfI/AAAAAAAABUI/NQoy2QB8Bik/s1600-h/20090409-LCMCertFormats.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 191px;" src="http://2.bp.blogspot.com/_tOIlP1THwEk/Sd4sP6rqZfI/AAAAAAAABUI/NQoy2QB8Bik/s320/20090409-LCMCertFormats.png" alt="" id="BLOGGER_PHOTO_ID_5322740461560554994" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;To add the X.509 certificate to the appliance, go to the "Network" tab and select the "SSL Certificate" configuration pane. Here, import the certificate file.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_tOIlP1THwEk/Sd4sq0vVV3I/AAAAAAAABUQ/8RrHKI3a86w/s1600-h/20090409-LCMSSL.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 166px;" src="http://1.bp.blogspot.com/_tOIlP1THwEk/Sd4sq0vVV3I/AAAAAAAABUQ/8RrHKI3a86w/s320/20090409-LCMSSL.png" alt="" id="BLOGGER_PHOTO_ID_5322740923821807474" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Next, restart the "&lt;span style="font-weight: bold;"&gt;VMO Configuration Server&lt;/span&gt;", which you can find at the bottom of the "Server" tab in the GUI.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_tOIlP1THwEk/Sd4pxtBMDdI/AAAAAAAABUA/scSr9pbGNA0/s1600-h/20090409-LCMConfigRestart.png"&gt;&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 193px;" src="http://3.bp.blogspot.com/_tOIlP1THwEk/Sd4pxtBMDdI/AAAAAAAABUA/scSr9pbGNA0/s320/20090409-LCMConfigRestart.png" alt="" id="BLOGGER_PHOTO_ID_5322737743473413586" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Note:&lt;/span&gt; if you get an error message that first you need to fix your LDAP configuration (and "Plugins" section) before you can restart the VMO Configuration Service, go back to the LDAP configuration and disable SSL for a moment.&lt;/li&gt;&lt;/ol&gt;That's it! Secure Active Directory authentication (which is what we all want) is now working properly! It's a good idea to import the certificate right away, because your other configuration tasks are severily limited when the authentication (either using the built-in OpenLDAP server on the appliance, or using Active Directory) is not working properly.&lt;br /&gt;&lt;br /&gt;As a sidenote, I would like to add that, despite VMware recommending to run Lifecycle Manager on a dedicated Windows box (&lt;a href="http://www.vmware.com/pdf/lcm1_admin_guide.pdf"&gt;LCM Administration Guide&lt;/a&gt; v1.01, p21), the appliance is a really convenient way of running and upgrading this product without too much hassle. Of course, don't forget to offload the configuration database from the appliance (use a dedicated SQL or Oracle server)!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-6485361283662776428?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/6485361283662776428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=6485361283662776428' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/6485361283662776428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/6485361283662776428'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2009/04/active-directory-over-ssl-in-vmware.html' title='Active Directory over SSL in VMware Lifecycle Manager'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_tOIlP1THwEk/Sd4owiEpZOI/AAAAAAAABT4/Z9fbRWGi_Ms/s72-c/20090409-LCMLDAP.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-2452411215548443521</id><published>2008-12-22T11:09:00.005+01:00</published><updated>2008-12-22T11:16:01.956+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VMWare'/><title type='text'>Counting ESX Server storage paths</title><content type='html'>At a customer, we have been hitting with one of the built-in storage limits of ESX Server: you can only present up to 1024 storage paths to a single ESX host. Depending on your SAN topology, each LUN that you present over a fiber fabric uses 4, 8 or even 16 storage paths. You can check this using the esxcfg-mpath command:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;Disk vmhba1:9:2 /dev/sdf (102400MB) has 8 paths and policy of Fixed&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; FC 13:0.0 10000000c96e8972&lt;-&gt;50001fe15009264e vmhba1:9:2 On active preferred&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; FC 13:0.0 10000000c96e8972&lt;-&gt;50001fe15009264a vmhba1:10:2 On&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; FC 13:0.0 10000000c96e8972&lt;-&gt;50001fe15009264c vmhba1:11:2 On&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; FC 13:0.0 10000000c96e8972&lt;-&gt;50001fe150092648 vmhba1:12:2 On&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; FC 16:0.0 10000000c96e8ccc&lt;-&gt;50001fe15009264f vmhba2:12:2 On&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; FC 16:0.0 10000000c96e8ccc&lt;-&gt;50001fe15009264b vmhba2:13:2 On&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; FC 16:0.0 10000000c96e8ccc&lt;-&gt;50001fe15009264d vmhba2:14:2 On&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; FC 16:0.0 10000000c96e8ccc&lt;-&gt;50001fe150092649 vmhba2:15:2 On&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To count the total number of paths presented to a single ESX host, you can use the following service console command:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;esxcfg-mpath -l | grep paths | awk '{ split($0, array, "has "); split(array[2], array2, " paths"); SUM +=array2[1] } END { print SUM}'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Probably the awk syntax can be greatly shortened but I am no awk/grep/sed expert :). Nevertheless, you can script this command into a cron job such that you can receive reports on whether or not you are hitting this limit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-2452411215548443521?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/2452411215548443521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=2452411215548443521' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/2452411215548443521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/2452411215548443521'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2008/12/counting-esx-server-storage-paths.html' title='Counting ESX Server storage paths'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-8466789581260237759</id><published>2008-11-30T21:42:00.012+01:00</published><updated>2009-02-27T17:53:46.157+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App-V'/><title type='text'>App-V 4.5 Certificate Galore</title><content type='html'>&lt;u&gt;&lt;span style="font-weight: bold;"&gt;1) Setting&lt;/span&gt;&lt;/u&gt;&lt;br /&gt;This weekend I finally found some time to delve a bit deeper into properly configuring an App-V 4.5 infrastructure for large scale deployments. One of the first things that I investigated was the usage of RTSPS for smoother firewall tunneling: as you know, when using RTSP a series of ports is dynamically chosen, which means that you need to open up entire portranges in your firewall. This is not something your firewall guys will like if you work in a larger environment.&lt;br /&gt;&lt;br /&gt;Going for RTSPS means you need to use a server public certificate and a corresponding private key in order to let the App-V server sign and encrypt its communications. I have blogged before about &lt;a href="http://timjacobs.blogspot.com/2007/10/configuring-rtsps-rtsp-over-tls-in.html"&gt;how to configure this in SoftGrid 4.1/4.2&lt;/a&gt; -- luckily the procedure for configuring an SSL certificate got a lot simpler. At least, that is what I thought. Some issues I ran into that might save you some valuable troubleshooting time:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;As always, when requesting a certificate from your Enterprise PKI, use the Virtual Application Server's FQDN as the subject. It is probably also a good idea to use the hostname as &lt;a href="http://timjacobs.blogspot.com/2008/05/enabling-subject-alternate-name.html"&gt;a subject alternate name&lt;/a&gt; for those people that still refer to servers by their shortnames.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;After the App-V 4.5 Web Management Service has been installed, don't forget to configure the certificate for the IIS Default Website. In IIS7, that requires adding a binding &amp;amp; selecting the proper certificate. It is not clear to me why the App-V installer cannot handle this automatically!?&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;App-V 4.5 runs under the NETWORK SERVICE account by default and no longer under the SYSTEM account as SoftGrid 4.1/4.2 used to. This has some consequences when it comes to Windows PKI: you need to grant the NETWORK SERVICE account read permissions on &lt;span style="font-weight: bold;"&gt;the private key&lt;/span&gt;.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;This later action is a lot harder than you think when reading them ;). Read on for more information.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2) Configuring permissions on private keys&lt;/span&gt;&lt;br /&gt;You have three options to get this working:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;If you are using a Windows 2008 Enterprise CA and are using your own certificate templates, then you can modify the template to automatically grant the NETWORK SERVICE account read permissions on all certificates issued using that template.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_tOIlP1THwEk/STOoHcLpy1I/AAAAAAAAA8o/O_Fq6DrhYSc/s1600-h/20081201-ReadPerm.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 208px;" src="http://4.bp.blogspot.com/_tOIlP1THwEk/STOoHcLpy1I/AAAAAAAAA8o/O_Fq6DrhYSc/s320/20081201-ReadPerm.jpg" alt="" id="BLOGGER_PHOTO_ID_5274744434358602578" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Since you will typically be creating a new certificate template for server deployment (to enable longer than 2 years validity &amp;amp; exporting of private keys), this is probably the easiest solution if you have a Windows Server 2008 Enterprise CA.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;In a pre-Windows 2008 CA world, you will have to use the &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=c42e27ac-3409-40e9-8667-c748e422833f&amp;amp;displaylang=en"&gt;WinHTTPcertcfg.exe&lt;/a&gt; tool, the Windows HTTP Services Certificate Configuration tool. In our situation, we need to modify the ACL of the certificate to grant read access to the service account of the Management Service (which is the NETWORK SERVICE by default).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;winhttpcertcfg -g -c LOCAL_MACHINE\My -s (subjectname) -a NetworkService&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Verify that everything went ok by listing the permissions:&lt;i&gt;&lt;br /&gt;&lt;br /&gt;&lt;/i&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;winhttpcertcfg –l –c LOCAL_MACHINE\My –s (subjectname)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;It is also possible to explicitly set the permissions on the private key file. This information is based on &lt;a href="http://blogs.technet.com/softgrid/archive/2007/11/20/setting-up-an-application-virtualization-in-secure-mode.aspx"&gt;information obtained from the App-V blog&lt;/a&gt;, with some corrections below.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;First, obtain the certificate thumbprint. You can find this in the details tab of the certificate:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_tOIlP1THwEk/STOlWFdk02I/AAAAAAAAA8g/UUF4uu6qxa4/s1600-h/20081201-Thumbprint.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 237px;" src="http://2.bp.blogspot.com/_tOIlP1THwEk/STOlWFdk02I/AAAAAAAAA8g/UUF4uu6qxa4/s320/20081201-Thumbprint.JPG" alt="" id="BLOGGER_PHOTO_ID_5274741387422913378" border="0" /&gt;&lt;/a&gt;Copy/paste the thumbprint for the next commandline.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Next, use the &lt;a href="http://msdn.microsoft.com/en-us/library/ms732026.aspx"&gt;FindPrivateKey.exe&lt;/a&gt; utility to locate the private key file on disk (&lt;span style="font-style: italic;"&gt;compiled version available &lt;/span&gt;&lt;a style="font-style: italic;" href="http://xneuron.wordpress.com/2007/12/05/x509-certificate-installation/"&gt;here&lt;/a&gt;&lt;span style="font-style: italic;"&gt; -- download &amp;amp; use untrusted executables from the internet at your own risk&lt;/span&gt;). Use the following syntax:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;FindPrivateKey.exe My LocalMachine -t "your thumbprint"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This will give you the full path. Read the &lt;span style="font-weight: bold;"&gt;caveat message&lt;/span&gt; below if this path looks awkward.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Grant the NETWORK SERVICE account read &amp;amp; execute permissions on the private key file.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;CAVEAT: &lt;/span&gt;&lt;span style="font-style: italic;"&gt;the location of the private key should be in a publicly accessible location. For WinXP/Win2K3 the default is:&lt;/span&gt;  &lt;span style="font-style: italic;font-size:85%;" &gt;&lt;span style="font-family:courier new;"&gt;C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys  &lt;/span&gt;&lt;/span&gt;  &lt;span style="font-style: italic;"&gt;For W2K8/Vista, this changed to:&lt;/span&gt;  &lt;span style="font-style: italic;font-size:85%;" &gt;&lt;span style="font-family:courier new;"&gt;C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys&lt;/span&gt;&lt;/span&gt;  &lt;span style="font-style: italic;"&gt;If you have a different location, then take actions to deplace the private key. I requested my certificate through the Web Enrollment pages of Active Directory Certificate Services on Windows 2008. This stores the public &amp;amp; private key in your user account's profile by default. I knew this and drog &amp;amp; dropped the public certificate from the "Certificates (My User)" to the "Certificates (My Computer)" MMC and when your private key was marked as exportable, this is indeed possible. However, this does not actually move the private key and leaves it in your user profile location (for example: &lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;&lt;span style="font-family:courier new;"&gt;C:\Users\Administrator\AppData\Roaming\Microsoft\Crypto\RSA&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;). I fixed this by explicitly exporting the certificate &amp;amp; private key from my user account and then explicitly importing everything again. So huge warning for all you regular crypto-users: no more drag 'n dropping of public/private keypairs!&lt;/span&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;4) Conclusion&lt;/span&gt;&lt;br /&gt;A bit messy... yet secure! The move towards the NETWORK SERVICE account for the App-V Management service (... and other Microsoft products as well) is obviously a good choice, yet it brings along some difficulties that probably can be streamlined from within the App-V Management Server's installer.&lt;br /&gt;&lt;br /&gt;PS: You didn't forget to grant the NETWORK SERVICE account also read permissions on your content directory, since otherwise your streaming won't work?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-8466789581260237759?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/8466789581260237759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=8466789581260237759' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/8466789581260237759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/8466789581260237759'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2008/11/app-v-45-certificate-galore.html' title='App-V 4.5 Certificate Galore'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_tOIlP1THwEk/STOoHcLpy1I/AAAAAAAAA8o/O_Fq6DrhYSc/s72-c/20081201-ReadPerm.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-808896770364682383</id><published>2008-11-21T10:31:00.005+01:00</published><updated>2008-11-27T15:49:19.862+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VMWare'/><title type='text'>VMware Tools without a reboot?</title><content type='html'>Every now and then, you see blogposts appearing on the "issue" that you need to reboot a guest operating system after you install or update the VMware Tools. Many people have pondered about whether a reboot is in fact really necessary and if it can be avoided all together. Recent posts about this can be read &lt;a href="http://www.ntpro.nl/blog/archives/763-How-to-install-VMware-tools-without-a-reboot.html"&gt;here&lt;/a&gt; and &lt;a href="http://halr9000.com/article/642"&gt;here&lt;/a&gt;, refering to &lt;a href="http://communities.vmware.com/thread/168530"&gt;this VMware community thread&lt;/a&gt; -- the question is still alive in multiple-year spanning threads like &lt;a href="http://communities.vmware.com/thread/15561"&gt;this one right here&lt;/a&gt;. I usually frown my eyebrowses when reading on these "no reboot" topics, yet I am interested in keeping up with the advancements in that subject for some of the large customers that I come in contact with professionaly.&lt;br /&gt;&lt;br /&gt;The scripts and methods outlined in these blogposts sound a bit tricky at first if you ask me, and I feared they might not have the outcome you expected. I would think the VMware tools really require a reboot on some operating systems because you update parts of the virtual device drivers and those need to be reloaded by a reboot of the operating system (&lt;span style="font-style: italic;"&gt;Note: strictly speaking you don't need a reboot for all types of device drivers, only under a specific set of circumstances &lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.microsoft.com/whdc/system/pnppwr/pnp/no_reboot.mspx"&gt;documented by Microsoft&lt;/a&gt;&lt;span style="font-style: italic;"&gt;. The VMware disk drivers host a boot device so that would fit under the "requires a reboot" category from that document&lt;/span&gt;). This means that just running the installer with a "Suppress Reboot" parameter on all your machines will place the new VMware Tools files on your harddisk, but will not actively load all of them... I am not sure if that is a state I would want my production virtual machines in!? And to be very clear: what these scripts do is request an automatic postpone of the reboot, not trigger some hidden functionality in VMware Tools not to really reboot after all!&lt;br /&gt;&lt;br /&gt;To remove all suspicion, I did a little test on a Windows 2003 virtual machine and upgraded the tools from ESX 3.0.2 to ESX 3.5U2 without rebooting (using the commandline &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;setup.exe /S /v"REBOOT=R /qb"&lt;/span&gt;&lt;/span&gt; on the VMware Tools ISO). This effectively updates the following services and drivers without rebooting:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;VMware services (bumped from build 63195 to build 110268)&lt;/li&gt;&lt;li&gt;VMware SVGA II driver, VMware Pointing Device driver&lt;/li&gt;&lt;/ul&gt;It left the following drivers untouched:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;VMware Virtual disk SCSI Disk Device ("dummy" harddisk driver - Microsoft driver)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;NECVMWar VMware IDE CDR10 (virtual CD-ROM driver)&lt;/li&gt;&lt;li&gt;Intel Pro/1000 MT Network Connection (vmnet driver - Microsoft driver)&lt;/li&gt;&lt;li&gt;LSI Logic PCI-X Ultra320 SCSI Host Adapter (storage adapter - Microsoft driver)&lt;/li&gt;&lt;/ul&gt;It turned out that these drivers didn't require updating for my specific virtual machine (even after a reboot). In fact, I wasn't immediatelly able to find one machine in the test environment at work that required updating any bootdisk device drivers (and some still had 3.0.2 VMware Tools running!).&lt;br /&gt;&lt;br /&gt;To conclude, I would say that in some circumstances it is safe to postpone the reboot of your virtual machine, if at minimum the boot disk device drivers are not touched. Postponing the reboot is very convenient if you use it in the context of a patch weekend where you want to postpone the restart to one big, single reboot at the end of all your patches.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update: &lt;/span&gt;as Duncan Epping points out in &lt;a href="http://www.yellow-bricks.com/2008/11/27/installing-vmware-tools-without-a-reboot/"&gt;a recent blogpost&lt;/a&gt;, be also advises that updating the network driver effectively drops all network connections. This is for all practical purposes maybe just as bad as actually rebooting your server, so beware with the "fake level of safety and comfort" that you might have by postponing a VMware Tools reboot!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-808896770364682383?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/808896770364682383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=808896770364682383' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/808896770364682383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/808896770364682383'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2008/11/vmware-tools-without-reboot.html' title='VMware Tools without a reboot?'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-3551138861347364518</id><published>2008-08-14T09:43:00.015+02:00</published><updated>2008-08-14T14:23:25.666+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VMWare'/><title type='text'>Matching LUN's between ESX hosts and a VCB proxy</title><content type='html'>One of the problems that I encountered at a customer was to discover what VMFS partitions were presented to a VCB proxy. It turned out to be a bit more complex than I had first expected.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Introduction&lt;/span&gt;&lt;br /&gt;VMware released the VCB framework (&lt;a href="http://www.vmware.com/products/vi/consolidated_backup.html"&gt;VMware Consolidated Backup&lt;/a&gt;)  to make a backups of a virtual machine. The VCB framework is typically installed on a Windows host (the VCB proxy), and in order to make SAN backups, you need to present both the source LUN, which contains the virtual machines to backup, and the destination LUN, where the backup files are stored, to that VCB proxy.&lt;br /&gt;&lt;br /&gt;This setup is relatively simple to maintain in smaller environments. However, once you get in a big environment were a dozen teams are involved (separate networking teams, separate SAN teams, separate Windows teams and separate VMware teams), it can become quite challenging to find out which of the 12 LUN's that are presented to a Windows host in fact belong to a specific ESX host.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Finding unique identifiers for a LUN&lt;/span&gt;&lt;br /&gt;The mission is to find a unique identifier (UID) that can be used both on the ESX host and the Windows box. The first two obvious candidates to uniquely identify a ESX managed LUN on a SAN network are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="text-decoration: underline;"&gt;The VMFS ID for the partition&lt;/span&gt;&lt;br /&gt;Upon the initialization of a VMFS partition, it is assigned a unique identifier that can be found by looking in the /vmfs/volumes directory on an ESX host, or by using the &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;esxcfg-vmhbadevs -m&lt;/span&gt;&lt;/span&gt; command on the ESX host. The output looks like this:&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;vmhba1:0:2:1  /dev/sdb1  48858dc4-f4e218d1-d3a8-001cc497e630&lt;br /&gt;vmhba1:4:1:1  /dev/sdc1  483cf914-29b60dc5-dbfd-001cc497e630&lt;br /&gt;vmhba1:4:2:1  /dev/sdd1  479da7c1-4494cd90-d327-001cc497e630&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The first disk is the (remainder) of the locally attached storage, and the two other disks are presented from the SAN. The first column indicates that HBA 1, SCSI target 4 and LUN's 1 and 2 are used (and partition 1 on each LUN); the second column lists the Linux device name under the Service Console and the third column lists the VMFS ID.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="text-decoration: underline;"&gt;The WWPN (World Wide Port Name) of the disk on the SAN&lt;/span&gt;&lt;br /&gt;On a fiber-channel SAN network, each device is assigned a unique identifier called the &lt;a href="http://en.wikipedia.org/wiki/World_Wide_Port_Name"&gt;WWPN&lt;/a&gt;. You can compare the WWPN as performing the same function as a MAC address on an Ethernet network. The WWPN's of the disks that are presented to an ESX host can be obtained from the Service Console using the &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;esxcfg-mpath -l&lt;/span&gt;&lt;/span&gt; command:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;Disk vmhba1:4:1 /dev/sdc (256000MB) has 16 paths and policy of Fixed&lt;br /&gt;FC 13:0.0 10000000c96e8972&lt;-&gt;500507630308060b vmhba1:4:1 On&lt;br /&gt;FC 13:0.0 10000000c96e8972&lt;-&gt;500507630313060b vmhba1:5:1 On&lt;br /&gt;FC 13:0.0 10000000c96e8972&lt;-&gt;500507630303060b vmhba1:6:1 On active preferred&lt;br /&gt;FC 13:0.0 10000000c96e8972&lt;-&gt;500507630303860b vmhba1:7:1 On&lt;br /&gt;FC 13:0.0 10000000c96e8972&lt;-&gt;500507630308860b vmhba1:8:1 On&lt;br /&gt;FC 13:0.0 10000000c96e8972&lt;-&gt;500507630313860b vmhba1:9:1 On&lt;br /&gt;FC 13:0.0 10000000c96e8972&lt;-&gt;500507630318060b vmhba1:10:1 On&lt;br /&gt;FC 13:0.0 10000000c96e8972&lt;-&gt;500507630318860b vmhba1:11:1 On&lt;br /&gt;FC 16:0.0 10000000c96e8ccc&lt;-&gt;500507630303460b vmhba2:4:1 On&lt;br /&gt;FC 16:0.0 10000000c96e8ccc&lt;-&gt;500507630308460b vmhba2:5:1 On&lt;br /&gt;FC 16:0.0 10000000c96e8ccc&lt;-&gt;500507630313460b vmhba2:6:1 On&lt;br /&gt;FC 16:0.0 10000000c96e8ccc&lt;-&gt;500507630303c60b vmhba2:7:1 On&lt;br /&gt;FC 16:0.0 10000000c96e8ccc&lt;-&gt;500507630308c60b vmhba2:8:1 On&lt;br /&gt;FC 16:0.0 10000000c96e8ccc&lt;-&gt;500507630313c60b vmhba2:9:1 On&lt;br /&gt;FC 16:0.0 10000000c96e8ccc&lt;-&gt;500507630318460b vmhba2:10:1 On&lt;br /&gt;FC 16:0.0 10000000c96e8ccc&lt;-&gt;500507630318c60b vmhba2:11:1 On&lt;br /&gt;&lt;br /&gt;Disk vmhba1:4:2 /dev/sdd (256000MB) has 16 paths and policy of Fixed&lt;br /&gt;FC 13:0.0 10000000c96e8972&lt;-&gt;500507630308060b vmhba1:4:2 On&lt;br /&gt;FC 13:0.0 10000000c96e8972&lt;-&gt;500507630313060b vmhba1:5:2 On&lt;br /&gt;FC 13:0.0 10000000c96e8972&lt;-&gt;500507630303060b vmhba1:6:2 On&lt;br /&gt;FC 13:0.0 10000000c96e8972&lt;-&gt;500507630303860b vmhba1:7:2 On&lt;br /&gt;FC 13:0.0 10000000c96e8972&lt;-&gt;500507630308860b vmhba1:8:2 On&lt;br /&gt;FC 13:0.0 10000000c96e8972&lt;-&gt;500507630313860b vmhba1:9:2 On&lt;br /&gt;FC 13:0.0 10000000c96e8972&lt;-&gt;500507630318060b vmhba1:10:2 On&lt;br /&gt;FC 13:0.0 10000000c96e8972&lt;-&gt;500507630318860b vmhba1:11:2 On&lt;br /&gt;FC 16:0.0 10000000c96e8ccc&lt;-&gt;500507630303460b vmhba2:4:2 On&lt;br /&gt;FC 16:0.0 10000000c96e8ccc&lt;-&gt;500507630308460b vmhba2:5:2 On active preferred&lt;br /&gt;FC 16:0.0 10000000c96e8ccc&lt;-&gt;500507630313460b vmhba2:6:2 On&lt;br /&gt;FC 16:0.0 10000000c96e8ccc&lt;-&gt;500507630303c60b vmhba2:7:2 On&lt;br /&gt;FC 16:0.0 10000000c96e8ccc&lt;-&gt;500507630308c60b vmhba2:8:2 On&lt;br /&gt;FC 16:0.0 10000000c96e8ccc&lt;-&gt;500507630313c60b vmhba2:9:2 On&lt;br /&gt;FC 16:0.0 10000000c96e8ccc&lt;-&gt;500507630318460b vmhba2:10:2 On&lt;br /&gt;FC 16:0.0 10000000c96e8ccc&lt;-&gt;500507630318c60b vmhba2:11:2 On&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;In this output, you can see two HBA's (that have WWPN's &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;10000000c96e8972&lt;/span&gt;&lt;/span&gt; and &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;10000000c96e8ccc&lt;/span&gt;&lt;/span&gt;) that see two LUN's vmhba1:4:&lt;span style="font-weight: bold;"&gt;1&lt;/span&gt; and vmhba1:4:&lt;span style="font-weight: bold;"&gt;2&lt;/span&gt; that are presented over 16 paths.&lt;br /&gt;&lt;br /&gt;On the VCB proxy / Windows box, I used the Emulex HBAnywhere utility to retrieve the WWPN's of the LUN's that were presented. The output is shown in the following screenshot:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_tOIlP1THwEk/SKQjlmESisI/AAAAAAAAA74/O_ccnEAcjy8/s1600-h/20080812-HBAnywhere.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_tOIlP1THwEk/SKQjlmESisI/AAAAAAAAA74/O_ccnEAcjy8/s320/20080812-HBAnywhere.jpg" alt="" id="BLOGGER_PHOTO_ID_5234347795692030658" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;It is also possible to use the &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;HbaCmd.exe AllNodeInfo &lt;hba&gt;&lt;/hba&gt;&lt;/span&gt;&lt;/span&gt; command to retrieve a list of all WWPN's that a certain HBA sees.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Looks nice, what's the problem?&lt;/span&gt;&lt;br /&gt;Using the WWPN seemed to be the obvious answer to identifying the LUN's on both the ESX host and the VCB proxy. Until I discovered that two different LUN's where presented using the same WWPN (obviously they were on two different SAN's and presented to two different hosts). On one of our ESX hosts, a 256 GB LUN was presented using WWPN 50:05:07:63:03:08:06:0b, and on the VCB proxy, a 500 GB LUN was presented using that same WWPN -- apparently our SAN team recycles the WWPN's on the different fibre channel fabrics.&lt;br /&gt;&lt;br /&gt;To make matters even worse, I noticed that the same LUN was presented using one WWPN to an ESX host, and with another WWPN to the VCB proxy (I am no SAN expert myself but I assume it is possible to present the same LUN in different SAN zones using different WWPN's). I was able to verify this since VCB was able to do a SAN backup of a virtual machine that resides on a LUN with a WWPN on the ESX side that is not presented to the VCB proxy.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The next step: VMFS ID's as a unique identifier&lt;/span&gt;&lt;br /&gt;So, if you cannot rely on the WWPN's to uniquely identify a LUN on a host that is connected to multiple SAN's, then surely VCB must use the VMFS ID to know what LUN to read the virtual machine data from? Right?&lt;br /&gt;&lt;br /&gt;On the VCB proxy &amp;amp; Windows machine, I tried to discover the VMFS ID's using the &lt;span style="font-weight: bold;"&gt;vcbSanDbg.exe&lt;/span&gt; tool (included in the VCB framework and available as &lt;a href="http://www.vmware.com/download/eula/vcbsdt_eula.html"&gt;a separate download from the VMware website&lt;/a&gt; -- careful, the separate download is an older version than the one included in the VCB 1.5 framework). An excerpt from its lengthy output:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;C:\Program Files\VCB&gt;vcbSanDbg | findstr "ID: NAA: volume"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[info] Found logical volume 48761b97-a4f562bd-6875-0017085d.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[info] Found logical volume 48761bc5-3f508baa-2f5d-0017085d.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[info] Found logical volume 483cf913-05b4f526-45b5-001cc497.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[info] Found logical volume 479da7ac-55fe7dfe-378c-001cc497.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[info] Found logical volume 477c2b4a-7db36616-30ea-001cc495.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[info] Found logical volume 48843bec-154cf784-871a-001cc495.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[info] Found SCSI Device: NAA:600508b10010443953555534314200044c4f47494341&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[info] Found SCSI Device: NAA:60060e801525180000012518000000374f50454e2d56&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[info] Found SCSI Device: NAA:600508b4000901eb0001100003230000485356323130&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[info] ID: LVID:48761b97-dacedf9f-ebb9-0017085d0f91/48761b97-a4f562bd-6875-0017085d0f91/1 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       Name: 48761b97-a4f562bd-6875-0017085d&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[info] Found SCSI Device: NAA:600508b4000901eb0001100003260000485356323130&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[info] ID: LVID:48761bc6-7b4afa63-97d9-0017085d0f91/48761bc5-3f508baa-2f5d-0017085d0f91/1 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       Name: 48761bc5-3f508baa-2f5d-0017085d&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[info] Found SCSI Device: NAA:6005076303ffc60b0000000000001049323130373930&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[info] ID: LVID:483cf913-458f9fa5-a749-001cc497e630/483cf913-05b4f526-45b5-001cc497e630/1 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       Name: 483cf913-05b4f526-45b5-001cc497&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[info] Found SCSI Device: NAA:6005076303ffc60b000000000000104a323130373930&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[info] ID: LVID:479da7b6-877867e9-dd06-001cc497e630/479da7ac-55fe7dfe-378c-001cc497e630/1 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       Name: 479da7ac-55fe7dfe-378c-001cc497&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[info] Found SCSI Device: NAA:6005076303ffc403000000000000128d323130373930&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[info] ID: LVID:477c2b4a-969e01e0-8d49-001cc495fb46/477c2b4a-7db36616-30ea-001cc495fb46/1 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       Name: 477c2b4a-7db36616-30ea-001cc495&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[info] Found SCSI Device: NAA:6005076303ffc403000000000000128e323130373930&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[info] Found SCSI Device: NAA:600508b40006e8890000b000010a0000485356323130&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[info] Found SCSI Device: NAA:600508b40006e8890000b00003770000485356323130&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[info] ID: LVID:48843bec-28cc17a4-ca9e-001cc495fb46/48843bec-154cf784-871a-001cc495fb46/1 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       Name: 48843bec-154cf784-871a-001cc495&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Unfortunately, I was not able to discover the VMFS ID's I saw on the ESX host in this output, even though there are some resemblances:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;ESX host VMFS ID &lt;span style=";font-family:courier new;font-size:85%;"  &gt;483cf914-29b60dc5-dbfd-001cc497e630&lt;/span&gt; looks a lot like &lt;span style="font-weight: bold;"&gt;vcbSanDbg.exe&lt;/span&gt; output's logical volume &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;483cf913-05b4f526-45b5-001cc497&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;ESX host VMFS ID &lt;span style=";font-family:courier new;font-size:85%;"  &gt;479da7c1-4494cd90-d327-001cc497e630&lt;/span&gt;  looks a lot like &lt;span style="font-weight: bold;"&gt;vcbSanDbg.exe&lt;/span&gt; output's logical volume &lt;span style=";font-family:courier new;font-size:85%;"  &gt;479da7ac-55fe7dfe-378c-001cc497&lt;/span&gt;.&lt;/li&gt;&lt;/ul&gt;Furthermore, I found out that current versions of VCB do not rely on the VMFS ID to discover virtual machines on a LUN. In Andy Tucker's talk "&lt;a href="http://www.vmware-tsx.com/download.php?asset_id=55"&gt;VMware Consolidated Backup: today and tomorrow&lt;/a&gt;" at VMworld 2007, it is clearly stated (slide 19) that there...&lt;br /&gt;&lt;blockquote&gt;No “VMFS Driver for Windows” on proxy&lt;/blockquote&gt;&lt;br /&gt;And furthermore that the usage of VMFS signatures is on the "todo" list for identifying LUNs on the SAN network (slide 34).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Other ideas?&lt;/span&gt;&lt;br /&gt;So where does one turn when all possible solutions seem to lead to a dead end? Right: &lt;a href="http://communities.vmware.com/"&gt;the VMware community forums&lt;/a&gt;. The answer came in &lt;a href="http://communities.vmware.com/thread/161447"&gt;this thread&lt;/a&gt; by snapper.&lt;br /&gt;&lt;br /&gt;What I learned today is that besides the WWPN on a fiber channel network, there is another unique identifier called the NAA (Network Address Authority) to identify devices on the FC fabric. You can obtain the NAA for the LUN's on an ESX host using the esxcfg-mpath command in verbose mode using:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;esxcfg-mpath -lv | grep ^Disk | grep -v vmhba0 | awk '{print $3,$5,$2}' | cut -b15-&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The output on our ESX host looks much like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;6005076303ffc60b0000000000001049323130373930 (256000MB) vmhba1:4:1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;6005076303ffc60b000000000000104a323130373930 (256000MB) vmhba1:4:2&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The NAA can be seen in the vcbSanDbg.exe output shown above, and can be filtered as follows:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;vcbSanDbg.exe | findstr "NAA:"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The output should look like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;C:\Program Files\VCB&gt;vcbSanDbg | findstr "NAA:"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[info] Found SCSI Device: NAA:600508b10010443953555534314200044c4f47494341&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[info] Found SCSI Device: NAA:60060e801525180000012518000000374f50454e2d56&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[info] Found SCSI Device: NAA:600508b4000901eb0001100003230000485356323130&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[info] Found SCSI Device: NAA:600508b4000901eb0001100003260000485356323130&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[info] Found SCSI Device: NAA:6005076303ffc60b0000000000001049323130373930&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[info] Found SCSI Device: NAA:6005076303ffc60b000000000000104a323130373930&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[info] Found SCSI Device: NAA:6005076303ffc403000000000000128d323130373930&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[info] Found SCSI Device: NAA:6005076303ffc403000000000000128e323130373930&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[info] Found SCSI Device: NAA:600508b40006e8890000b000010a0000485356323130&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[info] Found SCSI Device: NAA:600508b40006e8890000b00003770000485356323130&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Et voila, now I can start running the esxcfg-mpath command on all our ESX hosts and start matching these NAA's with those in the output of vcbSanDbg to discover what our Windows VCB proxy has access to.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-3551138861347364518?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/3551138861347364518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=3551138861347364518' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/3551138861347364518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/3551138861347364518'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2008/08/matching-luns-between-esx-hosts-and-vcb.html' title='Matching LUN&apos;s between ESX hosts and a VCB proxy'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_tOIlP1THwEk/SKQjlmESisI/AAAAAAAAA74/O_ccnEAcjy8/s72-c/20080812-HBAnywhere.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-3767089380802784029</id><published>2008-08-12T15:35:00.016+02:00</published><updated>2008-08-14T14:28:16.286+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VMWare'/><title type='text'>VMWare D-Day: 12/08/2008</title><content type='html'>I recon "&lt;span style="font-style: italic;"&gt;12 August 2008&lt;/span&gt;" will be long remembered by all VMWare enthousiasts out there.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_tOIlP1THwEk/SKHefXkh88I/AAAAAAAAA7o/fSTDV9Y_4i4/s1600-h/20080812-VMware.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_tOIlP1THwEk/SKHefXkh88I/AAAAAAAAA7o/fSTDV9Y_4i4/s400/20080812-VMware.jpg" alt="" id="BLOGGER_PHOTO_ID_5233708872465773506" border="0" /&gt;&lt;/a&gt;That is the day that a major bug caused  ESX 3.5 Update 2 no longer to recognise any license, even if the license file at your license server was perfectly valid. There is no need to sketch the horror that follows when your ESX clusters no longer detect a valid license: Vmotion fails, DRS fails, HA fails, powering on virtual machines is no longer possible... Ironically, today is also Microsoft's Patch Tuesday of August, which probably means that quite some system admininistrators where caught with their pants down (and their VM's powered off during a scheduled maintenance window) when this bug struck.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;The symptoms and errors that we have been experiencing are the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Unable to VMotion a host from ESX 3.0.2 to ESX 3.5. The VMotion progresses until 10% and then aborts with error messages  such as "operation timed out" or "internal system error".&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;HA agent getting completely confused (unable to install, reconfigure for HA does not work).&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Unable to power on new machines:&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;[2008-08-12 14:11:16.022 'Vmsvc' 121330608 info] Failed to do Power Op: Error: Internal error&lt;br /&gt;[2008-08-12 14:11:16.065 'vm:/vmfs/volumes/48858dc4-f4e218d1-d3a8-001cc497e630/HOSTNAME/HOSTNAME.vmx' 121330608 warning] Failed operation&lt;br /&gt;[2008-08-12 14:11:16.066 'ha-eventmgr' 121330608 info] Event 15 : Failed to power on HOSTNAME on esx.test.local in ha-datacenter: A general system error occurred&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;VMWare&lt;a href="http://communities.vmware.com/message/1019685#1019685"&gt; is promising a patch tomorrow&lt;/a&gt;, but several forum posts (&lt;a href="http://communities.vmware.com/message/1019726#1019726"&gt;here&lt;/a&gt; and &lt;a href="http://communities.vmware.com/message/1019787#1019787"&gt;here&lt;/a&gt;) are wondering how this patch will be distributed and -- given&lt;a href="http://communities.vmware.com/message/1019761#1019761"&gt; the deep integration of the licensing components&lt;/a&gt; within ESX -- whether this will require a reboot of the ESX host or not (which can be quite problematic if you cannot VMotion machines away). A possible workaround for this issue is to introduce a 3.0.2 host in the cluster as I have seen in our environment that VMotioning from 3.5 to 3.0.2 still works.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Edit (21:20 PM):&lt;/span&gt;&lt;span style="font-style: italic;"&gt; hopes are up that VMware should be able to release a patch that doesn't require the ESX host to reboot. See what &lt;/span&gt;&lt;a style="font-style: italic;" href="http://verbeiren.blogspot.com/2008/08/vmware-bug-waiting-for-patch.html"&gt;Toni Verbeiren has to say about it on his blog&lt;/a&gt;&lt;span style="font-style: italic;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Edit (9:00 AM 13 AUG)&lt;/span&gt;&lt;span style="font-style: italic;"&gt;: &lt;a href="http://www.vmware.com/landing_pages/esxexpresspatches.html"&gt;a patch has been released by VMware&lt;/a&gt;. Regarding whether hosts need to be rebooted or not... there is good news and there is bad news: "to apply the patches, no reboot of ESX/ESXi hosts is required. One can VMotion off running VMs, apply the patches and VMotion the VMs back. If VMotion capability is not available, VMs need to be powered off before the patches are applied and powered back on afterwards."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You can follow the developing crisis at the following sources:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://communities.vmware.com/thread/162377"&gt;http://communities.vmware.com/thread/162377&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://kb.vmware.com/kb/1006716"&gt;http://kb.vmware.com/kb/1006716&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://ictfreak.wordpress.com/2008/08/12/bug-in-esx-35-update-2/"&gt;http://ictfreak.wordpress.com/2008/08/12/bug-in-esx-35-update-2/&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.vmug.nl/modules.php?name=Forums&amp;amp;file=viewtopic&amp;amp;t=2954"&gt;http://www.vmug.nl/modules.php?name=Forums&amp;amp;file=viewtopic&amp;amp;t=2954&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://lraikhman.blogsite.org/?p=111"&gt;http://lraikhman.blogsite.org/?p=111&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.theregister.co.uk/2008/08/12/vmware_12_august_esx_cockup/"&gt;h&lt;/a&gt;&lt;a href="http://www.theregister.co.uk/2008/08/12/vmware_12_august_esx_cockup/"&gt;ttp://www.theregister.co.uk/2008/08/12/vmware_12_august_esx_cockup/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Even our dear friends at Microsoft write about the problem, see the blogpost &lt;a href="http://blogs.technet.com/jamesone/archive/2008/08/12/it-s-rude-to-laugh-at-other-people-s-misfortunes-even-vmware-s.aspx"&gt;"It's rude to laugh at other people's misfortunes - even VMware's"&lt;/a&gt; here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-3767089380802784029?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/3767089380802784029/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=3767089380802784029' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/3767089380802784029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/3767089380802784029'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2008/08/vmware-d-day-12082008.html' title='VMWare D-Day: 12/08/2008'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_tOIlP1THwEk/SKHefXkh88I/AAAAAAAAA7o/fSTDV9Y_4i4/s72-c/20080812-VMware.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-6257037716157150502</id><published>2008-08-08T20:47:00.004+02:00</published><updated>2008-08-08T21:18:31.637+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile'/><title type='text'>WM6 and self-signed certificates</title><content type='html'>When playing around with &lt;a href="http://www.miousers.co.uk/viewtopic.php?t=4253"&gt;a new (unofficial) WM6.1 rom&lt;/a&gt; for my Mio A701, I bumped into a well known problem with installing self-signed certificates on (homebrew?) WM6 ROMs: it is not possible to install a new CA certificate with the error message "&lt;span style="font-style: italic;"&gt;The certificate was not successfully added; please restart your device and try again&lt;/span&gt;". Obviously, restarting the device did not fix the problem.&lt;br /&gt;&lt;br /&gt;A few months ago, I already encountered the problem and I knew you could bypass it by importing the certificate directly into the mobile device's registry. However, the procedures that I read all involved:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;flashing Windows Mobile 5 (or a WM6 version that was patched to accept any certificate),&lt;/li&gt;&lt;li&gt;importing the certificate in that temporary ROM,&lt;/li&gt;&lt;li&gt;exporting the relevant registry data,&lt;br /&gt;&lt;/li&gt;&lt;li&gt;reflashing back to the rom that has the certificate problem,&lt;br /&gt;&lt;/li&gt;&lt;li&gt;importing the certificate through the registry file you obtained earlier in step 3.&lt;/li&gt;&lt;/ol&gt;As you can imagine, this is quite some work and since I am a lazy person by nature, I did not want to go back to WM5 after just having flashed my Mio to a brandnew and shiny WM6. Therefore, I decided to develop a shorter workaround that doesn't involve reflashing.&lt;br /&gt;&lt;br /&gt;The tricky part is that you need to create the proper registry file to import. This file looks like:&lt;br /&gt;&lt;blockquote style="font-family: courier new;"&gt;Windows Registry Editor Version 5.00&lt;br /&gt;&lt;br /&gt;[HKEY_LOCAL_MACHINE\Comm\Security\SystemCertificates\Root\Certificates\824AF72AB87E17AC777098A4164D7A90C90C0D69]&lt;br /&gt;"Blob"=hex:19,00,00,00,01,00,00,00,10,00,00,00,4f,e5,c4,01,4e,7d,89,4a,da,42,\&lt;br /&gt;3f,f7,24,0f,7f,a2,19,00,00,00,01,00,00,00,10,00,00,00,cb,bc,40,37,8a,45,2c,\&lt;br /&gt;...&lt;/blockquote&gt;(please disregard the unintentional wrapping of the registry location; everything between the square brackets should be on one line).&lt;br /&gt;&lt;br /&gt;The difficult part is converting your self-signed certificate to the proper registry format. Here's how I did that:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;On a regular PC, use Internet Explorer to go to a website with the certificate that you want to install on your mobile device (typically this will be Outlook Web Access or something). Open the certificate and install it on your local PC (let the certificate import wizard automatically place the certificate in whatever store it finds necessary).&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;View the certificate (in Internet Explorer or by using the Certificate MMC) and go to the "Details" tab. There you will find the "Thumbprint" of the algorithm. You will need to look up this number in a few moments, so be sure to remember the first few digits. In the case for the company I work for, the thumbprint is "&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;824af72ab8somethingsomething&lt;/span&gt;&lt;/span&gt;".&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Open your registry editor and go to the following location:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;HKEY_CURRENT_USER\Software\Microsoft\SystemCertificates\Root\Certificates\&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There should be a registry key that has the thumbprint of your certificate as its name:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_tOIlP1THwEk/SJyZEqORLTI/AAAAAAAAA7g/WuyxeOm1ZVc/s1600-h/20080808-WM6Registry_001.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_tOIlP1THwEk/SJyZEqORLTI/AAAAAAAAA7g/WuyxeOm1ZVc/s320/20080808-WM6Registry_001.JPG" alt="" id="BLOGGER_PHOTO_ID_5232225172430335282" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Rightclick that registry key and click "Export...". Choose a location for the exported registry data.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Next, open the registry export in Notepad. Replace the registry key location (between the square brackets) to &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;HKEY_LOCAL_MACHINE\Comm\Security\SystemCertificates\Root\Certificates\&lt;/span&gt;&lt;/span&gt; followed by the thumbprint. Next, replace the first 12 bytes in the "Blob" registry value by:&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt; hex:19,00,00,00,01,00,00,00,10,00,00,00&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Your result should look like this:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-family:courier new;"&gt;Windows Registry Editor Version 5.00&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[&lt;span style="font-weight: bold;"&gt;HKEY_LOCAL_MACHINE\Comm\Security\SystemCertificates\Root\Certificates\&lt;/span&gt;824AF72AB87E17AC777098A4164D7A90C90C0D69]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;"Blob"=hex:&lt;span style="font-weight: bold;"&gt;19,00,00,00,01,00,00,00,10,00,00,00&lt;/span&gt;,4f,e5,c4,01,4e,7d,89,4a,da,42,\&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  3f,f7,24,0f,7f,a2,19,00,00,00,01,00,00,00,10,00,00,00,cb,bc,40,37,8a,45,2c,\&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  ...&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;Compare this with the original registry export that I have shown above, the differences are shown in bold.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Save the registry file, copy it to your mobile device and import it there. Voila! Finished! &lt;/li&gt;&lt;/ul&gt;You can use the "Certificates" control panel to verify that your certificate is properly recognized!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Note:&lt;/span&gt;&lt;span style="font-style: italic;"&gt; you must either restart the ActiveSync process on your device because it will not immediately recognize the new certificate; you can kill the ActiveSync process or restart your device (but first wait at least a few minutes such that Windows Mobile can commit your registry changes to memory!).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Obviously, this is completely not supported or endorsed by anybody on this planet. Perform these actions at your own risk and be sure you know what to do in case you brick your device!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-6257037716157150502?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/6257037716157150502/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=6257037716157150502' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/6257037716157150502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/6257037716157150502'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2008/08/wm6-and-self-signed-certificates.html' title='WM6 and self-signed certificates'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_tOIlP1THwEk/SJyZEqORLTI/AAAAAAAAA7g/WuyxeOm1ZVc/s72-c/20080808-WM6Registry_001.JPG' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-867482025328882819</id><published>2008-07-29T09:57:00.026+02:00</published><updated>2008-08-12T13:41:01.625+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VMWare'/><title type='text'>Full backups of virtual machines and Windows VSS</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Introduction&lt;/span&gt;&lt;br /&gt;One of the new features that is appearing in backup products that take backups of an entire virtual machine, as opposed to using an agent inside the guest operating system, is the ability to cooperate with &lt;a href="http://en.wikipedia.org/wiki/Shadow_Copy"&gt;Windows VSS (Volume Snapshot Service)&lt;/a&gt; inside the guest. For example, the recently released version of &lt;a href="http://www.vmware.com/support/vi3/doc/vi3_vcb15_rel_notes.html"&gt;VMWare's Consolidated Backup 1.5&lt;/a&gt;, now supports VSS quiescing for Windows 2003, Windows Vista, Windows 2008; vizioncore's &lt;a href="http://www.vizioncore.com/vRangerPro.html"&gt;vRanger Pro&lt;/a&gt; backup utility has been supporting VSS for Windows 2003 for some versions already.&lt;br /&gt;&lt;br /&gt;Several opinions exist on whether this is in fact a useful feature or not; for example, not so long ago the developers of &lt;a href="http://www.esxpress.com/"&gt;esXpress&lt;/a&gt; talked about not including VSS quiescing into their product at that time because it adds additional complexity and does not offer any significant benefits in their opinion (see &lt;a href="http://support.p2v.net/boards/read.php?3,2863,2957#msg-2865"&gt;here&lt;/a&gt;). This discussion is still alive as you can see for example &lt;a href="http://vmetc.com/2008/02/04/can-you-rely-on-live-backups-of-exchange-and-sql-vms"&gt;here&lt;/a&gt;, and the big question is indeed: &lt;span style="font-style: italic;"&gt;can you rely on live backups of database virtual machines&lt;/span&gt;?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The early days of VSS&lt;/span&gt;&lt;br /&gt;The root of the discussion is at the intended use of VSS: on a physical machine that is running a database application such as SQL Server, Exchange or even Active Directory or a DHCP server for that matter, you cannot directly read the database files since they are exclusively locked by the database application. This used to be particularly troublesome because the only way to get a backup of the data inside such a database is to use some sort of export function that had to be programmed into the database application (think of the BACKUP TSQL command or a brick-level backup of an Exchange server).&lt;br /&gt;&lt;br /&gt;Microsoft tackled this problem by introducing VSS, which presents a fully readable point-in-time snapshot of a filesystem to the (backup) application that initiates the snapshot. That way, a backup application can read the database file contents and put it away safely in case it is ever needed.&lt;br /&gt;&lt;br /&gt;However, there are two problems when reading files from a filesystem that is "frozen" in time:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;a file can be in progress of being written (i.e. only 400 bytes of a 512-byte block are filled with actual data).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;data still in a filesystem cache or buffer in memory and not yet written to the disk (in the filesystem journal).&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;On top of the filesystem issues, there are two problems when reading a database that is still in use but "frozen" purely at a filesystem level:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;at the time of the snapshot, a transaction could still be in progress. This can be an issue when the transaction is not supposed to be committed to the database at the end: as you know, a database query can initiate thousands of changes and perform a ROLLBACK at the end to reset any changes made since the start of the transaction.&lt;br /&gt;&lt;br /&gt;A good (ficteous) example here is when you try to draw 1000 euros in cash from an ATM: if you change your mind right before clicking the "confirm transaction" button on the ATM screen, then you don't want your 1000 euros to be really gone if at the same time a database snapshot is taken and your final "ROLLBACK" command is not included in the database!&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;some data could still be in memory and not written to a logfile or a database file (so-called "dirty pages").&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Crash consistency versus transactional consistency&lt;/span&gt;&lt;br /&gt;If you don't take these four problems into account, then restoring a snapshot of such a filesystem would be in fact the same as bringing back up the server after you suddenly pulled the power plug. Such a snapshot is said to be in &lt;span style="font-style: italic;"&gt;a crash-consistent state&lt;/span&gt;, i.e. the same state as a sudden power-loss.&lt;br /&gt;&lt;br /&gt;Modern filesystems have built-in mechanisms (so-called "journalling") to tackle these problems and to ensure that when such a "frozen" filesystem is restored from a backup, the open files are put back in a consistent state as possible. Obviously, any data that only existed in memory and never was written to a filesystem journal/disk is lost. Databases rely on transaction logging to recover from a crash-consistent state back to a consistent database; this is typically done by simply rolling back all unfinished transactions, effectively ignoring all transactions that were not committed or rolled back.&lt;br /&gt;&lt;br /&gt;Windows VSS wants to go beyond a crash-consistent snapshot and solves both the filesystem and database problem by not only freezing all I/O to the filesystem but also asking both the filesystem and all applications to flush its dirty data to disk. This allows the creation of both a filesystem consistent and an application-consistent backup. VSS has built-in support for several Windows-native technologies such as NTFS filesystems, Active Directory databases, DNS databases, ... to flush their data to disk before the snapshot is presented to the backup application requesting the snapshot. Other programs, such as SQL/Oracle databases or Exchange mailservers, use "VSS Writer" plugins to get notified when a VSS snapshot is taken and when they have to flush their dirty database pages to disk to bring the database in &lt;span style="font-style: italic;"&gt;a transactionally consistent state&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;From &lt;a href="http://technet2.microsoft.com/WindowsServer/en/Library/2b0d2457-b7d8-42c3-b6c9-59c145b7765f1033.mspx?mfr=true"&gt;Technet&lt;/a&gt;:&lt;br /&gt;&lt;p style="margin-left: 40px;"&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;&lt;i&gt;&lt;/i&gt;&lt;blockquote&gt;&lt;i&gt;[...] If an application has no writer, the shadow copy will still occur and all of the data, in whatever form it is in at the time of the copy, will be included in the shadow copy. This means that there might be inconsistent data that is now contained in the shadow copy. This data inconsistency is caused by incomplete writes, data buffered in the application that is not written, or open files that are in the middle of a write operation. Even though the file system flushes all buffers prior to creating a shadow copy, the data on the disk can only be guaranteed to be crash-consistent if the application has completed all transactions and has written all of the data to the disk. (Data on disk is “crash-consistent” if it is the same as it would be after a system failure or power outage.)&lt;/i&gt;&lt;i&gt;. [...] &lt;/i&gt;&lt;i&gt;All files that were open will still exist, but are not guaranteed to be free of incomplete I/O operations or data corruption.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;Under this design, the responsibility for data consistency has been shifted from the requestor application to the production application. The advantage of this approach is that application developers — those most knowledgeable about their applications — can ensure, through development of their own writers, the maximum effectiveness of the shadow copy creation process.&lt;/i&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/blockquote&gt;&lt;i&gt;&lt;/i&gt;&lt;p style="margin-left: 40px;"&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;Conclusions for the physical world: the above makes clear that there is a huge benefit in using VSS when working on physical machines: &lt;span style="font-weight: bold;"&gt;VSS is a requirement&lt;/span&gt; to be able to backup the entire database files and to ensure that the database is not in an inconstent state when you want to do the restore the database- and logfiles and attempt to mount them. The main advantage here is that a restored database does not have to go through a series of consistency checks that typically take up many, many hours.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Going to the virtual world&lt;/span&gt;&lt;br /&gt;&lt;span&gt;In the virtual world, there are several different types of backups that can be performed:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Performing the backup inside the guest OS.&lt;/li&gt;&lt;li&gt;Performing a backup of the harddisk files (VHD/VMDK) when using a virtualization product that is hosted on another operating system, such as Microsoft Virtual Server or VMWare Workstation/Server.&lt;/li&gt;&lt;li&gt;Performing a backup of the harddisk files (VHD/VMDK) when using a bare-metal hypervisor based product such as Microsoft Hyper-V or VMWare's ESX/ESXi Server.&lt;/li&gt;&lt;/ul&gt;Obviously, when you perform the backup inside the guest OS, you still encounter the same problems as when attempting to back up a physical host: open files and database files are locked and thus cannot be backed up directly, so you have to revert to using VSS for the reasons discussed above.&lt;br /&gt;&lt;br /&gt;But what about the other two ways of performing a virtual machine backup, when attempting to back up the entire harddisk file? For starters, it is important to realize that "file locking" now occurs at two levels:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The VHD/VMDK harddisk files themselves are opened and locked by the virtualization software (be it the hypervisor for bare-metal virtualization or the executable when using hosted virtualization);&lt;/li&gt;&lt;li&gt;Files can be opened and locked inside in the guest operating system.&lt;/li&gt;&lt;/ol&gt;The first issue of the open VHD/VMDK harddisk files is solved depending on the virtualization product: if you are using host-based virtualization, you can obtain a readable VHD/VMDK file by using VSS on the host operating system and asking to present an application-consistent variant of the VHD/VMDK files. If you are using a bare-metal hypervisor, a typical mechanism is by taking a snapshot of a virtual machine (which, for example in VMWare ESX, shifts the file lock from the VMDK file to the snapshot delta file, thus releasing the VMDK file for reading).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Open files inside the guest OS&lt;/span&gt;&lt;br /&gt;Ironically, the solution of the first problem of open VHD/VMDK host files introduces the second problem of open files inside the guest os: once you have your snapshot of the VHD/VMDK files (be it through VSS for host-based virtualization or a VM snapshot for bare-metal hypervisors)... that snapshot is only in a crash-consistent state! After all, it is a point-in-time "freeze" of the entire harddisk and restoring such an image file would be equivalent to restarting the server after a total powerloss occured.&lt;br /&gt;&lt;br /&gt;VMWare attempted to tackle this problem by introducing a "filesystem sync driver" in their VMTools (which you are supposed to install in every virtual machine running on a VMWare product). This filesystem sync driver mimics VSS in the sense that it requests that the filesystem flushes its buffer to disk, guaranteeing that the snapshot -- and thus corresponding full virtual machine backup -- is in a filesystem consistent state. Obviously, this does not solve the problem for databases which tend to react quite violently to these kind of non-VSS "freezes" of the filesystem. Prototype horror stories can be read &lt;a href="http://communities.vmware.com/thread/123564"&gt;here (AD)&lt;/a&gt; and &lt;a href="http://kb.vmware.com/selfservice/microsites/search.do?cmd=displayKC&amp;amp;externalId=5962168"&gt;here (Exchange)&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So what are the real solutions for this problem? I can think of two at this moment:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;After taking a snapshot, &lt;span style="font-weight: bold;"&gt;do not only backup the disks but also the memory&lt;/span&gt;. Then, when restoring the backup, do not "power on" the virtual machine but instead "resume" it. At first, the machine will probably be "shocked" to see that the time has lept forward and that many TCP/IP connections are suddenly being dropped, but the database server you are running should be able to handle this and properly commit any unsaved data from memory to disk.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Trigger a &lt;span style="font-weight: bold;"&gt;VSS operation inside the guest OS&lt;/span&gt; to commit all changes to disk and ensure filesystem- and applicationlevel consistency, and only then take the full virtual machine snapshot.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;The VSS interaction with the guest operating system was first introduced by &lt;a href="http://www.vizioncore.com/"&gt;vizionCore&lt;/a&gt; in their &lt;a href="http://www.vizioncore.com/vRangerPro.html"&gt;vRanger Pro 3.2.0&lt;/a&gt; -- which required the installation of an additional service inside the guest VM, .NET 2.0 and was only officially supported for Windows 2003 SP1+ in 32bit. With the release of &lt;a href="http://www.vmware.com/support/vi3/doc/vi3_vcb15_rel_notes.html"&gt;VMWare Consolidated Backup 1.5&lt;/a&gt;, VMWare announced the default queiscing of disks on ESX 3.5 Update 2 would now be done using the new VSS driver -- supported on Windows 2003/2008/Vista in both 32 &amp;amp; 64-bit variants. Hurray! Problem solved, right?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;So VSS seems nice, but is it necessary?&lt;/span&gt;&lt;br /&gt;&lt;span&gt;Obviously, your gut feeling will tell you that it is "nicer" and "more gentle" to the guest virtual machine when using&lt;/span&gt;   VSS when taking a snapshot and a backup. The arguments on the difference between crash-consistency, filesystem consistency and application-level consistency (which translates to transactional consistency for databases) give solid grounds to this gut feeling.&lt;br /&gt;&lt;br /&gt;Personally, I cannot find an argument that states that VSS is also really &lt;span style="font-style: italic;"&gt;necessary&lt;/span&gt; to create a full virtual machine backup. In the physical world, filesystems and databases have been hardened to recover from the crash-consistent state that you obtain when taking a snapshot of a running virtual machine to back up and restore. Hands-on experience about this robustness can be read on several informal channels such as forum posts &lt;a href="http://support.esxpress.com/boards/read.php?3,2863,2863,quote=1#msg-2867"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;However, if you want to be sure that your database is in a consistent state (for a faster recovery) and certainty that those few seconds of data that were not yet committed from memory to disk are in fact included in your snapshot, then VSS is what you need. The next question to answer is: what is the risk of VSS messing up and is this probability larger than not being able to restore a non-VSS-based snapshot?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Conclusion&lt;/span&gt;&lt;br /&gt;Performing live backups of virtual machines seems like an interesting and simple feature of virtualisation at first. However, at a second glance, there are some important decisions to be made regarding the use of VSS/snapshotting technology that can impact your restore strategy and success. Even without any quiescing mechanism, the operating system should be able to handle the crash-consistent backups that are taken by performing live machine backups and should therefore be sufficiently reliable. With the ready availability of VSS in the new VMWare Tools that come with ESX 3.5 Update 2, much more than crash-consistent backups can be guaranteed without the need to install additional agents. The increased reliability and faster restore time (no filesystem/database consistency checks) that come with VSS quiesced snapshots make full virtual machine backups now a fully mature solution without the need to worry for possibly inconsistent backups.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Side remarks&lt;/span&gt;&lt;br /&gt;Some additional remarks regarding full virtual machine backup:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Full VM backups can be an addition to guest-based file level backups, but they can never be a complete replacement:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;you might take a full VM based snapshot of your Exchange or SQL database every day, but a filebased/bricklevel backup (which is far more convenient to use for your typical single file/single mailbox restore operations) might be taken several times a day, depending on the SLA that your IT department has with the rest of the company.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;a full vm backup is a good place to start a full server recovery. It is a bad place to start a single-file or a single mailbox restore.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;a full VM backups using VSS do not allow the backup of SQL transaction logs (see "what is not supported" in &lt;a href="http://www.microsoft.com/technet/prodtechnol/sql/2005/sqlwriter.mspx"&gt;the SQL VSS Writer overview&lt;/a&gt;), nor do they commit transaction logs to the database in order to clear up the transaction logs (an absolute necessity for Exchange databases or for several types of SQL databases).&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Microsoft does not support any form of snapshotting technology on domain controllers. For more information, see &lt;a href="http://support.microsoft.com/kb/888794/en-us"&gt;MSKB 888794&lt;/a&gt; on "Considerations when hosting Active Directory domain controller in virtual hosting environments".&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Edit (12 Aug 2008):&lt;/span&gt; VeeAm has released &lt;a href="http://www.veeam.com/whitepapers/VMware%20and%20VSS%20-%20Application%20Backup%20and%20Recovery.pdf"&gt;a very interesting whitepaper&lt;/a&gt; that discusses not only the necessity for VSS awareness during the backup process, but also during the &lt;span style="font-style: italic;"&gt;restore&lt;/span&gt; process. They give the example of a domain controller that performs &lt;a href="http://support.microsoft.com/kb/875495"&gt;USN rollbacks&lt;/a&gt; when being backed up using VSS but not restored using a VSS aware software. Another nice example is &lt;a href="http://support.microsoft.com/kb/822896"&gt;Exchange 2003&lt;/a&gt; that requires VSS aware restore software in order to be supported by Microsoft.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;hr /&gt;Postscriptum: I started writing this article a few days before VCB 1.5 was released, and the original point I was trying to make at that time was that there were too many disadvantages to the available VSS implementations (yet another service to install, .NET 2.0, very limited OS support) to really profit from the benefits that VSS could offer. Of course, in the meantime, VMWare has taken away most of those objections by including VSS support in their VMTools for a wide range of server operating systems. This forced me to reconsider my view on whether VSS would be a good idea or not.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-867482025328882819?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/867482025328882819/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=867482025328882819' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/867482025328882819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/867482025328882819'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2008/07/full-backups-of-virtual-machines-and.html' title='Full backups of virtual machines and Windows VSS'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-2545881810334154247</id><published>2008-06-19T23:15:00.004+02:00</published><updated>2008-06-20T00:28:54.036+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft SQL Server'/><title type='text'>SQL Server 2005 Express Edition on Windows 2008 x64</title><content type='html'>While experimenting with the Microsoft App-V 4.5 Release Candidate (more on that soon), I decided to go for a full-blown installation on Windows 2008 x64. Since this is only on my home network, I don't run a dedicated SQL server so I went for the natural choice of installing &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=31711d5d-725c-4afa-9d65-e4465cdff1e7&amp;amp;displaylang=en"&gt;SQL Server 2005 Express Edition SP2&lt;/a&gt; on my freshly installed Windows 2008 x64 App-V server.&lt;br /&gt;&lt;br /&gt;This turned out to be less trivial than I thought. The short answer is: if you want to have a painless install of SQL Server 2005 Express Edition, take the download that includes the “&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=5B5528B9-13E1-4DB9-A3FC-82116D598C3D"&gt;Advanced Services&lt;/a&gt;” and simply don’t install them. The “smaller” download package does not include some necessary files for a successful x64 installation.&lt;br /&gt;&lt;br /&gt;If you want to go the hard way and patch the setup for easier automated deployment (or just to be ‘1337 and be able to say that you fixed Microsoft’s SQL Server installer for 64-bit systems…), then follow these steps:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;First      of all, you should know that SP2 is the first Vista/Windows 2008 certified      edition (think UAC, think session zero hardening, think enhanced      security). Secondly, SQL Server 2005 Express Edition SP2 is supported to      run under WOW64. That is very comforting to know, and I hadn't expected a      true 64-bit edition for free. So why does it complain about installing a      32-bit version on a 64-bit machine then?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_tOIlP1THwEk/SFrceYBkk6I/AAAAAAAAA6Q/MsUm4aa9QwM/s1600-h/20080619-SQLExpress64bit.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_tOIlP1THwEk/SFrceYBkk6I/AAAAAAAAA6Q/MsUm4aa9QwM/s320/20080619-SQLExpress64bit.jpg" alt="" id="BLOGGER_PHOTO_ID_5213721933037999010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;"&lt;i&gt;The installation package has a missing file, or you are running a      32-bit only Setup program on a 64-bit computer&lt;/i&gt;"&lt;br /&gt;&lt;br /&gt;Of course, what you don't see is that SQL is first installing the SQL Native Client in the background (as a prerequisite) and the error message conveniently forgets to mention that this is in fact the installation that is not succeeding. The error message was indeed accurate, but the error was not that I was trying to run a 32-bit installer on a 64-bit machine, but that the 64-bit installer for the SQL Native Client is not included in the package! What’s even worse, some other essential x64 packages are also not included in the smallest SQL Express 2005 SP2 download.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;So you have to include the missing files manually:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Download the &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=5B5528B9-13E1-4DB9-A3FC-82116D598C3D"&gt;“SQL Server 2005 Express Edition SP2 with Advanced Services”&lt;/a&gt; package.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Run both the SQL Express installers with the /X switch to extract the setup files (to different directories):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;sqlexpr.exe /x&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;sqlexpr_adv.exe /x&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Next, locate the 64-bit SQL Native Client &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=DF0BA5AA-B4BD-4705-AA0A-B477BA72A9CB"&gt;(sqlncli_x64.msi)&lt;/a&gt; and 64-bit SQL VSS Writer (SqlWriter_x64.msi) from the Advanced Services setup and copy them to the "Setup" directory of the regular SQL Express installation.&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ul&gt;Et voila! The installer works now. One day, we will live in a perfect world of unambiguous error messages...&lt;br /&gt;&lt;br /&gt;Now off to do some more SoftGri... ehr.. I mean Microsoft Application Vir... ehr... I mean App-V testing!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-2545881810334154247?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/2545881810334154247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=2545881810334154247' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/2545881810334154247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/2545881810334154247'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2008/06/sql-server-2005-express-edition-on.html' title='SQL Server 2005 Express Edition on Windows 2008 x64'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_tOIlP1THwEk/SFrceYBkk6I/AAAAAAAAA6Q/MsUm4aa9QwM/s72-c/20080619-SQLExpress64bit.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-1340575180556775761</id><published>2008-05-25T14:29:00.009+02:00</published><updated>2008-05-25T17:33:57.100+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VMWare'/><title type='text'>Installing LSI Logic RAID monitoring tools under the ESX service console</title><content type='html'>As I discussed in &lt;a href="http://timjacobs.blogspot.com/2008/03/esx-35-on-whitebox.html"&gt;a recent post&lt;/a&gt;, I used a Dell Perc 5i SAS controller in my ESX whitebox server. One of the nice features of this controller is that it is &lt;a href="http://www.lsi.com/storage_home/products_home/internal_raid/megaraid_sas/megaraid_sas_8408e/index.html"&gt;a rebranded LSI Logic controller&lt;/a&gt; (with a different board layout!), supported by LSI Logic firmwares and the excellent monitoring tools that LSI offers.&lt;br /&gt;&lt;br /&gt;Of course, it is important to keep track of your RAID array status, so I decided to install the MegaCLI monitoring software under the ESX Server 3.5 Service Console. Here's how I did it and configured the monitoring on my system:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The MegaCLI software can be downloaded from &lt;a href="http://www.lsi.com/storage_home/products_home/internal_raid/megaraid_sas/megaraid_sas_8408e/index.html"&gt;the LSI Logic website&lt;/a&gt;. I used version 1.01.39 for Linux, which comes in a RPM file.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;After uploading the RPM file to the service console, it was a matter of installing it using the "rpm" command:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;rpm -i -v MegaCli-1.01.39-0.i386.rpm &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This installs the "MegaCli" and "MegaCli64" commands in the &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;/opt/MegaRAID/MegaCli/&lt;/span&gt;&lt;/span&gt; directory of the service console.&lt;/li&gt;&lt;/ul&gt;That's it, MegaCLI is ready to be used now. Some useful commands are the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;/opt/MegaRAID/MegaCli/MegaCli -AdpAllInfo -aALL&lt;/span&gt;&lt;br /&gt;This lists the adapter information for all LSI Logic adapters found in your system.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;/opt/MegaRAID/MegaCli/MegaCli -LDInfo -LALL -aALL&lt;/span&gt;&lt;br /&gt;This lists the logical drives for all LSI Logic adapters found in your system. The "State" should be set to "optimal" in order to have a fully operational array.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;/opt/MegaRAID/MegaCli/MegaCli -PDList -aALL&lt;/span&gt;&lt;br /&gt;This lists all the physical drives for the adapters in your system; the "Firmware state" indicates whether the drive is online or not.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;The next step is to automate the analysis of the drive status and to alert when things go bad. To do this, I added an hourly cron job that lists the physical drives and then analyzes the output of the MegaCLI command.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;I created a file called "&lt;span style="font-weight: bold;"&gt;analysis.awk&lt;/span&gt;" in the &lt;span style="font-weight: bold;"&gt;/opt/MegaRAID/MegaCLI&lt;/span&gt; directory with the following contents:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;blockquote&gt;&lt;span style="font-family:courier new;"&gt;# This is a little AWK program that interprets MegaCLI output&lt;br /&gt;&lt;br /&gt;/Device Id/             { counter += 1; device[counter] = $3 }&lt;br /&gt;/Firmware state/        { state_drive[counter] = $3 }&lt;br /&gt;/Inquiry/               { name_drive[counter] = $3 " " $4 " " $5 " " $6 }&lt;br /&gt;END {&lt;br /&gt; for (i=1; i&lt;=counter; i+=1)          printf ( "Device %02d (%s) status is: %s &amp;lt;br/&amp;gt;\n", device[i], name_drive[i], state_drive[i]);     } &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;/span&gt;This awk program processes the output of MegaCli, as you can test by running the following command:&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;./MegaCli -PDList -aALL | awk -f analysis.awk&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;when being in the&lt;span style="font-weight: bold;"&gt; /opt/MegaRAID/MegaCLI&lt;/span&gt; directory.&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Then I created the cron job by placing a file called &lt;span style="font-weight: bold;"&gt;raidstatus&lt;/span&gt; in &lt;span style="font-weight: bold;"&gt;/etc/cron.hourly&lt;/span&gt;, with the following contents:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-family:courier new;"&gt;#!/bin/sh&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;/opt/MegaRAID/MegaCli/MegaCli -PdList -aALL| awk -f /opt/MegaRAID/MegaCli/analysis.awk &gt;/tmp/megarc.raidstatus&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;if grep -qEv "*: Online" /tmp/megarc.raidstatus&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   /usr/local/bin/smtp_send.pl -t tim@pretnet.local -s "Warning: RAID status no longer optimal" -f esx@pretnet.local -m "`cat /tmp/megarc.raidstatus`" -r exchange.pretnet.local&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;rm -f /tmp/megarc.raidstatus&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;exit 0&lt;/span&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt;Don't forget to run a &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;chmod a+x /etc/cron.hourly/raidstatus&lt;/span&gt;&lt;/span&gt; in order to make the file executable by all users.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;In order to send an e-mail when things go wrong, I used &lt;a href="http://www.yellow-bricks.com/2008/01/23/howto-sending-html-email-from-the-service-console/"&gt;the SMTP_Send Perl script&lt;/a&gt; smtp_send.pl that was discussed by Duncan Epping on &lt;a href="http://www.yellow-bricks.com/"&gt;his blog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-1340575180556775761?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/1340575180556775761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=1340575180556775761' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/1340575180556775761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/1340575180556775761'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2008/05/installing-lsi-logic-raid-monitoring.html' title='Installing LSI Logic RAID monitoring tools under the ESX service console'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-681444380800798976</id><published>2008-05-22T23:03:00.002+02:00</published><updated>2008-05-22T23:16:32.682+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VMWare'/><title type='text'>Renaming a VirtualCenter 2.5 server</title><content type='html'>After running my VirtualCenter server on a standalone host for quite some time, I decided to join it into the domain that I am running on my ESX box (in order to let it participate in the automated WSUS patching mechanism). This also seemed like a perfect opportunity to rename the server's hostname from &lt;span style="font-weight: bold;"&gt;W2K3-VC.pretnet.local&lt;/span&gt; to &lt;span style="font-weight: bold;"&gt;virtualcenter.pretnet.local&lt;/span&gt;. However, after the hostname change, the VMWare VirtualCenter service would no longer start with an Event ID 1000 in the eventlog.&lt;br /&gt;&lt;br /&gt;Somehow, this didn't come as a surprise ;). This has been discussed before on the VMWare forums (&lt;a href="http://communities.vmware.com/message/686628"&gt;here&lt;/a&gt; and &lt;a href="http://communities.vmware.com/message/602684"&gt;here&lt;/a&gt;), but I post it here because I did not immediatelly find a step-by-step walkthrough.&lt;br /&gt;&lt;br /&gt;The problem was in fact twofold, the solution rather simple:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Renaming SQL servers is a bad idea in general (so it appears). For my small, nonproduction environment, I use SQL Server 2005 Express edition that comes with the VirtualCenter installation. If you rename a SQL server, you need to internally update the system tables using a set of stored procedures in order to make everything consist again. This is done by installing the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=c243a5ae-4bd1-4e3d-94b8-5a0f62bf7796"&gt;"SQL Server Management Studio Express"&lt;/a&gt; and then executing the following TSQL statements:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;sp_dropserver 'W2K3-VC\SQLEXP_VIM'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;GO&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sp_addserver 'VIRTUALCENTER\SQLEXP_VIM', local&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;GO&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sp_helpserver&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SELECT @@SERVERNAME, SERVERPROPERTY('ServerName')&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The first statement removes the old server instance (replace W2K3-VC with your old server name), the second statement adds the new server instance (replace VIRTUALCENTER with your new server name). The&lt;span style="font-weight: bold;"&gt; sp_helper&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;SELECT&lt;/span&gt; statement query the internal database and variables for the actually recognized SQL server instances. You need to perform a reboot in order to get the proper instances with the last two statements.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Secondly, the System ODBC connection that is used by VMWare required an update to point to the new SQL Server instance. This was of course done using the familiar "Data Sources (ODBC)" management console.&lt;/li&gt;&lt;/ul&gt;Afterwards, the VMWare Virtual Center Server service started just fine again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-681444380800798976?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/681444380800798976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=681444380800798976' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/681444380800798976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/681444380800798976'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2008/05/renaming-virtualcenter-25-server.html' title='Renaming a VirtualCenter 2.5 server'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-5949116018085747875</id><published>2008-05-02T17:39:00.008+02:00</published><updated>2008-05-02T18:02:40.562+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows 2008'/><title type='text'>Enabling Subject Alternate Name certificates</title><content type='html'>When requesting certificates from your freshly installed Certification Authority, it can come in handy to specify multiple DNS names that this certificate should be valid for. This principle is known as specifying a list of "subject alternate names" that the server is also reachable under.&lt;br /&gt;&lt;br /&gt;Unfortunately, this mechanism doesn't work out of the box with Windows CA's. On your CA, you first need to enable a setting that allows the usage of SAN attributes. Open a command box and type (on one line):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"  &gt;certutil -setreg policy\EditFlags +EDITF_ATTRIBUTESUBJECTALTNAME2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;net stop CertSvc &amp;amp; net start CertSvc&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Afterwards, use the &lt;span style="font-weight: bold;"&gt;SAN:dns=&lt;fqdn1&gt;&amp;amp;dns=&lt;fqdn2&gt;&lt;/fqdn2&gt;&lt;/fqdn1&gt;&lt;/span&gt; attribute when requesting certificates to enable multiple DNS names.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_tOIlP1THwEk/SBs6kO2wv0I/AAAAAAAAA5I/qJyTeYocthc/s1600-h/20080502-SANCA.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_tOIlP1THwEk/SBs6kO2wv0I/AAAAAAAAA5I/qJyTeYocthc/s320/20080502-SANCA.jpg" alt="" id="BLOGGER_PHOTO_ID_5195810989239484226" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-5949116018085747875?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/5949116018085747875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=5949116018085747875' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/5949116018085747875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/5949116018085747875'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2008/05/enabling-subject-alternate-name.html' title='Enabling Subject Alternate Name certificates'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_tOIlP1THwEk/SBs6kO2wv0I/AAAAAAAAA5I/qJyTeYocthc/s72-c/20080502-SANCA.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-640352343328349247</id><published>2008-04-30T16:39:00.011+02:00</published><updated>2008-05-02T12:03:45.562+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows 2008'/><title type='text'>Windows 2008 Certificate Authority and Windows 2000/XP/2003 clients</title><content type='html'>I was experimenting with Windows 2008 Certificate Services the other day in order to create certificates for WSUS 3.0 and for doing SSL tunneling of RDP towards the internet. I noticed that several of my clients were unable to automatically install the WSUS client, with vague errors in the event log (Win32HResult=0x00000000):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_tOIlP1THwEk/SBiKKe2wvwI/AAAAAAAAA4s/p7CX3_3VXdU/s1600-h/20080430-wsuserror.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_tOIlP1THwEk/SBiKKe2wvwI/AAAAAAAAA4s/p7CX3_3VXdU/s320/20080430-wsuserror.jpg" alt="" id="BLOGGER_PHOTO_ID_5195054082857942786" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I had quickly discovered that the problem was related with the certificate that I had issued for the WSUS IIS server. It turned out that Windows 2008 WSUS clients could connect without any problem to the WSUS webpage, but Windows 2003 and Windows XP clients could not. What made it even more puzzling is that on a Windows XP system, connecting to the IIS homepage didn't succeed using Internet Explorer, but worked perfectly fine using Firefox.&lt;br /&gt;&lt;br /&gt;Opening the certificate of my WSUS server gave the following result:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_tOIlP1THwEk/SBiK7e2wvxI/AAAAAAAAA40/F1kSCLYN2WQ/s1600-h/20080430-certificate.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_tOIlP1THwEk/SBiK7e2wvxI/AAAAAAAAA40/F1kSCLYN2WQ/s320/20080430-certificate.jpg" alt="" id="BLOGGER_PHOTO_ID_5195054924671532818" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;with a "&lt;span style="font-style: italic;"&gt;This certificate has an nonvalid digital signature&lt;/span&gt;" error in the "Certification Path" details for both the issued certificate and my CA certificate.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Root cause:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;The answer is the bleeding obvious: Windows 2008 has &lt;a href="http://blogs.msdn.com/windowsvistasecurity/archive/2007/06/01/pki-enhancements-in-windows-vista-and-windows-server-2008.aspx"&gt;several new additions to the cryptography API&lt;/a&gt;, called &lt;a href="http://technet2.microsoft.com/windowsserver2008/en/library/532ac164-da33-4369-bef0-8f019d5a18b81033.mspx?mfr=true"&gt;Cryptography Next Generation&lt;/a&gt; (CNG), that are used in the V3 certificate templates for CA's and Webservers in Windows 2008. Amongst those new features is support for new certificate signing algorithms (in my case SHA512, a SHA-2 variant) which is not recognized by older clients. &lt;A HREF="http://download.microsoft.com/download/c/d/8/cd8cc719-7d5a-40d3-a802-e4057aa8c631/relnotes.htm"&gt;Windows XP SP3 adds support&lt;/A&gt; for XP, I suppose a future hotfix will add compatibility for Windows 2003.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Solution:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;In absense of a worldwide XP SP3 deployment and a working hotfix for W2K3, the only option here is to ensure that the Windows 2008 CA certificate is created with a non-CNG cryptographic provider. If you already created a CA certificate using the new CNG features, the only option is to &lt;span style="font-weight: bold;"&gt;reinstall your CA and regenerate your CA certificate&lt;/span&gt; ---  remember how mum always told you to think things over twice before just plainly installing a W2K8 CA... I bet you regret that now (just like I did :D) ? Reinstalling your CA could be messy, and make your PKI infrastructure go berserk, so this time do think twice before going down that road!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Step by Step plan of attack (POA)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;So you have decided you want to proceed? First verify that you are indeed using a CNG CSP. To do this, open your registry editor and navigate to the following key:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;[HKLM\SYSTEM\CurrentControlSet\Services\CertSvc\&lt;br /&gt;   Configuration\{CAname}\CSP]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you find a &lt;span style="font-weight: bold;"&gt;CNGHashAlgorithm&lt;/span&gt; REG_SZ value, and the &lt;span style="font-weight: bold;"&gt;HashAlgorithm&lt;/span&gt; DWORD is set to 0xFFFFFFFF, then you are using a CNG CSP. If the HashAlgorithm is set to a value such as 0x00008003, then you are already using a "classic" CSP. You can also use the following command on the CA to retrieve the CSP:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;certutil -getreg ca\csp\HashAlgorithm&lt;br /&gt;certutil -getreg ca\csp\Provider&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;which will return the HashAlgorithm and the name of the CSP. For more information, I refer to the Microsoft whitepaper &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9bf17231-d832-4ff9-8fb8-0539ba21ab95&amp;amp;displaylang=en"&gt;"Active Directory Certificate Server Enhancements in Windows Server Code Name Longhorn"&lt;/a&gt;, you crypto-boys out there will love it.&lt;br /&gt;&lt;br /&gt;Keep in mind that when you are adding the Certificate Services Role to your Windows 2008 server, that you need to specify the proper cryptographic service provider. The image below displays some of the options, what is important to remember here is that all the service providers that contain a hash sign ("#") are CNG providers and thus incompatible with Windows XP SP2/Windows 2003 and earlier clients.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_tOIlP1THwEk/SBjHfu2wvyI/AAAAAAAAA48/_nBT3FVUfNM/s1600-h/20080430-ca2008.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_tOIlP1THwEk/SBjHfu2wvyI/AAAAAAAAA48/_nBT3FVUfNM/s320/20080430-ca2008.jpg" alt="" id="BLOGGER_PHOTO_ID_5195121518139457314" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The default cryptographic service provider for Windows 2003 is the "Microsoft Strong Cryptographic Provider", so that is what you want to use. Notice how selecting this provider reduces the number of certificate signing options... SHA-2 algorithms are no longer included! Proceed as usual to end up with a CA that produces certificates that can be handled by legacy clients.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-640352343328349247?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/640352343328349247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=640352343328349247' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/640352343328349247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/640352343328349247'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2008/04/windows-2008-certificate-authority-and.html' title='Windows 2008 Certificate Authority and Windows 2000/XP/2003 clients'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_tOIlP1THwEk/SBiKKe2wvwI/AAAAAAAAA4s/p7CX3_3VXdU/s72-c/20080430-wsuserror.jpg' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-7099915075178736981</id><published>2008-03-09T15:03:00.006+01:00</published><updated>2008-03-09T22:53:17.042+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VMWare'/><title type='text'>ESX 3.5 on a whitebox</title><content type='html'>It has been very quiet from my end for the past weeks because I was very busy at a client &amp;amp; at the same time spending all my free time working on my ESX-on-whitebox hardware project. After being inspired by some colleagues, I decided to order the following hardware:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Asus P5BP-E/4L motherboard&lt;/span&gt;&lt;br /&gt;This motherboard supports an Intel S775 processor, has VGA and audio onboard and most importantly, the LAN controllers on this motherboard are ESX certified (Broadcom 57xx chipset).&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Intel Q6600 Quad Core processor (2.4 GHz)&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;8 GB ECC RAM (4x 2GB)&lt;/span&gt;&lt;br /&gt;Just to be sure I have enough CPU power and memory resource pools :)&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Dell Perc 5i Integrated SAS Controller&lt;/span&gt;&lt;br /&gt;My colleagues advised me that storage was the biggest bottleneck in their ESX whiteboxes (based around the very nice Asus P5M2/SAS board). I decided to go for a dedicated hardware controller. I picked up the Dell Perc 5i controller, which is more or less a rebranded LSI Logic 8408 SAS controller on EBay with 256MB of RAM and a battery backup unit for about 175 EUR.&lt;br /&gt;&lt;br /&gt;The main advantage of SAS controllers is that they also support the (cheaper) SATA consumer drives. A quick test confirmed this; I had absolutely no problems at all with this controller &amp;amp; even flashed the latest LSI Logic firmware to it :).&lt;br /&gt;&lt;br /&gt;Maybe of interest for some: the later Dell firmwares and also the later LSI logic firmwares for this controller provide support for Write Back without a BBU present.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;SATA to SAS cables&lt;/span&gt;&lt;br /&gt;The Dell Perc 5i has SFF-8484 SAS connectors on board, so I purchased two Adaptec SFF-8484 to 4xSATA cables from a nearby store to attach all the drives.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;8 Seagate SATA harddisks (4x 1TB and 4x 200GB)&lt;/span&gt;&lt;br /&gt;Space... loads of space.&lt;/li&gt;&lt;/ul&gt;The hardest thing was getting all these disks in my Silentmaxx ST11 casing; it required some case modding and loads of patience to get everything well fitted. The 500W PSU that is necessary to provide enough juice, was recycled from an Antec Sonata case. I also added a small 3Com 3C905 100Mbps card for my ISP modem connection.&lt;br /&gt;&lt;br /&gt;The installation of ESX 3.5 was a piece of a cake &amp;amp; and I can confirm that the above hardware works like a charm. For those interested, I also noticed that ESX 3.5 supports the ICH7 SATA controllers (found on many consumer motherboards as well). I think -- but this has to be confirmed by someone else -- that you need to configure your ICH7 disks in a RAID before the ESX kernel will accept them as a storage pool.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-7099915075178736981?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/7099915075178736981/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=7099915075178736981' title='20 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/7099915075178736981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/7099915075178736981'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2008/03/esx-35-on-whitebox.html' title='ESX 3.5 on a whitebox'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>20</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-5560758499385247053</id><published>2008-02-03T13:59:00.000+01:00</published><updated>2008-02-03T14:11:53.515+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft SoftGrid'/><title type='text'>MAV 4.5: How to perform a Dynamic Suite Composition</title><content type='html'>The &lt;a href="http://blogs.technet.com/virtualworld"&gt;blog of Justin Zarb&lt;/a&gt; details &lt;a href="http://blogs.technet.com/virtualworld/archive/2008/01/30/beta-4-5-getting-dynamic-suite-composition-dsc-to-work-client-build-4-5-0-608-server-build-4-5-0-606.aspx"&gt;a step-by-step guide&lt;/a&gt; of how the Dynamic Suite Composition (DSC) in Microsoft Application Virtualization 4.5 functions. He describes how to include a Snag-It bubble into an existing Office 2007 bubble. There are not many technical details about how DSC works, but some interesting facts are mentioned there:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Appearantly, it is possible to compose multiple bubbles but only one level deep. If you attempt to include an OSD file that in itself has another DSC, this third bubble is not included.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Sequencing tip: make sure your sequencer workstation has all the software installed that you want your second bubble to hook onto. For example: if you are sequencing an application that integrated with Office 2007, do a fat installation of Office 2007 first, and only then start the monitoring and sequencing of the add-ins.&lt;br /&gt;&lt;br /&gt;Personal note: also for applications that depend on Java or Oracle clients, you obviously first need to prepare your sequencer workstation by installing those core components.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The user changes that are made in the dynamically composed bubbles are all redirected to the &lt;span style="font-weight: bold;"&gt;primary&lt;/span&gt; bubble's UsrVo_sftfs.pkg files.&lt;/li&gt;&lt;/ul&gt;I am already planning for a few weeks to delve deeper into the DSC of MAV 4.5 beta and to check in more details what Justin describes, but a project at a customer currently prioritizes my spare time into non-MAV related things. Be sure to check regularly here again for more information on DSC.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-5560758499385247053?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/5560758499385247053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=5560758499385247053' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/5560758499385247053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/5560758499385247053'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2008/02/mav-45-how-to-perform-dynamic-suite.html' title='MAV 4.5: How to perform a Dynamic Suite Composition'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-8436210055235443283</id><published>2008-01-05T10:20:00.000+01:00</published><updated>2008-01-05T10:26:52.194+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft SoftGrid'/><title type='text'>Microsoft SoftGrid 4.1 SP1 and 4.2 Hotfixes</title><content type='html'>The &lt;a href="http://blogs.technet.com/softgrid/archive/2008/01/03/the-msi-utility-for-microsoft-application-virtualization-and-hfru1-are-now-available.aspx"&gt;Microsoft SoftGrid blog&lt;/a&gt; contains the announcement for the first Hotfix Rollup Packages for SoftGrid 4.1 SP1 and SoftGrid 4.2. The main new feature for these two packages is support for &lt;span style="font-weight: bold;"&gt;the MSI Utility&lt;/span&gt; that was released at Christmas.&lt;br /&gt;&lt;br /&gt;Further improvements include:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Better ActiveUpgrade and better downgrade of a package version.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Improvements to nonpaged pool usage when sequencing large applications.&lt;/li&gt;&lt;li&gt;Improvements when you sequence applications that use both the Microsoft .NET Framework 1.1 and the .NET Framework 2.0.&lt;/li&gt;&lt;li&gt;Improvements to command-line parameter handling of virtualized child processes.&lt;/li&gt;&lt;/ul&gt;The new versions are downloadable from the Microsoft Support site:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://support.microsoft.com/kb/938497"&gt;MSKB 938497&lt;/a&gt; for SoftGrid 4.1 SP1&lt;/li&gt;&lt;li&gt;&lt;a href="http://support.microsoft.com/kb/941408"&gt;MSKB 941408&lt;/a&gt; for SoftGrid 4.2&lt;/li&gt;&lt;/ul&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-8436210055235443283?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/8436210055235443283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=8436210055235443283' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/8436210055235443283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/8436210055235443283'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2008/01/microsoft-softgrid-41-sp1-and-42.html' title='Microsoft SoftGrid 4.1 SP1 and 4.2 Hotfixes'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-5169656436284018597</id><published>2007-12-26T21:49:00.000+01:00</published><updated>2007-12-26T22:00:54.952+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft SoftGrid'/><title type='text'>MSI Utility 1.0.0.16 released</title><content type='html'>The long awaited replacement for the SMS Connector has been released a few days by Microsoft. The &lt;A HREF="http://www.microsoft.com/systemcenter/softgrid/solutions/sms.mspx"&gt;MSI Utility 1.0.0.16&lt;/A&gt; can be used to convert a SoftGrid package into a MSI file that can be deployed using third party electronic software distribution systems. When executed, the MSI wrapper will import the virtualized application on a 4.1 SP1/4.2 SoftGrid client, thus allowing to run virtualized applications in situations where no "MCVAS" server is available. The MSI utility is no longer needed for the 4.5 beta release since the 4.5 sequencer allows direct saving of MSI files (compatible with those produced by the MSI utility).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mixed-mode scenarios, such as using MSI delivery for initial deployment and streaming delivery for updates, is not supported.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_tOIlP1THwEk/R3LA4P_n4nI/AAAAAAAAA4k/0ncjlqO7UXo/s1600-h/msiutility.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_tOIlP1THwEk/R3LA4P_n4nI/AAAAAAAAA4k/0ncjlqO7UXo/s320/msiutility.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5148389396636492402" /&gt;&lt;/a&gt;&lt;br /&gt;The MSI Utility is &lt;A HREF="http://www.microsoft.com/downloads/details.aspx?familyid=37a9e590-4f55-44ac-93e1-36eb63a09240&amp;displaylang=en&amp;tm"&gt;freely downloadable&lt;/A&gt; from the Microsoft site. In order to use the MSI Utility, you need to upgrade your SoftGrid clients to versions 4.1.1.21 or 4.2.1.21 respectively. These versions, which will contain a set of hotfixes, will be released in the near future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-5169656436284018597?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/5169656436284018597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=5169656436284018597' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/5169656436284018597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/5169656436284018597'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2007/12/msi-utility-10016-released.html' title='MSI Utility 1.0.0.16 released'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_tOIlP1THwEk/R3LA4P_n4nI/AAAAAAAAA4k/0ncjlqO7UXo/s72-c/msiutility.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-8720836346750824372</id><published>2007-11-20T23:18:00.000+01:00</published><updated>2007-11-21T00:42:53.815+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft SoftGrid'/><title type='text'>Microsoft Application Virtualization 4.5 beta - Client impressions</title><content type='html'>After publishing a set of first impressions on the two MAV 4.5 beta servers, now it is time to do some initial tests with the 4.5 beta client. Here are some things that I came up with...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. Installation&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The first thing that one notices during an installation or upgrade are the prerequisites that must be met before the MAV 4.5 client starts its installation:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Microsoft Visual C++ 2005 SP1 Redistributable package&lt;/li&gt;&lt;li&gt;Microsoft Core XML Services (MSXML) 6.0 SP1&lt;/li&gt;&lt;li&gt;Microsoft Application Error Reporting&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;These components are included in the MSI package that the client comes with, so there is no hassle of downloading components of the internet (in case all prerequisites are met, the installer automatically continues). Some remarks at this very first step of the client installation:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The MSXML 6.0 installation triggers the installation of Windows Installer 3.1 (&lt;a href="http://support.microsoft.com/kb/893803"&gt;KB893803&lt;/a&gt;). This is not explicitly listed as a prerequisite but is also installed along automatically.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;My previous 4.2 client installation was detected and upgraded automatically. It was necessary to manually stop the SFTTray icon process (sfttray.exe) before the MSI installer allowed performing the upgrade.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A reboot is required after the installation or upgrade (as was the case with the older 4.1/4.2 clients).&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;The automatic detection of non-installed prerequisites is very convenient. Let's hope this becomes a standard practice :).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. Client Management Console&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;The visual appearance of the Client Management Console did not change a lot, and by starting the "&lt;span style="font-style: italic;"&gt;SoftGrid Client Management Console&lt;/span&gt;" (which I suppose will be renamed to remove the reference to SoftGrid), we are again greeted by the familiar list of applications, filetype associations and desktop configuration servers.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_tOIlP1THwEk/R0NiUgS0zMI/AAAAAAAAA4U/RGtP5PWaAd0/s1600-h/20071120_ClientMMC.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_tOIlP1THwEk/R0NiUgS0zMI/AAAAAAAAA4U/RGtP5PWaAd0/s320/20071120_ClientMMC.jpg" alt="" id="BLOGGER_PHOTO_ID_5135056104538295490" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;There are some striking changes that are not immediately noticed:&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;The&lt;span style="font-weight: bold;"&gt; remote management&lt;/span&gt; of MAV Clients is no longer possible. Yes, you read that correctly, you can no longer use a central Client Management Console to connect to another user's computer and to perform changes.&lt;br /&gt;&lt;br /&gt;This has the very unfortunate side-effect that it is also no longer possible to connect back to a local computer using different credentials (this was a very convenient trick to perform administrative actions in a SoftGrid Client Management console when taking over a user's screen when working within the user's limited security context).&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Logging can now also be done to the&lt;span style="font-weight: bold;"&gt; local event log &lt;/span&gt;(Application). The loglevel for the event log can be specified separately from the regular &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;sftlog.txt&lt;/span&gt;&lt;/span&gt; file that existed already in earlier versions of the client, and is configured under the "System Log Level" dropdown that is shown in the figure above.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span&gt;There are not other visual changes to the client management console.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;3. New Client Functionality&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;There are some interesting new client functionalities that are available for configuration in the background:&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Dynamic Suite Composition (DSC)&lt;/span&gt;: this functionality allows to merge two bubbles on the fly such that the two virtualized applications can communicate with eachother.&lt;br /&gt;&lt;br /&gt;This is very convenient for applications that depend on middleware such as Java, Oracle Client or Office; now you no longer need to include in each of your bubbles a copy of the Java or Oracle client, but simply merge a single SFT file containing Java with the application in question.&lt;br /&gt;&lt;br /&gt;At this moment, the DSC is limited to two bubbles (one bubble can be merged within one other). I will go into more detail on the DSC feature in a later post where I will explore the limits, how the merging is done, ...&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;ApplicationSourceRoot, IconSourceRoot, OSDSourceRoot:&lt;/span&gt; it is possible to overwrite the SFT, ICO and OSD locations that are specified by a desktop configuration server. This allows to redirect traffic intended for one MCVAS server to another (for example, when traveling to a branch office). The redirection can be done to another MCVAS server (using URL) or to a UNC path.&lt;br /&gt;&lt;br /&gt;This redirection is done by changing the respective &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;ApplicationSourceRoot&lt;/span&gt;&lt;/span&gt;, &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;IconSourceRoot&lt;/span&gt;&lt;/span&gt; and &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;OSDSourceRoot&lt;/span&gt;&lt;/span&gt; keys in the client's registry at &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;HKLM\Software\Microsoft\SoftGrid\4.5\Configuration&lt;/span&gt;&lt;/span&gt;. For example, setting the &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;ApplicationSourceRoot&lt;/span&gt;&lt;/span&gt; to "&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;rtsp://localmcvas&lt;/span&gt;&lt;/span&gt;" will force the client to connect to "&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;rtsp://localmvas/data.sft&lt;/span&gt;&lt;/span&gt;" when the original OSD file says that the SFT file that should be streamed is "&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;rtsp://w2k3-mcvas/data.sft&lt;/span&gt;&lt;/span&gt;". For ICO/OSD files, one would typically use a UNC path or HTTP path for the redirection.&lt;br /&gt;&lt;br /&gt;The SourceRoot redirection can be a very powerful tool for branch offices in combination with the lightweight streaming server discussed in &lt;a href="http://timjacobs.blogspot.com/2007/11/microsoft-application-virtualization-45_1267.html"&gt;a previous post&lt;/a&gt; on this blog. With some clever loginscripting or GPO setting, you can now make the SoftGrid client context aware.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Autoload functionality&lt;/span&gt; on clients: applications can be triggered to load FB2 data at a low priority in the background after the application has started and FB1 data has been loaded into the cache. This behavior is controlled by the &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;AutoLoadTarget&lt;/span&gt;&lt;/span&gt;  and &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;AutoLoadTriggers&lt;/span&gt;&lt;/span&gt; registry keys in &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;HKLM\Software\Microsoft\SoftGrid\4.5\Configuration.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span&gt;(more functionalities will be added soon :))&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;4. Internals&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Some nice other things to know about the new client:&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;By default, the MAV 4.5 client no longer supports streaming data from a local file, &lt;a href="http://timjacobs.blogspot.com/2007/11/softgrid-applications-without-softgrid.html"&gt;a trick mentioned before here&lt;/a&gt;. Attempting to do so will result in an error message&lt;br /&gt;&lt;br /&gt;"&lt;span style="font-style: italic;"&gt;The operation failed because you do not have sufficient permissions to stream from a file. Please report the following error code to your System Administrator. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Error code: 450260-14901604-0000180B&lt;/span&gt;",&lt;br /&gt;&lt;br /&gt;as shown below:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_tOIlP1THwEk/R0NuOgS0zNI/AAAAAAAAA4c/ZQDkTt3K4yE/s1600-h/20071120_File.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_tOIlP1THwEk/R0NuOgS0zNI/AAAAAAAAA4c/ZQDkTt3K4yE/s320/20071120_File.jpg" alt="" id="BLOGGER_PHOTO_ID_5135069195598613714" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;In order to re-enable streaming from files, it is necessary to change the &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;AllowIndependentFileStreaming&lt;/span&gt;&lt;/span&gt; registry value from 0 to 1 at &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;HKLM\SOFTWARE\Microsoft\SoftGrid\4.5\Client\Configuration&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;By the way, now you can also stream from local OSD files that contain spaces in their full path location, this used to give errors on earlier clients.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-8720836346750824372?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/8720836346750824372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=8720836346750824372' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/8720836346750824372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/8720836346750824372'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2007/11/microsoft-application-virtualization-45_20.html' title='Microsoft Application Virtualization 4.5 beta - Client impressions'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_tOIlP1THwEk/R0NiUgS0zMI/AAAAAAAAA4U/RGtP5PWaAd0/s72-c/20071120_ClientMMC.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-7956253893753527507</id><published>2007-11-18T17:40:00.000+01:00</published><updated>2007-11-20T23:18:31.841+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft SoftGrid'/><title type='text'>MAV 4.5 - Things to know</title><content type='html'>Here are some small issues that I ran into while testing Microsoft Application Virtualization 4.5:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;An important change is that the MCVAS service is now launched under &lt;span style="font-weight: bold;"&gt;NETWORK SERVICE&lt;/span&gt; credentials instead of the LOCAL SYSTEM credentials that were used in the 4.1/4.2 server. This means that the NETWORK SERVICE should have read &amp;amp; list rights on &lt;span style="font-style: italic;"&gt;all files and folders&lt;/span&gt; of your content directory and on the content directory itself. If this is not the case, the MCVAS server cannot access the package files and this will result in "Launch Failed" errors at your clients.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The 4.5 beta sequencer has the same bug as the older 4.2/4.1 sequencers: when creating a new package and defining the server URL, &lt;span style="font-weight: bold;"&gt;do not select "RTSP" or "RTSPS"&lt;/span&gt; (or "FILE") in the package configuration wizard. This will write an URL with capital "RTSP" or "RTSPS" in the OSD file that is created with the package.&lt;br /&gt;&lt;br /&gt;The server does not handle application requests from clients that use capital protocols well and will log an error  "Unsupported method" and the client will give you a "Launch Failed" error message. Manually changing the URL inside the OSD file to have a lowercase "rtsp" or "rtsps" in it will fix the problem as was already mentioned in &lt;a href="http://timjacobs.blogspot.com/2007/11/softgrid-applications-without-softgrid.html"&gt;a previous post&lt;/a&gt; on this blog. (&lt;span style="font-style: italic;"&gt;Ironically, all other XML tags should be in uppercase for them to work properly in an OSD file, the protocol should apparently be in lowercase)&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The 4.5 beta sequencer still has the same bug as older 4.2/4.1 sequencers: when upgrading a package, changes made to the package are &lt;span style="font-weight: bold;"&gt;not shown&lt;/span&gt; in the "Files" tab of the sequencer until either you run the Application wizard again (to determine FB1) or until you save the package --- all changes are included but not just immediately shown.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The usage of BITS (Background Intelligent Transfer Service) is not supported or possible with &lt;span style="font-weight: bold;"&gt;a stand-alone installation of MAV 4.5&lt;/span&gt;. Probably the SCCM integration allows to download virtualized applications (MSI files) in the background using BITS, but this remains to be verified &amp;amp; tested.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;(to be continued with more issues as they come up)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-7956253893753527507?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/7956253893753527507/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=7956253893753527507' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/7956253893753527507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/7956253893753527507'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2007/11/mav-45-things-to-know.html' title='MAV 4.5 - Things to know'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-4457447313267328307</id><published>2007-11-18T16:17:00.000+01:00</published><updated>2007-11-19T23:21:46.886+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft SoftGrid'/><title type='text'>Microsoft Application Virtualization 4.5 beta - Lightweight Server impressions</title><content type='html'>The next step in a first peek at the 4.5 beta of Microsoft Application Virtualization is a short investigation of the Lightweight Streaming Server (LWS).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;0. Introduction&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://timjacobs.blogspot.com/2007/11/microsoft-application-virtualization-45_18.html"&gt; Heavyweight Streaming Server&lt;/a&gt; offers full blown streaming and desktop configuration options with a dependency on SQL/AD backends. The LWS version on the other hand, does not depend on these Active Directory and SQL backends, and does not even require a SoftGrid management console to operate properly.&lt;br /&gt;&lt;br /&gt;Its intended use is deployment in branch offices: it can stream FB1 and FB2 data to clients that require additional data, and it can be used to authorize application usage in branch offices. This means that a client can launch an application from an OSD file that points to a LWS. The LWS &lt;span style="font-weight: bold;"&gt;cannot perform desktop configuration&lt;/span&gt;, this functionality is only offered in a HWS installation.&lt;br /&gt;&lt;br /&gt;The following picture shows a typical deployment scenario for a LWS server in a branch office.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_tOIlP1THwEk/R0H-pAS0zLI/AAAAAAAAA4M/SsEAaiGO00M/s1600-h/20071119_BranchLWS.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_tOIlP1THwEk/R0H-pAS0zLI/AAAAAAAAA4M/SsEAaiGO00M/s320/20071119_BranchLWS.jpg" alt="" id="BLOGGER_PHOTO_ID_5134665030586125490" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The SoftGrid client is connected in the branch office. Here is the remainer of the configuration&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The main office contains a HWS server, which uses the well-known SQL and AD backends, and uses a fileserver to host the SFT/OSD/ICO content.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The branch office uses a LWS server that uses a non-specified algorithm to keep its local content directory in sync with the content fileserver in the main office.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The client is configured to perform a desktop configuration refresh against the HWS server in the main office, which delivers the list of applications that the user has access to.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The &lt;span style="font-weight: bold;"&gt;ApplicationSourceRoot&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;IconSourceRoot&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;OSDSourceRoot&lt;/span&gt; point the client towards the local LWS server whenever it needs SFT, ICO or OSD data (more about these configuration options in a post on the 4.5 client). This means that the hefty load of transferring OSD/ICO files during a desktop configuration refresh is taken away from the WAN link.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;This makes the advantage of having LWS servers in branch offices clear immediately: in the 4.1/4.2 versions of the SoftGrid server, a desktop configuration refresh could mean the transfer of several hundreds of kilobytes of data &lt;span style="font-style: italic;"&gt;per client, &lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-style: italic;"&gt;per refresh&lt;/span&gt; over a WAN link when no SoftGrid server was present in the branch office (and even with a SoftGrid server present, there was still some chatty behaviour between the SQL backend and the SGVAS server). &lt;span style="font-weight: bold;"&gt;All these problems are remedied&lt;/span&gt; by pointing the clients towards the local LWS server that uses a WAN-bandwidth efficient mechanism to keep the content in sync (... do I hear anybody say "SMS/SSCM distribution point replication"?).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. Installation&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The LWS server comes in a separate MSI file that is included in the Microsoft Application Virtualization 4.5 package. The prerequisites of MMC3, .NET2.0 and IIS are &lt;span style="font-weight: bold;"&gt;not needed&lt;/span&gt; for the LWS server. The installation is straightforward:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The default installation path is "&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;C:\Program Files\Microsoft SoftGrid\Microsoft System Center Virtual Application Server&lt;/span&gt;&lt;/span&gt;". This is the same path as the HWS so I suppose some care needs to be taken in case you want to mix a HWS &amp;amp; LWS installation on a single server (why would you want to do that anyway??).&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;As with the HWS, it is possible to configure a server certificate, default server port (554 for RTSP, 322 for RTSPS) during the installation.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The only thing needed during the configuration is the "content root" which is the location of the SFT files that you want to stream. This will typically be the folder that contains the replicated files of your main office's content folder.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The entire streaming server configuration is summarized in a single screen during the installation:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_tOIlP1THwEk/R0ByAQS0zKI/AAAAAAAAA4E/_Q0C5skxUTg/s1600-h/20071118_LWSConfig.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_tOIlP1THwEk/R0ByAQS0zKI/AAAAAAAAA4E/_Q0C5skxUTg/s320/20071118_LWSConfig.jpg" alt="" id="BLOGGER_PHOTO_ID_5134228923901856930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Most of these options are familiar from the HWS server's advanced configuration. Here's an educated guess at what the non-trivial settings mean:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Client connection management&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Enable User Authentication:&lt;/span&gt; when disabled, the user's credentials are not checked when attempting to launch an application.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Enable User Authorization:&lt;/span&gt; when disabled, the authorization to use a package offline is not passed along with the launch of an application.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Package management&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Cache Block Size:&lt;/span&gt; this could be the amount of memory that is cached per application to stream from, i.e., some sort of buffer that is filled for each application that is launched.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Max. Cache Size:&lt;/span&gt; the maximum amount of memory that is used for caching; this should in principle be the maximum amount of memory used by the LWS service (and core processes).&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Package Detection Interval:&lt;/span&gt; the amount of seconds between each scan of the content directory; this scan is used to construct the package list that this LWS server offers.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;I must stress that these are interpretations that I give from my personal experience and that they can be wrong; anybody with corrections or a better knowledge, please let me know!&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;After the installation is finished, no visual footprint of the LWS server can be found: there is no management console or an icon that allows to do "anything". What we find back is the "&lt;span style="font-style: italic;"&gt;SoftGrid Lightweight Virtual Application Server&lt;/span&gt;" service that runs in the background.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. Internals&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;First of all, let's immediately get over the myth that the LWS server does not require anything Active Directory related at all; the server that hosts the LWS &lt;b&gt;must be&lt;/b&gt; a member of the domain that your users belong to. When you authenticate users, this is against the Active Directory.&lt;br /&gt;&lt;br /&gt;Furthermore, some AD connection is needed because supposedly the LWS will grant users access to the applications that they have access to based on the &lt;span style="font-weight: bold;"&gt;NTFS permissions&lt;/span&gt; of the files in the content directory that you specified during the installation.&lt;br /&gt;&lt;br /&gt;Some more things that you might find interesting:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;From the moment a user has&lt;span style="font-weight: bold;"&gt; read permissions&lt;/span&gt; on the SFT file of the package that is being started, the LWS server will authorize that usage. This check can be bypassed by disabling the user authentication, either during the installation or by changing the registry key &lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;EnableAuthentication&lt;/span&gt;&lt;/span&gt; to zero.&lt;br /&gt;&lt;br /&gt;I noticed during my tests that setting the &lt;span style="font-family: courier new;font-size:85%;" &gt;EnableAuthorization&lt;/span&gt; to zero, would also automatically put the &lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;EnableAuthentication&lt;/span&gt;&lt;/span&gt; to zero (i.e., disabling authorization also disables the authentication checks).&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The LWS server seems to require 4.5 clients; older client versions will give "&lt;span style="font-style: italic;"&gt;Error parsing the XML file&lt;/span&gt;" messages when attempting a desktop configuration refresh against a LWS server. But even with 4.5 clients, a desktop configuration refresh is not possible, an error message saying "&lt;span style="font-style: italic;"&gt;The server threw an exception&lt;/span&gt;" is listed. To me, it is not clear whether or not the LWS can perform a desktop configuration or not.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The configuration of the LWS is placed entirely in the registry at the following location: &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;HKLM\Software\Microsoft\SoftGrid\4.5\DistributionServer&lt;/span&gt;&lt;/span&gt;. Interesting name, that hints at a future integration with SCCM distribution points if you'd ask me.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The application metering statistics of a LWS server are not stored anywhere. When launching an application that points directly to a LWS, or that was redirected there by using &lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;ApplicationSourceRoot&lt;/span&gt;&lt;/span&gt;, does not log the usage information (even if the HWS server is chosen as the desktop configuration server).&lt;br /&gt;&lt;br /&gt;This means that your reports pulled from a HWS server will not include the launches that were allowed by LWS servers.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;3. Roundup&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;The LWS server seems to be the long-awaited answer to the branch-office scalability issues that haunted the older 4.1/4.2 SoftGrid servers, without eliminating streaming completely as is the case with using a "stand-alone" mode of the SoftGrid infrastructure.&lt;br /&gt;&lt;br /&gt;The Microsoft Application Virtualization client can be redirected towards the local LWS server by setting the appropriate &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;ApplicationSourceRoot&lt;/span&gt;&lt;/span&gt;, &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;IconSourceRoot&lt;/span&gt;&lt;/span&gt; and &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;OSDSourceRoot&lt;/span&gt;&lt;/span&gt; registry keys, thus achieving the context-aware streaming that we have been waiting for (without the burden of setting up a replicated database or a full blown dedicated SoftGrid server in a branch office).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-4457447313267328307?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/4457447313267328307/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=4457447313267328307' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/4457447313267328307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/4457447313267328307'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2007/11/microsoft-application-virtualization-45_1267.html' title='Microsoft Application Virtualization 4.5 beta - Lightweight Server impressions'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_tOIlP1THwEk/R0H-pAS0zLI/AAAAAAAAA4M/SsEAaiGO00M/s72-c/20071119_BranchLWS.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-7156177535126170314</id><published>2007-11-18T13:08:00.000+01:00</published><updated>2007-11-19T21:43:45.350+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft SoftGrid'/><title type='text'>Microsoft Application Virtualization 4.5 beta - Heavyweight Server impressions</title><content type='html'>In a first series of post regarding the recently released 4.5 beta version of Microsoft Application Virtualization, we're going to have a look at the &lt;span style="font-weight: bold;"&gt;standard server installation&lt;/span&gt;, refered to as the Heavyweight Streaming Server (HWS). The stand-alone mode and "Lightweight streaming server" (LWS) mode will be discussed in an upcoming series of posts.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;0. Introduction&lt;/span&gt;&lt;br /&gt;&lt;p&gt;The new release of Microsoft Application Virtualization 4.5 introduces a set of deployment models that are available for delivering virtualized applications to clients. This post discusses the HWS model, which is closest to the "traditional" SoftGrid server that we know from the older 4.0/4.1 (SP1) releases of the SoftGrid server. The components for this set-up are as follows:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;MCVAS server (Microsoft System Center Virtual Application Server) which performs the desktop configuration of the clients and performs the streaming.&lt;/li&gt;&lt;li&gt;SQL server and Active Directory backends for the MCVAS.&lt;/li&gt;&lt;li&gt;Fileserver for the content location&lt;/li&gt;&lt;li&gt;Management Web Service which communicates with the SQL backend.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Management Console for performing the MCVAS configuration; the management console connects to the management webservice.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;1. Installation&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The MCVAS setup comes in the form of an MSI installer, as was the case with the previous 4.x server installs.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;After starting the installer, I was informed that I need to install MMC 3.0 before the MCVAS installation could complete. This is quite surprising since I already had installed MMC 3.0 on that particular machine (Windows 2003 Standard Edition SP1). Luckily, this was not a showstopper for the installation which continued after this error message.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;An existing 4.1 SP1 server installation is properly detected and an upgrade path was proposed. This upgrade succeeded flawlessy.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Prerequisites for installing the MCVAS server are the same as for a 4.1 SP1 installation:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Microsoft Management Console 3.0&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Microsoft .NET Framework 2.0&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Internet Information Services Web Service (presumably IIS 5.0 is sufficient?)&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;It is no longer possible to install the "SoftGrid Client Management Console" from the server installer.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The default installation path has changed from "&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;C:\Program Files\Softricity\SoftGrid server&lt;/span&gt;&lt;/span&gt;" to "&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;C:\Program Files\Microsoft SoftGrid\Microsoft System Center Virtual Application Server&lt;/span&gt;&lt;/span&gt;".&lt;/li&gt;&lt;br /&gt;&lt;li&gt;It is no longer possible to install MSDE --- aka "the SQL overlords will punish you if you still use that one" --- during the MCVAS installation. The availability of a database is now simply a prerequisite for the installation. I used SQL Server 2005 Express Edition SP2 without problems during my tests.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The default database name is now "SOFTGRID", which is irony at its best. The very release that they finally change the default database name from "SOFTRICITY" to "SOFTGRID", the product gets renamed.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;It is no longer necessary to provide the a SQL built-in account with sufficient privileges during the installation; integrated authentication is used instead (no longer necessary to configure your SQL server to mixed authentication). The user that is installing the MCVAS needs sufficient privileges on this server to create a new database or to modify an already existing database.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Several new features that are asked during the installation include:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;The "SoftGrid Secure Communication Mode", which allows to assign a server certificate to the server to immediately allow secure communications (more on this later in this post). The server certificate must be installed before the setup is started.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The port to use for the MCVAS server's communications (RTSP, default: 554)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The port to use for the MCVAS server's secure communications (RTSPS, default port: 322). That is no typo, the &lt;b&gt;default port number for RTSPS&lt;/b&gt; has indeed changed from 332 to 322.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;A small "bug", or rather, discomfort, that I ran into is when trying to install the MCVAS on a server that is not joined to a domain. When prompted for the SoftGrid Administrators and SoftGrid Users group, this leads to an error in the installer log file "ADSOpenObject Error 0x80005000, no value for domain name". The default option of "Domain Admins" (for the SoftGrid Administrators) is listed instead, and only when trying to continue, an error message stating that the domain could not be found is listed. We will see later in this report that indeed it is no longer possible to install the MCVAS on a server that is not joined in the domain.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. Management Console&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A first thing I noticed (also throughout the installation) is that the term "SoftGrid" is still used in many locations; for example, the management console is still named "SoftGrid Management Console", the opening picture that has "Softricity" in it is still used, and the reports still contain the same old logo's.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_tOIlP1THwEk/R0AyTgS0zGI/AAAAAAAAA3k/zH2jEVMv11w/s1600-h/20071118_MCVASMMC.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_tOIlP1THwEk/R0AyTgS0zGI/AAAAAAAAA3k/zH2jEVMv11w/s320/20071118_MCVASMMC.jpg" alt="" id="BLOGGER_PHOTO_ID_5134158885870160994" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Sure, no drama here, but it makes you wonder why 17 months after the purchase of Softricity by Microsoft, no-one took the time to replace the GIF images in "&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;C:\Program Files\Softricity\SoftGrid Management Console\images&lt;/span&gt;&lt;/span&gt;" ?&lt;br /&gt;&lt;br /&gt;At first sight, not many things seem to have changed in the MCVAS management console:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The good old options "Applications", "Filetype Associations", "Packages", "Application Licenses" and "SoftGrid Administrators" seem to be the same as in the previous versions with no visual differences.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The "Provider Policies" option has been simplified; in the provider pipeline, the "Basic Authentication" and "Anonymous Authentication" have been dropped, now you can only authenticate using "Windows Authentication".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_tOIlP1THwEk/R0BGRwS0zII/AAAAAAAAA30/4hnIGnDqg88/s1600-h/20071118_PipelineAuth.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_tOIlP1THwEk/R0BGRwS0zII/AAAAAAAAA30/4hnIGnDqg88/s320/20071118_PipelineAuth.jpg" alt="" id="BLOGGER_PHOTO_ID_5134180846037945474" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This might have a consequence for those of you that use separate provider pipelines for anonymous authentication or PC's that are not joined in a domain.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;An interesting development in the "Server Group" option is &lt;b&gt;the easier management of certificates&lt;/b&gt; in the "Ports" tab of a SoftGrid server.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_tOIlP1THwEk/R0A0fQS0zHI/AAAAAAAAA3s/2lkDJzbTc_4/s1600-h/20071118_Certificates.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_tOIlP1THwEk/R0A0fQS0zHI/AAAAAAAAA3s/2lkDJzbTc_4/s320/20071118_Certificates.jpg" alt="" id="BLOGGER_PHOTO_ID_5134161286756879474" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;By clicking the "Server Certificate" button, it is possible to select a certificate that is stored in the Computer account's personal certificate store as the base certificate for RTSPS communications. This greatly simplifies the configuration of encrypted streaming (see &lt;a href="http://timjacobs.blogspot.com/2007/10/configuring-rtsps-rtsp-over-tls-in.html"&gt;a previous blog post of mine&lt;/a&gt; for the lengthy procedure in pre-4.5 servers).&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;In the advanced configuration of a SoftGrid server, the "Max. Block Size" option is still present, even though AFAIK, the entire 4.x range of servers simply ignores this option and automatically determines the maximum block size.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_tOIlP1THwEk/R0BJOwS0zJI/AAAAAAAAA38/WJfm4_0dnVI/s1600-h/20071118_MaxBlock.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_tOIlP1THwEk/R0BJOwS0zJI/AAAAAAAAA38/WJfm4_0dnVI/s320/20071118_MaxBlock.jpg" alt="" id="BLOGGER_PHOTO_ID_5134184093033221266" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The greatest surprise is without doubt the &lt;b&gt;absence of the "Account Authority"&lt;/b&gt; option which allowed to configure a SoftGrid AD browser account in previous versions of the SoftGrid server. In practice, this means that the reference domain for assigning rights to applications is now the domain that the MCVAS server is placed in. This is also a simplication that was to be expected after generic LDAP support was dropped.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;3. In the background...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Of course the major changes implemented in version 4.5 are not in the graphical interface, but functionalities that are only visible when looking a bit deeper. Here are some nice changes that I discovered when poking around in version 4.5's internals:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Remember that pesky &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;server.conf&lt;/span&gt;&lt;/span&gt; file that contained a database user and password in plaintext? That is finally fixed: now the machine account of the MCVAS server is used to read the configuration from the database (the machine account receives SFTeveryone and SFTread roles in the database). In order to make changes to the database, the default security on the database is such that you need to be in the SoftGrid Administrators group (SFTadmin SQL role). This also means that no longer the "sa" account is needed during the installation, and that mixed authentication can be disabled on your SQL database server.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The registry keys for the SFT content and logging have moved from "&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;HKLM\Software\Softricity\SoftGrid Server&lt;/span&gt;&lt;/span&gt;" to "&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;HKLM\Software\Microsoft\SoftGrid\4.5\Server&lt;/span&gt;&lt;/span&gt;". The only new value  created there is a "Version" REG_SZ value which contains the complete build number of the 4.5 SoftGrid server, in casu "4.5.0.606".&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Corrected: &lt;/span&gt;The older SoftGrid 4.1 / 4.2 clients seem to (partially?) work with the new 4.5 beta server. I was able to stream a pre-4.5-sequenced application but let it be clear that there is no guarantee whatsoever that a new 4.5-sequenced package will work on an older client. (This should not come as a surprise of course, how would an older client know how to interpret features that were introduced in a newer version of the sequencer/server?)&lt;br /&gt;&lt;br /&gt;In fact, as Gene Ferioli pointed out in a comment, Microsoft does not support the connection of older clients to the 4.5 server; the recommended upgrade path is to first upgrade all the clients to 4.5 (since this client knows how to talk to the earlier 4.1/4.2 servers) and only then to upgrade the server to version 4.5.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;4. Roundup&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The functional improvements that are visible in this beta version of the HWS MCVAS surely have their benefit:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;the integration with the domain is more tight (no need for browser accounts, direct Windows authentication, no database accounts).&lt;/li&gt;&lt;br /&gt;&lt;li&gt;the configuration of RTSPS is much easier and now directly compatible with a Microsoft Certification Authority.&lt;/li&gt;&lt;/ul&gt;Besides these small functional improvements, there have not been many changes to the Virtual Application Server. At this moment, after having investigated the main server component, I am a bit afraid that this new version is also mainly about improvements in the virtualization itself (i.e., at the client &amp;amp; sequencer side). I don't see any immediate improvements in management and scalability:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;it is still not possible to have a delegated SoftGrid administrator permissions (as is possible, for example, in SMS and SCCM where you can have separate server and package administrators).&lt;/li&gt;&lt;br /&gt;&lt;li&gt;For centralized client management, it still seems necessary to revert to third-party or self-made administrative templates for GPO's.&lt;/li&gt;&lt;/ul&gt;The scalability issues should be tackled by introducing different deployment schemes as discussed in the beginning of this post. These different deployment schemes will be discussed in a series of other posts. To be continued!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-7156177535126170314?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/7156177535126170314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=7156177535126170314' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/7156177535126170314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/7156177535126170314'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2007/11/microsoft-application-virtualization-45_18.html' title='Microsoft Application Virtualization 4.5 beta - Heavyweight Server impressions'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_tOIlP1THwEk/R0AyTgS0zGI/AAAAAAAAA3k/zH2jEVMv11w/s72-c/20071118_MCVASMMC.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-4012494100691481455</id><published>2007-11-13T21:38:00.001+01:00</published><updated>2007-11-13T21:54:55.243+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft SoftGrid'/><title type='text'>Microsoft Application Virtualization 4.5</title><content type='html'>The long awaited version 4.5 of "Microsoft SoftGrid" has been released in beta, and there are some remarkable surprises to be read in the release notes.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;First of all, the name "SoftGrid" is dropped and now we should talk about "&lt;span style="font-weight: bold;"&gt;Microsoft Application Virtualization&lt;/span&gt;".&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Secondly, the centralized management and integration with SCCM 2007 is now in effect. This was the major improvement in functionality that was expected previously.  This is basically manifested in the different installation modes that are possible:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Standalone mode:&lt;/span&gt; which allows the execution of virtual applications without the streaming but using SCCM or another electronic software distribution (ESD) tool to get the SoftGrid package at the client.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;"SoftGrid compatibility" mode:&lt;/span&gt; the infrastructure as we know it from version 4.0 - 4.2 where a central application server performs the desktop configuration, performs application tracking/licensing/access management and streaming.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Streaming Server mode&lt;/span&gt;: which is a trimmed down version of the previous mode where only streaming is performed at such a server. I suppose that this is the component that will be placed on SCCM distribution points once SCCM2007 R2 (which would feature Microsoft Application Virtualization integration) is released to allow for distribution points to perform the streaming.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Finally, the big new feature is that we now can merge bubbles on the fly! The "&lt;span style="font-weight: bold;"&gt;Dynamic Suite Composition&lt;/span&gt;" feature allows to create separate packages for middleware such as Java Runtime Engines or Oracle clients.&lt;/li&gt;&lt;/ul&gt;The beta can be downloaded at &lt;a href="https://connect.microsoft.com/site/sitehome.aspx?SiteID=285"&gt;the Microsoft Connect website&lt;/a&gt;. More details on this new release can be read &lt;A HREF="http://www.microsoft.com/systemcenter/softgrid/msappvirt45/default.mspx"&gt;at the   SCCM site&lt;/A&gt; or at the &lt;A HREF="http://blogs.technet.com/softgrid/archive/2007/11/12/microsoft-application-virtualization-4-5-is-now-available-in-beta.aspx"&gt;SoftGrid team blog&lt;/A&gt; --- I wonder what we should call that blog from now on ;).&lt;br /&gt;&lt;br /&gt;I am yet to test this new release but you can expect some detailed feature reports very soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-4012494100691481455?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/4012494100691481455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=4012494100691481455' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/4012494100691481455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/4012494100691481455'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2007/11/microsoft-application-virtualization-45.html' title='Microsoft Application Virtualization 4.5'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-4667535622988532933</id><published>2007-11-04T11:43:00.000+01:00</published><updated>2007-11-04T12:08:27.031+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>Virtualized Domain Controller's time synchronization issues</title><content type='html'>At home, I use the excellent &lt;a href="http://www.vmware.com/products/server/"&gt;VMWare Server&lt;/a&gt; to run my own little network with domain controller and SoftGrid server, like most of us do. Due to circumstances, I regularly reinstall the entire network, and a single problem keeps on recurring: the times on all my computers go nuts after about a week of running properly synchronized. Quite annoying if some of your client PC's have a TV-card with a thight recording schedule ;).&lt;br /&gt;&lt;br /&gt;The problem is the bleeding obvious: the time on the domain controller (which holds the PDC role as it is the only domain controller in my miniature network) is not correctly synchronized anymore after a while. I noticed that it starts with small deviations at first, but very soon, this accumulates to very large deviations. The skew between the "real time" and the DC's time seems to increase in a nonlinear fashion. Also, the DC uses bridged networking so external timesources such as "&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;time.windows.com&lt;/span&gt;&lt;/span&gt;" are reachable at all times.&lt;br /&gt;&lt;br /&gt;I still have to figure out if this is due to the fact that this is a virtualized domain controller on VMWare Server; I cannot remember seeing this problem elsewhere (not on a VMWare ESX or on physical installations of a domain controller). Anyway, here is the solution to the problem, you might find it useful at a given point in time:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;First of all, inside the virtual machine, ensure that the option "&lt;span style="font-style: italic;"&gt;Time synchronization between the virtual machine and the host operating system&lt;/span&gt;" is disabled. In my setup, this could potentially lead to a loopback since the host OS is in fact a member of the domain of which it is hosting the domain controller (and PDC emulator) in a virtual machine.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_tOIlP1THwEk/Ry2lQBWvxQI/AAAAAAAAA3c/KgCfarHoQUo/s1600-h/20071104_vmware.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_tOIlP1THwEk/Ry2lQBWvxQI/AAAAAAAAA3c/KgCfarHoQUo/s320/20071104_vmware.jpg" alt="" id="BLOGGER_PHOTO_ID_5128937245305193730" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Secondly, I had not configured the domain controller to use an external time source. The procedure is detailed at Microsoft's &lt;a href="http://support.microsoft.com/kb/816042"&gt;Knowledgebase article 816042&lt;/a&gt;, but in essence, it comes down to setting the following registry values under &lt;b&gt;HKLM\SYSTEM\CurrentControlSet\Services\W32Time\&lt;/b&gt;:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Parameters\Type = "&lt;span style="font-style: italic;"&gt;NTP&lt;/span&gt;"&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Parameters\NtpServer = "&lt;span style="font-style: italic;"&gt;time.windows.com,0x1&lt;/span&gt;"&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Config\AnnounceFlags = "&lt;span style="font-style: italic;"&gt;5&lt;/span&gt;"&lt;/li&gt;&lt;br /&gt;&lt;li&gt;TimeProviders\NtpServer\Enabled = "&lt;span style="font-style: italic;"&gt;1&lt;/span&gt;"&lt;/li&gt;&lt;br /&gt;&lt;li&gt;TimeProviders\NtpClient\SpecialPollInterval = "&lt;span style="font-style: italic;"&gt;60&lt;/span&gt;"&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Finally, you need to restart the W32Time service at the domain controller using &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;net stop W32Time&lt;/span&gt;&lt;/span&gt; followed by &lt;span style=";font-family:courier new;font-size:85%;"  &gt;net start W32Time&lt;/span&gt;.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;On your clients, use &lt;span style=";font-family:courier new;font-size:85%;"  &gt;w32tm /resync&lt;/span&gt; to reset the time according to your domain controller (you can also use this command at the domain controller to immediatelly poll the NTP server you specified).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-4667535622988532933?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/4667535622988532933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=4667535622988532933' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/4667535622988532933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/4667535622988532933'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2007/11/virtualized-domain-controllers-time.html' title='Virtualized Domain Controller&apos;s time synchronization issues'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_tOIlP1THwEk/Ry2lQBWvxQI/AAAAAAAAA3c/KgCfarHoQUo/s72-c/20071104_vmware.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-6308959781676125530</id><published>2007-11-01T20:13:00.000+01:00</published><updated>2007-11-01T21:29:29.154+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft SoftGrid'/><title type='text'>What happens to Feature Block 1 when you upgrade a package?</title><content type='html'>Recently, I had a discussion with a colleague around what happens to Feature Block 1 when you perform a package upgrade: does it get completely restreamed, when is the FB1 data erased when opening a package for upgrade, ... ? I decided to perform a set of small tests in order to figure out what happens exactly.&lt;br /&gt;&lt;br /&gt;Here are the results: I used the SoftGrid Sequencer 4.2 build 303 for creating the packages, SFTExplorer 1.0 for finding out what the FB1/FB2 contents looks like and NetLimiter 2.0.10 Freeware to monitor network traffic.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;When is the FB1/FB2 separation erased when opening  a package for upgrade?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A first test consisted of finding out when the FB1/FB2 separation is erased when using the "installation wizard" for making modifications to the package:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;When adding a new file to the package using the "installation wizard", and &lt;span style="font-style: italic;"&gt;not &lt;/span&gt;running the "application wizard" (FB1 determination), results in a loss of a previous FB1/FB2 division.  The entire package becomes FB1 data.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;When adding a new file to the package using the "installation wizard", and then running the "application wizard" for FB1 determination, results in FB1 containing those (parts of the) files that are accessed during the FB1 monitoring. This is precisely the expected behaviour.&lt;/li&gt;&lt;/ul&gt;When opening the package for upgrade and immediately saving the package without making any modifications, retains the FB1/FB2 separation.  As mentioned above, when you click the "Begin Monitoring" button in the "installation wizard", the FB1/FB2 separation vanishes, even when not changing anything in the package. &lt;span style="font-style: italic;"&gt;This means that the "Begin Monitoring" click is (roughly speaking) the point where the previous FB1 is lost.&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A second test consists of what happens when you use the "Encode Directory" option to modify the contents of the package instead of the "installation wizard". Something interesting here:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;When you use the "encode directory" wizard, the FB1/FB2 separation is lost, which coincides with the behaviour of using the "installation wizard". Strangely enough, now the entire package becomes FB2 (!!) with only SoftGrid's &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;osguard.cp&lt;/span&gt;&lt;/span&gt; file being in FB1.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;When using the "encode directory" wizard, followed by the "application wizard", creates the usual FB1/FB2 separation that one would expect.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Here, the start of the "encode directory" wizard triggers the erase of the previous FB1/FB2 separation.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;What is streamed to a client after a package was upgraded on the SoftGrid server?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is very simple: the entire package needs to be restreamed to the client when the package is upgraded on the server. I performed the following three tests on a SoftGrid package that contained 3 files of 5 MB each:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The first time the package was created, I added one file of 5 MB to FB1 (by reading it into WordPad during the monitoring phase). After publishing this application on the SoftGrid server, the SoftGrid client pulls in 5 MB as expected ; this was monitored using NetLimiter and verified in the SoftGrid client management console.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Then I opened the package for upgrade, ran the "Application Wizard" and now touched the original 5 MB file that was already in FB1 and also a second 5 MB file. The sequencer correctly reports that the FB1 size then becomes 10 MB, as expected.&lt;br /&gt;&lt;br /&gt;The client's total transfer size after placing this new package on the server (using "Add Version") came down to 10 MB, the entire FB1. Notice that the launch bar kept on saying "100%" at the client side, even though a restreaming was in fact being performed.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The third test consisted of opening the package with a 10 MB FB1 size and changing a single byte within one of the files that was in FB1. Again, it turned out that the entire FB1 was transferred to the client when I upgraded the package on the server.&lt;/li&gt;&lt;/ul&gt;I have heard several people say that SoftGrid will only stream the difference between an original package and the ActiveUpgrade that is performed on it; from these simple tests it turns out that this is &lt;span style="font-weight: bold;"&gt;not&lt;/span&gt; the case: upon every package upgrade, all previously cached data is invalidated at the client.&lt;br /&gt;&lt;br /&gt;In a sense, this is not really surprising: at every save of a package, it is restructured and optimized for streaming according to the FB1/FB2 separation that was specified during the application wizard. This new SFT structure could in principle be completely different from the old SFT, making it nearly impossible or inpredictable on a 32 KB-block level to say which blocks need retransfering. I don't really see a practical way of implementing this when using a streaming protocol that only knows about block numbers and not about the contents of the package.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-6308959781676125530?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/6308959781676125530/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=6308959781676125530' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/6308959781676125530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/6308959781676125530'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2007/11/what-happens-to-feature-block-1-when.html' title='What happens to Feature Block 1 when you upgrade a package?'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-573966467353798519</id><published>2007-11-01T17:46:00.000+01:00</published><updated>2007-11-01T18:23:29.292+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft SoftGrid'/><title type='text'>SoftGrid applications without a SoftGrid server</title><content type='html'>A convenient trick to launch a SoftGrid application locally, without contacting a SoftGrid server, is to direct the SoftGrid client directly towards the SFT file. This can be done by editing the OSD file and replacing&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;  HREF="rtsp://%SFT_SOFTGRIDSERVER%:554/content/appname/app.sft"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;with&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;  HREF="file://D:/SoftGrid/appname/app.sft"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(replace by the correct path) and then double clicking on the OSD file. This triggers &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;SFTTray.exe&lt;/span&gt;&lt;/span&gt; to launch the specified application.&lt;br /&gt;&lt;br /&gt;Some caveats and things to know:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The path that you specify may not contain any spaces or you will get a "&lt;span style="font-style: italic;"&gt;Launch failed&lt;/span&gt;" error message.&lt;/li&gt;&lt;li&gt;The "file" prefix in the URI is case-sensitive (but this is also the case for the more traditional &lt;span style="font-style: italic;"&gt;rtsp&lt;/span&gt; &amp;amp; &lt;span style="font-style: italic;"&gt;rtsps&lt;/span&gt; prefixes).&lt;/li&gt;&lt;li&gt;You need the "&lt;span style="font-style: italic;"&gt;Add Applications&lt;/span&gt;" privilege in order for this to work: double-clicking the OSD file of an application that is not known on the system will first &lt;span&gt;add the application&lt;/span&gt; and then &lt;span&gt;start loading FB1&lt;/span&gt; into the cache. Only afterwards, the application is started. &lt;/li&gt;&lt;/ul&gt;This means that by the default configuration of the SoftGrid client, you need to be &lt;span style="font-weight: bold;"&gt;a local administrator&lt;/span&gt; before you can use this trick.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-573966467353798519?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/573966467353798519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=573966467353798519' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/573966467353798519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/573966467353798519'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2007/11/softgrid-applications-without-softgrid.html' title='SoftGrid applications without a SoftGrid server'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-3499980041628664049</id><published>2007-10-18T20:45:00.000+02:00</published><updated>2007-10-18T21:29:40.482+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft SoftGrid'/><title type='text'>Package information leakage through the Q drive</title><content type='html'>We all know that if you are a local administrator on a machine that has a SoftGrid client, then you can see all the applications that have data in the local &lt;span style="font-family: courier new;"&gt;sftfs.fsd&lt;/span&gt; cache file by opening the SoftGrid Client Management Console and finding all the applications that &lt;i&gt;don't&lt;/i&gt; have a "Idle (0%)" package status. This is because local administrators can see all applications that are &lt;i&gt;defined&lt;/i&gt; on a machine in the Client Management Console, whether or not they actually have the proper group memberships or SoftGrid access to be able to start the application.&lt;br /&gt;&lt;br /&gt;A colleague (thanks Anthony) pointed me out to another interesting way of finding out what applications have cached data on a SoftGrid client, but that doesn't require administrative privileges. Simply go to the root of the Q drive inside a bubble and look at what &lt;b&gt;asset directories&lt;/b&gt; you can see!&lt;br /&gt;&lt;br /&gt;It turns out that a user can see all the asset directories of all applications that have some data cached at the client, even if the user doesn't have access to the applications themselves (note: of course you cannot see the contents of these directories since this is prohibited by the isolation; you can only see their existence). &lt;br /&gt;&lt;br /&gt;As an illustration, notice on the figure below how the user only has access to Office 2000 and still can see the asset directories of Office 2003 and Office 97 on the Q drive.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_tOIlP1THwEk/Rxex24ItfuI/AAAAAAAAA3U/bUw-s5QS_Rc/s1600-h/20071018_QDriveLeak.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_tOIlP1THwEk/Rxex24ItfuI/AAAAAAAAA3U/bUw-s5QS_Rc/s320/20071018_QDriveLeak.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5122758657497202402" /&gt;&lt;/a&gt;&lt;br /&gt;You can do this test yourself as an end-user by modifying a locally cached OSD file (hey, they are in the All Users profile with write access for all!) and using the following script tag:&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;&amp;lt;SCRIPT TIMING="PRE" EVENT="LAUNCH" PROTECT="TRUE" WAIT="TRUE"&amp;gt;&lt;br /&gt;  &amp;lt;SCRIPTBODY&amp;gt;&lt;br /&gt;    @echo off \n&lt;br /&gt;    dir q: \n&lt;br /&gt;    pause \n&lt;br /&gt;  &amp;lt;/SCRIPTBODY&amp;gt;&lt;br /&gt;&amp;lt;/SCRIPT&amp;gt;&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;Then (as a local administrator), perform an unload of one of the applications that you don't have access to as a regular user and witness how the next time you use the script above under the user's account, the asset directory has vanished!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Note on motivation:&lt;/b&gt;&lt;br&gt;&lt;br /&gt;So you might be thinking... big deal, so what? Who cares about that asset directory being visible or not? &lt;br /&gt;&lt;br /&gt;It was important for one of our customers, because they wanted to prevent users from seeing what applications were installed on a machine (locally installed and virtualized). One reason for that was security: knowledge of applications installed might open ways to use certain exploits. Another reason was cost: they had a very peculiar licensing system for a set of applications that required them to cough up the license fee from the moment an end-user could &lt;i&gt;see&lt;/i&gt; that the application was installed. I suppose they didn't want to enter a legal dispute whether the visibility off the asset directory would mean they have to start paying license fees ;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-3499980041628664049?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/3499980041628664049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=3499980041628664049' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/3499980041628664049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/3499980041628664049'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2007/10/package-information-leakage-through-q.html' title='Package information leakage through the Q drive'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_tOIlP1THwEk/Rxex24ItfuI/AAAAAAAAA3U/bUw-s5QS_Rc/s72-c/20071018_QDriveLeak.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-9103630491615552379</id><published>2007-10-18T19:07:00.000+02:00</published><updated>2007-10-18T20:45:26.962+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft SoftGrid'/><title type='text'>Automatic starting of SoftGrid applications</title><content type='html'>It is possible to publish applications to the &amp;quot;Startup&amp;quot; menu, i.e. by placing an icon in &lt;span style="font-family: courier new;"&gt;%CSIDL_PROGRAMS%\Startup&lt;/span&gt; location. However, it might not be a good idea. &lt;br /&gt;&lt;br /&gt;The problem occurs when you have use the desktop configuration to perform refresh cycles of the shortcuts of the icons, and in this case, the problem is two-fold. First of all, the icon is added to the start menu only &lt;i&gt;after&lt;/i&gt; the user has logged in (at least when you configured the SoftGrid client to perform a refresh upon login). This means that the first time the application is published in the Startup menu, the application will not execute since the logon moment has passed and Windows already processed all the Startup menu entries. On the other hand, from that moment onwards, the SoftGrid shortcut will remain in the Startup menu, it points to the locally cached OSD file and the next logoff/logon of the user will start the virtualized application from the Startup menu as expected.&lt;br /&gt;&lt;br /&gt;The second problem occurs when retracting the user's rights to this application. The icon will be removed the next time the user logs on again (... if you enabled refresh upon logon, that is; the reasoning remains valid if you use periodic refreshes and the user logs off before that period refresh removed the icon). However, before the SoftGrid client removes the icon, Windows will already have processed the Startup menu and attempted to start the virtualized application, which will result in an error message because the user no longer has the proper rights.&lt;br /&gt;&lt;br /&gt;If you manually publish your shortcut in the Start Menu's Startup folder (not relying on the desktop configuration of the SoftGrid client), you are not vulnerable to this error. You will notice that the SoftGrid application will be started upon the user login, as expected.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-9103630491615552379?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/9103630491615552379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=9103630491615552379' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/9103630491615552379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/9103630491615552379'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2007/10/automatic-starting-of-softgrid.html' title='Automatic starting of SoftGrid applications'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-2988495110248072123</id><published>2007-10-18T18:27:00.000+02:00</published><updated>2007-10-18T19:07:05.221+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft SoftGrid'/><title type='text'>Terminate Children (yes/no/abort) ?</title><content type='html'>When you specify the &lt;span style="font-family: courier new;"&gt;TERMINATECHILDREN="TRUE"&lt;/span&gt; value in the &lt;span style="font-family: courier new;"&gt;VIRTUALENV&lt;/span&gt; element, then all processes that are running in the bubble are killed when the main application closes. The name of the element might let you think that only child processes of the executable that you specify as &lt;span style="font-family: courier new;"&gt;FILENAME&lt;/span&gt; in the &lt;span style="font-family: courier new;"&gt;CODEBASE&lt;/span&gt; element are removed, but this appears not to be correct.  This also means that any script that you still have running in the background can be killed, or a command prompt that you opened up for troubleshooting.&lt;br /&gt;&lt;br /&gt;In my opinion you should be careful using &lt;span style="font-family: courier new;"&gt;TERMINATECHILDREN&lt;/span&gt;, since the child executables and other processes can also perform I/O operations that might get interrupted. If you want to alert the user of the killing of background processes and make them aware of this danger, you might want to check out the &lt;A HREF="http://www.tmurgent.com/download%5CLaunchIt.zip"&gt;LaunchIT&lt;/A&gt; utility from &lt;A HREF="http://www.tmurgent.com"&gt;Tim Mangan&lt;/A&gt;. This utility monitors all child processes that are launched by the main process and optionally alerts the user when child processes remain once the main process has closed.&lt;br /&gt;&lt;br /&gt;For more information, see &lt;A HREF="http://www.tmurgent.com/OSD_Illustrated.aspx"&gt;the OSD illustrated&lt;/A&gt; which also explains this, or &lt;A HREF="http://support.microsoft.com/kb/931589"&gt;Microsoft KB 931589&lt;/A&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-2988495110248072123?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/2988495110248072123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=2988495110248072123' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/2988495110248072123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/2988495110248072123'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2007/10/terminate-children-yesnoabort.html' title='Terminate Children (yes/no/abort) ?'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-3441654530529666151</id><published>2007-10-17T20:43:00.001+02:00</published><updated>2009-06-11T10:24:48.838+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft SoftGrid'/><title type='text'>Hiding the Q drive on SoftGrid clients</title><content type='html'>So finally you have gone through the work of getting a SoftGrid server up and running, configuring your clients, sequencing your packages, ... to get a zero footprint of applications on your workstations. And right at that moment it turns out that the SoftGrid client leaves a very visible trace on the client computer: &lt;b&gt;the Q drive&lt;/b&gt; is plainly visible there. And what is even worse, inside your bubbles, the end user has full write access on that Q drive (or at least, within the application's asset directory). Are you really ready to become your helpdesk team's &lt;b&gt;new nightmare&lt;/b&gt; when all the calls come in, whining about documents saved to Q gone missing? ;)&lt;br /&gt;&lt;br /&gt;I think not. So we simply hide the Q drive from the end-users who want to store their documents everywhere but their home drive!&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;First, we must hide the Q drive from the user's desktop. Thanks to the isolation, users cannot access the Q drive (unless they are in a bubble), so hiding the Q drive from the desktop is purely for aesthetic reasons. Edit your domain policy and set the &lt;b&gt;Hide these specified drives in My Computer&lt;/b&gt; group policy to hide the Q drive. Since the default options do not include a "Q drive" option, you will need to edit your &lt;b&gt;system.adm&lt;/b&gt; file to include such an option; all the details are in Microsoft &lt;a href="http://support.microsoft.com/kb/231289/"&gt;Knowledgebase article 231289&lt;/a&gt;, but basically you should modify the &lt;b&gt;system.adm&lt;/b&gt; file as follows:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;POLICY !!NoDrives&lt;br /&gt;  EXPLAIN !!NoDrives_Help&lt;br /&gt;     PART !!NoDrivesDropdown          DROPDOWNLIST NOSORT REQUIRED&lt;br /&gt;        VALUENAME "NoDrives"&lt;br /&gt;         ITEMLIST&lt;br /&gt;               NAME !!QOnly           VALUE NUMERIC 10000&lt;br /&gt;                ;low 26 bits on (1 bit per drive)&lt;br /&gt;               NAME !!RestNoDrives     VALUE NUMERIC 0 (Default)&lt;br /&gt;         END ITEMLIST&lt;br /&gt;    END PART              &lt;br /&gt;  END POLICY&lt;br /&gt;&lt;br /&gt;[strings]&lt;br /&gt;QOnly="Restrict Q drive only"&lt;br /&gt;RestNoDrives="Do not restrict drives"&lt;br /&gt;&lt;/pre&gt;Of course, you can create a separate SoftGrid.adm file that includes this registry change...&lt;br /&gt;&lt;br /&gt;You can also use a registry file along the lines of&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Windows Registry Editor Version 5.00&lt;br /&gt;&lt;br /&gt;[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]&lt;br /&gt;"NoDrives"=dword:00010000&lt;br /&gt;"NoViewOnDrive"=dword:00010000&lt;br /&gt;&lt;/pre&gt;in the login script to prevent the user from seeing the Q drive.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Note&lt;/b&gt;: The value 0x00010000 displayed above is the value that hides ONLY the Q drive. If you want to hide another drive, or multiple drives, you need to recalculate the value there as described in the  &lt;a href="http://support.microsoft.com/kb/231289/"&gt;knowledgebase article&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;We also want to hide the Q drive inside the bubble to avoid that a clever user overrides the OS registry values that we just defined, or that a sequencer accidently overwrites these values due to bad packaging. So, we must also include the above registry setting in the virtual registry! Microsoft &lt;a href="http://support.microsoft.com/kb/931626"&gt;knowledgebase article 931626&lt;/a&gt; discusses three ways of doing this, but without doubt the cleanest way is to modify your OSD file and add a &lt;b&gt;REGISTRY entry&lt;/b&gt; in the between the VIRTUALENV tags:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;VIRTUALENV&amp;gt;&lt;br /&gt; &amp;lt;REGISTRY&amp;gt;&lt;br /&gt;   &amp;lt;REGKEY HIVE="HKCU" KEY="Software\Microsoft\Windows\CurrentVersion\Policies\Explorer"&amp;gt;&lt;br /&gt;     &amp;lt;REGVALUE REGTYPE="REG_DWORD" NAME="NoDrives"&amp;gt;10000&amp;lt;/REGVALUE&amp;gt;&lt;br /&gt;     &amp;lt;REGVALUE REGTYPE="REG_DWORD" NAME="NoViewOnDrive"&amp;gt;10000&amp;lt;/REGVALUE&amp;gt;&lt;br /&gt;   &amp;lt;/REGKEY&amp;gt;&lt;br /&gt; &amp;lt;/REGISTRY&amp;gt;&lt;br /&gt;&amp;lt;/VIRTUALENV&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This does not pollute the user's virtual registry.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Note:&lt;/b&gt; The virtual registry &lt;i&gt;overwrites&lt;/i&gt; values from the underlying OS. If your group policy hides other drives than Q, they will reappear if you blindly use the "0x00010000" value shown above as an example!&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Of course, this does not prevent the innovative user of accessing the Q drive from within bubbles (after all, it's only hidden). But if they really insist on saving their data on the Q drive, at least now you have a valid reason for applying all your voodoo on them :).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-3441654530529666151?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/3441654530529666151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=3441654530529666151' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/3441654530529666151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/3441654530529666151'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2007/10/hiding-q-drive-on-softgrid-clients.html' title='Hiding the Q drive on SoftGrid clients'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-4084513398595288450</id><published>2007-10-17T09:03:00.001+02:00</published><updated>2008-05-02T12:53:15.158+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft SoftGrid'/><title type='text'>SoftGrid error 0060922C-800736B1</title><content type='html'>This is a good one to know. If you get the following error message... &lt;br /&gt;&lt;pre&gt;The SoftGrid Client could not launch (APPNAME)&lt;br /&gt;This application has failed to start because the &lt;br /&gt;application configuration is incorrect. &lt;br /&gt;Reinstalling the application may fix this problem.&lt;br /&gt;&lt;br /&gt;Error code: XXXXXX-0060922C-800736B1&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;then you might want to consider installing the &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=200b2fd9-ae1a-4a14-984d-389c36f85647&amp;displaylang=en"&gt;Visual Studio Runtime Executables&lt;/a&gt;. It solved a problem for me where a package streamed ok, but the application itself simply refused to launch (Adobe Reader 8). &lt;br /&gt;&lt;br /&gt;More information available at the &lt;a href="http://support.microsoft.com/kb/939084/"&gt;Microsoft Knowledge Base in article 939084&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-4084513398595288450?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/4084513398595288450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=4084513398595288450' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/4084513398595288450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/4084513398595288450'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2007/10/softgrid-error-0060922c-800736b1.html' title='SoftGrid error 0060922C-800736B1'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-2020552338910106575</id><published>2007-10-17T09:00:00.000+02:00</published><updated>2007-10-17T13:30:24.183+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft SoftGrid'/><title type='text'>Sequencing... WinZIP</title><content type='html'>There is no real problem in sequencing WinZIP: just follow the standard procedures, and you got yourself another SoftGrid package! Except for one annoying message that keeps on popping up: &amp;quot;&lt;b&gt;WinZIP is currently not associated to...&lt;/b&gt;&amp;quot;. In the sequencer, this error does not appear.&lt;br&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_tOIlP1THwEk/RxWzQoItftI/AAAAAAAAA3M/xvoLxM16XO0/s1600-h/20070518_winziperror.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_tOIlP1THwEk/RxWzQoItftI/AAAAAAAAA3M/xvoLxM16XO0/s320/20070518_winziperror.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5122197249437040338" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;What goes wrong here is the good ol' File-Type-Association that is handled by &lt;i&gt;SoftGrid&lt;/i&gt; and no longer by WinZIP itself. In fact, there is nothing you can do to prevent this message, except for making sure it does not appear anymore. This can be done by adding a virtual registry key &lt;b&gt;AssocMsg&lt;/b&gt; at:&lt;pre&gt;&lt;br /&gt;HKCU \ Software \ Nico Mak Computing \ WinZip \ WinZip  &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;as a &lt;b&gt;REG_SZ&lt;/b&gt; and setting its value to &amp;quot;0&amp;quot;. This simply does not show that particular dialog window anymore to the user. This does not impact the functionality of WinZIP, since the filetype associations are handled by the SoftGrid client.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-2020552338910106575?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/2020552338910106575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=2020552338910106575' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/2020552338910106575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/2020552338910106575'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2007/10/there-is-no-real-problem-in-sequencing.html' title='Sequencing... WinZIP'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_tOIlP1THwEk/RxWzQoItftI/AAAAAAAAA3M/xvoLxM16XO0/s72-c/20070518_winziperror.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-7472359272191872931</id><published>2007-10-17T08:51:00.000+02:00</published><updated>2007-10-17T13:30:48.568+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft SoftGrid'/><title type='text'>Configuring RTSPS (RTSP over TLS) in SoftGrid</title><content type='html'>One of the convenient features of SoftGrid is that all the streaming and management traffic can be encapsulated in a TLS tunnel. This is very useful if you want to make SoftGrid available through a webinterface or to internet users. Some documentation is available (&lt;a href="http://support.microsoft.com/kb/930870"&gt;MSKB930870&lt;/a&gt;) on how you should configure the RTSPS protocol on the SoftGrid server, but very little is said on how you should obtain a server certificate that SoftGrid can understand.&lt;br /&gt;&lt;br /&gt;It turns out that SoftGrid requires a &lt;b&gt;cert.pem&lt;/b&gt; and &lt;b&gt;key.pem&lt;/b&gt; file, and cannot read Microsoft's PKCS#12 certificate stores (where multiple certificates and keys are stored in a single file). So how can you obtain a separate certificate and private key file if you only have a Microsoft Certification Authority in your enterprise? Here's how...&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;I. Preparing to request the certificate&lt;/u&gt;&lt;/b&gt;&lt;br&gt;&lt;br /&gt;First of all, you need to create a new certificate template that allows the exporting of private keys from a Microsoft certificate store. If you don't do this, you cannot separate the private key and the actual certificate that are stored in the single PKCS#12 file. An additional complication is that &lt;b&gt;your certification authority&lt;/b&gt; need to be running Windows 2003 &lt;b&gt;Enterprise Edition&lt;/b&gt; in order to allow for custom templates! If that is all set, do the following steps:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Open a MMC and open the &lt;i&gt;Certificate Templates&lt;/i&gt; snap-in.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Rightclick the &lt;i&gt;Webserver&lt;/i&gt; template and choose to duplicate it.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Change the following settings:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;u&gt;Template Display Name:&lt;/u&gt; Webserver (25 years and exportable)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;u&gt;Validity period:&lt;/u&gt; 25 years&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Also make sure that on the &lt;b&gt;Request Handling&lt;/b&gt; tab, the &lt;i&gt;Allow private key to be exported&lt;/i&gt; checkmark is checked!&lt;/li&gt;&lt;br /&gt;&lt;li&gt; Save the template &amp;amp; exit this MMC.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Next, open the &lt;i&gt;Certification Authory&lt;/i&gt; MMC on your CA server, and go to the &lt;i&gt;Certificate Templates&lt;/i&gt; branch in the navigation tree on the left. Rightclick and select &lt;i&gt;New template to issue&lt;/i&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Select the template you just created. Afterwards, restart the CA service.&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;Done! You have just created a new certificate template that allows the private keys of the (entire) certificate to be exported.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;II. Requesting the certificate&lt;/u&gt;&lt;/b&gt;&lt;br&gt;&lt;br /&gt;On your SGVAS server (... you need to do this on every SoftGrid server!), navigate to the CA's certificate webpage, which is typically available at &lt;b&gt;http://ca_hostname/certsrv&lt;/b&gt;. &lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;There, select to request a new certificate, select &lt;i&gt;advanced certificate request&lt;/i&gt;. Then, select the option to &lt;i&gt;Create and submit a request to this CA.&lt;/i&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Enter the following information:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;u&gt;Certificate Template:&lt;/u&gt; “Webserver (25 years and exportable)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;u&gt;Name:&lt;/u&gt; use the FQDN of your SGVAS server.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Ensure the &lt;i&gt;Mark keys as exportable&lt;/i&gt; checkmark is checked.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Enable &lt;i&gt;Store certificate in the local computer certificate store&lt;/i&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;u&gt;Attributes:&lt;/u&gt; can be used to specify additional hostnames for a particular server.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;u&gt;Friendly name:&lt;/u&gt; specify a human readable name here for the certificate, e.g. &lt;i&gt;SoftGrid SGVAS Certificate&lt;/i&gt;.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Click the &lt;i&gt;Submit&lt;/i&gt; button when done, and install the certificate afterwards.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;That concludes the requesting and installation of the certificate.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;III. Preparing to convert the certificate&lt;/u&gt;&lt;/b&gt;&lt;br&gt;&lt;br /&gt;Before we can convert the certificate into a form that SoftGrid can understand, we must first extract it from the local certificate store again. This is done using by following these steps:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Open a MMC, and select the &lt;i&gt;Certificates&lt;/i&gt; snap-in for &lt;b&gt;Local Computer&lt;/b&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Find the certificate you requested under &lt;i&gt;Personal / Certificates&lt;/i&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Rightclick the certificate, select &lt;i&gt;All tasks&lt;/i&gt; and choose to export the certificate.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;In the next screens, ensure that:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;The &lt;i&gt;Yes, export private key&lt;/i&gt; option is selected.&lt;br /&gt;&lt;li&gt;The export format is set to &lt;b&gt;PKCS #12&lt;/b&gt;.&lt;br /&gt;&lt;/ul&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Enter a private key password and be sure to remember it!!&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Select the filename to save the certificate and private key to, e.g. &lt;i&gt;sgvas.pfx&lt;/i&gt;.&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;Now we're ready to convert the certificate once we have installed the OpenSSL tools which allow the manipulation of X.509 certificates (the Microsoft tools suck). Go to &lt;a href="http://www.openssl.org"&gt;the OpenSSL site&lt;/a&gt; and find the page that gives &lt;a href="http://www.openssl.org/related/binaries.html"&gt;a link to binary distributions&lt;/a&gt;. You will be pointed towards the &lt;a href="http://www.slproweb.com"&gt;Shining Light Productions&lt;/a&gt; &lt;a href="http://www.slproweb.com/products/Win32OpenSSL.html"&gt;Win32 port&lt;/a&gt; of OpenSSL. &lt;a href="http://www.slproweb.com/download/Win32OpenSSL_Light-0_9_8e.exe"&gt;Download&lt;/a&gt; and install the light package,  the current version is v0.9.8.e.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;IV. Converting the certificate for SoftGrid&lt;/u&gt;&lt;/b&gt;&lt;br&gt;&lt;br /&gt;Follow this procedure to convert the PKCS#12 certificate to a separate private key and security certificate file:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Open a command prompt and go to the installation directory of OpenSSL (default is &lt;b&gt;C:\OpenSSL&lt;/b&gt;).&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Enter the following command (change the location of the input file &lt;b&gt;sgvas.pfx&lt;/b&gt; and output file &lt;b&gt;sgvas.pem&lt;/b&gt; as desired):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;openssl pkcs12 -in sgvas.pfx -out sgvas.pem -nodes&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;You will be prompted for the &lt;i&gt;import password&lt;/i&gt;, which is the private key password that you choose when exporting the certificate in the Microsoft management console.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Open the &lt;b&gt;sgvas.pem&lt;/b&gt; file using a text editor like WordPad. Find the part that is enclosed by the &lt;i&gt;BEGIN RSA PRIVATE KEY&lt;/i&gt; tags, and copy it entirely (including the begin/end declarations) to a separate file that you call &lt;b&gt;key.pem&lt;/b&gt;. The resulting &lt;b&gt;key.pem&lt;/b&gt; file should look like:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;-----BEGIN RSA PRIVATE KEY-----&lt;br /&gt;MIICXAIBAAKBgQC4rRo0XjlmXOAoC+0GawMzqxRpB/i8PsbljR6pKfF1RGxzzN9y&lt;br /&gt;l/dQN8DYlE9FRLTFruZnKfzMdInYr+nRcGczrRMkkfJiGOpF6DvBkHqwu+j/Rf5g&lt;br /&gt;hEwdZNJzT48aC0F8H5zZ4hY1E006zQuoS2LTh8A70RsufHd7T0paX2p04QIDAQAB&lt;br /&gt;AoGBAIX+WxgKEb26v4sdfhsdfjsdkfjhsdjkfhsdjkfhsdjkfhsdjf5HgtL6UPsT&lt;br /&gt;yNxqeHtCZrwNk/XIzMejA5TJ6KYyaW8YANngLKa8oNDmoQZ65HDok4fenBDMRPUT&lt;br /&gt;vOfdzYWKBf1Vt9aFVshsoe0htvyGPuashok1K6w4NIKHpkfRAkEA69VzRGS7OuKg&lt;br /&gt;S4gz3M8ENgS5S0blablablalbalbalbalbalblalbalblablazKubfjP4y7nRioq&lt;br /&gt;D4s+UUyMFQJBAMh3x6i4mSOFDh5t5Bz0WmqwNW9mNpmgInd/n5Gmdp8pBBRcgTdc&lt;br /&gt;R84blluqXaq2sWHhaLwMG6YbFz7p24fdXJ0CQEMCzdP7Q3BCAQY1V3dAo5Ot1/Da&lt;br /&gt;WetlkC9chM37YoKgpKyzA5xAMS71eiCffA1X21SIRJnrM/At/vGXwUdcltkCQDjS&lt;br /&gt;OrWIHWAEBsx5OX87gsdf789sd7f89sd7f98sd7fsdh3hun6GmZPCHgw9be9FeWHV&lt;br /&gt;Emq6w9uBMkWS47bO98ECQB+23/UKHZEgxFvamFz4uz2QaxOqLfFqJ7v9Gs8b7fsI&lt;br /&gt;vsn1FFD36zzTPTzGwqNSVHZNms99ctBdYgZWtMiwJcg=&lt;br /&gt;-----END RSA PRIVATE KEY-----&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Back in the &lt;b&gt;sgvas.pem&lt;/b&gt; file, find the part that is enclosed by the &lt;i&gt;BEGIN CERTIFICATE&lt;/i&gt; declarations and copy it entirely (including the being/end declarations) to a separate text file that you call &lt;b&gt;cert.pem&lt;/b&gt;. An example of how this file should look like:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;-----BEGIN CERTIFICATE-----&lt;br /&gt;MIIGCzCCA/OgAwIBAgIKF55bUgAAAAAABzANBgkqhkiG9w0BAQUFADA9MRUwEwYK&lt;br /&gt;CZImiZPyLGQBGRYFbG9jYWwxFzAVBgoJkiaJk/IsZAEZFgdwcmV0bmV0MQswCQYD&lt;br /&gt;.. .. ..&lt;br /&gt;d+RlSH6zX6R20XG6sgv4icLxHVhXF3zF3CUnMfkGIQ8rfHYcOmD+mXju/uLXbFYJ&lt;br /&gt;lid5NBZ7JoNgHoTY/sa9T1ckaoo1MTLL5Kc6X9NUx3fa/tiVPqzjbQPu/Zj/2El3&lt;br /&gt;4uw1pPuC+x5rT1vsnil4&lt;br /&gt;-----END CERTIFICATE-----&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;This gives you a &lt;b&gt;cert.pem&lt;/b&gt; and &lt;b&gt;key.pem&lt;/b&gt; file that you can use in SoftGrid.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;V. Configuring SoftGrid&lt;/u&gt;&lt;/b&gt;&lt;br&gt;&lt;br /&gt;From this point on, you can follow the procedure described in &lt;a href="http://support.microsoft.com/kb/930870"&gt;Microsoft Knowledgebase article 930870&lt;/a&gt;. We briefly summarize that here:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Copy both the &lt;b&gt;cert.pem&lt;/b&gt; and &lt;b&gt;key.pem&lt;/b&gt; files to the following directory:&lt;br /&gt;&lt;pre&gt;C:\Program Files\Softricity\SoftGrid Server\conf&lt;/pre&gt;&lt;br /&gt;Ensure that the files are deleted from all other locations to prevent compromising your security (the private key is not supposed to leak out!!)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Open the SoftGrid Management console, go to &lt;i&gt;Server Groups&lt;/i&gt; and rightclick the SoftGrid server that the certificate was generated for. Add a new protocol (RTSPS) and fill out the certificate and security key values as follows:&lt;br&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_tOIlP1THwEk/RxWxjIItfsI/AAAAAAAAA3E/5ksiCcCPJn0/s1600-h/20070519_softgridsecurity.jpg"&gt;&lt;img style="margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_tOIlP1THwEk/RxWxjIItfsI/AAAAAAAAA3E/5ksiCcCPJn0/s320/20070519_softgridsecurity.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5122195368241364674" /&gt;&lt;/a&gt;&lt;br /&gt;where you use the password that you entered when exporting the key in the Microsoft Management console.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Modify &lt;b&gt;all your OSD files&lt;/b&gt; to use RTSPS and port 332 instead of RTSP at port 554, i.e. replace all occurences of&lt;br /&gt;&lt;pre&gt;rtsp://%SFT_SOFTGRIDSERVER:554/...&lt;/pre&gt;&lt;br /&gt;with&lt;br /&gt;&lt;pre&gt;rtsps://%SFT_SOFTGRIDSERVER:332/...&lt;/pre&gt;&lt;br /&gt;&lt;li&gt;Restart the SoftGrid server to enable RTSPS streaming at the server side.&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;That finishes the server-side configuration of enabling the RTSPS. Now do not forget to reconfigure your clients to use a &lt;i&gt;Secure SoftGrid Virtual Application Server&lt;/i&gt; to let them use RTSPS.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Note:&lt;/b&gt; A bug in the SoftGrid client 4.1.0.56 breaks the TLS functionality in the client. You are thus forced to upgrade to 4.1 SP1 / 4.2 or roll back to the 3.x client if you want to use a TLS tunnel!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-7472359272191872931?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/7472359272191872931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=7472359272191872931' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/7472359272191872931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/7472359272191872931'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2007/10/configuring-rtsps-rtsp-over-tls-in.html' title='Configuring RTSPS (RTSP over TLS) in SoftGrid'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_tOIlP1THwEk/RxWxjIItfsI/AAAAAAAAA3E/5ksiCcCPJn0/s72-c/20070519_softgridsecurity.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-8571769793752680666</id><published>2007-10-14T12:13:00.000+02:00</published><updated>2007-10-14T12:16:31.293+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft SoftGrid'/><title type='text'>SoftGrid &amp; Office 2007</title><content type='html'>After a long while, I finally decided to attempt to sequence Office 2007. I had tried a couple of times in the past, but I always failed because of stupid things like...&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;using an older version of the sequencer; you need to use at least 4.1 SP1 since Office 2007 uses WinSxS.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;not having enough memory in my virtual machine, which led to an out-of-memory error when downloading the virtual environment after the monitoring; solved it by using 768MB of RAM.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Yesterday, I finally got around to sequencing it under the right circumstances with version 4.1 SP1 of the sequencer and enough memory.&lt;br&gt;&lt;br /&gt;The sequencing went alright, but now the importing of the Office suite failed on me! The error message was a mysterious:&lt;br&gt;&lt;br /&gt;&amp;quot;&lt;i&gt;Unable to create new application. Please report the following error code to your system administrator: 0000B003&lt;/i&gt;&amp;quot;&lt;br&gt;&lt;br /&gt;Some googling turns up &lt;a href="http://support.microsoft.com/kb/929944"&gt;Microsoft Knowledgebase article 929944&lt;/a&gt;, which informs us that the &amp;quot;friendly name&amp;quot; of a shell command associated to a file type must be unique. Consider the following example:&lt;pre&gt;&lt;br /&gt;&amp;lt;SOFTPKG&amp;gt;&lt;br /&gt;  &amp;lt;MGMT_FILEASSOCIATIONS&amp;gt;&lt;br /&gt;    &amp;lt;PROGIDLIST&amp;gt;&lt;br /&gt;      &amp;lt;PROGID&amp;gt;&lt;br /&gt;        &amp;lt;SHELLCOMMANDLIST&amp;gt;          &lt;br /&gt;           &amp;lt;SHELLCOMMAND NAME=&amp;quot;open&amp;quot; FRIENDLYNAME=&amp;quot;&amp;amp;Open DefaultApp&amp;quot;/&amp;gt;&lt;br /&gt;           &amp;lt;SHELLCOMMAND NAME=&amp;quot;edit&amp;quot; FRIENDLYNAME=&amp;quot;&amp;amp;Open DefaultApp&amp;quot;/&amp;gt;&lt;br /&gt;        &amp;lt;/SHELLCOMMANDLIST&amp;gt;&lt;br /&gt;      &amp;lt;/PROGID&amp;gt;&lt;br /&gt;    &amp;lt;/PROGIDLIST&amp;gt;&lt;br /&gt;  &amp;lt;/MGMT_FILEASSOCIATIONS&amp;gt;&lt;br /&gt;&amp;lt;/SOFTPKG&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This will produce the same error since the friendly names are not unique... &lt;br&gt;&lt;br /&gt;So I went looking for errors in the OSD files that were generated, and sure enough, there were some duplicate &amp;quot;Print&amp;quot; friendly names in the Word 2007 OSD file. I solved the problem but still the application refused to import (note: you need to stop an existing import and start all over again after changing the OSD file before the changes are detected).&lt;br&gt;&lt;br /&gt;The problem got solved after I deleted the entire PROGID entry for &amp;quot;Word.Backup.8&amp;quot;, which seems like a file type that I hope never to need using anyway...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-8571769793752680666?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/8571769793752680666/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=8571769793752680666' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/8571769793752680666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/8571769793752680666'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2007/10/softgrid-office-2007.html' title='SoftGrid &amp; Office 2007'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-7457707473331226380</id><published>2007-10-14T12:08:00.000+02:00</published><updated>2007-10-14T12:10:05.081+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>Synchronizing Google Calendar with Outlook 2003/2007</title><content type='html'>The recent discovery of &lt;a href="http://calendar.google.com"&gt;Google Calendar&lt;/a&gt; has made the planning of my personal agenda a lot easier... now my wife can do that for me ;). However, what lacks is the synchronization with Outlook, which in turns allows to see your appointments on the PDA.&lt;br&gt;&lt;br /&gt;A very nice tool that tackles the problem is &lt;a href="http://remotecalendars.sourceforge.net/"&gt;Remote Calendars&lt;/a&gt;, which is a COM plugin for Outlook to connect to iCalendars all over the internet, and perform a periodical synchronization between both. The tool is straightforward to install and use, and has all the features I was looking for:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;One-way synchronization from Google Calendar to Outlook; two-way is also possible but I didn't want that ;).&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Automatic categorizing of imported calendar events; optionally mark these events private.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;All settings like &amp;quot;all day event&amp;quot; or &amp;quot;recurring&amp;quot; are copied from the Google Calendar.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;In short: the tool does exactly what it needs to do. The only disadvantage in my opinion is that you see a small "iCalendar update" window appear every now and then, which seems to freeze for a moment when no internet connection is available. Besides that, great tool, check it out!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-7457707473331226380?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/7457707473331226380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=7457707473331226380' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/7457707473331226380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/7457707473331226380'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2007/10/synchronizing-google-calendar-with.html' title='Synchronizing Google Calendar with Outlook 2003/2007'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-3884951975001878740</id><published>2007-10-14T12:04:00.000+02:00</published><updated>2007-10-14T12:06:23.967+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft SoftGrid'/><title type='text'>SoftGrid MSI Utility</title><content type='html'>News regarding the automatic distribution of SoftGrid packages: Microsoft is working on a MSI utility that will take a SoftGrid package as input and deliver a MSI package as output, ready for distribution using ESD's such as SMS and SCCM. More information is available at the &lt;a href="http://blogs.technet.com/softgrid/archive/2007/09/11/microsoft-unveils-plans-for-the-msi-utility-for-microsoft-virtualization-at-vmworld.aspx"&gt;the SoftGrid team blog&lt;/a&gt;.&lt;br&gt;&lt;br /&gt;The article hints at how this will be done in practice: the SoftGrid package is loaded into the cache and published on the desktop. This probably means that the utility will roughly do this:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Use the sfttray utility to load the unpacked SFT file into the cache.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Publish the application using sftmime.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Write uninstall information in the registry.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;which is pretty much what the SMS Connector VBScripts do at the moment. Appearantly the MSI utility is going to replace the (crappy) SMS connector, which sounds like a good step forward. Also, the availability of SoftGrid applications in MSI form allows a better integration with existing ESD's, making application virtualization available without the immediate need for a full blown SoftGrid infrastructure.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-3884951975001878740?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/3884951975001878740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=3884951975001878740' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/3884951975001878740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/3884951975001878740'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2007/10/softgrid-msi-utility.html' title='SoftGrid MSI Utility'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-7046204173734050755</id><published>2007-10-14T12:00:00.000+02:00</published><updated>2007-10-14T12:04:06.190+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft SoftGrid'/><title type='text'>Contacting SoftGrid servers in untrusted domains</title><content type='html'>In large environments, it is not uncommon to have different setups for a development/test/production environment which typically consist of three domains without trusts. Suppose that you are working on a production workstation and want to launch an application from the SoftGrid server in the test environment, what would you do?&lt;br&gt;&lt;br /&gt;The problem is that the desktop configuration service captures the security token upon the user login, and uses these NTLM credentials to authenticate against the desktop configuration server that was specified in the SoftGrid Client. When there is no trust between the production and test environment, this means that you are presenting unknown credentials to the SoftGrid server in test, and thus you cannot perform a desktop configuration refresh...&lt;br&gt;&lt;br /&gt;One option is to just live with this and start applications from the OSD file. When the SoftGrid client sees that it does not have the proper credentials to start an application, it will query the user for valid credentials...&lt;br&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_tOIlP1THwEk/RxHpLIItfrI/AAAAAAAAA28/m6SfoDDSBJw/s1600-h/20070724_creds.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_tOIlP1THwEk/RxHpLIItfrI/AAAAAAAAA28/m6SfoDDSBJw/s320/20070724_creds.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5121130628668817074" /&gt;&lt;/a&gt;&lt;br /&gt;This can be used to launch applications from a different domain that the SoftGrid server is placed in (or rather: the browser account of that SoftGrid server).&lt;br&gt;&lt;br /&gt;Recently, I read about another option on &lt;a href="http://blogs.technet.com/virtualworld/"&gt;Justin Zarb's blog&lt;/a&gt;, which uses the Windows XP network password features for computers that are not joined to a domain: by opening the XP Users And Accounts control panel, then clicking the user account &amp;amp; then the option &amp;quot;Manage My Network Passwords&amp;quot;, it is possible to supply the credentials that should be used to contact a certain server (given its FQDN). when supplying the FQDN of the SoftGrid server that you want to use, you can force the SoftGrid client to use the credentials specified there. Read a full howto on &lt;a href="http://blogs.technet.com/virtualworld/archive/2007/07/24/installing-the-softgrid-client-on-a-non-domain-machine.aspx"&gt;Justin's page&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-7046204173734050755?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/7046204173734050755/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=7046204173734050755' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/7046204173734050755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/7046204173734050755'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2007/10/contacting-softgrid-servers-in.html' title='Contacting SoftGrid servers in untrusted domains'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_tOIlP1THwEk/RxHpLIItfrI/AAAAAAAAA28/m6SfoDDSBJw/s72-c/20070724_creds.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-3471059915704888509</id><published>2007-10-14T11:56:00.000+02:00</published><updated>2007-10-14T12:00:11.015+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft SoftGrid'/><title type='text'>SoftGrid scripting: hiding the DOS box</title><content type='html'>So you have created your wonderful SoftGrid script that performs the most advanced features known to man, but there is always that annoying DOS box that keeps on popping up when you use SCRIPTBODY or even when you use a HREF tag to launch the script? (Yeah that's right, also with HREF you can get DOS boxes...).&lt;br /&gt;&lt;br /&gt;Here is a workaround to launch an external script to hide the DOS box. The idea is very simple: you use a Visual Basic script that runs the batch file in the background, thus effectively hiding all output!&lt;br /&gt;&lt;br /&gt;The VBScript code is a single line and as follows:&lt;br /&gt;&lt;pre style="font-family: courier new;"&gt;&lt;span style="font-size:85%;"&gt;CreateObject("Wscript.Shell").Run WScript.Arguments(0), 0, False&lt;/span&gt;&lt;/pre&gt;Save this file as &lt;b&gt;HideDOS.vbs&lt;/b&gt; on your content share, for example in the &lt;b&gt;Tools&lt;/b&gt; folder or something. Then call your external script called &lt;b&gt;G:\Doit.bat&lt;/b&gt; using the following syntax:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;lt;SCRIPT TIMING=&amp;quot;PRE&amp;quot; EVENT=&amp;quot;LAUNCH&amp;quot; WAIT=&amp;quot;TRUE&amp;quot; PROTECT=&amp;quot;TRUE&amp;quot;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;   &amp;lt;HREF&amp;gt;wscript \\server\content\Tools\HideDOS.vbs G:\Doit.bat&amp;lt;/HREF&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&amp;lt;/SCRIPT&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There you go, gone is the DOS box!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-3471059915704888509?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/3471059915704888509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=3471059915704888509' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/3471059915704888509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/3471059915704888509'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2007/10/softgrid-scripting-hiding-dos-box.html' title='SoftGrid scripting: hiding the DOS box'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834634390856475978.post-816042039097668805</id><published>2007-10-14T11:33:00.000+02:00</published><updated>2007-10-14T11:38:18.598+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft SoftGrid'/><title type='text'>Some SoftGrid gotcha's</title><content type='html'>In a SoftGrid coaching project with a customer, I discovered some small things that you should know and are not really mentioned clearly in the documentation... Here it goes:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;During the FB1 determination phase, when you can launch the applications that have been defined for that package, the changes to files and registries are included in the package. In other words: the monitoring is restarted during the construction of feature block one!&lt;/li&gt;&lt;br /&gt;&lt;li&gt;In version 4.1 SP1 and 4.2, a modification that was made to a local OSD file are not reset by just performing a refresh of the applications. Only when the OSD file is modified on the server, it is copied again to the client.&lt;br&gt;&lt;br /&gt;That is not really a disaster, but what is worse is that when you delete the OSD file from the cache (from the All Users profile), then 4.1 SP1 and 4.2 no longer are able to create the application!! The error message from the &lt;i&gt;sftlog.txt&lt;/i&gt; indicates that the SoftGrid client can no longer find the OSD file (presumably because it wants to compare the local file with the server OSD file to detect changes on the server side). The same goes for ICO files by the way!&lt;br&gt;&lt;br /&gt;This is different from the behavior in 4.1, the OSD file was &lt;b&gt;always&lt;/b&gt; copied there. The end-result is that while troubleshooting with SoftGrid 4.1 SP1 and higher, you first need to create a copy of the local OSD file and work from there.&lt;br&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;There is no visual indication of whether the SoftGrid client has entered MDO (Minimal Disconnected Operation) mode, which typically occurs when the SoftGrid server is not available but where the application should be allowed to continue to run. However, it is possible to generate a log file that informs you when a certain application has entered the MDO state. More details are in &lt;a href="http://support.microsoft.com/kb/931252"&gt;MSKB 931252&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834634390856475978-816042039097668805?l=timjacobs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timjacobs.blogspot.com/feeds/816042039097668805/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4834634390856475978&amp;postID=816042039097668805' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/816042039097668805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834634390856475978/posts/default/816042039097668805'/><link rel='alternate' type='text/html' href='http://timjacobs.blogspot.com/2007/10/some-softgrid-gotchas.html' title='Some SoftGrid gotcha&apos;s'/><author><name>Tim Jacobs</name><uri>http://www.blogger.com/profile/06131387085752434985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
