<?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 : Windows Home Server</title><link>http://blogs.msdn.com/brendangrant/archive/tags/Windows+Home+Server/default.aspx</link><description>Tags: Windows Home Server</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>“Ahhh green”</title><link>http://blogs.msdn.com/brendangrant/archive/2009/06/18/ahhh-green.aspx</link><pubDate>Thu, 18 Jun 2009 21:21:59 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9776966</guid><dc:creator>Brendan Grant</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/brendangrant/comments/9776966.aspx</comments><wfw:commentRss>http://blogs.msdn.com/brendangrant/commentrss.aspx?PostID=9776966</wfw:commentRss><description>&lt;p&gt;At times life can be pretty complicated... backing up your home PCs and safeguarding your family files shouldn’t be, and when designing Windows Home Server the conscious decision was made to try to limit the number of configuration knobs and simply the information given so that in the end managing the server and knowing the general health of your home network would be pretty easy, even from a distance.&lt;/p&gt;  &lt;p&gt;Instead of requiring an administrator to login daily or check their email to find out of anything had gone wrong, we bubble up a general health state which will alert not only the server administrator to potential problems, but also anyone else in the house.&lt;/p&gt;  &lt;p&gt;The most commonly seen is through a notification icon that sits next to the clock of each client PC:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/brendangrant/WindowsLiveWriter/Ahhgreen_9328/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/brendangrant/WindowsLiveWriter/Ahhgreen_9328/image_thumb_1.png" width="20" height="20" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Within the console we also display the same value:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/brendangrant/WindowsLiveWriter/Ahhgreen_9328/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/brendangrant/WindowsLiveWriter/Ahhgreen_9328/image_thumb.png" width="77" height="77" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This same can be seen on the front of many OEM built Home Servers such as on the &lt;a href="http://www.hp.com/united-states/campaigns/mediasmart-server/#/EXOverview/"&gt;HP MediaSmart EX485&lt;/a&gt;:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/brendangrant/WindowsLiveWriter/Ahhgreen_9328/HP_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="HP" border="0" alt="HP" src="http://blogs.msdn.com/blogfiles/brendangrant/WindowsLiveWriter/Ahhgreen_9328/HP_thumb.png" width="182" height="187" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;and the &lt;a href="http://us.acer.com/acer-v2/product.do?LanguageISOCtxParam=en&amp;amp;inu49e.current.c2att92=451&amp;amp;link=ln314e&amp;amp;CountryISOCtxParam=US&amp;amp;kcond47e.c2att92=451&amp;amp;rcond159e.att21k=1&amp;amp;kcond48e.c2att101=54825&amp;amp;rcond190e.att21k=1&amp;amp;acond23=US&amp;amp;sp=page17e&amp;amp;rcond157e.c2att92=451&amp;amp;ctx1g.c2att92=451&amp;amp;kcond50e.c2att92=451&amp;amp;rcond45e.att21k=1&amp;amp;rcond158e.c2att1=25&amp;amp;ctx2.c2att1=25&amp;amp;inu53e.current.c2att92=451&amp;amp;rcond44e.c2att1=25&amp;amp;rcond186e.c2att92=451&amp;amp;rcond189e.c2att1=25&amp;amp;ctx1.att21k=1&amp;amp;CRC=3001324579"&gt;Acer Aspire easyStore AH340-UA230N&lt;/a&gt;:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/brendangrant/WindowsLiveWriter/Ahhgreen_9328/Acer_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Acer" border="0" alt="Acer" src="http://blogs.msdn.com/blogfiles/brendangrant/WindowsLiveWriter/Ahhgreen_9328/Acer_thumb.png" width="204" height="187" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;With the above one can simply say “ahhh green” (or blue) and know that all is well in the home... at least with regards to ones data&lt;/p&gt;  &lt;p&gt;All of these work great... but require you to either be running the client tray app (with the “Display Network Health Notifications” option checked), be logged into the Home Server Console or be within visual range of ones Home Server. &lt;/p&gt;  &lt;p&gt;Did you know you can use this same information in your own applications?&lt;/p&gt;  &lt;p&gt;Unfortunately there is no quick and easy GetHealthState() method within the Windows Home Server SDK, instead the value is determined by going through each outstanding &lt;a href="http://msdn.microsoft.com/en-us/library/bb425850.aspx"&gt;Notification&lt;/a&gt; and determining if any exist that are marked as a Warning or Error... and if so we consider the overall state to be same as the most severe, non-suppressed notification.&lt;/p&gt;  &lt;p&gt;Over on MSDN there exists a bit of &lt;a href="http://msdn.microsoft.com/en-us/library/dd172104.aspx"&gt;sample code that demonstrates how to do this on demand&lt;/a&gt;, though with a few minor tweaks you can turn it into something more asynchronous that will alert you as to when the health has changed:&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; HealthChangedEventArgs : EventArgs&lt;/pre&gt;

  &lt;pre&gt;        {&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;public&lt;/span&gt; HealthState CurrentHealth { get; &lt;span class="kwrd"&gt;private&lt;/span&gt; set; }&lt;/pre&gt;

  &lt;pre&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;public&lt;/span&gt; HealthChangedEventArgs(HealthState health)&lt;/pre&gt;

  &lt;pre&gt;            {&lt;/pre&gt;

  &lt;pre class="alt"&gt;                &lt;span class="kwrd"&gt;this&lt;/span&gt;.CurrentHealth = health;&lt;/pre&gt;

  &lt;pre&gt;            }&lt;/pre&gt;

  &lt;pre class="alt"&gt;        }&lt;/pre&gt;

  &lt;pre&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;event&lt;/span&gt; EventHandler&amp;lt;HealthChangedEventArgs&amp;gt; HealthChanged;&lt;/pre&gt;

  &lt;pre&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; OnHealthChanged(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, HealthChangedEventArgs e)&lt;/pre&gt;

  &lt;pre&gt;        {&lt;/pre&gt;

  &lt;pre class="alt"&gt;            EventHandler&amp;lt;HealthChangedEventArgs&amp;gt; temp = HealthChanged;&lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (temp != &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;/pre&gt;

  &lt;pre class="alt"&gt;            {&lt;/pre&gt;

  &lt;pre&gt;                temp(sender, e);&lt;/pre&gt;

  &lt;pre class="alt"&gt;            }&lt;/pre&gt;

  &lt;pre&gt;        }&lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;        HealthState lastState;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;



.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;And then update the NotificationChanged function ever so slightly:&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; NotificationChanged(&lt;span class="kwrd"&gt;string&lt;/span&gt; UniqueID, WHS_Notification_Type Type, WHS_Notification_Severity Severity, &lt;span class="kwrd"&gt;int&lt;/span&gt; IsSuppressed, &lt;span class="kwrd"&gt;string&lt;/span&gt; textHeader, &lt;span class="kwrd"&gt;string&lt;/span&gt; textDescription, &lt;span class="kwrd"&gt;string&lt;/span&gt; helpFilename, &lt;span class="kwrd"&gt;string&lt;/span&gt; helpSection, &lt;span class="kwrd"&gt;string&lt;/span&gt; helpLinkText)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;        {&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;            NotificationItem item = &lt;span class="kwrd"&gt;new&lt;/span&gt; NotificationItem(UniqueID, Severity, IsSuppressed, textHeader, textDescription, helpFilename, helpSection, helpLinkText);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;            &lt;span class="rem"&gt;//if an add, add/overwrite item to existing list&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (Type == WHS_Notification_Type.WHS_NOTIFICATION_ADD)&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;            {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;                notificationItems[item.UniqueID] = item;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;            }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;            &lt;span class="kwrd"&gt;else&lt;/span&gt; &lt;span class="kwrd"&gt;if&lt;/span&gt; (Type == WHS_Notification_Type.WHS_NOTIFICATION_REMOVE)&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;            {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;                &lt;span class="rem"&gt;//If remove, if item exists remove it&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (notificationItems.ContainsKey(item.UniqueID))&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;                {&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;                    notificationItems.Remove(item.UniqueID);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;                }&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;            }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;            &lt;span class="rem"&gt;//Get current health, if different than last, raise event of new state&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;            HealthState currentState = GetHealthState();&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (currentState != lastState)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;            {&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;                lastState = currentState;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;                OnHealthChanged(&lt;span class="kwrd"&gt;this&lt;/span&gt;, &lt;span class="kwrd"&gt;new&lt;/span&gt; HealthChangedEventArgs(currentState));&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;            }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;        }&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;



.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;It’s just that simple.&lt;/p&gt;

&lt;p&gt;Best of all... this code can be run on the server or on any client PC that is joined to a Windows Home Server and where both are running and communicating, recently &lt;a href="http://www.homeserverhacks.com/"&gt;MVP Donovan West&lt;/a&gt; recently released his first add-in, &lt;a href="http://www.homeserverhacks.com/2009/05/give-your-windows-home-server-its-own.html"&gt;@WHSTweet&lt;/a&gt; which publishes your health to twitter for remote monitoring using this same information.&lt;/p&gt;

&lt;p&gt;Next week I’ll show another simple way you can take this information and leverage it to find out your general health from afar...ish.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9776966" 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></item><item><title>New APIs in Power Pack 2!</title><link>http://blogs.msdn.com/brendangrant/archive/2009/03/25/new-apis-in-power-pack-2.aspx</link><pubDate>Thu, 26 Mar 2009 02:01:12 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9508809</guid><dc:creator>Brendan Grant</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/brendangrant/comments/9508809.aspx</comments><wfw:commentRss>http://blogs.msdn.com/brendangrant/commentrss.aspx?PostID=9508809</wfw:commentRss><description>&lt;p&gt;Pssst, I've got a not so little secret for you.&lt;/p&gt;  &lt;p&gt;No, it's not that the &lt;a href="http://blogs.technet.com/homeserver/archive/2009/03/23/windows-home-server-announcing-power-pack-2.aspx"&gt;English version of Power Pack 2&lt;/a&gt; went live on Windows Update yesterday.&lt;/p&gt;  &lt;p&gt;It's not even that Windows Home Server has at long last &lt;a href="http://blogs.technet.com/homeserver/archive/2009/03/23/windows-home-server-now-available-on-msdn.aspx"&gt;reached MSDN and TechNet&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;What could be bigger than either of those?&lt;/p&gt;  &lt;p&gt;How about the fact that there are quite a few new APIs in Power Pack 2, things that are easy to miss if you aren't in the habit of examining every single new binary that comes as part of a QFE or Power Pack or scouring the &lt;a href="http://msdn.microsoft.com/en-us/library/bb425866.aspx"&gt;Windows Home Server SDK portal&lt;/a&gt; for changes (though I am a fan of both).&lt;/p&gt;  &lt;p&gt;These new APIs ultimately come in two flavors... some changes are things that have been shipping as part of previous QFE's for quite a few months, while others are things that are new in Power Pack 2... in either case all are now officially documented on MSDN.&lt;/p&gt;  &lt;p&gt;What are they? &lt;/p&gt;  &lt;h5&gt;Microsoft.HomeServer.SDK.Interop.v1.dll&lt;/h5&gt;  &lt;p&gt;Rather than describe each of these, I am going to let their names speak for them and what they can do:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.homeserver.sdk.interop.v1.idiskinfo2.aspx"&gt;IDiskInfo2&lt;/a&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.homeserver.sdk.interop.v1.idiskinfo2.locationdisplayname.aspx"&gt;LocationDisplayName&lt;/a&gt;&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.homeserver.sdk.interop.v1.ishareinfo2.aspx"&gt;IShareInfo2&lt;/a&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.homeserver.sdk.interop.v1.ishareinfo2.getpermissions.aspx"&gt;GetPermissions()&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.homeserver.sdk.interop.v1.ishareinfo2.setpermissions.aspx"&gt;SetPermissions()&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.homeserver.sdk.interop.v1.ishareinfo2.guid.aspx"&gt;GUID&lt;/a&gt;&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.homeserver.sdk.interop.v1.iuserinfo.aspx"&gt;IUserInfo&lt;/a&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.homeserver.sdk.interop.v1.iuserinfo.enabled.aspx"&gt;Enabled&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.homeserver.sdk.interop.v1.iuserinfo.firstname.aspx"&gt;FirstName&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.homeserver.sdk.interop.v1.iuserinfo.lastname.aspx"&gt;LastName&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.homeserver.sdk.interop.v1.iuserinfo.logonname.aspx"&gt;LogOnName&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.homeserver.sdk.interop.v1.iuserinfo.passwordstrength.aspx"&gt;PasswordStrength&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.homeserver.sdk.interop.v1.iuserinfo.remoteallowed.aspx"&gt;RemoteAllowed&lt;/a&gt;&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.homeserver.sdk.interop.v1.iwhsinfo2.aspx"&gt;IWHSInfo2&lt;/a&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.homeserver.sdk.interop.v1.iwhsinfo2.createshare.aspx"&gt;CreateShare()&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.homeserver.sdk.interop.v1.iwhsinfo2.getshareinfo2.aspx"&gt;GetShareInfo2()&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.homeserver.sdk.interop.v1.iwhsinfo2.getusersinfo.aspx"&gt;GetUsersInfo()&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.homeserver.sdk.interop.v1.iwhsinfo2.removeshare.aspx"&gt;RemoveShare()&lt;/a&gt;&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;But wait... there's more!&lt;/p&gt;  &lt;h5&gt;HomeServerExt.dll&lt;/h5&gt;  &lt;p&gt;Back in Console land we've long had the ability to &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.homeserver.extensibility.iconsoleservices.opensettings.aspx"&gt;open an arbitrary Settings page&lt;/a&gt; (provided we know it's guid) or a &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.homeserver.extensibility.iconsoleservices.openurl.aspx"&gt;URL on the client PC&lt;/a&gt;... did you know you can also select a specific console tab? With a few tweaks to IConsoleServices you can:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.homeserver.extensibility.iconsoleservices.aspx"&gt;IConsoleServices&lt;/a&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.homeserver.extensibility.iconsoleservices.gettab.aspx"&gt;GetTab&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.homeserver.extensibility.iconsoleservices.gettabs.aspx"&gt;GetTabs&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.homeserver.extensibility.iconsoleservices.opentab.aspx"&gt;OpenTab&lt;/a&gt;&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;Each of the above methods rely on the new &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.homeserver.extensibility.tabidentifierattribute.aspx"&gt;TabIdentifier attribute&lt;/a&gt; which can be used to decorate an &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.homeserver.extensibility.iconsoletab.aspx"&gt;IConsoleTab&lt;/a&gt; implementer so that other applications.&lt;/p&gt;  &lt;p&gt;While many of the first set of APIs will likely be very useful to 3rd party developers, these last bits were added primarily with OEMs in mind who desired a way to be able to easily guide a user through setting up of their new Windows Home Server.&lt;/p&gt;  &lt;h5&gt;Add-in EULAs&lt;/h5&gt;  &lt;p&gt;For an add-in to be installed via the Windows Home Server Console it must support 'silent' installation which prevents it from using the normal MSI mechanisms for popping a EULA in the face of a user and recurring their consent before continuing.&lt;/p&gt;  &lt;p&gt;For companies targeting Windows Home Server with products that required a EULA, they would often require that the user log into their server with Remote Desktop and manually kick off a normal MSI. This work around works, but isn't the best user experience and as a result we had some OEMs and others asking for some ability to pop a EULA at install time.&lt;/p&gt;  &lt;p&gt;With Power Pack 2 installed, a developer or company can include a EULA with their installer and when the user goes to install it via the console, they will be prompted for their agreement:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/brendangrant/WindowsLiveWriter/EULA_C71F/image_4.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/brendangrant/WindowsLiveWriter/EULA_C71F/image_thumb_1.png" width="489" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;What does it take for a developer to use this?&lt;/p&gt;  &lt;p&gt;Assuming that you have an add-in named... MyAddin.msi located in the &lt;a href="file://\\servername\Software\Add-ins"&gt;\\&lt;em&gt;servername&lt;/em&gt;\Software\Add-Ins\&lt;/a&gt; directory, then a developer need only include a file named MyAddin.rtf as well, and if this file is present then we will pop the &lt;a href="http://msdn.microsoft.com/en-us/library/cc766792.aspx"&gt;EULA dialog&lt;/a&gt;, if not things will work as they previously have.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9508809" 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/Power+Pack+2/default.aspx">Power Pack 2</category></item><item><title>Windows Home Server Power Pack 2 Released</title><link>http://blogs.msdn.com/brendangrant/archive/2009/03/24/windows-home-server-power-pack-2-released.aspx</link><pubDate>Tue, 24 Mar 2009 21:30:45 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9504917</guid><dc:creator>Brendan Grant</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/brendangrant/comments/9504917.aspx</comments><wfw:commentRss>http://blogs.msdn.com/brendangrant/commentrss.aspx?PostID=9504917</wfw:commentRss><description>&lt;p&gt;Have you looked on Windows Update lately? No? You should... at least if you are a running an English version of Windows Home Server.&lt;/p&gt;  &lt;p&gt;Why so? This morning we just released Power Pack 2 to Windows Update!&lt;/p&gt;  &lt;p&gt;What do you need to get it? Just make sure automatic updates are enabled and you'll get it automatically tonight, otherwise you can manually run Windows Update from the console and after a reboot you'll have installed and ready:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/brendangrant/WindowsLiveWriter/e1565ef5f638_C95E/image_4.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/brendangrant/WindowsLiveWriter/e1565ef5f638_C95E/image_thumb_1.png" width="639" height="519" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;No... Power Pack 2 does not include Windows Media Center... but with this update, computers that are running Windows Media Center can now connect to your home server to save and play content that is stored in shared folders!&lt;/p&gt;  &lt;p&gt;For more details on what Power Pack 2 includes, see &lt;a href="http://go.microsoft.com/fwlink/?LinkId=84725"&gt;the release notes&lt;/a&gt;, the main &lt;a href="http://blogs.technet.com/homeserver/archive/2009/03/23/windows-home-server-announcing-power-pack-2.aspx"&gt;Windows Home Server blog&lt;/a&gt; as well on &lt;a href="http://www.wegotserved.co.uk/2009/03/24/windows-home-server-power-pack-2-delivers-first-shoots-of-media-center-integration/"&gt;We Got Served&lt;/a&gt;, &lt;a href="http://mswhs.com/2009/03/24/power-pack-2-is-here/"&gt;MSWHS&lt;/a&gt;, &lt;a href="http://www.mediasmartserver.net/2009/03/23/microsoft-releases-windows-home-server-power-pack-2/"&gt;MediaSmartServer.net&lt;/a&gt; and countless other sites.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9504917" 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/Power+Pack+2/default.aspx">Power Pack 2</category></item><item><title>Windows Home Server and Netbooks</title><link>http://blogs.msdn.com/brendangrant/archive/2009/03/15/windows-home-server-and-netbooks.aspx</link><pubDate>Sun, 15 Mar 2009 19:41:27 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9479313</guid><dc:creator>Brendan Grant</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/brendangrant/comments/9479313.aspx</comments><wfw:commentRss>http://blogs.msdn.com/brendangrant/commentrss.aspx?PostID=9479313</wfw:commentRss><description>&lt;p&gt;Commenter &lt;a href="http://blogs.msdn.com/brendangrant/archive/2009/03/13/why-not-have-email-in-windows-home-server.aspx#9479214"&gt;JohnCz recently suggested&lt;/a&gt;: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Perhaps one day we'll see WHS OEMs offer a free netbook with WHS purchase.&amp;#160; Or perhaps a WHS bundled with an extender is on the horizon.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;While I can’t say when or if either will happen (partially due to pesky little NDAs, but mostly because I don’t know), it should be noted that from a marketing perspective something similar is already happening. Recently our friends at Acer recently launched the &lt;a href="http://www.engadget.com/2009/02/26/acers-easystore-h340-says-hello-atom-hello-windows-home-server"&gt;Acer easyStore H340&lt;/a&gt; in Japan and as part of their retail strategy there are selling it alongside one of their netbook models:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/brendangrant/WindowsLiveWriter/WindowsHomeServerandNetbooks_85DC/DSCN0815_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="DSCN0815" border="0" alt="DSCN0815" src="http://blogs.msdn.com/blogfiles/brendangrant/WindowsLiveWriter/WindowsHomeServerandNetbooks_85DC/DSCN0815_thumb.jpg" width="604" height="454" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Here’s hoping we’ll see similar display setups if/when the H340 comes stateside.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9479313" 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/Retail/default.aspx">Retail</category></item><item><title>Why not have email in Windows Home Server?</title><link>http://blogs.msdn.com/brendangrant/archive/2009/03/13/why-not-have-email-in-windows-home-server.aspx</link><pubDate>Fri, 13 Mar 2009 19:38:20 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9473367</guid><dc:creator>Brendan Grant</dc:creator><slash:comments>17</slash:comments><comments>http://blogs.msdn.com/brendangrant/comments/9473367.aspx</comments><wfw:commentRss>http://blogs.msdn.com/brendangrant/commentrss.aspx?PostID=9473367</wfw:commentRss><description>&lt;p&gt;An often asked question by some of the more advanced users of Windows Home Server has been &amp;quot;Why doesn't it include built in support for hosting my own email on it?&amp;quot;&lt;/p&gt;  &lt;p&gt;The are two primary reasons, the most important being the fact that most users simply didn't want it.&lt;/p&gt;  &lt;p&gt;Back in 2004 or so when the &lt;a href="http://en.wikipedia.org/wiki/Skunk_works"&gt;skunkworks&lt;/a&gt; project that eventually became Windows Home Server first was getting rolling, various studies were performed to best understand what users really wanted and expected from a Home Server.&lt;/p&gt;  &lt;p&gt;Of those users with broadband internet connections (the target market for Windows Home Server) 86% were already &amp;quot;very satisfied&amp;quot; with their existing email which is pretty significant considering that when you broke down what services respondents were using, about ~50% of those using their provided ISP account, while another ~50% another uses one of the major web mail providers (Hotmail, Gmail, etc). Note that these two groups are not mutually exclusive as there company email and existing vanity domain based email and there still exists plenty of room for overlap.&lt;/p&gt;  &lt;p&gt;Back then For those who want email on their own vanity domain one would have to contract with a company for web hosting and get the email included or use a straight email provider, both of which would likely cost them a few bucks per month. If they wanted a more advanced mail server (like &lt;a href="http://www.microsoft.com/exchange/default.mspx"&gt;Exchange&lt;/a&gt;) they would likely pay significantly more.&lt;/p&gt;  &lt;p&gt;Now though, with services like &lt;a href="http://domains.live.com/"&gt;Windows Live Admin Center&lt;/a&gt; (formerly known as Windows Live Custom Domains)... you can use &lt;a href="http://www.hotmail.com/"&gt;Hotmail&lt;/a&gt; and all of the spam fighting and organizational tools it provides for free as the back-end for your own custom domain, all you have to do is provide the domain name and an &lt;a href="http://en.wikipedia.org/wiki/MX_record"&gt;MX record&lt;/a&gt;... which is a good thing if your home network ever goes down.&lt;/p&gt;  &lt;p&gt;Practically speaking... consider this hypothetical case:&lt;/p&gt;  &lt;p&gt;Imagine you have a house/apartment fire and on your way out, after making sure the kids and spouse are out the door ahead of you, and that the dog and cat are safe, you stop to grab your Windows Home Server knowing that even if the desktops and laptops go, you'll have all of the files and backups you need... what then?&lt;/p&gt;  &lt;p&gt;Even if your home isn't a complete loss, you may not be able to setup your email serving Windows Home Server there again right away due to the possibility of water damage or electrical issues. Where do you run your server in the mean time? The in laws house? The hotel room? Tethered to your cell phone?&lt;/p&gt;  &lt;p&gt;These are the kinds of issues that the average data center and/or enterprise has to think about in order to provide a given level of reliability and is not something a Home Server owner, even an advanced one should have to think about to ensure that they can keep sending and receiving email.&lt;/p&gt;  &lt;p&gt;This is part of why the &lt;a href="http://www.microsoft.com/azure/default.mspx"&gt;Azure Services Platform&lt;/a&gt; and related &lt;a href="http://dev.live.com/"&gt;Live Services&lt;/a&gt; are so interesting to watch as time goes on as it simplifies so much of the complexity behind having multiple data center class reliability and availability and while there certainly are aspects of a product like Windows Home Server that could take advantage of 'cloud services', it is unlikely that that it will ever be fully replaced by such a platform.&lt;/p&gt;  &lt;p&gt;Lets face it, services like Live Mesh is great... but it *only* gives you 5 gigs in the cloud for free. Why be limited to 5 gigs when I can have 5 TB on my Home Server for just a few dollars more and possibly replicate a subset of those files (my most important ones) to the cloud?&lt;/p&gt;  &lt;p&gt;Above I said there were two reasons... the second is that there is already a Microsoft server product which is almost as easy to use as Windows Home Server and provides email... it's called &lt;a href="http://www.microsoft.com/sbs/en/us/default.aspx"&gt;Windows Small Business Server 2008&lt;/a&gt; which not only has email through Exchange, but SharePoint, Forefront, SQL Server, WSUS and far far more and is intended those customers and businesses who want the kind of on premises services like email, which as I said is less the case with Windows Home Server users.&lt;/p&gt;  &lt;p&gt;Sure SBS 2008, it doesn't do everything Windows Home Server can... sometimes though two boxes/products/services/etc are required instead of one, just as we've seen with &lt;a href="http://blogs.technet.com/homeserver/archive/2008/09/04/10-computers-10-users.aspx"&gt;Windows Home Server's 10 PC and 10 user limit&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9473367" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/brendangrant/archive/tags/Windows+Home+Server/default.aspx">Windows Home Server</category></item><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>Partners Rock!</title><link>http://blogs.msdn.com/brendangrant/archive/2008/09/12/partners-rock.aspx</link><pubDate>Fri, 12 Sep 2008 20:41:24 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8947600</guid><dc:creator>Brendan Grant</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/brendangrant/comments/8947600.aspx</comments><wfw:commentRss>http://blogs.msdn.com/brendangrant/commentrss.aspx?PostID=8947600</wfw:commentRss><description>&lt;p&gt;As great as Windows Home Server is on its own... it's nothing without partners who take what we give them, create a full solution (hardware and software) and make it available directly to consumers while offering value above and beyond what we could put in the software box.&lt;/p&gt;  &lt;p&gt;&amp;lt;Why does this blasted marketing hat keep jumping onto my head?&amp;gt;&lt;/p&gt;  &lt;p&gt;On Wednesday and Thursday this week the Windows Home Server team played host to a number of partners who came to campus, learned about our product roadmap, had a deep dive into some of the nitty-gritty bits of &lt;a href="http://download.microsoft.com/download/2/F/C/2FC09C20-587F-4F16-AA33-C6C4C75FB3DD/Windows_Home_Server_Drive_Extender.pdf"&gt;Drive Extender&lt;/a&gt;, saw a couple of demos of things we were working on, and spent plenty of 1:1 time with members of the Windows Home Server to discuss how they might be better able to take advantage of the underlying platform as well as what we could do in future versions to make their solutions even more valuable and easier to build/market/support/etc.&lt;/p&gt;  &lt;p&gt;In attendance were ISV, OEM, IHV and chipset partners both big and small, many with names that you know from the industry or the Windows Home Server community. Some who currently ship complete Windows Home Server solutions or add-ins... while others make possible existing solutions through their own hardware or software.&lt;/p&gt;  &lt;p&gt;So to those who came, saw, listened and offered feedback... thank you!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8947600" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/brendangrant/archive/tags/Windows+Home+Server/default.aspx">Windows Home Server</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><item><title>Developer Guidelines</title><link>http://blogs.msdn.com/brendangrant/archive/2008/09/03/developer-guidelines.aspx</link><pubDate>Wed, 03 Sep 2008 20:42:06 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8922370</guid><dc:creator>Brendan Grant</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/brendangrant/comments/8922370.aspx</comments><wfw:commentRss>http://blogs.msdn.com/brendangrant/commentrss.aspx?PostID=8922370</wfw:commentRss><description>&lt;p&gt;With the release of Power Pack 1 we were able to give the &lt;a href="http://msdn.microsoft.com/en-us/library/cc512455.aspx"&gt;Windows Home Server SDK documentation&lt;/a&gt; over on MSDN a nice update to clarify a number of things that were not clear, update examples to work better in Visual Studio 2008 and other useful bits.&lt;/p&gt;  &lt;p&gt;One area we were not able to update as fully as we would have liked there was on the subject of developer guidelines and guidance with regards to how to use the SDK. This is important because Windows Home Server is a rather unique product in that it is generally headless which often means the best kind of applications to take advantage of it should not require a UI beyond configuration within the Admin Console.&lt;/p&gt;  &lt;p&gt;In support of this, very recently we released a &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FD907752-0DB0-4A6F-846D-974C19CD08FE&amp;amp;displaylang=en"&gt;17 page Word document&lt;/a&gt; that walks through some of the suggested principals to consider when developing software for Windows Home Server with regards to overall architecture as well as how an add-in can best visually integrate with the Console.&lt;/p&gt;  &lt;p&gt;Link: &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FD907752-0DB0-4A6F-846D-974C19CD08FE&amp;amp;displaylang=en"&gt;Windows Home Server Developer Guidelines&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8922370" 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></item><item><title>Blocked Tabs</title><link>http://blogs.msdn.com/brendangrant/archive/2008/06/09/blocked-tabs.aspx</link><pubDate>Tue, 10 Jun 2008 01:00:22 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8587609</guid><dc:creator>Brendan Grant</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/brendangrant/comments/8587609.aspx</comments><wfw:commentRss>http://blogs.msdn.com/brendangrant/commentrss.aspx?PostID=8587609</wfw:commentRss><description>&lt;p&gt;A pain point for some users of Windows Home Server has been around third-party add-ins where loading many of them might cause the Home Server Console to take forever to load or worse... not load at all because of a crash within an add-in on startup.&lt;/p&gt;  &lt;p&gt;One of the improvements in Power Pack 1 is the inclusion of some code to watch out for tabs that take too long or throw exceptions on load. If either of those occur the Console will stop trying to load it and on next load of the Console offer the user the choice if they want to continue to try to use it:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/brendangrant/WindowsLiveWriter/BlockedTabs_8A14/WHS%20-%20Load%20Without%20File_2.png"&gt;&lt;img title="WHS - Load Without File" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="190" alt="WHS - Load Without File" src="http://blogs.msdn.com/blogfiles/brendangrant/WindowsLiveWriter/BlockedTabs_8A14/WHS%20-%20Load%20Without%20File_thumb.png" width="616" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This new mechanism offers the user to the opportunity to try know that there is an issue rather than just dealing with a completely broken Console or worse... silent failure.&lt;/p&gt;  &lt;p&gt;Each time the Console is reloaded the user will be prompted for each add-in that is causing problems, if they click No and the add-in successfully loads then they wont see the prompt until/if it fails again. If they click Yes then they will be prompted again next time the Console loads*.&lt;/p&gt;  &lt;p&gt;The absence of an &amp;quot;Always Ignore&amp;quot; was by design so as to make sure the user is aware of any problematic add-ins so they will be more likely remember to uninstall it rather than keep on silently suppressing such errors.&lt;/p&gt;  &lt;p&gt;Like the sound of this feature? Remember... it's just one of the new features that can be seen today in the &lt;a href="http://connect.microsoft.com/windowshomeserver"&gt;Release Candidate of Power Pack 1&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;* 'Console loads' refers to when the actual Console process on the server starts, not when you connect/reconnect via the client connector which will attempt to connect to an already running copy of the Console on the server.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8587609" 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/Power+Pack+1/default.aspx">Power Pack 1</category></item><item><title>Windows Home Server Power Pack 1 RC Released</title><link>http://blogs.msdn.com/brendangrant/archive/2008/06/09/windows-home-server-power-pack-1-rc-released.aspx</link><pubDate>Mon, 09 Jun 2008 23:32:51 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8587318</guid><dc:creator>Brendan Grant</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/brendangrant/comments/8587318.aspx</comments><wfw:commentRss>http://blogs.msdn.com/brendangrant/commentrss.aspx?PostID=8587318</wfw:commentRss><description>&lt;p&gt;I'm thrilled to announce just minutes ago the powers that be here &lt;a href="http://blogs.technet.com/homeserver/archive/2008/06/09/windows-home-server-power-pack-1-public-beta.aspx"&gt;flipped the switch to release the much anticipated Release Candidate of Windows Home Server Power Pack 1&lt;/a&gt; to the to the world!&lt;/p&gt;  &lt;p&gt;To quote some of the marketing bits:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Microsoft is pleased to deliver the Release Candidate of Windows Home Server Power Pack 1 for public testing, available at &lt;u&gt;&lt;a href="http://connect.microsoft.com/windowshomeserver"&gt;http://connect.microsoft.com/windowshomeserver&lt;/a&gt;&lt;/u&gt;.&amp;#160; We are looking forward to feedback from the Windows Home Server community and releasing the final version.&amp;#160;&amp;#160; &lt;/li&gt;    &lt;li&gt;Power Pack 1 provides a range of new enhancements, including support for home computers running Windows Vista x64 editions, backup of home server Shared Folders, improvements to remote access, more efficient power consumption, improved performance and support for the Chinese and Japanese languages. &lt;/li&gt;    &lt;li&gt;Power Pack 1 also resolves the data corruption issue experienced by a very small set of customers. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;If you decide to test this RC, please ensure you have a complete backup of all of your files. While internal testing so far indicates that we have fixed the data corruption bug in the beta release, the whole point of this release candidate is to validate internal testing. This means there is a risk that our internal tests have not detected all issues.&lt;/p&gt;  &lt;p&gt;For those not keen on installing beta bits on their production machine, you can download an Evaluation copy of Windows Home Server from the Connect site and then apply the &lt;a href="https://connect.microsoft.com/WindowsHomeServer/Downloads/DownloadDetails.aspx?DownloadID=12614"&gt;update package&lt;/a&gt; to it.&lt;/p&gt;  &lt;p&gt;No matter how you decide to try it, please be sure to take a look at the &lt;a href="https://connect.microsoft.com/WindowsHomeServer/Downloads/DownloadDetails.aspx?DownloadID=12549"&gt;release notes&lt;/a&gt; to see what has changed.&lt;/p&gt;  &lt;p&gt;What are you waiting for? &lt;a href="http://connect.microsoft.com/windowshomeserver"&gt;Get the RC&lt;/a&gt;!&lt;/p&gt;  &lt;p&gt;Important Links:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://blogs.technet.com/homeserver/archive/2008/06/09/windows-home-server-power-pack-1-public-beta.aspx"&gt;Official announcement on the Windows Home Server Team Blog&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://forums.microsoft.com/WindowsHomeServer/ShowForum.aspx?ForumID=2139&amp;amp;SiteID=50"&gt;Power Pack 1 Beta Forum&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://connect.microsoft.com/windowshomeserver"&gt;Windows Home Server Connect Site&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="https://connect.microsoft.com/WindowsHomeServer/Downloads/DownloadDetails.aspx?DownloadID=12549"&gt;Release Notes&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8587318" 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/Power+Pack+1/default.aspx">Power Pack 1</category></item></channel></rss>