<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.adopenstatic.com/cs/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>Ken Schaefer</title><link>http://www.adopenstatic.com/cs/blogs/ken/default.aspx</link><description>200 OK :: Internet Information Services, ASP.NET and other sundry things</description><dc:language>en</dc:language><generator>CommunityServer 2.1 (Build: 60809.935)</generator><item><title>Debugging an IIS / SharePoint performance issue using WinDBG</title><link>http://www.adopenstatic.com/cs/blogs/ken/archive/2009/06/30/24910.aspx</link><pubDate>Wed, 01 Jul 2009 11:19:00 GMT</pubDate><guid isPermaLink="false">e0e31441-78b9-4457-b9b0-6f7906e03e71:24910</guid><dc:creator>Ken</dc:creator><slash:comments>0</slash:comments><comments>http://www.adopenstatic.com/cs/blogs/ken/comments/24910.aspx</comments><wfw:commentRss>http://www.adopenstatic.com/cs/blogs/ken/commentrss.aspx?PostID=24910</wfw:commentRss><wfw:comment>http://www.adopenstatic.com/cs/blogs/ken/rsscomments.aspx?PostID=24910</wfw:comment><description>&lt;p&gt;After a recent SharePoint 2007 migration exercise at a large customer, we started experiencing performance issues reported by end users when the system was under load. In the Windows Event Logs we saw the following event:&lt;/p&gt;&lt;p&gt;Event Type: Warning&lt;br /&gt;Event Source: W3SVC-WP&lt;br /&gt;Event ID: 2262&lt;br /&gt;Description:&lt;br /&gt;ISAPI &amp;#39;C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll&amp;#39; reported itself as unhealthy for the following reason: &amp;#39;Deadlock detected&amp;#39;. &lt;/p&gt;&lt;p&gt;IIS 6.0 would shortly recycle the web application pool, but during that period users directed to that WFE server by the load balancer weren&amp;#39;t able to have their requests served. After looking through obvious causes, we ended up obtaining a dump file of the worker process. We used the process of &lt;a href="http://support.microsoft.com/kb/828222" title="KB 828222: Orphan Worker Process" target="_blank"&gt;orphaning a worker process&lt;/a&gt; but a dump file can just as easily be obtained using common tools such as IISState or IIS DebugDiag.&lt;/p&gt;&lt;p&gt;Once the dump file was obtained I performed the following analysis.&lt;/p&gt;&lt;p&gt;Start WinDBG and point it the dump file. WinDBG is part of the &lt;a href="http://www.microsoft.com/whdc/devtools/debugging/default.mspx" title="Debugging Tools for Windows: Microsoft.com" target="_blank"&gt;Debugging Tools for Windows&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Since this is a SharePoint issue, I suspected that we may need to investigate both managed and native code. To assist with debugging managed code we need to do a bit of extra preparatory work:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div&gt;Load the SOS (Son of Strike) extension: .load SOS&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Make available a copy of mscordacwks.dll to WinDBG. Note that this has to match the version on the server where the dump file was taken from. It&amp;#39;s easiest to just copy this from the server (from the %systemroot%\Microsoft.Net\Framework\&amp;lt;frameworkVersion&amp;gt; folder. It will have to be renamed to mscordacwks_xxx_xxx_2.0.50727.yyyy.dll&amp;nbsp;- where XXX is either I386 or AMD64 depending on the platform, and yyyy is the version number (this can be found by right-clicking on the .dll file and checking the version number). WinDBG will tell you what the actual filename you need is if you get it wrong. You can just copy-n-paste that value to assist in renaming the file&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;To make available this file copy it into a folder of your choosing and add it to the WinDBG symbols path. I copied it into c:\temp, and to add that to the path type: .sympath+ c:\temp&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Add the Microsoft public&amp;nbsp;symbol server to the path (if it isn&amp;#39;t already). To do this type: .symfix&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Now acquire symbols for Microsoft modules in the dump by typing in: .reload&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Now we can begin analysis of the dump file. The first command gives us an indication of how long threads have been running in the process:&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:'Courier New';font-size:8pt;"&gt;0:031&amp;gt; !runaway&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:8pt;"&gt;&amp;nbsp;User Mode Time&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:8pt;"&gt;&amp;nbsp; Thread&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Time&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:8pt;"&gt;&amp;nbsp; 13:1218&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 days 0:00:56.437&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:8pt;"&gt;&amp;nbsp; 37:138c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 days 0:00:32.718&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:8pt;"&gt;&amp;nbsp; 31:b80&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 days 0:00:32.406&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:8pt;"&gt;&amp;nbsp; 43:1208&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 days 0:00:30.125&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:8pt;"&gt;&amp;nbsp; 33:17ec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 days 0:00:23.578&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:8pt;"&gt;&amp;nbsp; 38:fa8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 days 0:00:14.937&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:8pt;"&gt;&amp;nbsp; 36:147c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 days 0:00:13.609&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:8pt;"&gt;&amp;nbsp; 40:1680&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 days 0:00:11.468&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:8pt;"&gt;&amp;nbsp; 15:153c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 days 0:00:08.359&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:8pt;"&gt;&amp;nbsp; 44:15a4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 days 0:00:07.968&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:8pt;"&gt;&amp;nbsp; 16:12e4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 days 0:00:06.968&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:8pt;"&gt;&amp;nbsp; 27:1554&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 days 0:00:05.750&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:8pt;"&gt;&amp;nbsp; 25:16b0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 days 0:00:05.656&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:8pt;"&gt;&amp;nbsp; 24:15f8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 days 0:00:05.453&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:8pt;"&gt;&amp;nbsp; 35:17a8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 days 0:00:05.406&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:8pt;"&gt;&amp;nbsp; 26:d98&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 days 0:00:05.359&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:8pt;"&gt;&amp;nbsp; 41:cb0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 days 0:00:05.296&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:8pt;"&gt;&amp;nbsp; 11:d50&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 days 0:00:05.031&lt;/span&gt;&lt;/p&gt;&lt;p&gt;We can see here that we have quite a few very long running threads (there were 71 threads in total in this dump file - I have truncated the list).&lt;/p&gt;&lt;p&gt;The next step is to have a look at the longest running threads and see what they are doing. To change to a thread type: ~&amp;lt;threadnumber&amp;gt; s. In this case we change to thread 13 (the longest running thread) and then dump the unmanaged stack:&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;0:013&amp;gt; ~13 s&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;ntdll!NtWaitForSingleObject+0xa:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;00000000`77ef0a3a c3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;0:013&amp;gt; k&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;Child-SP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RetAddr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call Site&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;00000000`0309aa68 000007ff`771d5280 ntdll!NtWaitForSingleObject+0xa&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;00000000`0309aa70 000007ff`7731173e mswsock!WSPRecv+0x66b&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;00000000`0309abb0 000007ff`770f3518 ws2_32!WSARecv+0x166&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;00000000`0309ac60 000007ff`72499c0e wsock32!recv+0x38&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;00000000`0309acc0 000007ff`5fe51ae7 dbnetlib!ConnectionRead+0x4fe&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;00000000`0309ada0 000007ff`5fe52f2d sqloledb!CDataSource::ConnectionTransact+0xf7&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;00000000`0309ae20 000007ff`5feaac34 sqloledb!CDBConnection::SendPacket+0x25d&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;00000000`0309aee0 000007ff`5fe44b69 sqloledb!CStmt::SQLExecRPC+0x4d4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;00000000`0309aff0 000007ff`5fe45df3 sqloledb!CCommand::ExecuteHelper+0x2a9&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;00000000`0309b090 000007ff`5fe46cc7 sqloledb!CCommand::Execute+0xc73&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;00000000`0309b180 000007ff`5aa0e4cc sqloledb!CImpICommandText::Execute+0x187&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;00000000`0309b200 000007ff`5aa0f65b oledb32!CCommandText::DoExecute+0x4fc&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;00000000`0309b440 00000000`0a913a72 oledb32!CCommandText::Execute+0x8ab&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;00000000`0309b6f0 00000000`0a84241f STSWEL!Voledb::ExecQuery+0x37e&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;00000000`0309b850 00000000`0a8846bd STSWEL!VdocumentStore::httpGetDocument+0xbdf&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;00000000`0309c850 00000000`0a886720 STSWEL!VhttpManager::loadFileCore+0x5c5&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;00000000`0309d0f0 00000000`3569fa9b STSWEL!VhttpManager::loadFileAndMetaInfo+0xc4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;00000000`0309d1b0 00000000`356aaa8c OWSSVR!GetExtensionVersion+0x890af&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;00000000`0309d570 00000642`7f600887 OWSSVR!GetExtensionVersion+0x940a0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;00000000`0309d8f0 00000642`806070ff mscorwks!DoCLRToCOMCall+0x177&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Note: to dump the managed stack type !clrstack (this requires SOS extension to be loaded). I did dump the managed stack but it isn&amp;#39;t relevant in this case. The oldest item on the native stack is a call from managed code into native code (&lt;font face="Courier New"&gt;mscorwks!DoCLRToCOMCall)&lt;/font&gt; and examining the managed stack doesn&amp;#39;t tell us anything.&lt;/p&gt;&lt;p&gt;From the native stack we can see a few things (read a stack from the bottom up):&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div&gt;We have some SharePoint related components (OWSSVR and STSWEL) that are called.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Eventually these call into OleDb&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;OleDb then appears to call into the SQL Server OleDb Provider (sqloledb)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;The SQL Server OleDb Provider then calls into WinSock to send a command across the network to a remote SQL Server&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;The stack ends with the Windows Socket in a receive state awaiting a response (&lt;font face="Courier New"&gt;ws2_32!WSARecv)&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;I examined most of the threads running in the process, and a vast majority of ASP.NET worker threads where in a similar state. Our next step is to try to figure out what SQL command or stored procedure we are calling.&lt;/p&gt;&lt;p&gt;To do this, I took a bit of a guess (I suppose I could have look at the definitions of the OleDb APIs etc). I suspected that a function such as oledb32!CCommandText::Execute would probably have, as one of it&amp;#39;s parameters, the actual command to be executed (mirroring the OleDb connection and command objects&amp;#39; .Execute method)&lt;/p&gt;&lt;p&gt;Using the &lt;span style="line-height:115%;font-family:'Courier New';font-size:9pt;"&gt;kb&lt;/span&gt; command we can get parameter information. The address of the third parameter was &lt;span style="line-height:115%;font-family:'Courier New';font-size:9pt;"&gt;00000000`0309bc40&lt;/span&gt; (note this dump is from an x64 system).&lt;/p&gt;&lt;p&gt;Our next step is to examine some memory around that parameter address. It turns out that approximately 240 bytes further we can find the stored procedure being called:&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;0:013&amp;gt; dc 00000000`0309bc40+0x240&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;00000000`0309be80&amp;nbsp; 0ef44048 00000000 110a0008 00000000&amp;nbsp; H@..............&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;00000000`0309be90&lt;span&gt;&amp;nbsp; &lt;/span&gt;0f04afe8 00000000 00000000 00000000&amp;nbsp; ................&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;00000000`0309bea0&amp;nbsp; 0309bea8 00000000 003f007b 0063003d&amp;nbsp; ........{.?.=.c.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;00000000`0309beb0&amp;nbsp; 006c0061 0020006c 00720070 0063006f&amp;nbsp; a.l.l. .p.r.o.c.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;00000000`0309bec0&amp;nbsp; 0046005f 00740065 00680063 006f0044&amp;nbsp; _.F.e.t.c.h.D.o.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;00000000`0309bed0&amp;nbsp; 00460063 0072006f 00740048 00700074&amp;nbsp; c.F.o.r.H.t.t.p.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;00000000`0309bee0&lt;span&gt;&amp;nbsp; &lt;/span&gt;00650047 00280074 002c003f 002c003f&amp;nbsp; G.e.t.(.?.,.?.,.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';font-size:9pt;"&gt;00000000`0309bef0&amp;nbsp; 002c003f 002c003f 002c003f 002c003f&amp;nbsp; ?.,.?.,.?.,.?.,.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Looking through the other threads, the majority are calling this stored procedure, with a few calling a different one. it maybe that this one sproc is blocking itself, or the interaction of these two are blocking each other. Or possible some other issue in the cluster. For now, our job is done, and we hand over to the DBA team to do some investigation into what is happening in SQL Server.&lt;/p&gt;&lt;p&gt;Note: Due to blog spam, comments are disabled. Please use the contact form for questions.&lt;/p&gt;&lt;img src="http://www.adopenstatic.com/cs/aggbug.aspx?PostID=24910" width="1" height="1"&gt;</description><category domain="http://www.adopenstatic.com/cs/blogs/ken/archive/tags/IIS/default.aspx">IIS</category><category domain="http://www.adopenstatic.com/cs/blogs/ken/archive/tags/Debugging/default.aspx">Debugging</category></item><item><title>Windows Home Server and IIS 7.0 restore problems</title><link>http://www.adopenstatic.com/cs/blogs/ken/archive/2009/06/30/24909.aspx</link><pubDate>Wed, 01 Jul 2009 11:09:00 GMT</pubDate><guid isPermaLink="false">e0e31441-78b9-4457-b9b0-6f7906e03e71:24909</guid><dc:creator>Ken</dc:creator><slash:comments>1</slash:comments><comments>http://www.adopenstatic.com/cs/blogs/ken/comments/24909.aspx</comments><wfw:commentRss>http://www.adopenstatic.com/cs/blogs/ken/commentrss.aspx?PostID=24909</wfw:commentRss><wfw:comment>http://www.adopenstatic.com/cs/blogs/ken/rsscomments.aspx?PostID=24909</wfw:comment><description>&lt;p&gt;Windows Home Server automatically ignored folders called &amp;quot;temp&amp;quot; when configuring backups. Normally this isn&amp;#39;t a problem. However IIS 7.0 does create a folder called temp (by default at c:\inetpub\temp. In this location are stored application pool configuration files that are generated on-the-fly by IIS.&lt;/p&gt;&lt;p&gt;It appears that the WHS bare-metal restore doesn&amp;#39;t restore this folder, and IIS 7.0 then can experience issues (in addition to any other folders named &amp;quot;temp&amp;quot;) that might not exist. The solution may be as simple as creating a folder called &amp;quot;temp&amp;quot; for IIS to store app pool config files in.&lt;/p&gt;&lt;p&gt;Note: comments are disabled due to blog spam. Please use the contact form.&lt;/p&gt;&lt;img src="http://www.adopenstatic.com/cs/aggbug.aspx?PostID=24909" width="1" height="1"&gt;</description><category domain="http://www.adopenstatic.com/cs/blogs/ken/archive/tags/IIS/default.aspx">IIS</category><category domain="http://www.adopenstatic.com/cs/blogs/ken/archive/tags/Other+Tech/default.aspx">Other Tech</category></item><item><title>Dell Latitude E6400, STOP 0x101 and Windows Server 2008 R2 Hyper-V</title><link>http://www.adopenstatic.com/cs/blogs/ken/archive/2009/04/05/21962.aspx</link><pubDate>Mon, 06 Apr 2009 11:55:00 GMT</pubDate><guid isPermaLink="false">e0e31441-78b9-4457-b9b0-6f7906e03e71:21962</guid><dc:creator>Ken</dc:creator><slash:comments>0</slash:comments><comments>http://www.adopenstatic.com/cs/blogs/ken/comments/21962.aspx</comments><wfw:commentRss>http://www.adopenstatic.com/cs/blogs/ken/commentrss.aspx?PostID=21962</wfw:commentRss><wfw:comment>http://www.adopenstatic.com/cs/blogs/ken/rsscomments.aspx?PostID=21962</wfw:comment><description>&lt;p&gt;My work recently gave me a new Latitude E6400 (the E6500 was just a bit too heavy) which is&amp;nbsp;a great machine for running virtual machines out of the office. It has an internal 7200 RPM drive, a modular drive (120GB 1.8&amp;quot; 5400 RPM) and I can connect an external 2.5&amp;quot; 7200 RPM drive via the eSata port. It also supports up to 8GB of RAM, and has a C2D 2.8GHz CPU. Considering where we were only 4-5 years ago with laptops, it&amp;#39;s an amazing advance.&lt;/p&gt;&lt;p&gt;I installed Windows Server 2008 R2 Build 7000 (Beta 1) and the Hyper-V v2 role and almost immediately started getting STOP 0x00000101 BSODs (CLOCK_WATCHDOG_TIMEOUT). Ben Armstrong reports this is a &lt;a href="http://social.technet.microsoft.com/Forums/en-US/windowsserver2008r2virtualization/thread/a7451e42-eb42-42cf-9c3b-3bf5cc392ee0"&gt;known issue&lt;/a&gt; in Beta 1. &lt;a href="http://blogs.msdn.com/mikekol/" title="Mike Kolitz&amp;#39;s blog" target="_blank"&gt;Mike Kolitz&lt;/a&gt; suggested, based on dump files, that this might have been fixed in build 7006. Luckily&amp;nbsp;my work&amp;#39;s TAP program has access to various interim&amp;nbsp;builds. I pulled down Build 7068, and no more BSODs. Unfortunately the Intel WLAN drivers seem to crash my WAP. One step forward...one step back :-)&lt;/p&gt;&lt;img src="http://www.adopenstatic.com/cs/aggbug.aspx?PostID=21962" width="1" height="1"&gt;</description><category domain="http://www.adopenstatic.com/cs/blogs/ken/archive/tags/Vista+_2F00_+Windows+Server+2008/default.aspx">Vista / Windows Server 2008</category><category domain="http://www.adopenstatic.com/cs/blogs/ken/archive/tags/Virtualization/default.aspx">Virtualization</category></item><item><title>Home Data Centre Upgrade #3</title><link>http://www.adopenstatic.com/cs/blogs/ken/archive/2009/03/25/21724.aspx</link><pubDate>Thu, 26 Mar 2009 09:32:00 GMT</pubDate><guid isPermaLink="false">e0e31441-78b9-4457-b9b0-6f7906e03e71:21724</guid><dc:creator>Ken</dc:creator><slash:comments>0</slash:comments><comments>http://www.adopenstatic.com/cs/blogs/ken/comments/21724.aspx</comments><wfw:commentRss>http://www.adopenstatic.com/cs/blogs/ken/commentrss.aspx?PostID=21724</wfw:commentRss><wfw:comment>http://www.adopenstatic.com/cs/blogs/ken/rsscomments.aspx?PostID=21724</wfw:comment><description>&lt;p&gt;After adding &lt;a href="http://www.adopenstatic.com/cs/blogs/ken/archive/2007/11/03/13048.aspx" title="Adding 4th disk to PowerEdge SC1430" target="_blank"&gt;extra disks&lt;/a&gt; to the home &amp;quot;data centre&amp;quot; and then getting a new backup device (&lt;a href="http://www.adopenstatic.com/cs/blogs/ken/archive/2008/01/14/15443.aspx" title="Dell RD1000 Review" target="_blank"&gt;Dell RD1000&lt;/a&gt;), today I took a punt on upgrading the RAM. When I originally bought my Dell PE SC1430 it was rated at a maximum of 8GB RAM.&amp;nbsp;The latest&amp;nbsp;models offer a &lt;a href="http://support.dell.com/support/edocs/systems/sc1430/en/HOM/HTML/HOM_EN/index.htm" title="Dell Support - SC1430" target="_blank"&gt;maximum of 16GB&lt;/a&gt; of RAM, and after finding nothing on the interwebs that might indicate that my particular model couldn&amp;#39;t cope with more than 8GB, I tentatively splashed out on an extra 2x4GB FBDIMMS. It seems all PE SC1430s (with the latest BIOS) support more than 8GB of RAM (well, at least 12GB, and I suppose 16GB if you populate 4x4GB).&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img alt="12GB of RAM! Yay" height="640" src="http://www.adopenstatic.com/images/resources/blog/ExtraRAM1.jpg" style="width:585px;height:640px;" title="12GB of RAM! Yay" width="585" /&gt;&lt;/p&gt;&lt;p&gt;Currently my production VMs consume around 7GB of RAM (Exchange and Ops Manager 2007 around 2GB each, plus Windows Home Server takes another 1GB), so testing new OSes (like Windows Server 2008 R2) is difficult. With the extra unallocated RAM, it&amp;#39;ll be easier to test beta server OSes :-)&lt;/p&gt;&lt;img src="http://www.adopenstatic.com/cs/aggbug.aspx?PostID=21724" width="1" height="1"&gt;</description><category domain="http://www.adopenstatic.com/cs/blogs/ken/archive/tags/Other+Tech/default.aspx">Other Tech</category><category domain="http://www.adopenstatic.com/cs/blogs/ken/archive/tags/Vista+_2F00_+Windows+Server+2008/default.aspx">Vista / Windows Server 2008</category><category domain="http://www.adopenstatic.com/cs/blogs/ken/archive/tags/Virtualization/default.aspx">Virtualization</category></item><item><title>MVP Summit 2009</title><link>http://www.adopenstatic.com/cs/blogs/ken/archive/2009/03/19/21597.aspx</link><pubDate>Fri, 20 Mar 2009 12:05:00 GMT</pubDate><guid isPermaLink="false">e0e31441-78b9-4457-b9b0-6f7906e03e71:21597</guid><dc:creator>Ken</dc:creator><slash:comments>0</slash:comments><comments>http://www.adopenstatic.com/cs/blogs/ken/comments/21597.aspx</comments><wfw:commentRss>http://www.adopenstatic.com/cs/blogs/ken/commentrss.aspx?PostID=21597</wfw:commentRss><wfw:comment>http://www.adopenstatic.com/cs/blogs/ken/rsscomments.aspx?PostID=21597</wfw:comment><description>&lt;p&gt;Earlier this month I was lucky enough to attend the 2009 Microsoft MVP summit in Seattle. The bulk of the summit consisted of two days of sessions with our product teams (I popped across to some Directory Services sessions as well), and a one day executive keynote session.&lt;/p&gt;&lt;p&gt;&lt;img alt="Keynote agenda" border="0" height="480" src="http://www.adopenstatic.com/images/resources/blog/MVPSummit2009_1.jpg" style="width:640px;height:480px;" title="Keynote agenda" width="640" /&gt;&lt;/p&gt;&lt;p&gt;Some heavy hitters turned up for the executive keynote - Steve Ballmer was good value as always&lt;/p&gt;&lt;p&gt;&lt;img alt="Soma&amp;#39;s session" height="480" src="http://www.adopenstatic.com/images/resources/blog/MVPSummit2009_2.jpg" style="width:640px;height:480px;" title="Soma&amp;#39;s session" width="640" /&gt;&lt;/p&gt;&lt;p&gt;Soma managed to rope in four of Microsoft&amp;#39;s technical fellows - some of the heaviest technical hitters in the company for a Q&amp;amp;A around Microsoft&amp;#39;s future developer direction. It was a pity that so much of the Q&amp;amp;A time for this session was wasted with questions and general complaining that wasn&amp;#39;t relevant to any of the people on stage.&lt;/p&gt;&lt;p&gt;For two days I was out at Redmond - building 42 - where the IIS team is based:&lt;/p&gt;&lt;p&gt;&lt;img alt="Building 42 - IIS Team&amp;#39;s Home" height="480" src="http://www.adopenstatic.com/images/resources/blog/MVPSummit2009_3.jpg" style="width:640px;height:480px;" title="Building 42 - IIS Team&amp;#39;s Home" width="640" /&gt;&lt;/p&gt;&lt;p&gt;Conference Room 2200 was where our sessions were held:&lt;/p&gt;&lt;p&gt;&lt;img alt="MVP Summit 2009 - IIS sessions" height="640" src="http://www.adopenstatic.com/images/resources/blog/MVPSummit2009_4.jpg" style="width:480px;height:640px;" title="MVP Summit 2009 - IIS sessions" width="480" /&gt;&lt;/p&gt;&lt;p&gt;Tomorrow I&amp;#39;ll be writing up a follow up post on topics covered.&lt;/p&gt;&lt;p&gt;On an unrelated note I&amp;#39;ve also become a bit addicted to &lt;a href="http://www.flightmemory.com" title="Flightmemory" target="_blank"&gt;FlightMemory&lt;/a&gt;&amp;nbsp;- a site where you can record flights taken.&amp;nbsp;Inputting the flights that I still have records for, I&amp;#39;ve flown &lt;a href="http://my.flightmemory.com/AnonymousCoward" title="My Flight Memory" target="_blank"&gt;274 flights totalling&amp;nbsp;around 588,000 kms&lt;/a&gt; in the last 6 or so years. The site generates nice maps as well:&lt;/p&gt;&lt;p&gt;&lt;img alt="My Flight Memory map Mar 2009" height="259" src="http://www.adopenstatic.com/images/resources/blog/flightmemory_2009_03.jpg" style="width:640px;height:259px;" title="My Flight Memory map Mar 2009" width="640" /&gt;&lt;/p&gt;&lt;img src="http://www.adopenstatic.com/cs/aggbug.aspx?PostID=21597" width="1" height="1"&gt;</description><category domain="http://www.adopenstatic.com/cs/blogs/ken/archive/tags/IIS/default.aspx">IIS</category><category domain="http://www.adopenstatic.com/cs/blogs/ken/archive/tags/Other/default.aspx">Other</category></item><item><title>Internet Explorer 8 - now available</title><link>http://www.adopenstatic.com/cs/blogs/ken/archive/2009/03/19/21595.aspx</link><pubDate>Fri, 20 Mar 2009 11:53:00 GMT</pubDate><guid isPermaLink="false">e0e31441-78b9-4457-b9b0-6f7906e03e71:21595</guid><dc:creator>Ken</dc:creator><slash:comments>0</slash:comments><comments>http://www.adopenstatic.com/cs/blogs/ken/comments/21595.aspx</comments><wfw:commentRss>http://www.adopenstatic.com/cs/blogs/ken/commentrss.aspx?PostID=21595</wfw:commentRss><wfw:comment>http://www.adopenstatic.com/cs/blogs/ken/rsscomments.aspx?PostID=21595</wfw:comment><description>It&amp;#39;s all over the web, and now here too. Internet Explorer 8 available for download from &lt;a href="http://www.microsoft.com/windows/internet-explorer/default.aspx" title="Internet Explorer 8" target="_blank"&gt;Microsoft&amp;#39;s website&lt;/a&gt;. Unfortunately no update for the rather buggy IE8 that shipped with Windows 7 betas.&lt;img src="http://www.adopenstatic.com/cs/aggbug.aspx?PostID=21595" width="1" height="1"&gt;</description><category domain="http://www.adopenstatic.com/cs/blogs/ken/archive/tags/Other+Tech/default.aspx">Other Tech</category></item><item><title>IIS and Kerberos Part 9 - Cross Forest Delegation scenario with UPN suffix routing</title><link>http://www.adopenstatic.com/cs/blogs/ken/archive/2009/02/25/21173.aspx</link><pubDate>Thu, 26 Feb 2009 11:44:00 GMT</pubDate><guid isPermaLink="false">e0e31441-78b9-4457-b9b0-6f7906e03e71:21173</guid><dc:creator>Ken</dc:creator><slash:comments>3</slash:comments><comments>http://www.adopenstatic.com/cs/blogs/ken/comments/21173.aspx</comments><wfw:commentRss>http://www.adopenstatic.com/cs/blogs/ken/commentrss.aspx?PostID=21173</wfw:commentRss><wfw:comment>http://www.adopenstatic.com/cs/blogs/ken/rsscomments.aspx?PostID=21173</wfw:comment><description>&lt;p&gt;As an extension of the &lt;a href="http://adopenstatic.com/cs/blogs/ken/archive/2008/06/28/17805.aspx" title="IIS and Kerberos Part 8 - Cross Forest Delegation"&gt;previous article&lt;/a&gt; on Cross Forest (or Cross Domain) Kerberos Authentication this article examines how to configure cross forest authentication and delegation when users are accessing an arbitrary website URL. &lt;/p&gt;&lt;p&gt;In this scenario we have the same two Forests as in &lt;a href="http://adopenstatic.com/cs/blogs/ken/archive/2008/06/28/17805.aspx" title="IIS and Kerberos Part 8 - Cross Forest Delegation"&gt;Part 8&lt;/a&gt;. Forest A (domainA.local) contains our resource servers (web server and SQL server). Forest B (domainB.local) contains our users and client PC.&lt;/p&gt;&lt;p&gt;Users are going to access a web site at &lt;em&gt;www.myCompany.com&lt;/em&gt;, a domain that has no direct relationship between either the resource domain or user domain. Companies might need to implement this type of setup when they wish to have a single URL that users on either the internal network or externally can access. Alternatively I have seen scenarios where companies what to have a portal address (e.g. &lt;em&gt;intranet.company.com&lt;/em&gt;) that then reverse proxies a number of internal web applications, and Kerberos authentication and transparent delegation to the proxied web applications makes for a simplified user experience.&lt;/p&gt;&lt;p&gt;A diagram of the process involved:&lt;/p&gt;&lt;p&gt;&lt;img alt="Kerberos with UPN suffix routing" border="0" height="361" src="http://adopenstatic.com/images/resources/blog/Kerberos18.jpg" style="width:397px;height:361px;" title="Kerberos with UPN suffix routing" width="397" /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Wireshark/Ethereal packet captures of the actual traffic are available for &lt;a href="http://adopenstatic.com/resources/Kerberos4.bin" title="IIS and Kerberos Part 9 Packet Capture"&gt;download&lt;/a&gt; (rename to .pcap).&amp;nbsp; I&amp;rsquo;ll explain the packets to look for a bit further down in the blog post.&lt;/p&gt;&lt;p&gt;The configuration steps required for this setup are:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Determine some mechanism so that the users can resolve www.myCompany.com (DNS is a given, but if you are using a split-brain DNS then your internal DNS will need to have an appropriate zone as well as your public DNS)&lt;br /&gt;&lt;img alt="Configure name resolution" border="0" height="480" src="http://adopenstatic.com/images/resources/blog/Kerberos19.jpg" style="width:640px;height:480px;" title="Configure name resolution" width="640" /&gt;&lt;/li&gt;&lt;li&gt;Create an additional UPN (user principal name) suffix in your resource Forest (domainA.local). To do this: &lt;ul&gt;&lt;li&gt;Open the Active Directory Domains and Trusts Administrative Tool&lt;/li&gt;&lt;li&gt;Right-click on the top level &amp;quot;Domains and Trusts&amp;quot; node&lt;/li&gt;&lt;li&gt;On the UPN suffixes tab add www.myCompany.com and click Add. Note: you can add myCompany.com and this will add all hosts under myCompany.com. Adding www.myCompany.com will also work (but will also permit hosts under www.myCompany.com such as www.www.myCompany.com)&lt;br /&gt;&lt;img alt="Adding a UPN suffix" height="448" src="http://adopenstatic.com/images/resources/blog/Kerberos20.jpg" style="width:404px;height:448px;" title="Adding a UPN suffix" width="404" /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Configure Name Suffix Routing across the Forest Trust. To do this:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Open the Active Directory Domains and Trusts Administrative Tool in DomainB.local (the user domain)&lt;/li&gt;&lt;li&gt;Right-click on your domain (domainB.local) and choose Properties&lt;/li&gt;&lt;li&gt;On the Trusts tab select DomainA.local under either options (Domains trusted by this domain or Domains that trust this domain) &amp;ndash; it doesn&amp;rsquo;t matter which one. Click the Properties button&lt;/li&gt;&lt;li&gt;On the Name Suffix Routing tab select *.www.myCompany.com and click Enable&lt;br /&gt;&lt;img alt="Enable suffix routing" height="448" src="http://adopenstatic.com/images/resources/blog/Kerberos21.jpg" style="width:404px;height:448px;" title="Enable suffix routing" width="404" /&gt;&lt;/li&gt;&lt;li&gt;Click OK to exit all the dialogues&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Steps 4 &amp;amp; 5 are generic Kerberos configuration steps that aren&amp;rsquo;t specific to cross-Forest scenarios: Add the requisite SPN (Service Principal Name). To learn about SPNs review &lt;a href="http://adopenstatic.com/cs/blogs/ken/archive/2006/11/19/606.aspx" title="IIS and Kerberos Part 2 - Service Principal Names"&gt;Part 2&lt;/a&gt; in this series. In this case we need to add an SPN for http/www.myCompany.com in domainA.local. If the web application pool is running under Network Service, Local Service or LocalSystem the SPN should be added under the computer account of the web server. If the web application pool is running under a custom user account, the SPN should be added under that user account in domainA.local. NOTE: if you are running IIS 7.0 and using kernel mode authentication (the default) then you should add the SPN under the machine account. See &lt;a href="http://adopenstatic.com/cs/blogs/ken/archive/2008/02/21/16275.aspx" title="IIS and Kerberos - What&amp;#39;s new in IIS 7.0"&gt;Part 6&lt;/a&gt;&amp;nbsp;on new features in IIS 7.0&lt;br /&gt;&lt;img alt="Add the SPN" height="331" src="http://adopenstatic.com/images/resources/blog/Kerberos22.jpg" style="width:668px;height:331px;" title="Add the SPN" width="668" /&gt;&lt;br /&gt;&lt;br /&gt;After adding the SPN, you should see the following in Active Directory:&lt;br /&gt;&lt;br /&gt;&lt;img alt="SPN in AD" height="448" src="http://adopenstatic.com/images/resources/blog/Kerberos23.jpg" style="width:404px;height:448px;" title="SPN in AD" width="404" /&gt;&lt;/li&gt;&lt;li&gt;Add the website www.myCompany.com to the Intranet Security Zone of the user&amp;rsquo;s computer. Recall from &lt;a href="http://adopenstatic.com/cs/blogs/ken/archive/2007/01/16/1054.aspx" title="IIS and Kerberos Part 3 - Simple Scenario"&gt;Part 3&lt;/a&gt; that IE will not attempt Kerberos authentication unless the website is in the Intranet Security Zone. This can be done manually, via the IEAK, or using Group Policy.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;After this is all configured and replicated around the environment then the following should be observable in the packet capture. Note that this exchange is similar to that seen in the previous packet capture (some stuff is actually missing from this packet capture as the machines already have name resolution and some referals already established. It is worth reviewing &lt;a href="http://adopenstatic.com/cs/blogs/ken/archive/2008/06/28/17805.aspx" title="IIS and Kerberos Part 8 - Cross Forest Delegation"&gt;Part 8 packet capture&lt;/a&gt; with more detailed descriptions if you are seeing this for the first time). The only real difference is that we can see the routing required for http/www.myCompany.com service ticket:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Packet 6 &amp;ndash; HTTP request by client&lt;/li&gt;&lt;li&gt;Packet 9 &amp;ndash; Initial 401 response from web server&lt;/li&gt;&lt;li&gt;Packet 18 &amp;ndash; DomainA.local DC returns service ticket for http/www.myCompany.com to client&lt;/li&gt;&lt;li&gt;Packet 21 &amp;ndash; new HTTP request by client including Kerberos ticket&lt;/li&gt;&lt;li&gt;Packets 47-50 &amp;ndash; tickets granted to access backend SQL Server&lt;/li&gt;&lt;li&gt;Packet 59 &amp;ndash; HTTP 200 response to client with data from backend SQL Server&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;For reference the machines in question are:&lt;/p&gt;&lt;p&gt;&lt;table style="font-family:verdana, geneva, arial;"&gt;&lt;tr&gt;&lt;td&gt;Machine&lt;/td&gt;&lt;td&gt;Domain&lt;/td&gt;&lt;td&gt;IP address&lt;/td&gt;&lt;td&gt;Role&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;svr03-r2-dc-1&lt;/td&gt;&lt;td&gt;DomainA&lt;/td&gt;&lt;td&gt;192.168.132.10&lt;/td&gt;&lt;td&gt;DC&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;svr03-r2-dc-2&lt;/td&gt;&lt;td&gt;DomainB&lt;/td&gt;&lt;td&gt;192.168.132.11&lt;/td&gt;&lt;td&gt;DC&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;svr03-r2-web-1&lt;/td&gt;&lt;td&gt;DomainA&lt;/td&gt;&lt;td&gt;192.168.132.20&lt;/td&gt;&lt;td&gt;Web Server&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;svr03-r2-sql-1&lt;/td&gt;&lt;td&gt;DomainA&lt;/td&gt;&lt;td&gt;192.168.132.21&lt;/td&gt;&lt;td&gt;SQL&amp;nbsp;Server&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;cltxp-pro-1&lt;/td&gt;&lt;td&gt;DomainB&lt;/td&gt;&lt;td&gt;192.168.132.50&lt;/td&gt;&lt;td&gt;Client&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.adopenstatic.com/cs/aggbug.aspx?PostID=21173" width="1" height="1"&gt;</description><category domain="http://www.adopenstatic.com/cs/blogs/ken/archive/tags/IIS/default.aspx">IIS</category><category domain="http://www.adopenstatic.com/cs/blogs/ken/archive/tags/Security/default.aspx">Security</category></item><item><title>New IIS 7.0 configuration reference available</title><link>http://www.adopenstatic.com/cs/blogs/ken/archive/2009/01/20/20748.aspx</link><pubDate>Wed, 21 Jan 2009 06:38:00 GMT</pubDate><guid isPermaLink="false">e0e31441-78b9-4457-b9b0-6f7906e03e71:20748</guid><dc:creator>Ken</dc:creator><slash:comments>0</slash:comments><comments>http://www.adopenstatic.com/cs/blogs/ken/comments/20748.aspx</comments><wfw:commentRss>http://www.adopenstatic.com/cs/blogs/ken/commentrss.aspx?PostID=20748</wfw:commentRss><wfw:comment>http://www.adopenstatic.com/cs/blogs/ken/rsscomments.aspx?PostID=20748</wfw:comment><description>&lt;a href="http://blogs.iis.net/bills/archive/2009/01/20/now-online-comprehensive-iis7-technical-reference.aspx" title="Bill Staple&amp;#39;s blog" target="_blank"&gt;Bill Staples&lt;/a&gt; has let the cat out of the bag. IIS 7.0 has a new, comprehensive configuration file reference available at &lt;a href="http://www.iis.net/ConfigReference" title="IIS 7.0 Configuration Reference" target="_blank"&gt;iis.net&lt;/a&gt;&lt;img src="http://www.adopenstatic.com/cs/aggbug.aspx?PostID=20748" width="1" height="1"&gt;</description><category domain="http://www.adopenstatic.com/cs/blogs/ken/archive/tags/IIS/default.aspx">IIS</category></item><item><title>Tech.Ed 2008 over</title><link>http://www.adopenstatic.com/cs/blogs/ken/archive/2008/09/19/18518.aspx</link><pubDate>Sat, 20 Sep 2008 13:05:00 GMT</pubDate><guid isPermaLink="false">e0e31441-78b9-4457-b9b0-6f7906e03e71:18518</guid><dc:creator>Ken</dc:creator><slash:comments>1</slash:comments><comments>http://www.adopenstatic.com/cs/blogs/ken/comments/18518.aspx</comments><wfw:commentRss>http://www.adopenstatic.com/cs/blogs/ken/commentrss.aspx?PostID=18518</wfw:commentRss><wfw:comment>http://www.adopenstatic.com/cs/blogs/ken/rsscomments.aspx?PostID=18518</wfw:comment><description>&lt;p&gt;It&amp;#39;s been a long time between blog posts. Between a couple of Tech.Eds, being sick with the flu, and a large enterprise System Center Operations Manager 2007 deployment, it&amp;#39;s been pretty busy the past month. In addition, handling bathroom and kitchen renovations is consuming pretty much all of the spare time on weekends.&lt;/p&gt;&lt;p&gt;This year&amp;nbsp;I was&amp;nbsp;privileged to deliver a few presentations at &lt;a href="http://www.microsoft.com/malaysia/techedsea2008" title="Microsoft Tech.Ed SEA 2008" target="_blank"&gt;Tech.Ed South East Asia 2008&lt;/a&gt;&amp;nbsp;- one on IIS 7.0 for IT Pros, and a second on Web Farm Scenarios and IIS 7.0. Both of the session decks are available for download from the &lt;a href="http://www.microsoft.com/malaysia/techedsea2008/" title="Tech.Ed SEA 2008 presentation download" target="_blank"&gt;Tech.Ed SEA website&lt;/a&gt; (download the Server track ZIP file). &lt;/p&gt;&lt;p&gt;I also delivered the &lt;a href="http://www.adopenstatic.com/resources/SVR315_SecurityAndPerformanceTuningForIIS7.zip" title="IIS 7.0 Security and Performance Tuning"&gt;IIS 7.0 Security and Performance Tuning&lt;/a&gt; session at Tech.Ed Australia. My apologies if the session was quite up to scratch - I was suffering from the flu - but it&amp;#39;s still the top rated Server track session, so thanks to all that filled in feedback. Click the session title link to download the session deck (1.2MB). Thanks to Wade Hilmo and Pete Harris from the IIS product group for helping me pull that session together.&lt;/p&gt;&lt;p&gt;Some random photos from Tech.Ed 2008:&lt;/p&gt;&lt;p&gt;&lt;img alt="Tech.Ed SEA" border="0" height="640" src="http://www.adopenstatic.com/images/resources/blog/TechEd2008-1.jpg" style="width:480px;height:640px;" title="Tech.Ed SEA" width="480" /&gt;&lt;/p&gt;&lt;p&gt;Tech.Ed SEA 2008 presenter badge&lt;/p&gt;&lt;p&gt;&lt;img alt="Tech.Ed SEA 2008 presenter badge" border="0" height="480" src="http://www.adopenstatic.com/images/resources/blog/Teched2008-2.jpg" style="width:640px;height:480px;" title="Tech.Ed SEA 2008 presenter badge" width="640" /&gt;&lt;/p&gt;&lt;p&gt;The closing locknote at Tech.Ed Australia 2008. I didn&amp;#39;t snap the slide that showed I was beating Steve Riley in the Presenter scores :-)&lt;/p&gt;&lt;p&gt;&lt;img alt="Tech.Ed Australia 2008 - Closing Locknote" border="0" height="480" src="http://www.adopenstatic.com/images/resources/blog/teched2008-3.jpg" style="width:640px;height:480px;" title="Tech.Ed Australia 2008 - Closing Locknote" width="640" /&gt;&lt;/p&gt;&lt;img src="http://www.adopenstatic.com/cs/aggbug.aspx?PostID=18518" width="1" height="1"&gt;</description><category domain="http://www.adopenstatic.com/cs/blogs/ken/archive/tags/IIS/default.aspx">IIS</category></item><item><title>IIS and Kerberos Part 8 - a simple cross Forest/Domain delegation scenario</title><link>http://www.adopenstatic.com/cs/blogs/ken/archive/2008/06/28/17805.aspx</link><pubDate>Sun, 29 Jun 2008 10:45:00 GMT</pubDate><guid isPermaLink="false">e0e31441-78b9-4457-b9b0-6f7906e03e71:17805</guid><dc:creator>Ken</dc:creator><slash:comments>13</slash:comments><comments>http://www.adopenstatic.com/cs/blogs/ken/comments/17805.aspx</comments><wfw:commentRss>http://www.adopenstatic.com/cs/blogs/ken/commentrss.aspx?PostID=17805</wfw:commentRss><wfw:comment>http://www.adopenstatic.com/cs/blogs/ken/rsscomments.aspx?PostID=17805</wfw:comment><description>&lt;p style="font-family:verdana, geneva, arial;"&gt;In this part we extend, slightly, upon the &lt;a href="http://adopenstatic.com/cs/blogs/ken/archive/2008/05/12/17533.aspx" title="IIS and Kerberos Part 8 - a simple cross Forest/Domain scenario"&gt;previous scenario&lt;/a&gt;, by adding delegation. Now we need to allow IIS, in our resource Forest (or domain) to delegate the end user&amp;rsquo;s credentials, to a backend service (SQL Server in this case):&lt;/p&gt;&lt;p style="font-family:verdana, geneva, arial;"&gt;The machines this case are:&lt;/p&gt;&lt;table style="font-family:verdana, geneva, arial;"&gt;&lt;tr&gt;&lt;td&gt;Machine&lt;/td&gt;&lt;td&gt;Domain&lt;/td&gt;&lt;td&gt;IP address&lt;/td&gt;&lt;td&gt;Role&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;svr03-r2-dc-1&lt;/td&gt;&lt;td&gt;DomainA&lt;/td&gt;&lt;td&gt;192.168.132.10&lt;/td&gt;&lt;td&gt;DC&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;svr03-r2-dc-2&lt;/td&gt;&lt;td&gt;DomainB&lt;/td&gt;&lt;td&gt;192.168.132.11&lt;/td&gt;&lt;td&gt;DC&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;svr03-r2-web-1&lt;/td&gt;&lt;td&gt;DomainA&lt;/td&gt;&lt;td&gt;192.168.132.20&lt;/td&gt;&lt;td&gt;Web Server&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;svr03-r2-sql-1&lt;/td&gt;&lt;td&gt;DomainA&lt;/td&gt;&lt;td&gt;192.168.132.21&lt;/td&gt;&lt;td&gt;SQL&amp;nbsp;Server&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;cltxp-pro-1&lt;/td&gt;&lt;td&gt;DomainB&lt;/td&gt;&lt;td&gt;192.168.132.50&lt;/td&gt;&lt;td&gt;Client&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:verdana, geneva, arial;"&gt;A packet capture is available for &lt;a href="http://adopenstatic.com/resources/Kerberos2.bin"&gt;download&lt;/a&gt; (taken from the IIS server).&lt;/p&gt;&lt;p style="font-family:verdana, geneva, arial;"&gt;Opening the capture in Wireshark you should see the following (the bullet point numbers correspond to the numbers in the image below):&lt;/p&gt;&lt;ol style="font-family:verdana, geneva, arial;"&gt;&lt;li&gt;XP client makes a request to IIS server (Packet 14) and IIS server responds with 401 Access Denied (Packet 17)&lt;/li&gt;&lt;li&gt;XP client contacts DomainB Domain Controller for Kerberos ticket (Packet 19 &amp;ndash; note the request for http/svr03-r2-web-1)&lt;/li&gt;&lt;li&gt;DomainB DC returns a referral to DomainA DC (packet 20)&lt;/li&gt;&lt;li&gt;XP client looks up the necessary service records for DomainA (packets 21-24) before requesting a service ticket from the DomainA DC (packet 33)&lt;/li&gt;&lt;li&gt;The DomainA DC returns a service ticket to the XP client (packet 34)&lt;/li&gt;&lt;li&gt;XP client makes a new request to IIS, supplying it&amp;rsquo;s Kerberos authentication data (packet 37)&lt;/li&gt;&lt;li&gt;IIS contacts its local DomainA DC seeking a referral to DomainB (packets 52-55) &lt;/li&gt;&lt;li&gt;DomainA DC refers IIS to DomainB DC&lt;/li&gt;&lt;li&gt;IIS requests a Kerberos ticket, on behalf of the end user, from DomainB DC (packet 61)&lt;/li&gt;&lt;li&gt;DomainB DC returns the necessary ticket (packet 62)&lt;/li&gt;&lt;li&gt;IIS now connects to SQL Server (packet 65), and gets the results of the query. The resulting webpage is returned to the client (packet 87)&lt;/li&gt;&lt;/ol&gt;&lt;p style="font-family:verdana, geneva, arial;"&gt;&lt;img alt="Cross Forest Delegation" border="0" height="360" src="http://adopenstatic.com/images/resources/blog/Kerberos17.jpg" style="width:247px;height:360px;" title="Cross Forest Delegation" width="247" /&gt;&lt;/p&gt;&lt;p style="font-family:verdana, geneva, arial;"&gt;The requirements to configure this scenario aren&amp;rsquo;t significantly beyond that to configure a basic cross-Forest/cross-Domain scenario featured in the previous part:&lt;/p&gt;&lt;ul style="font-family:verdana, geneva, arial;"&gt;&lt;li&gt;A two-way trust is required. This can use Selective Authentication. However Forest-Wide authentication may be administratively simpler to configure&lt;/li&gt;&lt;li&gt;An appropriate SPN needs to be registered for the backend SQL Server (similar to a &lt;a href="http://adopenstatic.com/cs/blogs/ken/archive/2007/01/28/1282.aspx" title="IIS and Kerberos Part 4 - a simple delegation scenario"&gt;single domain delegation scenario&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;&lt;p style="font-family:verdana, geneva, arial;"&gt;In the next part I will discuss publishing an arbitrary FQDN for the IIS host (e.g. a public facing internet site) and UPN suffix routing. &lt;/p&gt;&lt;p style="font-family:verdana, geneva, arial;"&gt;NOTE (Feb 2009): I finally got around to publishing promised part - &lt;a href="http://adopenstatic.com/cs/blogs/ken/archive/2009/02/25/21173.aspx" title="IIS and Kerberos Part 9 - UPN Suffix routing"&gt;see Part 9&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family:verdana, geneva, arial;"&gt;Note: A listing of parts is available in the &lt;a href="http://adopenstatic.com/FAQ" title="IIS FAQ"&gt;FAQ&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.adopenstatic.com/cs/aggbug.aspx?PostID=17805" width="1" height="1"&gt;</description><category domain="http://www.adopenstatic.com/cs/blogs/ken/archive/tags/IIS/default.aspx">IIS</category><category domain="http://www.adopenstatic.com/cs/blogs/ken/archive/tags/Security/default.aspx">Security</category></item><item><title>IIS and Kerberos Part 7 - A simple cross Forest scenario</title><link>http://www.adopenstatic.com/cs/blogs/ken/archive/2008/05/12/17533.aspx</link><pubDate>Tue, 13 May 2008 12:13:00 GMT</pubDate><guid isPermaLink="false">e0e31441-78b9-4457-b9b0-6f7906e03e71:17533</guid><dc:creator>Ken</dc:creator><slash:comments>12</slash:comments><comments>http://www.adopenstatic.com/cs/blogs/ken/comments/17533.aspx</comments><wfw:commentRss>http://www.adopenstatic.com/cs/blogs/ken/commentrss.aspx?PostID=17533</wfw:commentRss><wfw:comment>http://www.adopenstatic.com/cs/blogs/ken/rsscomments.aspx?PostID=17533</wfw:comment><description>&lt;p&gt;Note: I&amp;nbsp;have&amp;nbsp;created a list of all the &lt;a href="http://www.adopenstatic.com/faq/" title="IIS FAQ"&gt;IIS and Kerberos parts&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I&amp;#39;m finally getting around to writing this section on IIS and Kerberos. This initial post will cover the basics of a cross-Forest Kerberos authentication scenario. In the next few posts we&amp;#39;ll cover more complex situations including delegation and ISA Server publishing.&lt;/p&gt;&lt;p&gt;The basics of cross-domain Kerberos authentication (in the same Forest) are the same as a cross-Forest scenario, so I&amp;#39;ve covered the cross-Forest scenario in these posts, and steps that are unnecessary for a cross-domain scenario can be omitted.&lt;/p&gt;&lt;p&gt;Our setup involves a resource Forest (domainA.local) and a user Forest (domainB.local). A &lt;a href="http://www.adopenstatic.com/resources/Kerberos.bin" title="Kerberos Cross Forest Packet Capture"&gt;network packet capture&lt;/a&gt; is included (it can be opened using &lt;a href="http://www.wireshark.org" title="Wireshark (formerly Ethereal)" target="_blank"&gt;Wireshark/Ethereal&lt;/a&gt;&amp;nbsp;- rename the extension back to .cap), and to help decipher the capture the machines involved are:&lt;/p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Machine&lt;/td&gt;&lt;td&gt;Domain&lt;/td&gt;&lt;td&gt;IP address&lt;/td&gt;&lt;td&gt;Role&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;svr03-r2-dc-1&lt;/td&gt;&lt;td&gt;DomainA&lt;/td&gt;&lt;td&gt;192.168.132.10&lt;/td&gt;&lt;td&gt;DC&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;svr03-r2-dc-2&lt;/td&gt;&lt;td&gt;DomainB&lt;/td&gt;&lt;td&gt;192.168.132.11&lt;/td&gt;&lt;td&gt;DC&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;svr03-r2-web-1&lt;/td&gt;&lt;td&gt;DomainA&lt;/td&gt;&lt;td&gt;192.168.132.12&lt;/td&gt;&lt;td&gt;Web Server&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;cltxp-pro-1&lt;/td&gt;&lt;td&gt;DomainB&lt;/td&gt;&lt;td&gt;192.168.132.50&lt;/td&gt;&lt;td&gt;Client&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;In the scenario the client in DomainB.local&amp;nbsp;attempts to connect to svr03-r2-web-1 in DomainA.local. The sequence of packets are:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Client connects to web server and gets 401 (Packets 4 and 6)&lt;/li&gt;&lt;li&gt;Client connects to DC in local Domain asking to a ticket to http/svr03-r2-web-1.domainA.local (Packet 8)&lt;/li&gt;&lt;li&gt;The DC in DomainB.local provides a referral to DomainA.local (Packet 9)&lt;/li&gt;&lt;li&gt;The client connects to a DC in DomainA.local asking for a ticket (Packet 12)&lt;/li&gt;&lt;li&gt;The DC in DomainA.local provides a Kerberos ticket to the client (Packet 13)&lt;/li&gt;&lt;li&gt;The client again connects to the web server, presenting its Kerberos ticket (Packet 15)&lt;/li&gt;&lt;li&gt;The server responds with a 200 OK (Packet 21)&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;img alt="IIS and Kerberos - cross Forest scenario network diagram" border="0" height="370" src="http://www.adopenstatic.com/images/resources/blog/Kerberos15.jpg" style="width:368px;height:370px;" title="IIS and Kerberos - cross Forest scenario network diagram" width="368" /&gt;&lt;/p&gt;&lt;p&gt;And the user successfully authenticates using Kerberos:&lt;/p&gt;&lt;p&gt;&lt;img alt="IIS and Kerberos - cross forest scenario" border="0" height="448" src="http://www.adopenstatic.com/images/resources/blog/Kerberos16.jpg" style="width:403px;height:448px;" title="IIS and Kerberos - cross forest scenario" width="403" /&gt;&lt;/p&gt;&lt;p&gt;Things to be aware of in this simple scenario:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Typically a client will be connecting using the FQDN (fully qualified domain name) of the web server. Since Kerberos is only attempted if the website is in Internet Explorer&amp;#39;s Intranet security zone, the website will need to be added to that security zone either using a GPO or manually&lt;/li&gt;&lt;li&gt;Clients must be able to contact domain controllers in the resource Forest in order to get appropriate Kerberos tickets. If there are some DCs in the resource domain that are unreachable (e.g. due to firewalls ec) then you need to ensure that clients in the user Forest only get referrals to reachable DCs&lt;/li&gt;&lt;li&gt;EDIT: Forest trusts can only be created when using a Windows 2003 functional level Forest. The Forest functional level can be raised using the Active Directory Domains and Trusts Admin MMC tool. Before you can raise the Forest functional level, you need to raise the Domain functional level of all Domains within the Forest to Windows Server 2003. If your Forest functional level is Windows 2000, only an external trust can be created, which does not permit Kerberos authentication.&lt;/li&gt;&lt;li&gt;EDIT: Only a one-way trust (the resource Forest trusts the User forest) is required for this scenario. In future scenarios (e.g. when we introduce delegation) a two-way trust will be required. However we can limit the access the Resource forest has to the User forest using Selective Authentication&lt;/li&gt;&lt;li&gt;EDIT: If you need guidance on creating&amp;nbsp;a Forest Trust, then Microsoft&amp;#39;s TechNet has a &lt;a href="http://technet2.microsoft.com/windowsserver/en/library/544d5801-205e-45b0-a1d7-cb9c39a7d7091033.mspx?mfr=true" title="Microsoft TechNet: creating Forest Trusts" target="_blank"&gt;good guide&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://www.adopenstatic.com/cs/aggbug.aspx?PostID=17533" width="1" height="1"&gt;</description><category domain="http://www.adopenstatic.com/cs/blogs/ken/archive/tags/IIS/default.aspx">IIS</category><category domain="http://www.adopenstatic.com/cs/blogs/ken/archive/tags/Security/default.aspx">Security</category></item><item><title>SCVMM 2008 Beta 1 install fails at the WAIK prerequisite step</title><link>http://www.adopenstatic.com/cs/blogs/ken/archive/2008/05/07/17502.aspx</link><pubDate>Thu, 08 May 2008 10:50:00 GMT</pubDate><guid isPermaLink="false">e0e31441-78b9-4457-b9b0-6f7906e03e71:17502</guid><dc:creator>Ken</dc:creator><slash:comments>0</slash:comments><comments>http://www.adopenstatic.com/cs/blogs/ken/comments/17502.aspx</comments><wfw:commentRss>http://www.adopenstatic.com/cs/blogs/ken/commentrss.aspx?PostID=17502</wfw:commentRss><wfw:comment>http://www.adopenstatic.com/cs/blogs/ken/rsscomments.aspx?PostID=17502</wfw:comment><description>&lt;p&gt;I was just trying to install SCVMM 2008 Beta 1 today. When installing the SCVMM 2008 Server, it failed installing the WAIK prerequisite asking me to instead install this manually.&lt;/p&gt;&lt;p&gt;Attempting to run the WAIK msi directly from the prerequisites folder (\prerequisites\WAIK\1033) failed asking me to &amp;quot;Insert the WAIK setup CD&amp;quot;. I think this problem might be caused because I&amp;#39;m install SCVMM 2008 from a DVD. I copied the files from that folder onto the hard disk of the machine, and then attempted to run the MSI again, and WAIK installed successfully.&lt;/p&gt;&lt;img src="http://www.adopenstatic.com/cs/aggbug.aspx?PostID=17502" width="1" height="1"&gt;</description><category domain="http://www.adopenstatic.com/cs/blogs/ken/archive/tags/Virtualization/default.aspx">Virtualization</category></item><item><title>MVP Summit 2008</title><link>http://www.adopenstatic.com/cs/blogs/ken/archive/2008/04/21/17422.aspx</link><pubDate>Tue, 22 Apr 2008 04:20:00 GMT</pubDate><guid isPermaLink="false">e0e31441-78b9-4457-b9b0-6f7906e03e71:17422</guid><dc:creator>Ken</dc:creator><slash:comments>0</slash:comments><comments>http://www.adopenstatic.com/cs/blogs/ken/comments/17422.aspx</comments><wfw:commentRss>http://www.adopenstatic.com/cs/blogs/ken/commentrss.aspx?PostID=17422</wfw:commentRss><wfw:comment>http://www.adopenstatic.com/cs/blogs/ken/rsscomments.aspx?PostID=17422</wfw:comment><description>&lt;p&gt;Last week I was in Seattle attending the Microsoft MVP Summit for 2008. Certainly this year&amp;#39;s summit was much better organised than some previous summits in terms of interaction with the IIS product group.&lt;/p&gt;&lt;p&gt;&lt;img alt="Welcome to MVPs" border="0" height="480" src="http://www.adopenstatic.com/images/resources/blog/MVPSummit2008-1.jpg" style="width:640px;height:480px;" title="Welcome to MVPs" width="640" /&gt;&lt;/p&gt;&lt;p&gt;Whilst we&amp;#39;ve seen a bunch of interesting stuff coming out from the product group over the past few months (&lt;a href="http://www.iis.net/downloads/default.aspx?tabid=34&amp;amp;g=6&amp;amp;i=1621" title="iis.net: WebDav download" target="_blank"&gt;WebDAV&lt;/a&gt;, &lt;a href="http://blogs.iis.net/msdeploy/archive/2008/01/22/welcome-to-the-web-deployment-team-blog.aspx" title="IIS.net - MS Web Deployment Tool" target="_blank"&gt;MSDeploy&lt;/a&gt;, &lt;a href="http://www.iis.net/downloads/default.aspx?tabid=34&amp;amp;g=6&amp;amp;i=1664" title="IIS.net: Powershell Provider" target="_blank"&gt;Powershell Provider&lt;/a&gt;, &lt;a href="http://blogs.iis.net/vsood/archive/2008/03/15/bit-rate-throttling-is-now-released.aspx" title="Bitrate Thottling" target="_blank"&gt;Bitrate Throttling&lt;/a&gt;, &lt;a href="http://www.iis.net/downloads/default.aspx?tabid=34&amp;amp;g=6&amp;amp;i=1646" title="IIS.net - Admin Pack" target="_blank"&gt;Admin Pack&lt;/a&gt;&amp;nbsp;- including the Config Editor). However over the next few months expect to see a number of significant additional releases. Whilst I&amp;#39;m probably not at liberty to disclose what these are, think about the major market that IIS 7.0 has gone after (e.g. hosting with Apache) and some of the major features and modules that the competing platform has that IIS 7.0 doesn&amp;#39;t currently, and you&amp;#39;ll probably be pretty close to the mark in terms of upcoming features.&lt;/p&gt;&lt;p&gt;In addition to getting the inside scope from the product group, the MVP Summit also offers opportunities to talk and network with other MVPs, as well as an executive briefing. This year Ray Ozzie and Steve Ballmer came by to talk to us. Whilst I&amp;#39;ve had the opportunity to listen to many of Micosoft&amp;#39;s senior executives in other forums (Tech.Eds, Partner events etc), what is refreshing about the MVP Summit is that these executives will spend half an hour (or more) taking questions, without notice, from the floor. Whilst they are naturally guarded about the answers they can give (if press are present), we&amp;#39;re still above to canvas a range of topics. And more than once a product has changed somewhat due to the questions or feedback given during these sessions.&lt;/p&gt;&lt;p&gt;I, for one, am looking forward to the next MVP Summit in 2009 (assuming I&amp;#39;m reawarded of course!). As a small bonus, whilst browsing Barnes and Noble in downtown Seattle, I came across a most excellent book that everyone should have a copy of :-)&lt;/p&gt;&lt;p&gt;&lt;img alt="MVP Summit 2008" border="0" height="480" src="http://www.adopenstatic.com/images/resources/blog/MVPSummit2008-2.jpg" style="width:640px;height:480px;" title="MVP Summit 2008" width="640" /&gt;&lt;/p&gt;&lt;img src="http://www.adopenstatic.com/cs/aggbug.aspx?PostID=17422" width="1" height="1"&gt;</description><category domain="http://www.adopenstatic.com/cs/blogs/ken/archive/tags/IIS/default.aspx">IIS</category></item><item><title>Potential Critical Security issue in Windows Server 2003/2008 - IIS may be a vector for compromise</title><link>http://www.adopenstatic.com/cs/blogs/ken/archive/2008/04/17/17399.aspx</link><pubDate>Fri, 18 Apr 2008 06:59:00 GMT</pubDate><guid isPermaLink="false">e0e31441-78b9-4457-b9b0-6f7906e03e71:17399</guid><dc:creator>Ken</dc:creator><slash:comments>1</slash:comments><comments>http://www.adopenstatic.com/cs/blogs/ken/comments/17399.aspx</comments><wfw:commentRss>http://www.adopenstatic.com/cs/blogs/ken/commentrss.aspx?PostID=17399</wfw:commentRss><wfw:comment>http://www.adopenstatic.com/cs/blogs/ken/rsscomments.aspx?PostID=17399</wfw:comment><description>&lt;p&gt;As some of you may be aware, Cesar Cerrudo of Argeniss&amp;nbsp;presented a session at the just completed &lt;a href="http://conference.hitb.org/hitbsecconf2008dubai/" title="Hack in a Box 2008 conference" target="_blank"&gt;Hack in a Box&lt;/a&gt; conference where exploit code was demonstrated&amp;nbsp;that allows certain code running with restricted privileges (e.g. Network Service) to gain high privileges (e.g. LocalSystem). The exploit appears to rely on the fact that certain other processes running as network service have SeImpersonatePrivilege, and the malicious code can use this to gain additional privileges on the system.&lt;/p&gt;&lt;p&gt;Microsoft has &lt;a href="http://www.microsoft.com/technet/security/advisory/951306.mspx" title="Microsoft Security Advisory Bulletin" target="_blank"&gt;released an advisory&lt;/a&gt; on this potential vulnerability, and if you are running IIS 6 or IIS 7, you are urged to examine the potential implications and workarounds posted.&lt;/p&gt;&lt;p&gt;Edit: 19/04/2008 - the slides from Cesar&amp;#39;s presentation have been posted on the &lt;a href="http://www.argeniss.com/research/TokenKidnapping.pdf" title="Argeniss - Token Kidnapping" target="_blank"&gt;Argeniss website&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.adopenstatic.com/cs/aggbug.aspx?PostID=17399" width="1" height="1"&gt;</description><category domain="http://www.adopenstatic.com/cs/blogs/ken/archive/tags/IIS/default.aspx">IIS</category></item><item><title>Converting from VMWare Server to Hyper-V RC0</title><link>http://www.adopenstatic.com/cs/blogs/ken/archive/2008/03/23/16710.aspx</link><pubDate>Mon, 24 Mar 2008 06:06:00 GMT</pubDate><guid isPermaLink="false">e0e31441-78b9-4457-b9b0-6f7906e03e71:16710</guid><dc:creator>Ken</dc:creator><slash:comments>23</slash:comments><comments>http://www.adopenstatic.com/cs/blogs/ken/comments/16710.aspx</comments><wfw:commentRss>http://www.adopenstatic.com/cs/blogs/ken/commentrss.aspx?PostID=16710</wfw:commentRss><wfw:comment>http://www.adopenstatic.com/cs/blogs/ken/rsscomments.aspx?PostID=16710</wfw:comment><description>&lt;p style="font-family:verdana, geneva, arial;"&gt;This Easter weekend, having a bit of downtime, I decided to convert my virtual infrastructure at home from VMWare Server to Hyper-V. The major blocking issue was a lack of RAID controller drivers from 3Ware for their 9650SE-series cards, but thanks to &lt;a href="http://blog.justinho.com/2008/03/02/3Ware9650SEAndWindowsServer2008BootProblems.aspx" title="Justin Ho: 3Ware 9650SE RAID Controller and Windows Server 2008 x64" target="_blank"&gt;Justin Ho&lt;/a&gt; it seemed like I was good to go. The timely release of &lt;a href="http://support.microsoft.com/kb/949219" title="Hyper-V RC0 Download" target="_blank"&gt;Hyper-V RC0&lt;/a&gt; meant that I could use an updated version of Hyper-V, and also install my Windows Server 2008 machine using my local en-au settings rather than en-us.&lt;/p&gt;&lt;p style="font-family:verdana, geneva, arial;"&gt;The servers that I had running where:&lt;/p&gt;&lt;ul style="font-family:verdana, geneva, arial;"&gt;&lt;li&gt;Server1 - Windows Home Server&lt;/li&gt;&lt;li&gt;Server2 - Exchange 2007 (Windows Server 2003 x64)&lt;/li&gt;&lt;li&gt;Server3 - Operations Manager 2007 + WSUS (Windows Server 2003 x86)&lt;/li&gt;&lt;li&gt;Server4 - ISA Server 2006 (Windows Server 2003)&lt;/li&gt;&lt;li&gt;Server5 - Domain Controller 1 (Windows Server 2003)&lt;/li&gt;&lt;li&gt;Server6 - Domain Controller 2 (Windows Server 2003 x64)&lt;/li&gt;&lt;/ul&gt;&lt;p style="font-family:verdana, geneva, arial;"&gt;To speed up the conversion time, I removed DC2 from the domain (and recreated it as a brand new VM at the end of the process. It is now my first Windows Server 2008 DC). I also removed the Operations Manager 2007 machine (and recreated this on Windows Server 2008)&lt;/p&gt;&lt;p style="font-family:verdana, geneva, arial;"&gt;The steps I used to convert these VMs:&lt;/p&gt;&lt;ol style="font-family:verdana, geneva, arial;"&gt;&lt;li&gt;Made a backup of all&amp;nbsp;my virtual machines before&amp;nbsp;I started!&lt;/li&gt;&lt;li&gt;DCPromo DC2, and remove it from the domain&lt;/li&gt;&lt;li&gt;Uninstall Operations Manager clients from all managed servers, then remove Server3 from the domain&lt;/li&gt;&lt;li&gt;Uninstall the VMWare Tools from each remaining virtual machine&lt;/li&gt;&lt;li&gt;Shutdown all remaining machines and make a backup of the VMDK files (again)&lt;/li&gt;&lt;li&gt;Convert the VDMK files to VHD files. You can use System Center Virtual Machine Manager (SCVMM) to do this. Alternatively I used the free &lt;a href="http://vmtoolkit.com/files/folders/converters/entry8.aspx" title="VMDKtoVHD convertor tool from VMToolkit" target="_blank"&gt;VDMKtoVHD tool&lt;/a&gt; from &lt;a href="http://vmtoolkit.com" title="VMToolKit" target="_blank"&gt;VMToolKit&lt;/a&gt;. Note that if your VMDK files are pre-allocated fixed sized disks, they will become dynamically expanding VHD disks after the conversion (empty space isn&amp;#39;t converted)&lt;/li&gt;&lt;li&gt;Configure my 3Ware 9650SE&amp;nbsp;RAID controller BIOS per Justin Ho&amp;#39;s instructions (see earlier)&lt;/li&gt;&lt;li&gt;Format my arrays, and install a brand new copy of Windows Server 2008 x64&lt;/li&gt;&lt;li&gt;Install the Hyper-V RC0 update&lt;/li&gt;&lt;li&gt;Install the Hyper-V role, as well as desired features (Backup and PowerShell)&lt;/li&gt;&lt;li&gt;Create the necessary virtual networks in Hyper-V&lt;/li&gt;&lt;li&gt;Create new virtual machines using the newly converted VHD files and boot the machines&lt;/li&gt;&lt;/ol&gt;&lt;p style="font-family:verdana, geneva, arial;"&gt;Some issues that I discovered:&lt;/p&gt;&lt;ul style="font-family:verdana, geneva, arial;"&gt;&lt;li&gt;My VMWare machines were using SCSI disks connected to a SCSI controller. Unfortunately booting Hyper-V machines requires IDE disks at the moment. Since the IDE mass storage controller wasn&amp;rsquo;t set to start in my VMs, they Blue Screened with STOP 0x7B (Inaccessible_Boot_Device). I fixed this issue by inserting the OS setup CD and doing a repair on the OS.&lt;br /&gt;EDIT: Steen has a &lt;a href="http://www.adopenstatic.com/cs/blogs/ken/archive/2008/03/23/16710.aspx#17546" title="Great Tip!"&gt;great tip below&lt;/a&gt; for how to get around this issue. It requires you to add a dummy IDE disk to your VMWare VM prior to do the conversion (to get the IDE mass storage controller into a started state)&lt;/li&gt;&lt;li&gt;There appears to be an issue with guest OSes talking to a virtualised ISA Server when all the machines are using the new VMBus NICs and the NICs are connected to a Private or Internal Hyper-V network (the issue doesn&amp;#39;t appear to manifest if the NICs are bridged to a physical NIC). Networking doesn&amp;#39;t work to well, and when running ISA&amp;#39;s monitoring tools, packets are missing. To fix this issue, I changed the NICs on my ISA Server that were connected to Private or Internal networks to using the Legacy (Intel 21140) NIC. Since ISA Server 2006 only runs on Windows Server x86, there are supplied Intel 21140 drivers on the Hyper-V Integration Services disc.&lt;/li&gt;&lt;/ul&gt;&lt;p style="font-family:verdana, geneva, arial;"&gt;So this was the picture beforehand:&lt;/p&gt;&lt;img alt="VMWare To Hyper-V (before)" border="0" height="463" src="http://www.adopenstatic.com/images/resources/blog/VMWareToHyperV1.jpg" style="width:640px;height:463px;" title="VMWare To Hyper-V (before)" width="640" /&gt; &lt;p style="font-family:verdana, geneva, arial;"&gt;and this is the picture aftewards:&lt;/p&gt;&lt;img alt="VMWare Server to Hyper-V (after)" border="0" height="436" src="http://www.adopenstatic.com/images/resources/blog/VMWareToHyperV2.jpg" style="width:640px;height:436px;" title="VMWare Server to Hyper-V (after)" width="640" /&gt; &lt;p style="font-family:verdana, geneva, arial;"&gt;Performance appears to be much snappier under Hyper-V compared to VMWare Server, especially with respect to Disk I/O. Additionally, I can now backup my virtual machines when running (well, I hope I can) using my &lt;a href="http://www.adopenstatic.com/cs/blogs/ken/archive/2008/01/14/15443.aspx" title="Dell RD1000 Review"&gt;new RD1000 device&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://www.adopenstatic.com/cs/aggbug.aspx?PostID=16710" width="1" height="1"&gt;</description><category domain="http://www.adopenstatic.com/cs/blogs/ken/archive/tags/Vista+_2F00_+Windows+Server+2008/default.aspx">Vista / Windows Server 2008</category><category domain="http://www.adopenstatic.com/cs/blogs/ken/archive/tags/Virtualization/default.aspx">Virtualization</category></item></channel></rss>