<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Brendan on Windows Home Server : Tips and Tricks</title><link>http://blogs.msdn.com/brendangrant/archive/tags/Tips+and+Tricks/default.aspx</link><description>Tags: Tips and Tricks</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Single Sign-on with ASP.NET on Windows Home Server</title><link>http://blogs.msdn.com/brendangrant/archive/2009/03/09/single-sign-on-with-asp-net-on-windows-home-server.aspx</link><pubDate>Mon, 09 Mar 2009 20:28:38 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9467988</guid><dc:creator>Brendan Grant</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/brendangrant/comments/9467988.aspx</comments><wfw:commentRss>http://blogs.msdn.com/brendangrant/commentrss.aspx?PostID=9467988</wfw:commentRss><description>&lt;p&gt;One of the major advantages Windows Home Server has over much of it’s competition (external hard drives, generic network attached storage devices, secondary PCs) is that it’s a full Windows Server under the hood and comes along with the ability to host almost any sort of web page or application you care to deploy to it, including those based on ASP.NET.&lt;/p&gt;  &lt;p&gt;With your server hosting all of your content at &lt;a href="https://smithfamily.homeserver.com"&gt;https://smithfamily.homeserver.com&lt;/a&gt;, there exists the need to control access, something Windows Home Server does on it's own through it's remote access web site which uses the underlying Windows accounts. 3rd party developers can leverage Windows or Forms based authentication in their own web applications... however in doing so they are normally responsible for handling authentication... did you know developers you can use the same login page that already ships on Windows Home Server in their own applications?&lt;/p&gt;  &lt;p&gt;Why so? The authentication system built in to ASP.NET can be used to offload some of the work of determining if a user is authenticated and what to do with them if they are not (amongst many other things)... these settings, like most other ASP.NET settings in the web.config file within a web application's directory and when the correct sections of config are copied between applications, single sign-on is the result.&lt;/p&gt;  &lt;p&gt;Before we go any further, if you do not already know how to use Forms based authentication in ASP.NET I would highly suggest taking &lt;a href="http://msdn.microsoft.com/en-us/library/aa480476.aspx"&gt;a quick read&lt;/a&gt; of what it can do for you and how.&lt;/p&gt;  &lt;p&gt;Lets take a look at the web.config (c:\Inetpub\remote\web.config) from a Home Server sitting under my desk at work:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;      &lt;br /&gt;&amp;lt;configuration&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;system.web&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;machineKey validationKey=&amp;quot;&amp;lt;key removed for length&amp;gt;&amp;quot;       &lt;br /&gt;&amp;#160;&amp;#160; decryptionKey=&amp;quot;&amp;lt;key removed for length&amp;gt;&amp;quot;       &lt;br /&gt;&amp;#160;&amp;#160; validation=&amp;quot;SHA1&amp;quot; decryption=&amp;quot;AES&amp;quot; /&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;authentication mode=&amp;quot;Forms&amp;quot;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;forms name=&amp;quot;RemotePortalAuth&amp;quot; loginUrl=&amp;quot;logon.aspx&amp;quot; protection=&amp;quot;All&amp;quot; path=&amp;quot;/&amp;quot; timeout=&amp;quot;12000&amp;quot; requireSSL=&amp;quot;false&amp;quot;/&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/authentication&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;authorization&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;deny users=&amp;quot;?&amp;quot;/&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;allow users=&amp;quot;*&amp;quot;/&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/authorization&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;httpRuntime maxRequestLength=&amp;quot;2097151&amp;quot; executionTimeout=&amp;quot;86400&amp;quot;/&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;customErrors mode=&amp;quot;On&amp;quot; defaultRedirect=&amp;quot;error.aspx&amp;quot;/&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;trace enabled=&amp;quot;false&amp;quot; requestLimit=&amp;quot;100&amp;quot; pageOutput=&amp;quot;false&amp;quot; traceMode=&amp;quot;SortByTime&amp;quot; localOnly=&amp;quot;false&amp;quot;/&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;sessionState mode=&amp;quot;InProc&amp;quot; cookieless=&amp;quot;false&amp;quot; timeout=&amp;quot;20&amp;quot;/&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;globalization requestEncoding=&amp;quot;utf-8&amp;quot; responseEncoding=&amp;quot;utf-8&amp;quot;/&amp;gt;       &lt;br /&gt;&amp;#160; &amp;lt;/system.web&amp;gt;       &lt;br /&gt;&amp;lt;/configuration&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;In order for our own web application to use the same authentication back end and cookie as the existing Windows Home Server Remote Access web page, we need to copy two sections of the above file to the web.config file being used by our own custom app, specifically the &lt;a href="http://msdn.microsoft.com/en-us/library/w8h3skw9.aspx"&gt;machineKey&lt;/a&gt;, and &lt;a href="http://msdn.microsoft.com/en-us/library/1d3t3c61.aspx"&gt;authentication&lt;/a&gt; key tags.&lt;/p&gt;  &lt;p&gt;The authentication key specifies not only what kind of authentication to use (forms), but what the name of the resulting authentication cookie will be (RemotePortalAuth) and where to send browsers who are not authenticated (login.aspx) while the machineKey defines the encryption keys to use&lt;/p&gt;  &lt;p&gt;Before hitting save on my updated web.config file, I will need to tweak it slightly, changing the loginUrl property to point to the logon page that exists in a directory different than where the new web app is running:&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;machineKey validationKey=&amp;quot;&amp;lt;key removed for length&amp;gt;&amp;quot;    &lt;br /&gt;&amp;#160;&amp;#160; decryptionKey=&amp;quot;&amp;lt;key removed for length&amp;gt;&amp;quot;     &lt;br /&gt;&amp;#160;&amp;#160; validation=&amp;quot;SHA1&amp;quot; decryption=&amp;quot;AES&amp;quot; /&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;authentication mode=&amp;quot;Forms&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;forms name=&amp;quot;RemotePortalAuth&amp;quot; loginUrl=&amp;quot;../remote/logon.aspx&amp;quot; protection=&amp;quot;All&amp;quot; path=&amp;quot;/&amp;quot; timeout=&amp;quot;12000&amp;quot; requireSSL=&amp;quot;false&amp;quot;/&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/authentication&amp;gt;&lt;/p&gt;  &lt;p&gt;What I described above is the manual process behind such a process, it would be the responsibility of an installer of a web site to open the existing web.config file, grab the needed bits and insert it into it's own web.config, which given only involves a bit of xml can be a simple process.&lt;/p&gt;  &lt;p&gt;What does this give us? If I installed a web application that lives in the virtual directory SingleSignOnExample on my Home Server and navigated to:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="https://smithfamily.homeserver.com/SingleSignOnExample/Default.aspx"&gt;https://smithfamily.homeserver.com/SingleSignOnExample/Default.aspx&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Unless I was already logged into the remote access web page, I'd be automatically redirected to:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="https://smithfamily.homeserver.com/remote/logon.aspx?ReturnUrl=%2fSingleSignOnExample%2fDefault.aspx"&gt;https://smithfamily.homeserver.com/remote/logon.aspx?ReturnUrl=%2fSingleSignOnExample%2fDefault.aspx&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Which would allow me to login with my existing credentials, and then be redirected back to the original URL:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="https://smithfamily.homeserver.com/SingleSignOnExample/Default.aspx"&gt;https://smithfamily.homeserver.com/SingleSignOnExample/Default.aspx&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;After this is all said and done, it may be good to have ones installer also edit the server's &lt;a href="http://msdn.microsoft.com/en-us/library/cc766796.aspx"&gt;websites.xml&lt;/a&gt; file to advertise the new web application to existing users of the remote access web site.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9467988" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/brendangrant/archive/tags/Windows+Home+Server/default.aspx">Windows Home Server</category><category domain="http://blogs.msdn.com/brendangrant/archive/tags/Development+Tips/default.aspx">Development Tips</category><category domain="http://blogs.msdn.com/brendangrant/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category></item><item><title>Long term PC archiving with Windows Home Server</title><link>http://blogs.msdn.com/brendangrant/archive/2008/09/08/long-term-pc-archiving-with-windows-home-server.aspx</link><pubDate>Tue, 09 Sep 2008 00:37:21 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8934921</guid><dc:creator>Brendan Grant</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/brendangrant/comments/8934921.aspx</comments><wfw:commentRss>http://blogs.msdn.com/brendangrant/commentrss.aspx?PostID=8934921</wfw:commentRss><description>&lt;p&gt;The backup service built into &lt;a href="http://www.microsoft.com/windows/products/winfamily/windowshomeserver/default.mspx"&gt;Windows Home Server&lt;/a&gt; is designed for easy and efficient storage and recovery of files from multiple different PCs in the home as well as easy recovery. Because it does this job so well some have taken to using it as a longer term archiving solution so as to safeguard the last state of a PC before it was scrapped, never to be seen or booted from again.&lt;/p&gt;  &lt;p&gt;While this is definitely an option, but it may not be an ideal one for all as there are a few areas that should be considered before relying on Windows Home Server for long term archiving within the backup database, areas including:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;PC Limit&lt;/strong&gt; – Windows Home Server is &lt;a href="http://blogs.technet.com/homeserver/archive/2008/09/04/10-computers-10-users.aspx"&gt;currently limited to backing up 10 PC's&lt;/a&gt;... even when some of those PC's are no longer actively being backed up and just are being stored for short/long term, this lowers the number of actual PC's that can be protected daily.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Legacy Support&lt;/strong&gt; – If 5, 10 or even 20 years from now you were to attempt to read from the current backup database... how would you do so? The format of the database is at present not publicly documented and very well can change over time and so running/finding software that will be able to parse it in future may not be possible.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Retention Granularity&lt;/strong&gt; – While it is easy to determine which files/folders/drives should be backed up... it is not so easy to specify after the fact which drives should be retained and which should not short of doing one final backup which only backs up the desired data.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&amp;lt;side note&amp;gt;&lt;/em&gt;Because Windows Home Server is such a consumer focused product, we are always listening to customer feedback (best given on &lt;a href="http://connect.microsoft.com/WindowsHomeServer"&gt;Microsoft Connect&lt;/a&gt;) when it comes to what features and/or limitations exist (or do not exist) in the product (or environment) that prevent users from being able to use it best in their homes. &lt;a href="http://connect.microsoft.com/WindowsHomeServer"&gt;If you have ideas, we want to hear them&lt;/a&gt;, especially right now on the subject of the &lt;a href="http://blogs.technet.com/homeserver/archive/2008/09/04/10-computers-10-users.aspx"&gt;10 pc/user limit and alternative implementations&lt;/a&gt;.&lt;em&gt;&amp;lt;/side note&amp;gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Due to some of the above areas I recently found myself with a bit of a problem where my old desktop PC had 3 hard drives in it with a total space of over 800 gigabytes (about half of that being media that is now securely on my Home Server shares) had been regularly backed up to my home server for quite some time, that means that a significant chuck of my current 893 gigabyte backup database is data that is already safely elsewhere and a bit of trimming might be in order one day.&lt;/p&gt;  &lt;p&gt;Given none of the above areas are likely to be resolved today or tomorrow other options should be considered... be it dragging just those files/drives I want to a folder somewhere, or perhaps one of the most obvious of booting up a whole new PC, doing a bare-metal restore to a HD (or set of HD's of just what you want) and then putting them on the shelf for a while.&lt;/p&gt;  &lt;p&gt;Both of these options would certainly work... only they aren't the the best as the first doesn't allow me to retain all of the actual subtleties of the contents of the disk (boot data, user SIDs, NTFS junction points, etc) while the second is fairly inefficient when it comes to disk space.&lt;/p&gt;  &lt;h4&gt;One Solution&lt;/h4&gt;  &lt;p&gt;My solution to this problem was simple... to use Virtual PC 2007 to create a new virtual machine and virtual hard disk (VHD) of sufficient size, boot off of the Windows Home Server Recovery Disk (or disk image on the server) and restore which ever partition(s) I want to a virtual hard disk.&lt;/p&gt;  &lt;p&gt;Best of all, as a VHD I have many different options for accessing the data in various ways as there are numerous tools out there that allow the reading/editing of them, in fact as part of the &lt;a href="http://www.microsoft.com/interop/osp/default.mspx"&gt;Open Specifications Promise&lt;/a&gt; (OSP) the &lt;a href="http://www.microsoft.com/technet/virtualserver/downloads/vhdspec.mspx"&gt;Microsoft Virtual Hard Disk format&lt;/a&gt; is well documented allowing me to write my own later if I so wanted/needed... heck, Windows Server 2008 even comes with that support in the box!&lt;/p&gt;  &lt;h4&gt;What is needed&lt;/h4&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a href="http://www.microsoft.com/windows/products/winfamily/virtualpc/default.mspx"&gt;Virtual PC 2007&lt;/a&gt; (free) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/windowsserversystem/virtualserver/"&gt;Virtual Server 2005&lt;/a&gt; (free) or Windows Server 2008 &lt;/li&gt;    &lt;li&gt;A Windows Home Server &lt;/li&gt;    &lt;li&gt;A desktop PC with plenty of ram and hard disk space &lt;/li&gt; &lt;/ol&gt;  &lt;h4&gt;The process&lt;/h4&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a href="http://www.microsoft.com/windows/products/winfamily/virtualpc/default.mspx"&gt;Install Virtual PC 2007&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Create a new virtual machine      &lt;ol&gt;       &lt;li&gt;Create a virtual machine &lt;/li&gt;        &lt;li&gt;Specify name for virtual machine (default is fine) &lt;/li&gt;        &lt;li&gt;Specify operating system as Windows Vista (suggested as the recovery CD uses the Windows Vista version of Win PE) &lt;/li&gt;        &lt;li&gt;Use suggested amount of ram (512 MB) &lt;/li&gt;        &lt;li&gt;Create a new virtual disk &lt;/li&gt;        &lt;li&gt;Specify location for virtual disk and allocate sufficient space for restored image          &lt;br /&gt;&lt;strong&gt;           &lt;br /&gt;Note 1:&lt;/strong&gt; The space specified here will not immediately be used on the system, instead virtual hard disks grow in size up until the size specified here.           &lt;br /&gt;          &lt;br /&gt;&lt;strong&gt;Note 2&lt;/strong&gt;: Virtual hard disks created with Virtual PC 2007 are limited to 127 gigabytes in size, for archival backups involving larger drives/volumes it may be necessary to either use Virtual Server or Hyper-V (both of which support larger disks) or multiple VHDs           &lt;br /&gt;&lt;/li&gt;        &lt;li&gt;Click Finish button to exist wizard &lt;/li&gt;        &lt;li&gt;If desired other 127 gigabyte disks can be created within the virtual machine and used &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;Select new virtual machine&amp;#160; in Virtual PC Console and click the Start button. &lt;/li&gt;    &lt;li&gt;Immediately after the Virtual Machine starts from the CD menu, select Capture ISO Image &lt;/li&gt;    &lt;li&gt;Specify the location of the Windows Home Server recovery image (likely located \\server\software\Home PC Restore CD\restorecd.iso) and click Open button &lt;/li&gt;    &lt;li&gt;Proceed through the normal restoration process:      &lt;ol&gt;       &lt;li&gt;Specify server (if necessary) &lt;/li&gt;        &lt;li&gt;Login to Windows Home Server &lt;/li&gt;        &lt;li&gt;Select PC that will be restored from &lt;/li&gt;        &lt;li&gt;Select specific backup to be restored from &lt;/li&gt;        &lt;li&gt;Use disk management tool to partition virtual hard disk as desired &lt;/li&gt;        &lt;li&gt;Proceed through normal restore process &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;Once the restoration is complete, allow the virtual machine to reboot and then turn off the virtual machine prior to it attempting to boot from the virtual hard disk for the first time. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;At the end of this process you'll end up with a VHD which contains the same files and disk layout that is stored in your backup database, enabling you archive this image to a duplicated share on your home server, burn to DVD, store on an external hard drive or otherwise put in a safe place.&lt;/p&gt;  &lt;p&gt;Now that we've got this giant file what can we do with it? Mount it!&lt;/p&gt;  &lt;h4&gt;Mounting&lt;/h4&gt;  &lt;p&gt;Ordinarily VHD files are only used with Virtual Machine software (Virtual PC, Virtual Server, Hyper-V, etc) but along with Virtual Server 2005 came an immensely useful tool called &lt;a href="http://technet.microsoft.com/en-us/library/cc708295.aspx"&gt;vhdmount&lt;/a&gt; which allows you to mount a VHD file as a local (potentially) read-only hard drive not unlike how Windows Home Server presents backups when doing a single file restore.&lt;/p&gt;  &lt;p&gt;To install vhdmount:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Download &lt;a href="http://www.microsoft.com/windowsserversystem/virtualserver/"&gt;Virtual Server 2005&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Run the installer &lt;/li&gt;    &lt;li&gt;Disable all features other than VHD Mount &lt;/li&gt;    &lt;li&gt;Proceed though install &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Once installed it's a simple matter of launching a command prompt (with Admin permissions under Vista or 2008), navigating to the location you installed Virtual Server (ex: C:\Program Files\Microsoft Virtual Server\) and proceed to the vhdmount directory and execute vhdmount.exe &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;vhdmount /m &amp;lt;path to vhd file&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Once mounted you should see a new disk in My Computer that you can read files from at will.&lt;/p&gt;  &lt;p&gt;Once done with the disk unmounting it is just as simple:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;vhdmount /u /d &amp;lt;path to vhd file&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;It is important to make sure that during the unmount the &lt;strong&gt;/d&lt;/strong&gt; flag is used as it causes any changes made to the VHD during the last mount to be discarded.&lt;/p&gt;  &lt;h4&gt;Other mounting options&lt;/h4&gt;  &lt;p&gt;With a couple of &lt;a href="http://blogs.msdn.com/virtual_pc_guy/archive/2006/09/01/734435.aspx"&gt;registry tweaks&lt;/a&gt; (used at your own risk) you can eliminate the need for working with the command line and simply be able to right click on VHD files to mount/unmount them at will.&lt;/p&gt;  &lt;p&gt;It's also worth noting that Windows Server 2008 has support similar to vhdmount built in, enabling you to &lt;a href="http://blogs.msdn.com/virtual_pc_guy/archive/2008/02/01/mounting-a-virtual-hard-disk-with-hyper-v.aspx"&gt;mount a VHD with Hyper-V&lt;/a&gt;.&lt;/p&gt;  &lt;h4&gt;Drawbacks&lt;/h4&gt;  &lt;p&gt;As good as even this option is... there are a few drawbacks that need to be considered:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Size&lt;/strong&gt; - While the Windows Home Server backup service does a great job with only storing a single instance of individual file clusters between multiple backup sets and PCs... no such benefit is had with a VHD where the actual file size is roughly the same as all of its contents and multiple archive VHDs from either the same or different PCs will be quite large as there is mechanism (using the above procedure) to have one VHD only contain what another doesn't.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;PC restoring&lt;/strong&gt; - While both a PC backup as it sits in the Windows Home Server backup database or a VHD file can be dumped to a physical hard disk... the process of doing so with a VHD is far more complicated and no where near as easy as it is with Windows Home Server.&lt;/p&gt;  &lt;h4&gt;Reducing size&lt;/h4&gt;  &lt;p&gt;Just after you restore your first hard drive with this method you'll notice something... VHD files are big... really big. It's not that the format is wasteful, it's that they contain a whole heck of a lot of stuff! Various tools exist to try to reduce the overall size but even they can only reduce the size so far.&lt;/p&gt;  &lt;p&gt;One not so quick but easy way to reduce the size even further is to take your favorite file compression application and use it to create a new archive containing the VHD... a task that can see huge size savings.&lt;/p&gt;  &lt;p&gt;Example:&lt;/p&gt;  &lt;p&gt;For my own little archiving project I took an 80 gig physical hard drive that was backed up to my server and restored it to a VHD which grew to 53.4 GB and after asking Virtual PC 2007 to try to shrink the disk... the size went down to 53.2 GB. Still thinking we could reduce the size a bit more I used the built in Windows Compressed (Zipped) Folder support to create a new zip file containing the VHD (ie right click, Send to -&amp;gt; Compressed (Zipped) Folder) and when it was all said and done 7.85 GB, ~14.7% of the original VHD size.&lt;/p&gt;  &lt;p&gt;To some a zip file may not be the the most ideal container for a VHD as it does take a little while to compress/decompress such a large file for use, one must make the decision for themselves on the tradeoff of speed/disk size. How quickly do they really need to be able to read something from what is intended to be an archive?&lt;/p&gt;  &lt;h4&gt;Wrapping things up&lt;/h4&gt;  &lt;p&gt;Windows Home Server works great for routinely backing up home PCs and securing their contents, for longer term archiving the system is less than ideal for archiving as the entire back-end is a closed and not a publicly documented system. While &lt;a href="http://download.microsoft.com/download/1/8/0/18096C95-4850-4176-9821-970691B98AAF/Windows_Home_Server_Home_Computer_Backup.pdf"&gt;backing up ones backup database&lt;/a&gt; from time to time can be done, pulling out just the drives we want to a more portable and open format using the existing built-in mechanisms provides for a lot more flexibility and security when archiving is the goal.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8934921" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/brendangrant/archive/tags/Windows+Home+Server/default.aspx">Windows Home Server</category><category domain="http://blogs.msdn.com/brendangrant/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category></item></channel></rss>