<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://windowsconnected.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Jerry&amp;#39;s Incoherent Babbling</title><subtitle type="html" /><id>http://windowsconnected.com/blogs/jerry/atom.aspx</id><link rel="alternate" type="text/html" href="http://windowsconnected.com/blogs/jerry/default.aspx" /><link rel="self" type="application/atom+xml" href="http://windowsconnected.com/blogs/jerry/atom.aspx" /><generator uri="http://communityserver.org" version="4.0.30619.63">Community Server</generator><updated>2005-11-27T13:11:00Z</updated><entry><title>Windows Vista x64 imaging in the Enterprise: Trials and Tribulations galore</title><link rel="alternate" type="text/html" href="/blogs/jerry/archive/2006/10/09/Windows-Vista-x64-imaging-in-the-Enterprise_3A00_-Trials-and-Tribulations-galore.aspx" /><id>/blogs/jerry/archive/2006/10/09/Windows-Vista-x64-imaging-in-the-Enterprise_3A00_-Trials-and-Tribulations-galore.aspx</id><published>2006-10-09T16:18:00Z</published><updated>2006-10-09T16:18:00Z</updated><content type="html">&lt;p&gt;If your company has pursued the holy grail of the &amp;quot;single workstation image&amp;quot; like mine has (and we got there with Windows XP, woohoo!), you may be wondering if your tools are up to the challenge of doing a single build process with Windows Vista across the x86 and x64 environments. Microsoft likes to say that the new tools in Windows Vista and new HAL technology makes it possible to cut your number of images in half. However, in a well managed shop that used some hacks with Windows XP it was very achievable to be at one image already (and we were!). Now, with Vista though, x64 is going a bit more mainstream. It isn&amp;#39;t to the point yet where everyone will or even should get it &amp;ndash; but there are going to be some folks that need it. One of the things my team has done over the last several weeks is to go through our tool set and try to make an x64 image work using the same base building scripts and tools as we use for x86 32 bit images. The results surprised me &amp;ndash; and this wasn&amp;#39;t a good thing. I thought I already understood where x86 and x64 differed in terms of 32 bit software but I definitely learned a bunch during this process. For the results, read on.
&lt;/p&gt;&lt;p&gt;&lt;strong&gt;So, how did it go?
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The first things we hit was just trying to lay the image down on a machine. This testing was with just a generic MS Install.wim with no customizations. What we found was a catch-22:
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Our tools (mostly in-house and mostly VB6 since .Net doesn&amp;#39;t work on WinPE) are all 32-bit.
&lt;/li&gt;&lt;li&gt;The x64 WinPE doesn&amp;#39;t support any 32 bit code at all.
&lt;/li&gt;&lt;li&gt;The 32 bit setup.exe is incapable of installing the 64 bit Windows
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Great! Blocked right out of the starting gate! We can&amp;#39;t run our tools in a 64 bit WinPE and can&amp;#39;t run the 32 bit setup.exe against a WIM with 64 bit windows. So, we found that although we deploy our 32 bit images using the &amp;quot;Install Based Setup&amp;quot; or IBS (MS: who comes up with these acronyms &amp;ndash; Google IBS and see what you hit first) we had to use a down-level look and feel to deploy the x64. That&amp;#39;s right: ImageX will deploy a 64 bit image from a 32 bit WinPE. So while the 32 bit installs have the new pretty setup screens, the 64 bit ones are stuck looking like a DOS install in a command window. This at least let us use the same boot.wim &amp;ndash; the same tools running in it to check things like whether the hardware is supported or not, etc.
&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Next Snags
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;In order to build an image, we use a process that is repeatable and deterministic &amp;ndash; nothing new there. In our process we install the base OS (either with an unattend or a sheet showing step 1, step 2, etc.). Then we run a series of installs that are scripted. In our case we are using Wise Installmaster 9.x, but it could be just about any 32 bit tool. We probably have a set of 40 or so scripts (many are run at once by some master scripts) that manage this process. They install software, configure user settings, load up the default user&amp;#39;s HKCU hive and make changes to it so that all new users on the machine get the settings, etc. All pretty standard stuff actually. Howewver, we hit several issues in our code:
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;A few hard-coded references to &amp;quot;C:\Program Files&amp;quot; were causing x86 code to end up in the 64 bit program files location. Easy fix: slap the coder that did it and recompile.
&lt;/li&gt;&lt;li&gt;Registry changes that needed to go into the real HKLM\Software were getting sent to the HKLM\Software\Wow64Node. These were things like the Autologon settings that go in the WinLogon area of the registry. It also redirected everything that we tried to put into HKLM\Software\Microsoft\Windows\CurrentVersion\Run. These edits were being made by standard &amp;quot;edit registry&amp;quot; command in Wise scripting. They could as easily have been made by any other 32 bit tool with the same results as all 32 bit code that writes to HKLM\Software gets redirected. Fix: not so easy!
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;For that last one, we ended up scratching our heads for quite awhile. We could have done several things:
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Compiled some VB.Net 2005 code using the &amp;quot;Any CPU&amp;quot; compile option so that the code would run as 32 bit on x86 and as 64 bit on x64. This would be a maintenance problem for us as minor changes would need a recompile of VB code. Not too bad.
&lt;/li&gt;&lt;li&gt;Change the script to call the new API function to disable registry virtualization of 32 bit code. Oops, there ISN&amp;#39;T one! What there is, is a new flag to the registry functions like RegCreateKey that allows you to turn off the virtualization. The problem here is that none of the scripting languages (and even VB.Net) will let you control those flags. So you can&amp;#39;t use them in scripting at all.
&lt;/li&gt;&lt;li&gt;Turn off file system virtualization for 32 bit code. This trick we came up with does work. What we did was call the &amp;quot;Wow64DisableWow64FsRedirection&amp;quot; function from kernel32.dll. How does that help? Well, then we can call reg.exe and pass it the items we want to set. On a 32 bit system, that API call just silently fails and you call the correct 32 bit reg.exe. On an x64 system, the call works and you end up calling the 64 bit reg.exe which does not get virtualized. At the end, you test the result code from Wow64DisableWow64FsRedirection. If it succeeded (you were then on 64 bit), you call Wow64RevertWow64FsRedirection. We found a lot of places in our scripting where we needed to use this clumsy mechanism.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;The results of all this:
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;We have a single set of build scripts that can take a base install of Windows x86 or Windows x64 and get it loaded up and installed with all of the items we put in our single corporate image. We can also use a single boot.wim (a customized 32 bit one) that will determine whether it must run setup.exe for 32 bit OS installs or ImageX for x64.
&lt;/p&gt;&lt;p&gt;Hopefully Microsoft will get this right next time and have a way to actually deploy this stuff easily. For now, be prepared to do a lot of work to get a single set of tools working for both x86 and x64.
&lt;/p&gt;&lt;img src="http://windowsconnected.com/aggbug.aspx?PostID=4051" width="1" height="1"&gt;</content><author><name>Jerry</name><uri>http://windowsconnected.com/members/Jerry/default.aspx</uri></author></entry><entry><title>Enabling the Administrator Account for Logon in Vista Beta2 5384</title><link rel="alternate" type="text/html" href="/blogs/jerry/archive/2006/06/08/3007.aspx" /><id>/blogs/jerry/archive/2006/06/08/3007.aspx</id><published>2006-06-08T21:46:00Z</published><updated>2006-06-08T21:46:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Verdana&gt;Those of you who have&amp;nbsp;downloaded and installed Windows Vista&amp;nbsp;Beta 2 (build 5384) may have noticed something annoying: unless you join a domain, it is awfully difficult to logon to the built in Administrator account.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;To work around this:&lt;/FONT&gt;&lt;/P&gt;&lt;FONT face=Verdana&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;FONT face=Verdana&gt;Logon as the account you created during the installation.&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;From the Start menu, go to "&lt;FONT face="Courier New"&gt;All Programs&lt;/FONT&gt;", "&lt;FONT face="Courier New"&gt;Accessories&lt;/FONT&gt;"&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;Right-click on "&lt;FONT face="Courier New"&gt;Command Prompt&lt;/FONT&gt;" and choose "&lt;FONT face="Courier New"&gt;Run as Administrator&lt;/FONT&gt;"&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;Click "&lt;FONT face="Courier New"&gt;Allow&lt;/FONT&gt;" from the ConsentUI prompt&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;In the resulting Command window, enter "&lt;FONT face="Courier New"&gt;regedit&lt;/FONT&gt;" and press enter&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;In regedit, browse to &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon&lt;/FONT&gt; 
&lt;LI&gt;Add a new key at that level called &lt;FONT face="Courier New"&gt;SpecialAccounts&lt;/FONT&gt; 
&lt;LI&gt;In the &lt;FONT face="Courier New"&gt;SpecialAccounts&lt;/FONT&gt; key, create a sub-key called &lt;FONT face="Courier New"&gt;UserList&lt;/FONT&gt; 
&lt;LI&gt;At this point the path is: &lt;FONT face="Courier New"&gt;HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList&lt;/FONT&gt; 
&lt;LI&gt;In the &lt;FONT face="Courier New"&gt;UserList&lt;/FONT&gt; key, create a new value of type DWORD (32 bit) called &lt;FONT face="Courier New"&gt;Administrator&lt;/FONT&gt; and set the value to 1.&lt;/LI&gt;
&lt;LI&gt;From the command prompt enter: "&lt;FONT face="Courier New"&gt;net user Administrator /Active:yes"&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Reboot, and now you can logon to the Administrator account&lt;/LI&gt;&lt;/OL&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;For those of you who join your computer to a domain, you can easily logon as the local administrator account using Switch User, as long as you have enabled the account.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;Remember to get Connected on WindowsConnected.&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsconnected.com/aggbug.aspx?PostID=3007" width="1" height="1"&gt;</content><author><name>Jerry</name><uri>http://windowsconnected.com/members/Jerry/default.aspx</uri></author></entry><entry><title>Office 2007 PDF support in jeopardy</title><link rel="alternate" type="text/html" href="/blogs/jerry/archive/2006/06/02/2970.aspx" /><id>/blogs/jerry/archive/2006/06/02/2970.aspx</id><published>2006-06-02T16:51:00Z</published><updated>2006-06-02T16:51:00Z</updated><content type="html">&lt;font face="Verdana"&gt;&lt;b&gt;When is an open standard not open?&lt;/b&gt;&lt;br&gt;&lt;br&gt;It seems that Adobe reserves the right to tell some folks PDF is open, and other folks that it isn't. For years, PDF has been a standard portable (and open) format on the internet. Many ISV's and open source projects have read the statements on Adobe's web site (&lt;a href="http://partners.adobe.com/public/developer/en/pdf/PDFReference16.pdf"&gt;PDF File here&lt;/a&gt;) that seem to say that PDF is open and you just have to meet the standard and have some Adobe info in your copyright (OK, so IANAL, but that's what it looked like to me). I'd guess I wasn't the only one since the OpenOffice people, the GhostScript project, and several ISV's who sell add-ins or printer drivers to produce PDF files seem to have thought the same.&lt;br&gt;&lt;br&gt;Along comes Microsoft trying to add support for output to PDF into Office 2007. All of a sudden it isn't an open format that anyone can implement anymore. At least it seems Microsoft can't without Adobe's permissions which it seems inclined to withhold. They must have been quoting Captain Barbosa from Pirates of the Carribean, the Curse of the Black Pearl where he said "I'm disinclined to acquiesce to your request. Means no." Argh and all that.&lt;br&gt;&lt;br&gt;Now obviously there are two sides to this one. Maybe Adobe is worried that some ISV's will go under if MS provides this functionality out of the box for Office 2007. Maybe they are worried that Acrobat Professional sales will fall once people realize there are other ways to produce basic PDF files. Maybe Adobe is worried that MS will kill off all of the other PDF writers, then declare the PDF as dead since there is nobody making writers anymore, then drop support for it in favor of Metro (XPS). Who knows?&lt;br&gt;&lt;br&gt;The bottom line for me as a customer of Microsoft's and as someone who admittedly passionately dislikes Adobe's software (due to the difficulty of installing and managing them in a LUA environment) this really leaves me thinking even worse of Adobe. The funny thing is, this &lt;i&gt;&lt;b&gt;may&lt;/b&gt;&lt;/i&gt; be all Microsoft's fault - but I don't even care. I want the ability to write to PDF's without installing some software that won't install properly, won't upgrade or patch correctly, and tries to run regedit behind the scenes every time you launch it (yes, I combined 2 or 3 Adobe products there, but you get the idea).&lt;br&gt;&lt;br&gt;Some references:&lt;br&gt;&lt;a href="http://blogs.msdn.com/brian_jones/archive/2006/06/02/613702.aspx"&gt;Brian Jones Blog&lt;/a&gt;&lt;br&gt;&lt;a href="http://www.microsoftmonitor.com/archives/015754.html"&gt;Another perspective&lt;/a&gt;&lt;br&gt;&lt;br&gt;Anyway, it looks like for now MS plans to still have this feature as a download. Hopefully that will remain an option.&lt;br&gt;&lt;/font&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsconnected.com/aggbug.aspx?PostID=2970" width="1" height="1"&gt;</content><author><name>Jerry</name><uri>http://windowsconnected.com/members/Jerry/default.aspx</uri></author></entry><entry><title>Can’t install that MSI on your OS? Orca to the rescue!</title><link rel="alternate" type="text/html" href="/blogs/jerry/archive/2006/05/30/2925.aspx" /><id>/blogs/jerry/archive/2006/05/30/2925.aspx</id><published>2006-05-30T14:01:00Z</published><updated>2006-05-30T14:01:00Z</updated><content type="html">&lt;FONT face=Verdana&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;FONT face=Verdana&gt;Defining the problem space&lt;/FONT&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Verdana&gt;If you are a Vista tester or packager, or even a developer that runs a server OS as your primary machine (like Windows Server 2003 or Longhorn server), you have probably come across software that is “blocked” on your OS. You’ll start the install by running setup or double-clicking the MSI file and it will say something stupid like this:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;/FONT&gt;&lt;A HREF="/photos/blog_pics/picture2919.aspx" target=_blank&gt;&lt;IMG src="/photos/blog_pics/images/2919/original.aspx" border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Verdana&gt;Or maybe this:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;A HREF="/photos/blog_pics/picture2920.aspx" target=_blank&gt;&lt;IMG src="/photos/blog_pics/images/2920/original.aspx" border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Verdana&gt;Or even this: &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A HREF="/photos/blog_pics/picture2921.aspx" target=_blank&gt;&lt;IMG src="/photos/blog_pics/images/2921/original.aspx" border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;Sometimes you have to wonder about these folks logic skills; in that Cisco one, did anyone catch that it “requires Windows 2000 Service Pack 3 or greater &lt;FONT color=#ff0000&gt;&lt;B&gt;&lt;SPAN&gt;AND&lt;/SPAN&gt;&lt;/B&gt;&lt;/FONT&gt; Windows XP Service Pack 1 or greater”.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;This would reduce to something like this in pseudo code:&lt;/FONT&gt; &lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Verdana&gt;If ((OS is Win2000) AND (SP Level is &amp;gt;= SP3)) AND ((OS is WinXP) AND (SP Level is &amp;gt;= SP1)) THEN INSTALL.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Verdana&gt;How exactly are we supposed to be running both OS’es at the same time? I hope the person writing the text strings isn’t the same dev that writes any of the logic in the application!&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Verdana&gt;Anyway, those first two were applications that were blocked for no good reason on Windows Server 2003 (since Windows Server 2003 is a superset of Windows XP, all software that runs on Windows XP should be able to run on Windows Server). Other things that are blocked on Windows 2003 server for no good reason are things like HP Scanner software. The third bitmap is from some Cisco software that implements version checking incorrectly in their MSI file.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Verdana&gt;The good news? All of these can be “fixed” using Orca!&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;FONT face=Verdana&gt;So what’s this Orca thing?&lt;/FONT&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Verdana&gt;An Orca is a killer whale. Oh wait, – in the context of this article, Orca is a bare-bones,&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;no frills MSI database editor. That’s right, a Windows Installer file (MSI) is a database of things like actions, files to install, registry entries, and, most importantly for what we are trying to achieve here, Launch Conditions. Launch Conditions tell Windows Installer what requirements a machine must meet before the software will be allowed to install. It’s what drove all three of those annoying “I’m not going to install, neener neener neener” boxes above.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Verdana&gt;To get Orca from Microsoft, follow the instructions here: &lt;A href="http://support.microsoft.com/kb/255905/EN-US/"&gt;Getting Orca&lt;/A&gt;. Once you have Orca installed you will need to get your hands on the MSI file that you need to edit. Sometimes these are packed inside of a monstrously large self-extracting EXE file named “setup.exe” or “install.exe”. Often you can run these with a parameter like “/X” or “/Extract” or “/C c:\files” or something to get the MSI file extracted. Other times, just run the EXE and when the error telling you that you have the wrong OS appears, go to your temp folder and grab the files from there (often times they are in a funny named folder under temp like IPX0001.tmp or something like this). Save off the contents of that folder before you click OK to the dialog box.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Verdana&gt;Now that you have the MSI, file open it in Orca. The UI will show the “Tables” on the left side. For this task, we want the “LaunchCondition” table as shown here:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A HREF="/photos/blog_pics/picture2922.aspx" target=_blank&gt;&lt;IMG src="/photos/blog_pics/images/2922/original.aspx" border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;Notice that the condition is set to “VersionNT = 501 OR VersionNT &amp;gt; 502”. This means “If the version is WindowsXP or the version is greater than Windows Server 2003, then install”. This was Microsoft’s way of saying only run on Windows XP or Vista. To make it run on Windows 2003 server, it was just a matter of making this say the following: &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A HREF="/photos/blog_pics/picture2923.aspx" target=_blank&gt;&lt;IMG src="/photos/blog_pics/images/2923/original.aspx" border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;After this simple change, just click Save and now it will install on Windows XP or greater. By the way, Windows XP is version 5.1.2600 and Windows Server 2003 is 5.2.3790, while Windows Vista Beta 2 is 6.0.5384. I’m not sure why in Windows Installer 5.1.2600 = 501 and 5.2.3790 = 502.&lt;/FONT&gt; &lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Verdana&gt;Here’s the Cisco one:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A HREF="/photos/blog_pics/picture2924.aspx" target=_blank&gt;&lt;IMG src="/photos/blog_pics/images/2924/original.aspx" border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;Notice that they have a more complex set of rules including a Pentium 3 or greater and 120 MB of RAM or greater. The salient section for us is this one:&lt;/FONT&gt; &lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Verdana&gt;(VersionNT=501 And WindowsBuild&amp;gt;=2264 And ServicePackLevel &amp;gt;=1) OR (VersionNT=500 And WindowsBuild=2195 And ServicePackLevel&amp;gt;=3)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Verdana&gt;As you can see, unlike the person who came up with the string error message suggesting that we needed to be running Windows 2000 and Windows XP at the same time, the person who did the logic here got most of it right. It requires the production version of Windows 2000 (VersionNT=500, with the build 2195 and the SP3 or greater) OR Windows XP Beta version or greater with SP1 or greater. (The production build of Windows XP is 2600, so where they got the 2264 had to be a beta release – at least they got the &amp;gt;= in there to cover it). To fix this one, we could either add another OR line with something like this OR (VersionNT=600) which would get it running on Vista for now, or we could just replace the whole line with something like this VersionNT &amp;gt;= 500 and forget the service packs since for our testing we won’t be running SP0 of Windows XP or SP2 or older of Windows 2000.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;FONT face=Verdana&gt;So why doesn’t the software work?&lt;/FONT&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Verdana&gt;All the work we have done so far is to remove “stupid” blocks that are there for no reason or are there only because the software hasn’t been tested on a particular platform. None of our work guarantees that an application will actually work on Vista or Windows 2003 server. Many times they do work, but sometimes they will fail. Also, sometimes the vendor will have coded an OS version check right into the exe file that makes up the main program. You may need to setup the “Version Lie” shim using the Application Compatibility ToolKit (ACT) or by right-clicking on the EXE and setting it to run it as if it was Windows XP SP2. If this still fails, then the application probably isn’t going to run on your particular OS. Time to call the vendor and ask for a version that does work. However, if it works then you’ve just “fixed” the vendor install! Note that the vendor actually &lt;B&gt;&lt;I&gt;supporting&lt;/I&gt;&lt;/B&gt; the software on your platform is a different animal.&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsconnected.com/aggbug.aspx?PostID=2925" width="1" height="1"&gt;</content><author><name>Jerry</name><uri>http://windowsconnected.com/members/Jerry/default.aspx</uri></author></entry><entry><title>Trying to build a Vista Beta 2 machine in VMWare workstation using WDS?</title><link rel="alternate" type="text/html" href="/blogs/jerry/archive/2006/05/26/2833.aspx" /><id>/blogs/jerry/archive/2006/05/26/2833.aspx</id><published>2006-05-26T16:40:00Z</published><updated>2006-05-26T16:40:00Z</updated><content type="html">&lt;P class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Unfortunately, at some point Microsoft dropped support for the network card that VMWare emulates. If you recall WinPE 1.1, it loaded the network fine in VMWare. Alas that is no longer the case with Vista PE (also known as PE 2.0). All is not lost however. If you have access to the Windows AIK (WAIK – Windows Automated Install Kit), you can “fix” the missing driver issue pretty quickly. Here’s how:&lt;/FONT&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;DIV class=MsoListParagraphCxSpFirst&gt;&lt;FONT face=Calibri&gt;Install the Windows AIK for Beta 2&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoListParagraphCxSpMiddle&gt;&lt;FONT face=Calibri&gt;Create a folder on your hard drive (for this example I will use C:\5384, which is the build number for Beta 2). Create a subfolder under that called Mount (so C:\5384\Mount).&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoListParagraphCxSpMiddle&gt;&lt;FONT face=Calibri&gt;Copy the Boot.wim file from the Beta 2 DVD to the C:\5384 folder. Boot.wim is in the sources folder on the DVD.&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoListParagraphCxSpMiddle&gt;&lt;FONT face=Calibri&gt;You’ll need the VMWare drivers. To get them, either use your favorite mount tools such as VCD, Daemon Tools, etc. to mount the “C:\Program Files\VMWare\VMWare Workstation\Windows.iso” file. An alternate method is to boot a working VM and assign the CD drive to be the Windows.iso and copy the files that way. From that ISO copy the following:&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoListParagraphCxSpMiddle&gt;&lt;FONT face=Calibri&gt;ISO file root\Program Files\VMWare\VMWare Tools\Drivers\vmxnet\win2k. Copy all the files in that folder to C:\5384\vmnet&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoListParagraphCxSpMiddle&gt;&lt;FONT face=Calibri&gt;Pull up a command prompt and execute “C:\Program Files\Windows AIK\Tools\x86\imagex.exe” /mountrw c:\5384\boot.wim 2 c:\5384\mount&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoListParagraphCxSpMiddle&gt;&lt;FONT face=Calibri&gt;Now in the command prompt execute:&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR&gt;“C:\Program Files\Windows AIK\Tools\PETools\peimg.exe” /inf=c:\5384\vmnet\vmxnet.inf c:\5384\mount\windows&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoListParagraphCxSpMiddle&gt;&lt;FONT face=Calibri&gt;Next execute this:&lt;BR&gt;“C:\Program Files\Windows AIK\Tools\PETools\peimg.exe” /inf=c:\5384\vmnet\vmxnet.inf c:\5384\mount\windows&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoListParagraphCxSpMiddle&gt;&lt;FONT face=Calibri&gt;Last, run “C:\Program Files\Windows AIK\Tools\x86\imagex.exe” /unmount /commit c:\5384\mount&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoListParagraphCxSpLast&gt;&lt;FONT face=Calibri&gt;Once that finishes, you will have a Boot.wim where the 2&lt;SUP&gt;nd&lt;/SUP&gt; image in it (the Vista Setup) contains the files needed to support the VMWare Workstation network card. Import that updated boot.wim (c:\5384\boot.wim) into your WDS server and give it a unique name. Select that boot.wim when you are network booting your VM and install Vista quickly.&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsconnected.com/aggbug.aspx?PostID=2833" width="1" height="1"&gt;</content><author><name>Jerry</name><uri>http://windowsconnected.com/members/Jerry/default.aspx</uri></author></entry><entry><title>Vista Feb CTP contains service session 0 mitigation code. Cool!</title><link rel="alternate" type="text/html" href="/blogs/jerry/archive/2006/02/24/1077.aspx" /><id>/blogs/jerry/archive/2006/02/24/1077.aspx</id><published>2006-02-24T22:14:00Z</published><updated>2006-02-24T22:14:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Verdana&gt;If you're an IT Pro or a developer, you've probably taken an interest in the new session seperation in Windows Vista. This is the new design in Windows Vista that moves users out of "session 0" and reserves session 0 for services and drivers. Unfortunately, this means that a common "shortcut" that many developers used to take no longer works. In the past, devs could simply pop stuff up from their services on "WinSta0\Default" and know that it would appear on your screen (as long as you weren't on a terminal server).&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;Now though Vista has introduced a very terminal server like environment as a security enhancement. User sessions start with session 1 and will increment as you use "Switch User" or logoff and on. Services, like the nulls that they are, still hang out in session 0 all by themselves. Services like Symantec's Anti-Virus product (and many others) will need to be re-written to be able to pop UI up on the user's screen. Microsoft has seen that this can be a real problem for some vendors and even some LOB applications, so they have shimmed it in the most recent build of Vista (the Feb CTP or build 5308). For example, see what Vista now shows when SAV detects a virus and pops up their UI on session 0:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="/photos/blog_pics/images/1075/original.aspx" target=_blank&gt;&lt;IMG src="/photos/blog_pics/images/1075/520x314.aspx" border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;This allows the user to very easily access that session 0 info without exposing any other session 0 UI and without incurring a security risk. When I clicked "Check request...", I then got taken to a session 0 desktop like this:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="/photos/blog_pics/images/1076/original.aspx" target=_blank&gt;&lt;IMG src="/photos/blog_pics/images/1076/457x480.aspx" border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;Here, we can interact with the Symantec UI even though Symantec has not released a real Vista compliant version of their AV product yet. The same would hold true for services that your companies may have developed.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;This seems to be a fairly elegant bridging technology to allow users applications to still work, while being enough of a pain that their vendors will definitely hear about it. All the while maintaining the session seperation and security.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=4&gt;&lt;STRONG&gt;Kudos to Microsoft for this design.&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsconnected.com/aggbug.aspx?PostID=1077" width="1" height="1"&gt;</content><author><name>Jerry</name><uri>http://windowsconnected.com/members/Jerry/default.aspx</uri></author></entry><entry><title>Windows Vista Feb CTP Performance Problems? Try removing Windows Explorer!</title><link rel="alternate" type="text/html" href="/blogs/jerry/archive/2006/02/23/1060.aspx" /><id>/blogs/jerry/archive/2006/02/23/1060.aspx</id><published>2006-02-24T00:44:00Z</published><updated>2006-02-24T00:44:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Verdana&gt;This one is from the "Who thought that one up" department (or the "You must be smoking crack" department). On several machines with the February CTP build (5308) of Vista we've seen either the performance center or the problem troubleshooter come up with some helpful advice for us about what is causing slow performance in Vista:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A HREF="/photos/blog_pics/images/1059/original.aspx" target=_blank&gt;&lt;IMG src="/photos/blog_pics/images/1059/443x360.aspx" border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;So according to this, the reason that Microsoft Windows Vista is starting slowly is that Microsoft wrote it?&amp;nbsp;The funny&amp;nbsp;thing is, at least on my machines, this build of Vista actually starts pretty quickly and logs on quickly too.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;I was almost thinking some developer stuck this in as a joke and if I clicked the "How can I avoid this problem?" link it would take me to the SuSe site or the Red Hat site or maybe even Gentoo or Ubuntu. But alas it didn't do that so it must just be a plain bug. Probably the exclusion list hasn't been added yet or something like that. Anyway, this could be a useful feature when it gets fully implemented. Hopefully by Beta 2 that will happen. Then it can warn us about the Adobe Acrobat "quick loader", the Apple Quicktime tray app, and other ubiquitous performance sapping garbage like that. Many non-techie users don't know that they should get rid of those types of foistware and this feature could actually help them. Hopefully the exception list will be extended to be sure that Anti-Virus and non-MS Anti-Spyware packages don't get flagged. That same home user would end up disabling their protection if it flagged it as a problem. I'm sure they'll get this one right.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;For now though, it just gave me a&amp;nbsp;good&amp;nbsp;a laugh. LOL.&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsconnected.com/aggbug.aspx?PostID=1060" width="1" height="1"&gt;</content><author><name>Jerry</name><uri>http://windowsconnected.com/members/Jerry/default.aspx</uri></author></entry><entry><title>Trouble signing on as THE Administrator on 5308?</title><link rel="alternate" type="text/html" href="/blogs/jerry/archive/2006/02/22/1028.aspx" /><id>/blogs/jerry/archive/2006/02/22/1028.aspx</id><published>2006-02-22T22:24:00Z</published><updated>2006-02-22T22:24:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Verdana&gt;Those of you who have hurriedly downloaded the Windows Vista Feb CTP (build 5308) may have noticed something sinister: unless you join a domain, it is awfully difficult to logon to the built in Administrator account.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;To work around this using AutoLogon:&lt;/FONT&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;FONT face=Verdana&gt;Logon as the account you created during the installation.&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;From the Start menu, go to "&lt;FONT face="Courier New"&gt;All Programs&lt;/FONT&gt;", "&lt;FONT face="Courier New"&gt;Accessories&lt;/FONT&gt;"&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;Right-click on "&lt;FONT face="Courier New"&gt;Command Prompt&lt;/FONT&gt;" and choose "&lt;FONT face="Courier New"&gt;Run as Administrator&lt;/FONT&gt;"&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;Click "&lt;FONT face="Courier New"&gt;Allow&lt;/FONT&gt;" from the ConsentUI prompt&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;In the resulting Command window, enter "&lt;FONT face="Courier New"&gt;regedit&lt;/FONT&gt;" and press enter&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;In regedit, browse to &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;In the &lt;FONT face="Courier New"&gt;Winlogon&lt;/FONT&gt; key, create a new value of type &lt;FONT face="Courier New"&gt;REG_SZ&lt;/FONT&gt; (string) titled &lt;FONT face="Courier New"&gt;AutoAdminLogon&lt;/FONT&gt; and set the value to &lt;FONT face="Courier New"&gt;1&lt;/FONT&gt;.&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;Also create a string value titled "&lt;FONT face="Courier New"&gt;DefaultPassword&lt;/FONT&gt;" and set it to the password you want for the Administrator account.&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;In the value "&lt;FONT face="Courier New"&gt;DefaultDomainName&lt;/FONT&gt;" enter the name of your computer&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;In the value "&lt;FONT face="Courier New"&gt;DefaultUserName&lt;/FONT&gt;" enter "&lt;FONT face="Courier New"&gt;Administrator&lt;/FONT&gt;"&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;Close regedit&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;Back in the command prompt, enter "&lt;FONT face="Courier New"&gt;Net User Administrator &lt;FONT color=#0000ff&gt;password*&lt;/FONT&gt;&lt;/FONT&gt;" (replace &lt;FONT face="Courier New" color=#0000ff&gt;password&lt;/FONT&gt; with the password you entered for &lt;FONT face="Courier New"&gt;DefaultPassword&lt;/FONT&gt;).&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;Log off or reboot. You are now logged on with the local Administrator account. To stop it from auto logging on, remove that "AutoAdminLogon" value or set it to 0.&lt;/FONT&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;To work around this using a registry hack (the same one that works for enabling the Administrator account on XP Home):&lt;/FONT&gt;&lt;/P&gt;&lt;FONT face=Verdana&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;FONT face=Verdana&gt;Logon as the account you created during the installation.&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;From the Start menu, go to "&lt;FONT face="Courier New"&gt;All Programs&lt;/FONT&gt;", "&lt;FONT face="Courier New"&gt;Accessories&lt;/FONT&gt;"&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;Right-click on "&lt;FONT face="Courier New"&gt;Command Prompt&lt;/FONT&gt;" and choose "&lt;FONT face="Courier New"&gt;Run as Administrator&lt;/FONT&gt;"&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;Click "&lt;FONT face="Courier New"&gt;Allow&lt;/FONT&gt;" from the ConsentUI prompt&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;In the resulting Command window, enter "&lt;FONT face="Courier New"&gt;regedit&lt;/FONT&gt;" and press enter&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;In regedit, browse to &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;Add a new key at that level called &lt;FONT face="Courier New"&gt;SpecialAccounts&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;In the &lt;FONT face="Courier New"&gt;SpecialAccounts&lt;/FONT&gt; key, create a sub-key called &lt;FONT face="Courier New"&gt;UserList&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;At this point the path is: &lt;FONT face="Courier New"&gt;HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;In the &lt;FONT face="Courier New"&gt;UserList&lt;/FONT&gt; key, create a new value of type DWORD (32 bit) called &lt;FONT face="Courier New"&gt;Administrator&lt;/FONT&gt; and set the value to 1.&lt;/LI&gt;&lt;/OL&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;(Thanks to Ed LaLonde for calling my attention to this trick.)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;For those of you who join your computer to a domain, you can easily logon as the local administrator account using Switch User.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;Remember to get Connected on WindowsConnected.&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsconnected.com/aggbug.aspx?PostID=1028" width="1" height="1"&gt;</content><author><name>Jerry</name><uri>http://windowsconnected.com/members/Jerry/default.aspx</uri></author></entry><entry><title>Common Dialog: How useless you’ve become</title><link rel="alternate" type="text/html" href="/blogs/jerry/archive/2006/02/22/993.aspx" /><id>/blogs/jerry/archive/2006/02/22/993.aspx</id><published>2006-02-22T16:30:00Z</published><updated>2006-02-22T16:30:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Verdana&gt;So when you saw the title Common Dialog you were probably thinking about some rough verbiage from a B movie. But being computer geeks, what we are really talking about here is the CFD or Common File Dialogs. If you’ve ever click “File” | “Open” then you know what I’m talking about. That little Window that allows you to go browsing for a file, find that file, and then open the file. Those more advanced users out there may have even used the “File” | “Save” command in an application to do something wonderful like persist some data to disk.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;Back in the heyday of Windows XP, the CFD didn’t get much respect. Not that it complains much about it. It just went about it’s job, quietly allowing users a viewport into their storage. But now, the CFD is on the move. Someone at Microsoft thought that it needed an overhaul. So now in the latest Vista build (the February CTP or 5308 as of this writing), the CFD has become a powerful force for evil. That’s right; evil. We’ll dive into the specifics on that in a bit.&lt;BR&gt;As a “frequent beta tester”, I’ve become inured to the constant change introduced by new versions, new builds, fresher bits, etc. For example there’s the Office 2007 Ribbon and Floatie. There’s the Windows Vista Sidebar. Who can forget the Messenger 8 advertisements and videos – some of which are not “corporate friendly” – those of you who’ve ever had to take a class entitled “Harassment training” know what I mean. But along comes the deal breaker. Now, we have the CFD to end all CFD’s. The Common File Dialog box that just makes you pray that Microsoft gets search working correctly so that you’ll NEVER have to use the “File” | “Open” again. Oh, the humanity.&lt;BR&gt;Some of you may be wondering what is so bad about the new dialog. Let’s take a walk through nostalgia corner first and look at the last truly great CFD (from Windows XP):&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;A HREF="/photos/blog_pics/images/990/original.aspx" target=_blank&gt;&lt;IMG src="/photos/blog_pics/images/990/563x455.aspx" border=0&gt;&lt;/A&gt;
&lt;P&gt;&lt;BR&gt;&lt;FONT face=Verdana&gt;Look at that classic layout. Notice the functional “Common Places” bar along the left side. That bar has things like “My Computer”, “My Documents”, “Desktop”, “My Network Places”. These are locations we can all relate to. In corporate environments it is even possible to use Group Policy Objects (GPO) to set which items appear in the Common Places bar. This dialog has it all. Simple, non-pretentious, succinct, concise – that about sums it up. Anyone who has used a computer can use this guy to browse for a file.&lt;BR&gt;As shown here, you can even open a SharePoint site through My Network Places in this doozy of a classic:&lt;/FONT&gt;&lt;/P&gt;
&lt;A HREF="/photos/blog_pics/images/991/original.aspx" target=_blank&gt;&lt;IMG src="/photos/blog_pics/images/991/563x455.aspx" border=0&gt;&lt;/A&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;FONT face=Verdana&gt;Now, along comes the new kid on the block – the Super Duper new contender, the Vista CFD:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;A HREF="/photos/blog_pics/images/992/original.aspx" target=_blank&gt;&lt;IMG src="/photos/blog_pics/images/992/572x447.aspx" border=0&gt;&lt;/A&gt;
&lt;P&gt;&lt;BR&gt;&lt;FONT face=Verdana&gt;In this eyesore of a dialog, you can sometimes open files – if you can find out how to get to them. At first, I thought it was just me. But then, I started noticing that all of my coworkers would get the same haunted look in their eyes when they made the mistake of clicking “File” | “Open”. That look that says either, “Help, I’m being held prisoner in a dialog of bad design” or “Get out of the way, I’m sprinting for the bathroom.” (I’m betting on the first one.)&lt;BR&gt;&lt;BR&gt;For those of you brave enough to essay the “File” | “Open” command in Vista, one thing you’ll want to note well is that little “up arrow” near the bottom left of the listview control – where it says “Folders”. If you always click that arrow as your first step after entering the CFD from Hell you’ll be better off. Unfortunately to date, I haven’t been able to figure out a way to make the folder list STAY open between uses.&lt;BR&gt;Did anyone else notice the strangely placed “Share” and “Sync with other PC’s” commands in this version of CFD? Isn’t that what you’d always do when opening a file? Stop what you are doing and realize that instead of opening and editing that important file – what you really MEANT to do was share out your documents folder? Or maybe you really wanted to sync with other machines? Is it just me, or do those buttons not belong in a task based dialog for opening and saving files? Can I really go an entire paragraph of rhetorical questions?&lt;BR&gt;&lt;BR&gt;All joking aside, has anyone else found that the CFD something to be worked around instead of simple to work with? If so, be sure to send in your Beta feedback and maybe we can get the evil dialog put out of our misery.&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsconnected.com/aggbug.aspx?PostID=993" width="1" height="1"&gt;</content><author><name>Jerry</name><uri>http://windowsconnected.com/members/Jerry/default.aspx</uri></author></entry><entry><title>BitLoser Drive Embalming</title><link rel="alternate" type="text/html" href="/blogs/jerry/archive/2006/01/01/179.aspx" /><id>/blogs/jerry/archive/2006/01/01/179.aspx</id><published>2006-01-01T15:55:00Z</published><updated>2006-01-01T15:55:00Z</updated><content type="html">&lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="3"&gt;Hopefully many of you fall into the intersection of the following sets:&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;font face="Verdana" size="3"&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Verdana" size="3"&gt;The set of people who regularly read WindowsConnected.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;&lt;li&gt;&lt;font face="Verdana" size="3"&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Verdana" size="3"&gt;The set of people who are testing Windows Vista&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;&lt;li&gt;&lt;font face="Verdana" size="3"&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Verdana" size="3"&gt;The set of people who read Josh’s &lt;a href="http://windowsconnected.com/blogs/joshs_blog/archive/2005/12/28/122.aspx"&gt;article on BitLocker Drive Encryption&lt;/a&gt;&lt;/font&gt;&lt;font face="Verdana" size="3"&gt; and tried it out.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="3"&gt;If you did fall into all of those sets of people I imagine you have now rebuilt the computer that you used for testing BitLocker. Why is that you ask? Well, it seems that the feature formerly known as a piece of Palladium, and part of NGSB, and then as Corner Stone, later as Full Volume Encryption, sometimes as Secure Startup, and finally as BitLocker Drive Encryption works too well. It makes me think of a quote from the Jake Preston character (Nicolas Cage) in &lt;a href="http://imdb.com/title/tt0099575/"&gt;Fire Birds&lt;/a&gt;&lt;/font&gt;&lt;font face="Verdana" size="3"&gt;. No, not “I am the greatest!”, although I &lt;strong&gt;do&lt;/strong&gt; hear that Josh mumbles that from time to time. Instead I was thinking of the quote where he said, “All gone bye-bye.” It’s appropriate because that’s what happened to your data if you followed Josh’s instructions and enabled BitLocker using a USB key on build 5270 of Windows Vista. That’s right, your data was indeed “All gone bye-bye.”&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="3"&gt;Why is this you ask? Who knows? Maybe the Shadow knows. Obviously the CTP builds of Vista are just snapshots in time of the current development of Vista. They aren’t guaranteed to work, and of course you have to expect bugs. It just happens that this one is a doozy. Hopefully you weren’t dual booting the partition that you encrypted, since that would be gone too. The feature doesn’t appear to have gotten any testing from within MS during the stabilization of the release for CTP either or there would have been warnings about turning it on. Hey, that’s one of the hazards of getting to play in the strange and sometimes bizarre world of Beta Testing.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="3"&gt;I know I managed to hit this bug numerous times. I just was unable to believe that it did such a good job of encrypting and forgetting that it had saved the key for me. So the first time I hit it I just figured some key piece of data had corrupted on the USB key and that I should format the thing and try again after rebuilding Windows. So I did that. It didn’t help. I then thought that it could have something to do with the specific memory key. After all, I was using a USB 1.1 32 MB generic one. So I rebuilt again and used a USB 2.0 Kingston 2 GB key. The same problems occurred. One more rebuild, this time with a USB 2.0 64 MB key from Microsoft (no, they don’t make it, but it says Windows Rights Management Services on the side and has a MS logo). This one had the same problem. So that was about 6 hours of building Windows.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="3"&gt;At that point, I could have just decided that I hated the feature and given up. However, I hadn’t managed to make anyone else hate the feature yet so I couldn’t have been done. Instead, I conspired to get some of my co-workers (who had been shirking their beta test duties and hadn’t tried BitLocker with USB yet) to lose their data too. Actually, I wanted to see if it had anything to do with the specific hardware I had. So we tried it on my Boss’s machine, which promptly went “All gone bye-bye”. I hope that wasn’t my performance review on there! We also tried it on two other user’s machines. This totaled three distinct types of hardware and 6 types of USB key, so at that point we were sure we had just hit an unfortunate bug in the 5270 build.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;font face="Calibri"&gt;&lt;font face="Verdana" size="3"&gt;As for what you actually see onscreen when this happens to you, take a look here:&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;font face="Calibri"&gt;&lt;img src="/photos/vista/images/176/original.aspx" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;font face="Calibri"&gt;&lt;img src="/photos/vista/images/177/original.aspx" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;font face="Calibri"&gt;&lt;img src="/photos/vista/images/178/original.aspx" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="3"&gt;OK, so everybody who tests Vista sees the “Codename Longhorn” screen. But most of you probably can’t say that you’ve left that screen happily running its progress bar overnight. Yes, that’s what happens when you finally enter the key manually and Windows accepts it. It just dies at the progress bar screen.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="3"&gt;An interesting piece of the issue is that if you leave a bootable Vista DVD in the drive (which gives you that “Press and key to boot from CD or DVD” message and a 5 second delay), then Windows Vista does indeed find your decryption key on the USB key. Wait – before you go try to recover your lost data that way – it still hangs at the “Codename Longhorn” screen. It’s just joking with you when it says that it loaded your key and you can remove the media.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;font face="Calibri"&gt;&lt;font face="Verdana" size="3"&gt;All in all, testing BitLocker Drive Encryption at this point in time on build 5270 is not a very rewarding experience. However future iterations of this are a must test for corporations. How many companies out there never have any notebooks lost or stolen? How many can look their CEO in the eye and tell him that the data on those machines was protected? For those of you using EFS and laughing smugly: What was in the temp folder on the machine? What was in other folders that weren’t encrypted like the Temporary Internet Files, etc.? BitLocker looks to be a good solution to this problem. For more info on BitLocker and how to enable it, see both &lt;a href="http://windowsconnected.com/blogs/joshs_blog/archive/2005/12/28/122.aspx"&gt;Josh’s Post&lt;/a&gt; and the &lt;a href="http://download.microsoft.com/download/3/b/a/3ba6d659-6e39-4cd7-b3a2-9c96482f5353/BitLocker%20Drive%20Encryption%20Step%20by%20Step%20Guide.doc"&gt;Microsoft Step-by-Step guide&lt;/a&gt; (although do note that the MS guide as originally published had the partitions backwards – they may fix that, so it might not be backwards anymore).&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsconnected.com/aggbug.aspx?PostID=179" width="1" height="1"&gt;</content><author><name>Jerry</name><uri>http://windowsconnected.com/members/Jerry/default.aspx</uri></author></entry><entry><title>Manifest Destiny</title><link rel="alternate" type="text/html" href="/blogs/jerry/archive/2005/12/21/97.aspx" /><id>/blogs/jerry/archive/2005/12/21/97.aspx</id><published>2005-12-21T13:56:00Z</published><updated>2005-12-21T13:56:00Z</updated><content type="html">&lt;p&gt;&lt;font face=Verdana&gt;If you are a developer, IT administrator, or application packager you should know about manifest files and how they interact with Windows to control how your applications run. Manifests were first supported with Windows XP and were commonly used to do things like turn on support for the Windows XP style themes. For instance, on Windows XP if you crack open regedit.exe in Visual Studio, you will see a resource of type RT_MANIFEST (run-time manifest) with the number 1. This reads like this:&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size=2&gt;&amp;lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?&amp;gt;&lt;br /&gt;&amp;lt;assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"&amp;gt;&lt;br /&gt;&amp;lt;assemblyIdentity &lt;br /&gt;&amp;nbsp;processorArchitecture="x86"&lt;br /&gt;&amp;nbsp;version="1.0.0.0" &lt;br /&gt;&amp;nbsp;name="Microsoft.Windows.Regedit" type="win32" /&amp;gt;&lt;br /&gt;&amp;lt;description&amp;gt;Registry Editor&amp;lt;/description&amp;gt;&lt;br /&gt;&amp;lt;dependency&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;dependentAssembly&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;assemblyIdentity&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; type="win32"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name="Microsoft.Windows.Common-Controls"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; version="6.0.0.0"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; publicKeyToken="6595b64144ccf1df"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; processorArchitecture="x86"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/dependentAssembly&amp;gt;&lt;br /&gt;&amp;lt;/dependency&amp;gt;&lt;br /&gt;&amp;lt;/assembly&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;font face=Verdana&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=Verdana&gt;That manifest just tells Windows XP to use the "new" (version 6.x) of the Windows Common Controls instead of the default version 5. Version 5 is the default because many legacy applications won't run properly with the new, themed controls. &lt;/font&gt;&lt;font face=Verdana&gt;If you are a developer, you may have provided manifests like this to allow theme support in your Visual Studio.Net applications.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=Verdana&gt;You may not have realized that the manifest file can be either compiled into the EXE or just in the file system. Take the fictitous program "NoteCard.exe". If you were to place the file "NoteCard.exe.manifest" in the same folder as "NoteCard.exe", it would operate just like it would if it was compiled into the program. This gives administrators and packagers the same types of control as that available to the developers of applications. In fact, to see this in operation it is instructive to copy the XML above into Notepad and save it as a file on your system in the same folder as an application written in VB6 (Visual Basic 6). Name the file &amp;lt;exename&amp;gt;.exe.manifest. You'll normally get to see the VB6 application crash when you run it, as most VB apps can't handle the newer themed controls. This shows why Microsoft did not make the common controls 6 library the default for Windows XP. Delete or rename the manifest file and your VB6 application runs as it did before. For more information on how manifests work with common controls, see &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwxp/html/xptheming.asp"&gt;this article on MSDN&lt;/a&gt;.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=Verdana&gt;&lt;strong&gt;&lt;u&gt;Vista, UAC, and manifests&lt;/u&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=Verdana&gt;With Vista, the roll of the manifest grows to encompass run levels. For example, many testers have seen that an administrator on a Vista machine doesn't actually have the administrator level token unless they "elevate" or "permit" an action. (See &lt;a href="http://windowsconnected.com/blogs/jerry/archive/2005/12/17/75.aspx"&gt;this article &lt;/a&gt;on Windows Connected for information about the split token for User Account Control or UAC). Have you wondered how some applications like MMC.exe will ask you to elevate when you are a protected administrator, but won't ask when you are just a standard user? Do you think the answer is that "Windows is just smart and figures it out?" Bzzzzt. Wrong! It's the manifest.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=Verdana&gt;Crack open the Vista 5270 version of MMC.exe in Visual Studio and open the resource of type RT_MANIFEST and number 1. Notice that it now has some run level information in it? It looks something like t&lt;/font&gt;&lt;font face=Verdana&gt;his:&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size=2&gt;&amp;lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?&amp;gt;&lt;br /&gt;&amp;lt;!-- Copyright © 1981-2001 Microsoft Corporation --&amp;gt;&lt;br /&gt;&amp;lt;assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"&amp;gt;&lt;br /&gt;&amp;lt;assemblyIdentity&lt;br /&gt;&amp;nbsp;processorArchitecture="x86"&lt;br /&gt;&amp;nbsp;version="5.1.0.0"&lt;br /&gt;&amp;nbsp;name="Microsoft.Windows.MMC"&lt;br /&gt;&amp;nbsp;type="win32"&lt;br /&gt;/&amp;gt;&lt;br /&gt;&amp;lt;description&amp;gt;Microsoft Management Console&amp;lt;/description&amp;gt;&lt;br /&gt;&amp;lt;trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;lt;security&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;requestedPrivileges&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;requestedExecutionLevel&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;level="highestAvailable"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uiAccess="false"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/requestedPrivileges&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;lt;/security&amp;gt;&lt;br /&gt;&amp;lt;/trustInfo&amp;gt;&lt;br /&gt;&amp;lt;/assembly&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=Verdana&gt;This is telling Windows to attempt to run the application at the highest execution level that is available. In the context of a regular user, the highest available is just that lowly user level. This means there would be no prompting for a standard user. For the built-in Administrator account (which has UAC off always) there is also no prompting because the token is already administrator level. However, things are different for the accounts that have been aded to the Administrators group. These accounts are running with the split token. When Windows sees this, and sees an application manifested to run with "highestAvailable" it will throw the "ConsentUI" prompt asking you to permit or deny the application from running with the full administrator token. (Note: it is impossible to have the application automatically elevate. Consent is required!). Info on CredUI and ConsentUI is &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnlong/html/AccProtVista.asp"&gt;here on MSDN&lt;/a&gt;.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=Verdana&gt;In the same way as we could put a manifest file into the file system instead of compiled into the EXE for common controls library selection, we can also do it for the run level. There are several levels available:&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size=2&gt;highestAvailable&lt;br /&gt;requireAdministrator&lt;br /&gt;asInvoker&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=Verdana&gt;Those are pretty self-explanatory, but you can see the full Microsoft documentation for this and the run level &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnlong/html/AccProtVista.asp"&gt;manifest here on MSDN&lt;/a&gt;.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=Verdana&gt;Now, some of you may have noticed that on the compatibility tab of the properties sheet for an EXE, Vista has the "Run as Administrator" check box. This is equivalent to "requireAdministrator" and puts the information into the SDB file (Solution DataBase). However, the GUI there doesn't allow you to set the "highestAvailable" option. For this, you can use a manifest. Most likely down the line you will be able to use the application compatibility toolkit - we'll have to see what's in this when it ships. But for now, the solution is manifest.&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsconnected.com/aggbug.aspx?PostID=97" width="1" height="1"&gt;</content><author><name>Jerry</name><uri>http://windowsconnected.com/members/Jerry/default.aspx</uri></author></entry><entry><title>File and Registry Virtualization – the good, the bad, and the ugly</title><link rel="alternate" type="text/html" href="/blogs/jerry/archive/2005/12/19/file-and-registry-virtualization-the-good-the-bad-and-the-ugly.aspx" /><id>/blogs/jerry/archive/2005/12/19/file-and-registry-virtualization-the-good-the-bad-and-the-ugly.aspx</id><published>2005-12-19T20:37:00Z</published><updated>2005-12-19T20:37:00Z</updated><content type="html">
&lt;p&gt;&lt;font face="Verdana"&gt;With Windows Vista, Microsoft is evangelizing the use of “Standard User” accounts for most all users. You will also hear these accounts called LUA, or Least-privileged User Account. Running as LUA users will enable a much more secure environment and help to ensure that machine configurations remain stable. In order to ease the application compatibility woes that this major change is sure to generate, Windows Vista introduces a bridging technology know as File and Registry Virtualization (called affectionately “Virt” here). This technology makes it possible to run many applications as a standard user, even when the applications required either Administrator or Power User rights on Windows XP. This is accomplished by re-directing (or “Virt’ing”) application writes from secured areas of the system to a virtual store under the user’s profile. This technology is intended to make deployments of Vista less dependent on waiting for vendors to release new versions of their software that work with LUA. It isn’t designed to be used forever: in fact, Microsoft hopes to deprecate the virtualization feature in the next version of Windows after Windows Vista. The thought is that by that time, vendors and customers should have applications that work correctly in the low rights environment.&lt;br&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Verdana"&gt;&lt;b&gt;&lt;u&gt;Here’s the good news first:&lt;/u&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Verdana"&gt;With “Virt”, many off the shelf and custom in-house applications will just work. No tweaks needed. Are you wondering how applications that write to “&lt;font face="Courier New" size="2"&gt;C:\Program Files&lt;/font&gt;” or &lt;font face="Courier New" size="2"&gt;HKEY_LOCAL_MACHINE&lt;/font&gt; could possible work within a low rights user account? The magic of Virt, that’s how!&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Verdana"&gt;When an application attempts to do something “bad” like write to an INI file like “&lt;font face="Courier New" size="2"&gt;C:\Program Files\PoorlyBehavedApp\Options.ini&lt;/font&gt;”, Windows will detect that the user’s token does not grant them access to save to that location. Instead, it will copy the existing file (if it already exists) to “&lt;font face="Courier New" size="2"&gt;C:\Users\&amp;lt;your_account&amp;gt;\AppData\Local\VirtualStore\Program Files\PoorlyBehavedApp\Options.ini&lt;/font&gt;”. It will then allow the write operation to succeed to this new file in the VirtualStore folder. Subsequent read operations for that file will always preferentially use the copy in the VirtualStore. Here’s a simplified flow chart outlining these read and write operations.&lt;br&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://windowsconnected.com/photos/blog_pics/picture4923.aspx" mce_href="http://windowsconnected.com/photos/blog_pics/picture4923.aspx" target="_blank"&gt;&lt;img src="http://windowsconnected.com/photos/blog_pics/images/4923/original.aspx" mce_src="http://windowsconnected.com/photos/blog_pics/images/4923/original.aspx" border="0"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://windowsconnected.com/photos/blog_pics/picture85.aspx" mce_href="http://windowsconnected.com/photos/blog_pics/picture85.aspx" target="_blank"&gt;&lt;img src="http://windowsconnected.com/photos/blog_pics/images/85/original.aspx" mce_src="http://windowsconnected.com/photos/blog_pics/images/85/original.aspx" border="0"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Verdana"&gt;The same type of magic is used with certain parts of the registry. For example, if an application writes to “&lt;font face="Courier New" size="2"&gt;HKLM\Software\PoorlyBehavedApp\2.0\Settings&lt;/font&gt;”, windows will send that write operation to “&lt;font face="Courier New" size="2"&gt;HKCR\VirtualStore\Machine\Software\PoorlyBehavedApp\2.0\Settings&lt;/font&gt;”. In the same fashion as with the files, subsequent read operations will read from the VirtualStore preferentially. The registry store is backed by the file “&lt;font face="Courier New" size="2"&gt;C:\Users\&amp;lt;your_account&amp;gt;\AppData\Local\Microsoft\Windows\UsrClass.dat&lt;/font&gt;” in the same way that the classic HKCU area of the registry is backed by “&lt;font face="Courier New" size="2"&gt;C:\Users\&amp;lt;your_account&amp;gt;\NTUser.dat&lt;/font&gt;”.&lt;br&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Verdana"&gt;&lt;b&gt;&lt;u&gt;So what’s bad about this?&lt;/u&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Verdana"&gt;All in all, this is a good thing and Virt should prove to be a great enabler of legacy applications. However, there is a dark side. For example, what happens if ISV’s and customers come to depend too much on Virtualization? Will they create proper applications that adhere to the principles of least privilege? Or, will they choose to save money now and just hope that Microsoft can be talked into keeping Virt around forever? Will new development be done properly? Or will developers continue to code the way that they always have since it will work OK anyway? As you can see, there is a very real risk that virt will “succeed too well” and just push that big app compat problem out into the future without actually forcing apps to be fixed now. In general, customers should check to see which applications are “virt’ing”, report them to the vendor and ask for new versions that are truly LUA aware. Optimally, new applications would only be purchased if they can pass the “Virt” test (not causing entries to be virtualized in the file system or registry). It goes without saying that any non-administrative application that doesn’t run without administrator privileges should not be purchased.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Verdana"&gt;&lt;b&gt;&lt;u&gt;How about the Ugly?&lt;/u&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Verdana"&gt;Let’s take the fictitious application “PoorlyBehavedApp” as an example. This application was originally built on Windows 95. The lack of a security model on Win9x led the developers to an easy method of storing data: The INI file in the Program Files folder. Unfortunately, the developers fell prey to that classic problem of mixing user and machine data. Take this section of their Options.ini file as an example:&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Courier New" size="2"&gt;[Data]&lt;br&gt;Server=MyServer.MyCompany.com&lt;br&gt;Database=ImportantStuff&lt;br&gt;[Toby]&lt;br&gt;WindowX=100&lt;br&gt;WindowY=50&lt;br&gt;WindowWidth=800&lt;br&gt;WindowHeigh=900&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Verdana"&gt;As you can see, the database server and user preferences (in this case the last position of the application window on the screen) are saved in this same file. So, when the user Toby exits the application it will write the last window position to the file. Since Toby is not an administrator, this causes a copy of the Options.ini file to be created under his profile in the VirtualStore. So far so good, right? When Toby logs on and starts the application, he will get the proper settings. The same thing even works when Abby later logs on: her window position gets saved in her own VirtualStore since she is running as “Protected Admin”. Protected Admin is the default mode for administrators. Read our &lt;a href="http://windowsconnected.com/blogs/jerry/archive/2005/12/17/75.aspx" mce_href="http://windowsconnected.com/blogs/jerry/archive/2005/12/17/75.aspx"&gt;Split Token&lt;/a&gt; post for more on how the administrator will still have a user level token.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Verdana"&gt;So where’s the problem? Here’s where it gets troublesome! Later, the IT staff needs to take the server down and wants to replace it with a new one that has a different name. The new server is &lt;font face="Courier New" size="2"&gt;MySecondServer.MyCompany.com&lt;/font&gt;. The IT staff uses SMS to push out a change to the INI file in “&lt;font face="Courier New" size="2"&gt;C:\Program Files\PoorlyBehavedApp&lt;/font&gt;”. What happens? Well, new users will work correctly. However users like Toby and Abby who have already used the application (and gotten virt’ed) will fail since their virtual copies of the INI file have not been updated! Their INI files are still pointed to MyServer.MyCompany.com. Here is a graphic showing where the user’s copy of the file would be.&lt;br&gt;At this point, you can probably see that the script in SMS just got much more complex. You probably need to iterate through the profiles on the machine and update the file in each of the VirtualStores. Testing just became more complex too since you need to have scenarios for existing users, new users, admin users, etc. However, don’t forget that this same thing can happen to the VirtualStore in the registry as well. This makes it even harder to update people correctly as there will only be one UsrClass.dat mounted to HKCR\VirtualStore. To update the other users you will need to perform some API magic and use RegLoadKey and RegUnloadKey to sequentially mount, update, and unmount each of the other user’s registry VirtualStores.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Verdana"&gt;&lt;b&gt;&lt;u&gt;OK, so that was ugly – is there anything worse?&lt;/u&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Verdana"&gt;I’m glad you asked that! There are indeed possible scenarios that would allow an application level “Denial of Service” (DoS) or escalation of privilege. Let’s take a common example: Microsoft Word. Let’s say that there is a registry key set at “&lt;font face="Courier New" size="2"&gt;HKLM\SOFTWARE\Microsoft\Office\11.0\Word\Security&lt;/font&gt;”. There is a value there called “&lt;font face="Courier New" size="2"&gt;Level&lt;/font&gt;” and it is a &lt;font face="Courier New" size="2"&gt;DWORD&lt;/font&gt; of &lt;font face="Courier New" size="2"&gt;2&lt;/font&gt; (which means Medium security). This security level causes Word to prompt the user before running any macros that are either unsigned or signed with an untrusted certificate. In today’s world on Windows XP a non-admin user has no way to change that value. It is enforced, even though it is not under the true “policy” section of the registry. However with virt, it becomes possible for code running as the user to “update” this value (it will cause it to virtualize into the user’s registry VirtualStore). When the application reads the value, it will see the virtual entry. So maybe it has been changed to a 1 for “low” which will allow any macro to run with no prompt. Now security has effectively been lowered for this user. It’s important to note that this would have no affect on other users on the machine. To help combat this, Microsoft has built some API’s that will allow developers to specify certain folders and registry keys to never virtualize. There is also an extendable list of file types that will never be virtualized. In fact, MS Office will be set to not virtualize any security related keys like this. Other applications (LOB apps, third party apps, etc.) may need to make use of the API to block certain files from being virtualized too.&lt;br&gt;How about troubleshooting machines?&lt;br&gt;That’s another good question. In general, it will be a bit harder to tell what the “real” settings are for a specific user. It won’t be enough to look in their HKCU and the machine HKLM to see the settings. You’ll also need to check both of their VirtualStores (the registry and the file system) to see what settings may be hiding there. In some rare cases, it may be necessary to delete the VirtualStore to be sure of the settings the user has.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Verdana"&gt;&lt;b&gt;&lt;u&gt;In Summary&lt;/u&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Verdana"&gt;Taken as a whole, virt is our friend. It will hopefully allow deployment of Vista in a secure manner without requiring that all of the applications be fixed to be LUA aware. Just remember to beware the dark side of the virt.&lt;/font&gt;&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsconnected.com/aggbug.aspx?PostID=86" width="1" height="1"&gt;</content><author><name>Jerry</name><uri>http://windowsconnected.com/members/Jerry/default.aspx</uri></author></entry><entry><title>LUA, UAC, and the split personality token</title><link rel="alternate" type="text/html" href="/blogs/jerry/archive/2005/12/17/75.aspx" /><id>/blogs/jerry/archive/2005/12/17/75.aspx</id><published>2005-12-17T16:13:00Z</published><updated>2005-12-17T16:13:00Z</updated><content type="html">&lt;p&gt;&lt;font face=Verdana&gt;With Windows Vista, you now have UAC or "User Account Control", sometimes known as PA or "Protected Admin". What does this mean in a practical sense? Well, for instance let's say you take a domain account (or a new local account) and place it in the Administrators group. With all prior versions of Windows based on Windows NT, that would be it - that user would be an Administrator when they logged on and could install all the spyware and trojan horses they wanted. When they clicked on "&amp;lt;SomeFamousPersons&amp;gt;Boobs.jpg.exe", it could do anything it wanted to the system. The least likely thing it would do is display what it sounds like it would in the title, right? Now, your account won't really BE an admin - at least not all the time.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;font size=4&gt;A different style of logon&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;The login process now creates &lt;span&gt;two&lt;/span&gt; tokens. The normal one that in our sample case would have granted admin rights (this one is held onto by the kernel and used only when you need to elevate), and a new token - based on the standard one - that is used for UAC. This new token has the Administrators group set as a restricted group or "deny only". So if you run "whoami /groups", you'll see &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=Verdana&gt;"BUILTIN\Administrators S-1-5-32-544 Group used for deny only"&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=Verdana&gt;(I chopped a bit of extra text out of that to simplify it, but it's clear that the token has been restricted. If you were to then run a command prompt "elevated" (by right-clicking the shortcut for the command prompt and choosing "elevate"), you'd get a different token. Run the "whoami /groups" again in&amp;nbsp;that elevated command prompt&amp;nbsp;and you'll see that you now have:&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=Verdana&gt;"BUILTIN\Administrators S-1-5-32-544 Mandatory Group, Enabled by default, Enabled Group".&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=Verdana&gt;As you can see - a different token.&lt;br /&gt;&lt;br /&gt;All of the whining on the newsgroups and other places on the net that reduce to "my account is supposed to be an admin, but it can't &lt;span&gt;&lt;span&gt;do&lt;/span&gt;&lt;/span&gt; anything" are about either bugs or design elements with UAC and the restricted token. Take for example control panel applets. By the time we see final versions of Vista, the built in control panel applets will either prompt for elevation immediately when they are opened (if they have to; generally if all of their functions are administrative), or they will be re-factored to seperate any admin-required functions from their "per user" functions and will show a&amp;nbsp;shield symbol and button to "enable" the admin functions. You'll need to click the&amp;nbsp;shield and either hit ConsentUI (for users who are in the Administrators group but have the restricted token; this is just a "is it OK to do admin things" dialog), or hit CredUI (this is for folks who are not admins; they can then enter alternate credentials if they have them in order to elevate).&lt;br /&gt;&lt;br /&gt;I know today there are a&amp;nbsp;large number of scenarios where this just isn't implemented yet, or doesn't work. Many are due to "we haven't gotten to that yet", while others are just plain bugs. One of the first things I happened to encounter was when I logged on as a standard user, then needed to do some administrative work. I used my trusty method of starting a command prompt as the standard user, and then executing "runas /u:MyDomain\MyAccount cmd.exe". When I got my new command prompt, it should have admin rights since that domain account is my admin one and is in the administrators group. When I tried to run something that was on the standard user's desktop (by CD \users\...) I got access denied!
&lt;p&gt;&lt;font face=Verdana&gt;But I was an Admin! &lt;em&gt;&lt;strong&gt;"Not today Zurg"&lt;/strong&gt;&lt;/em&gt;, Vista says. My runas had activated my restricted token. Not the most usable thing; the only reason I had done the runas was to get credentials that had admin rights. This, and other scenarios are ones that we need to see fixed before Vista RTM's. Today, with UAC on, the only account that never gets a restricted token is the builtin adminstrator account. That one, in our environment - following best practices, is scrambled. Both the name of the account and the password are 25 random characters and &lt;span&gt;nobody&lt;/span&gt; knows them. No escrowing them, nothing. Domain accounts are used for all admin tasks. So all users who logon are either standard users or protected admins.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=Verdana&gt;If you've been testing Vista, please make sure to file bugs on any problems that you have with UAC and elevation. Don't just rely on the built in&amp;nbsp;administrator account to workaround it. You'll be doing the other enterprise customers out there a favor by submitting that bug and getting it fixed.&amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsconnected.com/aggbug.aspx?PostID=75" width="1" height="1"&gt;</content><author><name>Jerry</name><uri>http://windowsconnected.com/members/Jerry/default.aspx</uri></author></entry><entry><title>Why Toby can't backup</title><link rel="alternate" type="text/html" href="/blogs/jerry/archive/2005/12/14/65.aspx" /><id>/blogs/jerry/archive/2005/12/14/65.aspx</id><published>2005-12-15T03:28:00Z</published><updated>2005-12-15T03:28:00Z</updated><content type="html">&lt;font face="Verdana"&gt;One of the coolest things to come out of Microsoft’s soon-to-be-released operating system Windows Vista is a greatly enhanced ability to successfully run users as standard users.&amp;nbsp; This is enabled by many features such as a revised design in the OS separating UI for admin tasks from UI for tasks that users should be allowed to perform (such as setting the time zone). Another enabler is the new file and registry virtualization technology that allows applications to succeed when they write to say C:\Program Files or to HKLM\Software. In that case, the write is virtualized to a location under the user’s profile with the application none the wiser.&lt;br&gt;However, at least one of the Microsoft feature teams seems to have completely missed the boat and fallen into the water. That’s right, they are all wet. As Short Round in &lt;i&gt;Indiana Jones and the Temple of Doom&lt;/i&gt; would say, “haha, all wet, very funny!”&amp;nbsp; Which feature is it that should throw in the proverbial towel?&amp;nbsp; Would you believe it is SafeDocs? SafeDocs is the new incarnation of the old NT Backup that we all knew and… Wait. Well at least we knew it.&lt;br&gt;&lt;br&gt;&lt;u&gt;&lt;b&gt;Toby is a LUser&lt;/b&gt;&lt;/u&gt;&lt;br&gt;&amp;nbsp;No, not a loser! He is a “Limited User” with a Least-privileged User Account (LUA). He’s actually a standard “role” that Microsoft uses in scenario testing.&amp;nbsp; In a similar fashion Abby is an administrator. For those that may be unfamiliar with these named roles, you can see a small example here: &lt;a href="http://www.microsoft.com/technet/windowsvista/evaluate/sgtour.mspx"&gt;http://www.microsoft.com/technet/windowsvista/evaluate/sgtour.mspx&lt;/a&gt;.&lt;br&gt;&lt;br&gt;&lt;u&gt;&lt;b&gt;So why can’t Toby backup?&lt;/b&gt;&lt;/u&gt;&lt;br&gt;That’s a great question that all enterprises should send directly to Microsoft. Why indeed? It turns out that the feature team that brings you SafeDocs believes that only administrators need to have docs that are safe. That’s right: you need to be an &lt;i&gt;administrator&lt;/i&gt; to do a backup! I guess that pretty much throws out the ability for any home user to run as a non-admin. For many corporations this means evaluating and purchasing a replacement backup tool so that users can backup their files. This will mean either running as an admin (not too smart!) or raising Windows Vista’s TCO as you pay for a product and maintenance for something that used to be included in Windows for free. Interestingly, on Windows XP a non-admin user could perform a backup using NT Backup without any problem whatsoever.&lt;br&gt;&lt;br&gt;&lt;u&gt;&lt;b&gt;Are there workarounds?&lt;/b&gt;&lt;/u&gt;&lt;br&gt;Yes, you can apparently configure the SafeDocs program via group policy. This of course means that the destination where the backup goes and the time it kicks off are now out of the user’s control. What if they want the backup to go to their home drive? How about a USB attached drive? Second hard drive anyone? The stock answer here is that “their admin can configure it for them.” Doesn’t that strike you as funny? In this day and age when people are interested spending less on IT support, Microsoft actually makes it sound like there is an administrator standing there behind every user ready to hook them up with the configuration that they need today. Maybe before logon, this admin will ask the user, “Where do you want to go today?” To which the user will respond that he just wants to make a backup and needs an operating system installed that will let him do it.&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsconnected.com/aggbug.aspx?PostID=65" width="1" height="1"&gt;</content><author><name>Jerry</name><uri>http://windowsconnected.com/members/Jerry/default.aspx</uri></author></entry><entry><title>New type of answering machine needed</title><link rel="alternate" type="text/html" href="/blogs/jerry/archive/2005/11/27/30.aspx" /><id>/blogs/jerry/archive/2005/11/27/30.aspx</id><published>2005-11-27T20:11:00Z</published><updated>2005-11-27T20:11:00Z</updated><content type="html">&lt;font face="Verdana"&gt;Have you ever hit this scenario? The phone rings, and you answer it. You say "hello?" (or if you like to mess with people you say "Gut?" or "¿Hola?"). Then, a recorded voice comes on with "Please hold for an impor". This is cut off in the middle and music starts playing. After 20 seconds or so, someone comes on and says "Hello?". This one happened to me yesterday. I actually did hold the 20 seconds this time. I wanted to see what was so &lt;u&gt;&lt;i&gt;&lt;b&gt;important&lt;/b&gt;&lt;/i&gt;&lt;/u&gt; to ME that I would think was worth the holding time, but so &lt;u&gt;&lt;i&gt;&lt;b&gt;unimportant&lt;/b&gt;&lt;/i&gt;&lt;/u&gt; to them that they would hire a machine to call me and not bother connecting me to an agent for 20 seconds. (I'm on the "do not call list" by the way, so this had to be one of those millions of "exempt" groups like politicians, insurance, your credit card company, or anyone from whom you've ever bought something). Anyway, I hung up as soon as the person said "Hello?". I'm pretty sure it was Sears trying to get me to buy an extended warranty on some product I bought from them a couple of years ago. I think they got the priority wrong though: the message &lt;b&gt;&lt;i&gt;was&lt;/i&gt;&lt;/b&gt; important - but only to them, not to me.&lt;br&gt;&lt;br&gt;The experience was similar to the endless polictical messages from the most recent elections although most of those were just recordings.&lt;br&gt;&lt;br&gt;This all makes me think I need a new toy to combat this new extended method of wasting my time. I need (gasp) a new "call screening answering machine". Somehow, this new machine needs to not even allow my phone to ring until it has vetted the call. If it is one of these recordings the machine would pick up, detect the irrelevant call type, hang up, and I would never even need to know the phone rang. If it was a person, they would have to prove to the machine that their call should be routed to me. If it was someone I know, this could be very simple (I don't know, voice reco, something). If it was someone I don't know, I'd want this to be more difficult. Sure, build in the "right stuff" to cause real calls from emergency services type things to get through with no delay while still blocking the policeman's fund and the fireman's ball. Sorry guys, I gave at the office.&lt;br&gt;&lt;br&gt;So what do you think? We've got spam filters for email. Who's down with a bozo filter for the real phone?&lt;br&gt;&lt;/font&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsconnected.com/aggbug.aspx?PostID=30" width="1" height="1"&gt;</content><author><name>Jerry</name><uri>http://windowsconnected.com/members/Jerry/default.aspx</uri></author></entry></feed>