<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tristan Watkins on IT Infrastructure&#187; Tristan Watkins on IT Infrastructure</title>
	<atom:link href="http://tristanwatkins.com/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://tristanwatkins.com</link>
	<description>Architectural insight for SharePoint and supporting technologies</description>
	<lastBuildDate>Fri, 03 Sep 2010 03:58:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>User Profile Picture and Certificate Trusts</title>
		<link>http://tristanwatkins.com/index.php/user-profile-picture-certificate-trusts/</link>
		<comments>http://tristanwatkins.com/index.php/user-profile-picture-certificate-trusts/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 06:06:18 +0000</pubDate>
		<dc:creator>Tristan Watkins</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Active Directory]]></category>
		<category><![CDATA[certificates]]></category>
		<category><![CDATA[Export]]></category>
		<category><![CDATA[FIM]]></category>
		<category><![CDATA[Picture]]></category>
		<category><![CDATA[Service Applications]]></category>
		<category><![CDATA[SSL]]></category>
		<category><![CDATA[User Profile]]></category>
		<category><![CDATA[web services]]></category>

		<guid isPermaLink="false">http://tristanwatkins.com/?p=1208</guid>
		<description><![CDATA[In my post yesterday on User Profile Picture Export Permissions I reviewed the requirements to export the SharePoint PictureURL profile property to the Active Directory thumbnailPhoto user attribute. Where I left off, I had identified a certificate error on our SSL-secured MySite&#8217;s wildcard certificate. You may recall that the User Profile synchronisation exported the mobile [...]]]></description>
			<content:encoded><![CDATA[<p>In my post yesterday on <a title="User Profile Picture Export Permissions" href="http://tristanwatkins.com/index.php/user-profile-picture-export-permissions/" target="_blank">User Profile Picture Export Permissions</a> I reviewed the requirements to export the SharePoint <em>PictureURL</em> profile property to the Active Directory <em>thumbnailPhoto</em> user attribute. Where I left off, I had identified a certificate error on our SSL-secured MySite&#8217;s wildcard certificate. You may recall that the User Profile synchronisation exported the mobile number property successfully. Given that this mobile number was updated by the end-users though the same MySite host as the User Profile picture, you may wonder why one exported successfully if there were certificate errors that interfered with the other.</p>
<p>Fundamentally, it&#8217;s irrelevant that this data was updated by these users in their MySites. The property could have been updated by an administrator in the <em>User Profile Service Application</em>. However, it appears that the User Profile export is not just exporting the URL as a string, it is actually copying the image on export; <strong>the <em>User Profile Service Application</em> is browsing to the SSL-secured site to pick up the image and writes it to the user&#8217;s <em>thumbnailPhoto</em> attribute</strong>. In this post I&#8217;ll review the evidence and explain the additional certificate trust configuration required to export an SSL-secured User Profile picture.</p>
<p><span id="more-1208"></span></p>
<h3>Certificate Trusts</h3>
<p>While I initially stumbled across this error in the SharePoint ULS logs, it was also logged to the Windows Application event logs as a SharePoint Foundation Topology error (8311), &#8220;<em>The root of the certificate chain is not a trusted  root authority</em>&#8220;. As I hinted at yesterday, I initially disregarded this error because it pertained to our wildcard SSL certificate and I knew that the root certificate (Equifax) would be trusted by Windows by default (this is pretty fundamental to a Public Key Infrastructure). It was only when I noticed that this event occurred as part of the User Profile Synchronisation process that I looked in to it in more detail. These were the ULS logs that first grabbed my attention:</p>
<pre class="brush: xml;">08/31/2010 10:36:12.33    miiserver.exe (0x106C)    0x1A1C    SharePoint Foundation    Topology    e5mc    Medium    WcfSendRequest: RemoteAddress: 'http://&lt;HOSTNAME&gt;:32843/2caef145ca304d148378faec86645981/ProfileDBCacheService.svc' Channel: 'Microsoft.Office.Server.UserProfiles.IProfileDBCacheService' Action: 'http://Microsoft.Office.Server.UserProfiles/GetUserData' MessageId: 'urn:uuid:63e3bc90-878b-4fc4-99b5-38c8ab2a4574'
08/31/2010 10:36:12.34    w3wp.exe (0x0C34)    0x0E14    SharePoint Foundation    Topology    e5mb    Medium    WcfReceiveRequest: LocalAddress: 'http://&lt;FULLY QUALIFIED HOST NAME&gt;:32843/2caef145ca304d148378faec86645981/ProfileDBCacheService.svc' Channel: 'System.ServiceModel.Channels.ServiceChannel' Action: 'http://Microsoft.Office.Server.UserProfiles/GetUserData' MessageId: 'urn:uuid:63e3bc90-878b-4fc4-99b5-38c8ab2a4574'    9c26087b-cb49-40b2-93f5-f8583499eead
08/31/2010 10:36:12.34    w3wp.exe (0x0C34)    0x0E14    SharePoint Foundation    Monitoring    nasq    Medium    Entering monitored scope (ExecuteWcfServerOperation)    9c26087b-cb49-40b2-93f5-f8583499eead
08/31/2010 10:36:12.34    w3wp.exe (0x0C34)    0x0E14    SharePoint Foundation    Monitoring    b4ly    Medium    Leaving Monitored Scope (ExecuteWcfServerOperation). Execution Time=4.61966025838972    9c26087b-cb49-40b2-93f5-f8583499eead
08/31/2010 10:36:12.38    miiserver.exe (0x106C)    0x1A1C    SharePoint Foundation    General    erv2    Medium    Updating X.509 certificate validation policy
08/31/2010 10:36:12.44    miiserver.exe (0x106C)    0x1A1C    SharePoint Foundation    General    erv3    Medium    Adding X.509 certificate thumbprint '&lt;THUMBPRINT 1&gt;' to root authority trust
08/31/2010 10:36:12.44    miiserver.exe (0x106C)    0x1A1C    SharePoint Foundation    Topology    8311    Critical    An operation failed because the following certificate has validation errors:\n\nSubject Name: CN=*.&lt;WILDCARD DOMAIN NAME&gt;, OU=Domain Control Validated - RapidSSL(R), OU=See www.rapidssl.com/resources/cps (c)10, OU=GT12672216, O=*.&lt;WILDCARD DOMAIN NAME&gt;, C=GB, SERIALNUMBER= xxxxxxxxxxxxxxxxxxxxxxxxx-xxxxxx \nIssuer Name: OU=Equifax Secure Certificate Authority, O=Equifax, C=US\nThumbprint: &lt;THUMBPRINT 2&gt;\n\nErrors:\n\n The root of the certificate chain is not a trusted root authority..
08/31/2010 10:36:12.44    miiserver.exe (0x106C)    0x1A1C    SharePoint Foundation    Topology    8311    Critical    An operation failed because the following certificate has validation errors:\n\nSubject Name: CN=*.&lt;WILDCARD DOMAIN NAME&gt;, OU=Domain Control Validated - RapidSSL(R), OU=See www.rapidssl.com/resources/cps (c)10, OU=GT12672216, O=*.&lt;WILDCARD DOMAIN NAME&gt;, C=GB, SERIALNUMBER=xxxxxxxxxxxxxxxxxxxxxxxxx-xxxxxx\nIssuer Name: OU=Equifax Secure Certificate Authority, O=Equifax, C=US\nThumbprint: &lt;THUMBPRINT 2&gt;\n\nErrors:\n\n The root of the certificate chain is not a trusted root authority..</pre>
<p>These certificate errors at the bottom interrupted a long series of repeated <em>http://Microsoft.Office.Server.UserProfiles/GetUserData</em> events. The two events at the top of this excerpt are the last in that series, so <strong>the certificate errors occurred immediately after the user data had been gathered</strong>. This was a pretty strong hint that the certificate errors were interfering with the export. I was initially pretty stumped because I knew Windows trusted this certificate and I could confirm the certificates were fully trusted when I browsed to the MySite from the server, but <strong>I didn&#8217;t know what requested the certificate and why it wasn&#8217;t trusted</strong>. So I searched around a bit and found a number of articles about adding root certificates to SharePoint 2010&#8242;s <a title="Exchange trust certificates between farms (SharePoint Server 2010)" href="http://technet.microsoft.com/en-us/library/ee704552.aspx" target="_blank">Manage Trusts</a>, which I&#8217;ve only used for <a title="Managing Trusted Root Authorities for Claims Authentication in SharePoint 2010 Central Admin" href="http://blogs.technet.com/b/speschka/archive/2010/07/07/managing-trusted-root-authorities-for-claims-authentication-in-sharepoint-2010-central-admin.aspx" target="_blank">Claims</a> and <a title="Exchange trust certificates between farms (SharePoint Server 2010)" href="http://technet.microsoft.com/en-us/library/ee704552.aspx" target="_blank">Cross-Farm Service Applications</a>, but I noticed it also came up for <a title="Manage certificates (FAST Search Server 2010 for SharePoint)" href="http://technet.microsoft.com/en-us/library/ff381244.aspx#BKMK_QueryHTTPSCertificate" target="_blank">FAST Search</a>, <a title="Calendar Overlays and Exchange 2010" href="http://social.technet.microsoft.com/Forums/en-US/sharepoint2010setup/thread/fd9fd98c-8ac4-4b3d-9fda-610173273f4c" target="_blank">Exchange Web Services</a> and <a title="SSL certificate error when calling webservice in SharePoint " href="http://jsiegmund.wordpress.com/2010/07/23/ssl-certificate-error-when-calling-webservice-in-sharepoint/" target="_blank">REST</a> &#8211; seemingly for any web services that access SSL-secured resources, intra or inter-farm.</p>
<p>What I don&#8217;t understand is why <strong>SharePoint web services aren&#8217;t using the Windows certificate store</strong> as a first stop before using SharePoint&#8217;s own <em>Manage Trusts</em>. I&#8217;m assuming this is something to do with Claims but I&#8217;m struggling to uncover anything meaningful that can confirm or disconfirm this. In the absence of guidance, I tested exporting our wildcard certificate and the root CA&#8217;s certificate to the local machine&#8217;s and the farm account&#8217;s certificate stores to see if that would fix the problem, without success. Next I tried to import the wildcard certificate through <em>Manage Trusts</em>, which still did not fix the certificate errors, but when I imported the root CA&#8217;s certificate in to <em>Manage Trusts</em>, the next synchronisation succeeded. In an effort to get to grips with these requirements and to understand how the certificate was requested I continued to monitor in ULSViewer and the FIM Client.</p>
<h3>Successful Export</h3>
<p>Initially, the same two <a title="GetUserData" href="http://msdn.microsoft.com/en-us/library/dd947738%28office.12%29.aspx" target="_blank">GetUserData</a> actions ran as in the first two events above. In fact, each of the first  five ULS entries were identical to the first excert above, followed by the successful addition of  three certificates to the root authority trust. This was when I suspected things were working (or that I&#8217;d at least cleared the next hurdle).</p>
<pre class="brush: xml;">08/31/2010 12:22:10.65    miiserver.exe (0x07DC)    0x1B1C    SharePoint Foundation    General    erv3    Medium    Adding X.509 certificate thumbprint '&lt;THUMBPRINT 2&gt;' to root authority trust
08/31/2010 12:22:10.67    miiserver.exe (0x07DC)    0x1B1C    SharePoint Foundation    General    erv3    Medium    Adding X.509 certificate thumbprint '&lt;THUMBPRINT 3&gt;' to root authority trust
08/31/2010 12:22:10.72    miiserver.exe (0x07DC)    0x1B1C    SharePoint Foundation    General    erv3    Medium    Adding X.509 certificate thumbprint '&lt;THUMBPRINT 1&gt;' to root authority trust</pre>
<p>At this point a number of &#8220;Assemblies and Sequences&#8221; are registered.  Pretty boring stuff, so omitted here. All of these events begin with  <em>SPDelegateManager</em> or <em>SPXmlConfigurationManager</em>. This is followed by a  few events verifying the upgrade status of the databases, confirming  that upgrades are not in progress or necessary. After that there are a  couple of handfuls of additional configuration checks. Continuing after  all that, we see the expected <strong>HTTP GET</strong> request for the first user&#8217;s updated User Profile picture:</p>
<pre class="brush: xml;">08/31/2010 12:22:14.61    w3wp.exe (0x1B08)    0x09EC    SharePoint Foundation    Monitoring    nasq    Medium    Entering monitored scope (Request (GET:https://&lt;MY SITE HOST&gt;:443/User%20Photos/Profile%20Pictures/&lt;USER 1 PROFILE PICTURE NAME&gt;.jpg))
08/31/2010 12:22:14.61    w3wp.exe (0x1B08)    0x09EC    SharePoint Foundation    Logging Correlation Data    xmnv    Medium    Name=Request (GET: https://&lt;MY SITE HOST&gt;:443/User%20Photos/Profile%20Pictures/&lt;USER 1 PROFILE PICTURE NAME&gt;.jpg))    b7ca5cb5-25f0-401d-87e8-fe93bb3c63d5 </pre>
<p>This is followed by a few less relevant events, then more log entries about the GET:</p>
<pre class="brush: xml;">08/31/2010 12:22:14.93    w3wp.exe (0x1B08)    0x09EC    SharePoint Foundation    Monitoring    b4ly    Medium    Leaving Monitored Scope (Request (GET: https://&lt;MY SITE HOST&gt;:443/User%20Photos/Profile%20Pictures/&lt;USER 1 PROFILE PICTURE NAME&gt;.jpg))). Execution Time=325.341137549723    b7ca5cb5-25f0-401d-87e8-fe93bb3c63d5
08/31/2010 12:22:14.93    w3wp.exe (0x1B08)    0x09EC    SharePoint Foundation    Monitoring    nasq    Medium    Entering monitored scope (Request (GET: https://&lt;MY SITE HOST&gt;:443/User%20Photos/Profile%20Pictures/&lt;USER 1 PROFILE PICTURE NAME&gt;.jpg)))
08/31/2010 12:22:14.93    w3wp.exe (0x1B08)    0x09EC    SharePoint Foundation    Logging Correlation Data    xmnv    Medium    Name=Request (GET: https://&lt;MY SITE HOST&gt;:443/User%20Photos/Profile%20Pictures/&lt;USER 1 PROFILE PICTURE NAME&gt;.jpg))    dfaaa0df-b2c0-4aab-a461-71e39680ad08
08/31/2010 12:22:14.95    w3wp.exe (0x1B08)    0x09EC    SharePoint Foundation    Monitoring    b4ly    Medium    Leaving Monitored Scope (Request (GET: https://&lt;MY SITE HOST&gt;:443/User%20Photos/Profile%20Pictures/&lt;USER 1 PROFILE PICTURE NAME&gt;.jpg))). Execution Time=3.98852138030115    dfaaa0df-b2c0-4aab-a461-71e39680ad08
08/31/2010 12:22:14.95    w3wp.exe (0x1B08)    0x09EC    SharePoint Foundation    Monitoring    nasq    Medium    Entering monitored scope (Request (GET: https://&lt;MY SITE HOST&gt;:443/User%20Photos/Profile%20Pictures/&lt;USER 1 PROFILE PICTURE NAME&gt;.jpg)))
08/31/2010 12:22:14.95    w3wp.exe (0x1B08)    0x09EC    SharePoint Foundation    Logging Correlation Data    xmnv    Medium    Name=Request (GET: https://&lt;MY SITE HOST&gt;:443/User%20Photos/Profile%20Pictures/&lt;USER 1 PROFILE PICTURE NAME&gt;.jpg))    d3a5dff3-8dad-4c79-abf1-66284748d246 </pre>
<p>A few more irrelevant events, then:</p>
<pre class="brush: xml;">08/31/2010 12:22:14.98    w3wp.exe (0x1B08)    0x17EC    SharePoint Foundation    General    af74    Medium    HTTP request URL: /User%20Photos/Profile%20Pictures/&lt;USER 1 PROFILE PICTURE NAME&gt;.jpg)    d3a5dff3-8dad-4c79-abf1-66284748d246 </pre>
<p>More database upgrade checks, then:</p>
<pre class="brush: xml;">08/31/2010 12:22:16.18    w3wp.exe (0x1B08)    0x09EC    SharePoint Foundation    Monitoring    b4ly    Medium    Leaving Monitored Scope (Request (GET: https://&lt;MY SITE HOST&gt;:443/User%20Photos/Profile%20Pictures/&lt;USER 1 PROFILE PICTURE NAME&gt;.jpg)). Execution Time=1240.43874963807    d3a5dff3-8dad-4c79-abf1-66284748d246</pre>
<p>These events are then repeated sequentially for other updated users. After these complete, voila! The <em>thumbnailPhoto</em> attribute is exported by FIM, populated in Active Directory and the profile picture appears in the Outlook 2010 Social Connector. I haven&#8217;t monitored how quickly this appears, but it works without further intervention.</p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/FIMSuccess.png"><img class="alignnone size-full wp-image-1241" title="FIMSuccess" src="http://tristanwatkins.com/wp-content/uploads/FIMSuccess.png" alt="FIMSuccess User Profile Picture and Certificate Trusts" width="236" height="391" /></a></p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/ADThumbnailPhoto.png"><img class="alignnone size-full wp-image-1242" title="ADThumbnailPhoto" src="http://tristanwatkins.com/wp-content/uploads/ADThumbnailPhoto.png" alt="ADThumbnailPhoto User Profile Picture and Certificate Trusts" width="434" height="206" /></a></p>
<p>And the money shot. Who wouldn&#8217;t want to see <a title="Glyn Blogs" href="http://www.glynblogs.com/" target="_blank">this mug</a> in their Outlook every day. :/</p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/OutlookSocialConnector2.png"><img class="alignnone size-full wp-image-1245" title="OutlookSocialConnector2" src="http://tristanwatkins.com/wp-content/uploads/OutlookSocialConnector2.png" alt="OutlookSocialConnector2 User Profile Picture and Certificate Trusts" width="500" /></a></p>
<h3>Summary</h3>
<p>Following this interrogation, it&#8217;s clear to me the certificate errors come from the location of the updated profile picture. The errors can be fixed by importing an export of the root CA&#8217;s certificate through SharePoint&#8217;s <em>Manage Trusts</em> (possibly the site&#8217;s certificate itself as well, although the error was on the root trust). That SharePoint 2010 web services (including the User Profile Service Application) do not appear to use the Windows certificate store feels uncomfortable to me, but I imagine this is probably related to the new SharePoint 2010 STS and I will be looking at this topic in more detail in future.</p>
]]></content:encoded>
			<wfw:commentRss>http://tristanwatkins.com/index.php/user-profile-picture-certificate-trusts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>User Profile Picture Export Permissions</title>
		<link>http://tristanwatkins.com/index.php/user-profile-picture-export-permissions/</link>
		<comments>http://tristanwatkins.com/index.php/user-profile-picture-export-permissions/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 07:07:51 +0000</pubDate>
		<dc:creator>Tristan Watkins</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Active Directory]]></category>
		<category><![CDATA[certificates]]></category>
		<category><![CDATA[Export]]></category>
		<category><![CDATA[FIM]]></category>
		<category><![CDATA[Picture]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[User Profile]]></category>

		<guid isPermaLink="false">http://tristanwatkins.com/?p=1189</guid>
		<description><![CDATA[Most IT Professionals with SharePoint 2010 experience will be familiar with the initial configuration complexities of the User Profile Service Application but it&#8217;s probably less well-known that there are additional requirements to set up profile property export, and that some properties have further requirements still. SharePoint 2010 allows properties to either be imported or exported [...]]]></description>
			<content:encoded><![CDATA[<p>Most IT Professionals with SharePoint 2010 experience will be familiar with the initial configuration complexities of the <em>User Profile Service Application</em> but it&#8217;s probably less well-known that there are additional requirements to set up profile property <strong>export</strong>, and that some properties have further requirements still. SharePoint 2010 allows properties to either be imported or exported (but not both, out of the box). The most basic of these requirements for Active Directory export are the <em>Write All Properties</em> and <em>Create Child Objects</em> permissions on the OUs where data will be written by SharePoint.</p>
<p>We initially followed <a title="Configure Profile Image Export" href="http://blogs.catapultsystems.com/matthew/archive/2010/03/13/configuring-profile-image-export-in-sharepoint-2010.aspx" target="_blank">Matthew McDermott&#8217;s Profile Image Export suggestions</a> but in our case these steps were insufficient, as detailed below. That article was written while SharePoint 2010 was a beta product. The <em>User Profile Service Application</em> changed since that release and is now configured differently, so it doesn&#8217;t surprise me that our experience differs.</p>
<p>You might wonder why we spent this much effort just to get a picture in Active Directory (of all places). While we think it&#8217;s important to have this knowledge for our clients and delegating photo selection to end users can drive SharePoint adoption, it is also used by the <a title="Microsoft Outlook 2010 Social Connector" href="http://www.microsoft.com/downloads/details.aspx?familyid=B638CC14-11E5-448A-B5A6-4F553CE81B94&amp;displaylang=en" target="_blank">Outlook 2010 Social Connector</a>. When you start using this great new social computing front-end, it just feels incomplete without a photo.<br />
<span id="more-1189"></span></p>
<h3>Identifying the Trouble</h3>
<p>We&#8217;ve recently deployed a new SharePoint 2010 farm for team sites, but we wanted to make certain that the <em>User Profile Service Application</em> was fully configured before unleashing it, as it&#8217;s not the sort of thing that you want to add to a system that&#8217;s already in production. In our initial testing we completed a full profile import then decided to test exporting changes to a few of the Active Directory properties, such as mobile number and the profile picture, or <em>thumbnailPhoto</em> (as it&#8217;s known in LDAP). This is done by removing the Import mapping in the User Profile Property and adding a new setting for Export (see Matthew McDermott&#8217;s blog above if this is unclear). The mobile number synchronised successfully but the <em>thumbnailPhoto</em> failed, with no obvious errors.</p>
<p>After running a couple of full synchronisations while actively monitoring <a title="ULS Viewer" href="http://code.msdn.microsoft.com/ULSViewer" target="_blank">ULSViewer</a>, I also launched the FIM (Forefront Identity Manager) Client, AKA <em>Synchronisation Service Manager</em> (or MIISClient.exe), as Spencer Harbar recommends in his <a title="Rational Guide to implementing SharePoint Server 2010 User Profile Synchronization" href="http://www.harbar.net/articles/sp2010ups.aspx">Rational Guide</a>. Note that although this is not a supported tool for SharePoint 2010, it provides a view of what&#8217;s going on in SharePoint&#8217;s FIM instance that isn&#8217;t always visible in the ULS logs. This can sometimes be invaluable.</p>
<p>Stepping through these FIM events, it was clear that the LDAP <em>thumbnailPhoto</em> property (<em>PictureURL</em> in SharePoint) wasn&#8217;t getting marked for export. We could monitor the addition of the Mobile number when that data was updated, but the <em>PictureURL</em> was not captured.</p>
<h3>Active Directory Rights</h3>
<p><a title="Configure profile synchronization (SharePoint Server 2010)" href="http://technet.microsoft.com/en-us/library/ee721049.aspx#section1" target="_blank">Revisiting the source</a>, I decided to see if the TechNet documentation included anything specific for the User Profile picture, as it was last updated on 12 August 2010 and I&#8217;d not looked at it since May. Happily it speaks specifically to these requirements, albeit in rather cryptic terms:</p>
<blockquote><p>To export properties, such as profile pictures, from SharePoint Server 2010 to AD DS, at least Replicate Directory Changes permission is needed on the object and all child objects for the AD DS domains to which you want to export data from SharePoint Server 2010. Read/Write permission is also needed <strong>on the container that stores the user picture attribute</strong>, for example, the <strong>ThumbnailPhoto</strong> attribute.</p></blockquote>
<p>Unfortunately my Active Directory skills are not as sharp as they were when I actually  administered a domain, but I figured it shouldn&#8217;t be rocket science to figure out how to grant permissions on an attribute. Pretty much everything I found mentioned granting read/write permissions on the following user attributes:</p>
<p style="padding-left: 30px;"><span style="font-family: Verdana,Arial; font-size: x-small;">Read/Write &#8211; jpegPhoto<br />
Read/Write &#8211; pwdLastSet<br />
Read/Write &#8211; userAccountControl</span></p>
<p>However, I still didn&#8217;t know how to do that. Luckily the <a title="elegating jpegPhoto User Attribute" href="http://www.systemtools.com/board/Forum6/HTML/000129.html" target="_blank">fifth post in this thread</a> spells it out:</p>
<p style="padding-left: 30px;">1. Right-click the appropriate OU<br />
2. Select the Security tab<br />
3. Click Advanced<br />
4. Click Add<br />
5. Select user then OK<br />
6. Select Properties tab<br />
7. Change Apply To to Descendant User Objects<br />
8. Check both Read and Write for the following permissions:<br />
<em>thumbnailPhoto</em><br />
<em>userAccountControl</em><br />
<em>pwdLastSet</em></p>
<p>Note: I tried to set the permissions on <em>thumbnailPhoto</em> without including the other two attributes and the sync failed in precisely the same manner as it had previously.</p>
<p>After granting these rights in my development domain and kicking off a User Profile sync I saw the <em>PictureURL </em>attribute appear in FIM and it successfully updated Active Directory. However, when I repeated this process in our production environment I still had the same behaviour as before. At this point I had another look through the ULS logs in painstaking detail and this time I paid attention to two certificate errors (more on that tomorrow). But before pursuing any certificate troubleshooting missions I made a note and hit the search engines one last time in anger.</p>
<h3>SQL Native Client</h3>
<p>In my searches I also found that <a title="FIM 2010 updates: error on installation" href="http://social.technet.microsoft.com/Forums/en-US/ilm2/thread/d919001a-5bdb-45b7-acf4-00db3845f48b" target="_blank">FIM 2010 requires the SQL 2008 Native Client on installations where SQL is installed on another server</a>. My development environment has local SQL but production uses a shared instance. I tried to run the installer for the Native Client in production but was notified that it already existed. On reflection, I remembered this is installed by the SharePoint 2010 pre-requisite installer, which explains why this issue is being reported by full FIM users and not by SharePoint 2010 users. However, it&#8217;s worth noting this requirement here in case someone has an overzealous administrator that decides to remove the Native Client.</p>
<h3>SSL</h3>
<p>It will turn out that my production environment requires additional work because the MySite web application is SSL-secured. I will go over those requirements in <a title="User Profile Picture and Certificate Trusts" href="http://tristanwatkins.com/index.php/user-profile-picture-certificate-trusts/" target="_self">my next post</a>, although it should not be necessary to follow those steps unless the <em>User Profile Service Application</em> is reading data from an SSL-secured site.</p>
]]></content:encoded>
			<wfw:commentRss>http://tristanwatkins.com/index.php/user-profile-picture-export-permissions/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Product Version Job: DCOM 10016 strikes again</title>
		<link>http://tristanwatkins.com/index.php/product-version-job-dcom-10016-strikes-again/</link>
		<comments>http://tristanwatkins.com/index.php/product-version-job-dcom-10016-strikes-again/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 17:08:24 +0000</pubDate>
		<dc:creator>Tristan Watkins</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[DCOM]]></category>
		<category><![CDATA[MSIInstaller]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[Timer Job]]></category>
		<category><![CDATA[Windows Server 2008 R2]]></category>

		<guid isPermaLink="false">http://tristanwatkins.com/?p=1154</guid>
		<description><![CDATA[For some time now, IT professionals have been modifying DCOM activation rights in order to keep their System event logs clean. In SharePoint 2010, that fix became slightly trickier, as permissions to modify the DCOM permissions had to be granted through the registry for the IIS WAM REG admin service and oSearch14 DCOM applications. Having [...]]]></description>
			<content:encoded><![CDATA[<p>For <a title="Pesky DCOM 10016 Errors" href="http://www.harbar.net/archive/2007/04/04/Pesky-DCOM-10016-Errors.aspx" target="_blank">some time now</a>, IT professionals have been modifying DCOM activation rights in order to keep their System event logs clean. In SharePoint 2010, that fix became slightly trickier, as permissions to modify the DCOM permissions had to be <a title="DCOM error 10016 with SharePoint 2010" href="http://www.mattgrovesblog.com/2009/10/dcom-error-10016-with-sharepoint-2010.html" target="_blank">granted through the registry</a> for the <em>IIS WAM REG</em> admin service and <em>oSearch14</em> DCOM applications. Having made these fixes, I&#8217;ve noticed <a title="Server Fault" href="http://serverfault.com/questions/169199/unable-to-modify-dcom-config-properties-for-a-single-application-in-component-ser" target="_blank">a new breed of DCOM 10016 error</a>.</p>
<blockquote>
<p style="text-align: left;">The machine-default permission settings do not grant Local Activation permission for the COM Server application with CLSID<br />
{000C101C-0000-0000-C000-000000000046}<br />
and APPID<br />
{000C101C-0000-0000-C000-000000000046}<br />
to the user &lt;FARM ACCOUNT&gt; SID (S-1-5-21-xxxxxxx&#8230;.) from address LocalHost (Using LRPC). This security permission can be modified using the Component Services administrative tool.</p>
</blockquote>
<p>The CLSID for this COM Server Application is MSIServer, used to activate the Windows Installer Service. You can find this by navigating to <em>HKCR\AppId</em> and examining the details there:</p>
<p><span id="more-1154"></span><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/DCOM10016_RegEdit.png"><img class="alignnone size-full wp-image-1169" title="DCOM10016_RegEdit" src="http://tristanwatkins.com/wp-content/uploads/DCOM10016_RegEdit.png" alt="DCOM10016 RegEdit Product Version Job: DCOM 10016 strikes again" width="500" /></a></p>
<p>Given that there were 105 instances of this DCOM 10016 error in an eleven second period, I decided to see what was happening at the same time (00:52:09-00:52:19) in the Application event logs. It turned out that there were 210 Information and Warning events during the same time-frame. An example pair of these event is included here:</p>
<blockquote><p><span style="text-decoration: underline;">1035 Information<br />
</span>Windows Installer reconfigured the product. Product Name: Microsoft Excel Mobile Viewer Components. Product Version: 14.0.4763.1000. Product Language: 0. Manufacturer: Microsoft Corporation. Reconfiguration success or error status: 0.</p>
<p><span style="text-decoration: underline;">1015 Warning</span><br />
Failed to connect to server. Error: 0&#215;80070005</p></blockquote>
<p>You might notice this first informational event is for the Microsoft Excel Mobile Viewer. As you trawl through the events it will become clear that these events occur for Language Packs, Service Applications, Foundation elements, Web Apps &#8211; all sorts. At this point it was pretty clear to me that the SharePoint Farm account (probably a Timer Job) was trying to run the <em>Windows Installer Service</em> for these products, but I had no idea why, so I cracked open <a title="ULS Viewer" href="http://code.msdn.microsoft.com/ULSViewer/Release/ProjectReleases.aspx?ReleaseId=3308" target="_blank">ULS Viewer</a> and went to town.</p>
<p>A Timer Job called <strong>job-admin-product-version</strong> kicked off at 00:52:08.92. Filtering by that <strong>CorrelationID</strong> I could see that this job appeared to build a hierarchy of upgradable elements (Foundation stuff, Service Applications, etc), then checked to see if these elements can be upgraded. But I don&#8217;t really feel comfortable trying to figure out what a Timer Job does by stepping through ULS logs, so before going any further I had a look at the TechNet <a title="SharePoint 2010 Timer Job Reference" href="http://technet.microsoft.com/en-us/library/cc678870.aspx" target="_blank">Timer Job Reference</a> and found that <strong>Product Version Job</strong> runs nightly at 00:45 by default.</p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/DCOM10016_ProductVersionJob.png"><img class="alignnone size-full wp-image-1171" title="DCOM10016_ProductVersionJob" src="http://tristanwatkins.com/wp-content/uploads/DCOM10016_ProductVersionJob.png" alt="DCOM10016 ProductVersionJob Product Version Job: DCOM 10016 strikes again" width="500" /></a></p>
<p>Now that we know that this job &#8220;<em>checks the install state of the machine and puts that data into the database</em>&#8220;, I&#8217;m going to take a leap of faith and assume that the farm account is trying to use the <em>Windows Installer Service</em> to do this. Hopping back in to the ULS logs, the next-to-last event correlates to the deluge of Application logs entries.</p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/DCOM10016_UpdateProductInfoInDatabase.png"><img class="alignnone size-full wp-image-1170" title="DCOM10016_UpdateProductInfoInDatabase" src="http://tristanwatkins.com/wp-content/uploads/DCOM10016_UpdateProductInfoInDatabase.png" alt="DCOM10016 UpdateProductInfoInDatabase Product Version Job: DCOM 10016 strikes again" width="500" /></a></p>
<p>Note that one of the first items in this mess of updates is <em>Microsoft Excel Mobile Viewer Components</em> again.</p>
<blockquote><p>UpdateProductInfoInDatabase, regProductsQuery = exec proc_RegisterProductVersion N&#8217;20c667df-1bc3-486b-869c-a3ba40f83af5&#8242;, N&#8217;Microsoft SharePoint Server 2010&#8242;, N&#8217;14.0.4763.1000&#8242;, N&#8217;{90140000-1138-0000-1000-0000000FF1CE}&#8217;, N&#8217;Microsoft Excel Mobile Viewer Components&#8217;, N&#8221;&#8230;</p></blockquote>
<p>It seems pretty clear that <em>Product Version Job</em> checks the installed versions of SharePoint Products and Technologies, then updates that info in the database (presumably Central Admin config). However, it&#8217;s not really clear when that information gets used, so changes to the default Daily job schedule may have unintended consequences. As I see it, this leaves three options:</p>
<ul>
<li>Live with the warnings/errors until a better option becomes available.</li>
<li>Disable the <em>Product Version Job</em> timer job, noting that this could potentially have a negative impact on updates to the system (not recommended until these implications are better understood).
<ul>
<li>Potentially combine this strategy with a plan to make the farm account a local admin temporarily and run the job manually at routine intervals (again, this warrants testing and a better understanding of the Timer Job itself).</li>
</ul>
</li>
<li>Grant the WSS_ADMIN_WPG local group or Farm account permissions to Launch and Activate the <a title="MSI Installer fix" href="http://2010ftw.spoint.me/2010/08/08/overcoming-user-profile-headaches/" target="_blank">Windows Installer Service</a> (which I don&#8217;t recommend).</li>
</ul>
<p>I&#8217;m presently contending with these errors in a development environment, so I&#8217;m going to live with them for now. I&#8217;m pretty reluctant to recommend the last option. It seems to me that if the Farm account has rights to elevate to Local System via the Windows Installer Service, that puts a pretty big dent in the least-privileged model. I&#8217;ll keep looking in to this, but I thought I&#8217;d identify my findings so far and I would welcome any comments or ideas that I haven&#8217;t considered &#8211; particularly if anyone has more information about when this database information is used.</p>
]]></content:encoded>
			<wfw:commentRss>http://tristanwatkins.com/index.php/product-version-job-dcom-10016-strikes-again/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Hyper-V video issues fixed by Windows Server 2008 R2 SP1 Beta?</title>
		<link>http://tristanwatkins.com/index.php/hyperv-video-issues-fixed-windows-server-2008-r2-sp1-beta/</link>
		<comments>http://tristanwatkins.com/index.php/hyperv-video-issues-fixed-windows-server-2008-r2-sp1-beta/#comments</comments>
		<pubDate>Thu, 05 Aug 2010 06:30:36 +0000</pubDate>
		<dc:creator>Tristan Watkins</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[Virtualisation]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Dell]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[Intel]]></category>
		<category><![CDATA[NVIDIA]]></category>
		<category><![CDATA[RemoteFX]]></category>
		<category><![CDATA[SLAT]]></category>
		<category><![CDATA[Windows Server 2008 R2]]></category>

		<guid isPermaLink="false">http://tristanwatkins.com/?p=1127</guid>
		<description><![CDATA[Recently we&#8217;ve been considering a hardware refresh for our developer/consultant/architect laptop build (on Windows Server 2008 R2 Standard with Hyper-V). After a fair amount of deliberation we decided to pilot a new model but stumbled massively at the first hurdle: when we enabled the Hyper-V role on a new Dell Latitude E6410 we got a [...]]]></description>
			<content:encoded><![CDATA[<p>Recently we&#8217;ve been considering a hardware refresh for our developer/consultant/architect laptop build (on Windows Server 2008 R2 Standard with Hyper-V). After a fair amount of deliberation we decided to pilot a new model but stumbled massively at the first hurdle: when we enabled the Hyper-V role on a new Dell Latitude E6410 we got a blue screen. Further testing revealed that the graphics driver was at fault and the SVGA driver worked fine. However, the SVGA driver only has single monitor support. Back to the drawing board.</p>
<p><span id="more-1127"></span>I hit the search engines in earnest and found that these problems were prevalent across a fairly wide range of graphics cards. We enlisted Dell&#8217;s help and they told us that they do not certify that Hyper-V will work on any laptops. More precisely, they clarified the primary support concern is that future driver releases may not work with Hyper-V even if we find a model that works with today&#8217;s drivers. At this point we were considering a pricier Precision model and they put us in touch with their Precision product team in Texas. They were most helpful but we were told that Dell themselves do not use Hyper-V on laptops except for demonstration purposes and they simply use it as a server for connected workstations, so they would never experience the same graphics issues. Dell kindly offered to let us test our development build on various models at their campus if we agreed to share the results with them, but before we could arrange that visit, <a title="Windows Server 2008 R2 SP1 Beta" href="http://www.microsoft.com/windowsserver2008/en/us/sp1.aspx" target="_blank">Windows Server 2008 R2 SP1 Beta</a>* was released and I upgraded my machine in order to test out Dynamic Memory.</p>
<p>As I was installing it I had a chat with my colleague (and serial early adopter) <a title="Lambros Vasiliou" href="http://spandothers.spaces.live.com/default.aspx" target="_blank">Lambros Vasiliou</a> to gauge his impressions. He mentioned his favourite improvement is that the <a title="Hyper-V Graphics Performance Issues" href="../index.php/the-definitive-word-on-hyper-v-high-end-graphics-performance/" target="_blank">known Hyper-V host graphics performance issues</a> are either gone or greatly mitigated. This is an issue that&#8217;s been  repeatedly discussed in our organisation since we moved from a  hotchpotch of virtualisation technologies to Hyper-V as our <a title="SharePoint Develpoment Environment" href="../index.php/building-a-sharepoint-20072010-development-environment/" target="_blank">standard development build</a> last year. It&#8217;s probably the single thing that irritates our users of this system more than anything else.</p>
<p>I did some testing myself with videos playing and moving windows about with Windows Key + Arrow hot keys. The results were fairly impressive &#8211; without doubt a big improvement. One thing that still behaved poorly on my Dell XPS M1330 (with NVIDIA GeForce 8400GS) is full-screen YouTube, Vimeo, etc. The CTRL+ALT+DEL redraw operation seems a bit sluggish still as well. I noticed that my PowerPoint Presenter View was better, but still not 100% responsive.</p>
<p>I also tested on the Dell Latitude E6410 (with NVIDIA NVS 3100M). Not only is the previously-mentioned blue screen fixed and the graphics generally improved in the same ways as on the XPS, but the full-screen in-browser video and CTRL+ALT+DEL are instantaneous. One possible explanation for this different experience is that the Latitude has a processor with SLAT, but I can&#8217;t validate that at all yet&#8230; because I can&#8217;t find any information whatsoever about why/how this has changed!</p>
<p>I think it&#8217;s unlikely that these changes are related to RemoteFX (since the XPS M1330 does not have a processor with SLAT and I never enabled it on the Latitude E6410). I would expect RemoteFX to improve the experience connecting to the guests, not the Hyper-V root partition (although it&#8217;s possible that this improvement is somehow related). I&#8217;ve tried <a title="Understanding High-End Video Performance Issues with Hyper-V" href="http://blogs.msdn.com/b/virtual_pc_guy/archive/2009/11/16/understanding-high-end-video-performance-issues-with-hyper-v.aspx?PageIndex=2#comments" target="_blank">pinging Virtual PC Guy</a> and posted <a title="Does Service Pack 1 Beta resolve Hyper-V high-end video performance issues" href="http://social.technet.microsoft.com/Forums/en-US/w7itproSP/thread/806a9da6-1a5e-49c3-b650-fd31009f80d4" target="_blank">this query on the SP1 Beta TechNet forum</a> but so far the community can only confirm that this is indeed working on a number of different models including a Mac (drill down in the links on the TechNet thread for more information). One way or the other this is great news, but I&#8217;m finding the lack of information about these changes quite maddening given the amazing detail that&#8217;s been produced for the Dynamic Memory launch. I&#8217;d really appreciate further insights if anyone can reveal the internals.</p>
<p>* A few notes regarding the Service Pack 1 Beta installation process:</p>
<ol>
<li>The links on the SP1 Beta page are a bit confusing. You should be aware that if you click the &#8220;Evaluate Windows Server 2008 R2 and SP1 Beta&#8221; link you will be taken to a page with a &#8220;Download Windows Server 2008 R2 Trial Software&#8221; section at the top. &#8220;Download SP1 Beta Software&#8221; is beneath that section. This is what you want. If you click the first link you will initiate a download of the full Windows Server 2008 R2 (SP0) installer. If you &#8220;upgrade&#8221; your system using that installer you&#8217;ll wind up with a nice new trial version of SP0. AGH. Starting again from the links in the right section I was able to run a small installer that presents the updates to Windows Update and that has all worked fine, so I&#8217;d recommend that route. Alternately the Service Pack can be downloaded stand-alone. I did that for my second install and it worked fine too. Also note the <a title="Windows Server 2008 R2 SP1 Beta Reviewer’s Guide" href="http://download.microsoft.com/download/B/9/3/B9339F1F-DFE7-4AF7-8D20-38A0612D74AA/Windows_Server_2008_SP1_Beta_Reviewers_Guide.docx">Windows Server 2008 R2 SP1 Beta Reviewer’s Guide</a>, &#8220;to evaluate the core features of Windows Server 2008 R2 SP1 Beta release in your environment&#8221;.</li>
<li>If you use Forefront you will need to uninstall it in order to install SP1 Beta, so make sure to remember to reinstall it afterwards.</li>
<li>When I installed the Service Pack my screen went black for about ten minutes following the first reboot. Be prepared for this. You&#8217;ll see plenty of ongoing disk activity but nothing on the screen. Fairly disconcerting, but perhaps this is all a part of these same video changes.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://tristanwatkins.com/index.php/hyperv-video-issues-fixed-windows-server-2008-r2-sp1-beta/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Optimising the SharePoint 2010 IW Demo VM Part 2</title>
		<link>http://tristanwatkins.com/index.php/optimising-the-sharepoint-2010-iw-demo-vm-2/</link>
		<comments>http://tristanwatkins.com/index.php/optimising-the-sharepoint-2010-iw-demo-vm-2/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 06:20:20 +0000</pubDate>
		<dc:creator>Tristan Watkins</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Virtualisation]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[Virtual Machine]]></category>

		<guid isPermaLink="false">http://tristanwatkins.com/?p=1114</guid>
		<description><![CDATA[Continuing on from Part 1, in this post I&#8217;ll discuss the Microsoft 2010 Information Worker Demo Exchange VM, the SahrePoint VM&#8217;s event logs and potential future improvements to the environment. Exchange Server Reconfiguration Tidying up the Exchange server is a much more straight-forward process. In fact, all of the changes that I made are network [...]]]></description>
			<content:encoded><![CDATA[<p>Continuing on from <a title="Optimising the SharePoint 2010 IW Demo VM Part 1" href="http://tristanwatkins.com/index.php/optimising-the-sharepoint-2010-iw-demo-vm-1/" target="_blank">Part 1</a>, in this post I&#8217;ll discuss the Microsoft 2010 Information Worker Demo Exchange VM, the SahrePoint VM&#8217;s event logs and potential future improvements to the environment.</p>
<h2>Exchange Server Reconfiguration</h2>
<p>Tidying up the Exchange server is a much more straight-forward process. In fact, all of the changes that I made are network orientated per the network changes from the first post, so if you are not adding a second NIC or a second fixed IP address on the original internal NIC, these steps aren’t necessary.<br />
<span id="more-1114"></span></p>
<ul>
<li>Import the virtual machine. Plug the Hyper-V Internal Network in to the first NIC and add a second NIC with the Hyper-V ICS Network plugged in to it.</li>
<li>
<div>The initial IP address is 192.168.150.2.</div>
</li>
<li>Rename the Local Area Connection NIC to <em>Hyper-V Internal Connection</em> (or your preference).</li>
<li>Rename the Local Area Connection 2 (or maybe 3) NIC to <em>Hyper-V ICS Connection</em> (or your preference).</li>
<li>In IPv4 properties on the <em>Hyper-V ICS Connection</em>, change the Advanced TCP/IP Settings to not &#8220;Register this connection&#8217;s addresses in DNS&#8221;, as it is dynamic.</li>
<li>I disabled IPv6 on both NICs as it is already disable on our host’s network connections.</li>
<li>
<div>Add a second IPv4 address to the <em>Hyper-V Internal Connection</em>:  192.168.200.151/255.255.255.0.</div>
<ul>
<li>
<div>Added the same address on the DNS tab for this NIC.</div>
</li>
</ul>
</li>
</ul>
<ul>
<li>Check DNS to make sure the new address was added.</li>
<li>Added a HOSTS file entry for <em>demo2010b</em> pointing at 192.168.200.151.</li>
<li>Tested logging on via Remote Desktop from the Host machine.</li>
</ul>
<p>Shutdown/snapshot and optionally export the VM if time/resources permit.</p>
<h2>Reviewing SharePoint Server event logs</h2>
<p>This section details my review of the event logs in the shipped state. I did not take any action except for the last two items regarding DCOM fixes and the SharePoint Health Logs. I believe that most of these errors are probably an effect of running so many things in one environment, but I’d welcome comments if you have any insight to share.</p>
<ul>
<li><strong>SetSPN for WSMAN warnings</strong>:<em> The WinRM service failed to create the following SPNs: WSMAN/demo2010a.contoso.com; WSMAN/demo2010a.<br />
Additional Data<br />
The error received was 8344: %%8344.<br />
User Action<br />
The SPNs can be created by an administrator using setspn.exe utility.</em><br />
Presumably these SPNs can be created manually or the rights to create the SPNs can be assigned to the WinRM service account if needed, but I am not making any changes here until I see that it is necessary to do so. There are some Kerberos Audit Failures in the security logs but since the SharePoint environment is self-contained and there are no secondary hops, I don&#8217;t think this is worthwhile.</li>
<li><strong>VSS Error 8320</strong>:<em> Volume Shadow Copy Service error: Failed resolving account Administrator with status 1376. Check connection to domain controller and VssAccessControl registry key.<br />
Operation:<br />
Initializing Writer<br />
Context:<br />
Writer Class Id: {a6ad56c2-b509-4e6c-bb19-49d8f43532f0}<br />
Writer Name: WMI Writer<br />
Error-specific details:<br />
Error: NetLocalGroupGetMemebers(Administrator), 0&#215;80070560, The specified local group does not exist.<br />
</em>There are a number of articles that discuss fixes for this Warning but since this is an unusual configuration (SharePoint/SQL on a DC) and the warning is about the &#8220;Administrator&#8221; account, I am hesitant to make this change, for fear of introducing instability. Further reading at <a href="http://www.experts-exchange.com/OS/Microsoft_Operating_Systems/Server/Windows_Server_2008/Q_25455278.html" target="_blank">Experts Exchange</a>, <a href="http://technet.microsoft.com/en-us/library/cc787108(WS.10).aspx" target="_blank">Technet</a> and <a href="http://forums.anandtech.com/showthread.php?t=2085091" target="_blank">AnandTech</a>.</li>
<li>There are <strong>two errors regarding the ULS config file, 7105 and 7056</strong>. I&#8217;m honestly unsure what to make of these errors since they refer to <em>C:\Program Files\Common Files\Microsoft Shared\ULS\14\uls.config.xml</em> and I&#8217;m not certain how that is used in generating the ULS log files for SharePoint which are appearing normally at <em>C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\LOGS</em>. Not taking any action for now.</li>
<li><strong>Microsoft.ResourceManagement.ServiceHealthSource Error 22</strong>:<br />
<em>The Forefront Identity Manager Service cannot connect to the SQL Database Server.<br />
The SQL Server could not be contacted. The connection failure may be due to a network failure, firewall configuration error, or other connection issue. Additionally, the SQL Server connection information could be configured incorrectly.<br />
Verify that the SQL Server is reachable from the Forefront Identity Manager Service computer. Ensure that SQL Server is running, that the network connection is active, and that the firewall is configured properly. Last, verify the connection information has been configured properly. This configuration is stored in the Windows Registry.<br />
</em>This error seems to occurs before the FIM Sync service starts, which may or may not be a related issue. The User Profile Service Application is available though, so I believe this has something to do with this connection attempt occurring before the Service Application is able to connect with SQL.</li>
<li><strong>CAPI2 Error</strong>:<br />
<em>Failed extract of third-party root list from auto update cab at: &lt;<a href="http://www.download.windowsupdate.com/msdownload/update/v3/static/trustedr/en/authrootstl.cab">http://www.download.windowsupdate.com/msdownload/update/v3/static/trustedr/en/authrootstl.cab</a>&gt; with error: A required certificate is not within its validity period when verifying against the current system clock or the timestamp in the signed file.</em><br />
This issue <a href="http://social.technet.microsoft.com/Forums/en/w7itproinstall/thread/1e7d815a-4d31-44d1-8f1c-373a8d091582">seems to have emerged in July of this year on Windows 7 and Windows Server 2008 R2 machines</a>. Unfortunately there&#8217;s no clear resolution at this time, but also no clear negative impact on this system, so I’m not taking any action for now.</li>
<li><strong>DCOM 10016 error</strong>. A fix for this has been <a href="http://www.mattgrovesblog.com/2009/10/dcom-error-10016-with-sharepoint-2010.html">documented well by Matt Groves</a>.</li>
<li>
<div>SharePoint Health Reports:</div>
<ul>
<li>Almost all of the warnings and errors in the Health Report are either one-time issues that no longer exist or are symptoms of the single-server install on a DC.</li>
<li>An exception to this is the &#8220;Validate the My Site Host and individual My Sites are on a dedicated Web application and separate URL domain&#8221; message, which is accurate. The environment has not been configured with a dedicated MySite application.</li>
<li>The one other issue was &#8220;The Unattended Service Account Application ID is not specified or has an invalid value&#8221;. This has not been set up in the VM and will need to be configured in the Secure Store Service if it will be used.</li>
<li>I have chosen to disable all of these rules, as they are undesirable in a demo environment. I also deleted the existing alerts.</li>
</ul>
</li>
</ul>
<h2>Pending</h2>
<p>As I mentioned above, I hope to revisit this VM and create new snapshots that will reduce load by disabling bulky services. This snapshot branch might resemble something like this:</p>
<ul>
<li>Current state, as above
<ul>
<li>Most SharePoint Services turned off in Services on Server</li>
<li>BI Indexing Connector Service , FAST, OCS and Project Server removed. All SharePoint Services turned on</li>
<li>As above, but with FAST</li>
<li>As above, but with OCS</li>
<li>As above, but with Project Server</li>
<li>BI Indexing Connector Service , FAST, OCS and Project Server removed. All SharePoint Services turned off</li>
<li>As above, but with Search/FAST</li>
<li>As above, but with OCS</li>
<li>As above, but with Project Server</li>
</ul>
</li>
</ul>
<p>I really haven’t planned this yet or discussed these options with users of this environment, so it could wind up looking completely different. Also, this many snapshots would probably chew up too much disk space and get confusing for the users. But watch this space for updates as I hope to revisit the topic again. And please feel free to suggest other optimisations or additions that work well for you.</p>
]]></content:encoded>
			<wfw:commentRss>http://tristanwatkins.com/index.php/optimising-the-sharepoint-2010-iw-demo-vm-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Optimising the SharePoint 2010 IW Demo VM Part 1</title>
		<link>http://tristanwatkins.com/index.php/optimising-the-sharepoint-2010-iw-demo-vm-1/</link>
		<comments>http://tristanwatkins.com/index.php/optimising-the-sharepoint-2010-iw-demo-vm-1/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 06:23:34 +0000</pubDate>
		<dc:creator>Tristan Watkins</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Virtualisation]]></category>
		<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[Virtual Machine]]></category>

		<guid isPermaLink="false">http://tristanwatkins.com/?p=1094</guid>
		<description><![CDATA[Around the time that Microsoft released the public beta of SharePoint 2010 they also released a demonstration virtual machine, known as the 2010 Information Worker Virtual Machine, which was updated to RTM in mid-June. This is a fantastic resource for demonstrating SharePoint 2010. The content and demonstration scenarios (including walk-throughs) represent a huge investment from [...]]]></description>
			<content:encoded><![CDATA[<p>Around the time that Microsoft released the public beta of SharePoint 2010 they also released a demonstration virtual machine, known as the 2010 Information Worker Virtual Machine, which was <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=751fa0d1-356c-4002-9c60-d539896c66ce&amp;displaylang=en">updated to RTM in mid-June</a>. This is a fantastic resource for demonstrating SharePoint 2010. The content and demonstration scenarios (including walk-throughs) represent a huge investment from Microsoft and it would be foolish not to at least evaluate these assets. Personally, I think it’s silly to reinvent this wheel.</p>
<p>Now the public beta trial is expiring and people are moving to the RTM build. It appears to be much improved, in that more of the product works in this version and a few niggles have been fixed now. However, it&#8217;s widely acknowledged that the resource requirements for this virtual machine are gargantuan due to the breadth of what it offers.<br />
<span id="more-1094"></span></p>
<h2>What you get</h2>
<p>The first of these VMs doesn&#8217;t just have SharePoint Server 2010 (Enterprise). It has:</p>
<ul>
<li>Active Directory Domain Services</li>
<li>DNS</li>
<li>SQL 2008 R2</li>
<li>Office Professional Plus 2010 (including Visio and Project)</li>
<li>SharePoint Designer 2010</li>
<li>Visual Studio 2010</li>
<li>Office Web Applications</li>
<li>FAST Search for SharePoint 2010</li>
<li>Project Server 2010</li>
<li>Office Communication Server 2007 R2</li>
</ul>
<p>There is a second VM with Exchange Server 2010 which you can use as needed. Note: when downloading the RAR files which self-extract to the VM export files, I highly recommend using the Akamai download links. They will save you time and frustration.</p>
<h2>Why I’m writing about it</h2>
<p>The first of these VMs does a lot, and will chew up more virtual resources than most physical demo machines have to provide. In this post I documented the tweaks I made to our copy of the Virtual Machines and I&#8217;ve reviewed the event logs to identify any other issues that are present in the shipped state. I also spent some time fixing the start-up of some services due to observed delays in network connectivity.</p>
<p>The optimisations achieved here are not immense but they establish a firmer baseline from which to carry out further improvements. Unfortunately I have not had the time to explore the best approach to taking these core assets and removing the bulky bits in order to provide snapshots that unleash bits of the functionality as needed. With time I hope to revisit this and potentially explore other uses for this environment.</p>
<h2>SharePoint Server Reconfiguration</h2>
<p>These are the steps I’ve taken to reconfigure the SharePoint Virtual Machine:</p>
<ul>
<li>Imported the virtual machine. Plugged the Hyper-V Internal Network in to the first NIC and added a second NIC with the Hyper-V ICS Network plugged in to it. To understand more about the NIC naming conventions I&#8217;m using here and how we use these Hyper-V networks, please refer to <a href="http://tristanwatkins.com/index.php/building-a-sharepoint-20072010-development-environment/">my series on SharePoint development environments</a>.
<ul>
<li>If you&#8217;re curious, we dual-boot our Sales laptops in to this development environment so our sales people can use Hyper-V as needed.</li>
</ul>
</li>
<li>The default SharePoint VM RAM is set to 5120MB (5GB) RAM. This could be increased up to ~6GB on a host with 8GB RAM, assuming the load on the root partition is minimal during demonstration and the Exchange VM is not being used concurrently.</li>
<li>If using a UK keyboard through the Hyper-V Virtual Machine Connection, the password will need to be entered as <em>pass<strong>&#8220;</strong>word1</em></li>
<li>Note: at login a warm-up script runs, which I will discuss more in a moment.</li>
<li>I changed the time zone to London.</li>
<li>I changed UAC to &#8220;Notify me only when programs try to make change to my computer (do not dim my desktop)&#8221;. I find that with <a title="Known Hyper-V graphics performance issues" href="http://tristanwatkins.com/index.php/the-definitive-word-on-hyper-v-high-end-graphics-performance/" target="_blank">Known Hyper-V graphics performance issues</a> this setting achieves the right balance between usability and security.</li>
</ul>
<h3>Service start-up</h3>
<ul>
<li>I reviewed the event logs to identify which Manual Services would start up at a delay. Approximately five minutes after the machine started the Virtual Disk Service started up. That was followed by the following services:
<ul>
<table border="2" cellspacing="0" cellpadding="2" width="400">
<tbody>
<tr>
<td width="239" valign="top"><strong>Service</strong></td>
<td width="161" valign="top"><strong>Startup Type</strong></td>
</tr>
<tr>
<td width="239" valign="top">Application Experience</td>
<td width="161" valign="top">Manual</td>
</tr>
<tr>
<td width="239" valign="top">BI Indexing Connector Service</td>
<td width="161" valign="top">Automatic (Delayed Start)</td>
</tr>
<tr>
<td width="239" valign="top">Certificate Propagation</td>
<td width="161" valign="top">Manual</td>
</tr>
<tr>
<td width="239" valign="top">Diagnostic Policy Service</td>
<td width="161" valign="top">Automatic (Delayed Start)</td>
</tr>
<tr>
<td width="239" valign="top">Diagnostic System Host</td>
<td width="161" valign="top">Manual</td>
</tr>
<tr>
<td width="239" valign="top">Distributed Transaction Coordinator</td>
<td width="161" valign="top">Automatic (Delayed Start)</td>
</tr>
<tr>
<td width="239" valign="top">FAST Search for SharePoint</td>
<td width="161" valign="top">Automatic</td>
</tr>
<tr>
<td width="239" valign="top">FAST Search for SharePoint Browser Engine</td>
<td width="161" valign="top">Manual</td>
</tr>
<tr>
<td width="239" valign="top">FAST Search for SharePoint QRProxy</td>
<td width="161" valign="top">Manual</td>
</tr>
<tr>
<td width="239" valign="top">FAST Search for SharePoint Sam Admin</td>
<td width="161" valign="top">Manual</td>
</tr>
<tr>
<td width="239" valign="top">FAST Search for SharePoint Sam Worker</td>
<td width="161" valign="top">Manual</td>
</tr>
<tr>
<td width="239" valign="top">Function Discovery Provider Host</td>
<td width="161" valign="top">Manual</td>
</tr>
<tr>
<td width="239" valign="top">IPsec Policy Agent</td>
<td width="161" valign="top">Manual</td>
</tr>
<tr>
<td width="239" valign="top">Microsoft .Net Framework NGEN v4.0.30319_X86</td>
<td width="161" valign="top">Automatic (Delayed Start)</td>
</tr>
<tr>
<td width="239" valign="top">Microsoft .Net Framework NGEN v4.0.30319_X64</td>
<td width="161" valign="top">Automatic (Delayed Start)</td>
</tr>
<tr>
<td width="239" valign="top">Network Connections</td>
<td width="161" valign="top">Manual</td>
</tr>
<tr>
<td width="239" valign="top">Network List Service</td>
<td width="161" valign="top">Manual</td>
</tr>
<tr>
<td width="239" valign="top">Office 64 Source Engine</td>
<td width="161" valign="top">Manual</td>
</tr>
<tr>
<td width="239" valign="top">Office Software Protection Platform</td>
<td width="161" valign="top">Manual</td>
</tr>
<tr>
<td width="239" valign="top">Portable Device Enumerator Service</td>
<td width="161" valign="top">Manual</td>
</tr>
<tr>
<td width="239" valign="top">Remote Access Connection Manager</td>
<td width="161" valign="top">Manual</td>
</tr>
<tr>
<td width="239" valign="top">Remote Desktop Services</td>
<td width="161" valign="top">Manual</td>
</tr>
<tr>
<td width="239" valign="top">Remote Desktop Services Configuration</td>
<td width="161" valign="top">Manual</td>
</tr>
<tr>
<td width="239" valign="top">Remote Desktop Services UserMode Port Redirector</td>
<td width="161" valign="top">Manual</td>
</tr>
<tr>
<td width="239" valign="top">Secure Socket Tunneling Protocol Service</td>
<td width="161" valign="top">Manual</td>
</tr>
<tr>
<td width="239" valign="top">SPP Notification Service</td>
<td width="161" valign="top">Manual</td>
</tr>
<tr>
<td width="239" valign="top">SQL Full-Text Daemon Launcher</td>
<td width="161" valign="top">Manual</td>
</tr>
<tr>
<td width="239" valign="top">Telephony</td>
<td width="161" valign="top">Manual</td>
</tr>
<tr>
<td width="239" valign="top">Windows Defender</td>
<td width="161" valign="top">Automatic (Delayed Start)</td>
</tr>
<tr>
<td width="239" valign="top">Windows Module Installer</td>
<td width="161" valign="top">Manual</td>
</tr>
<tr>
<td width="239" valign="top">Windows Remote Management</td>
<td width="161" valign="top">Automatic (Delayed Start)</td>
</tr>
<tr>
<td width="239" valign="top">Windows Search</td>
<td width="161" valign="top">Automatic (Delayed Start)</td>
</tr>
<tr>
<td width="239" valign="top">Windows Update</td>
<td width="161" valign="top">Automatic (Delayed Start)</td>
</tr>
<tr>
<td width="239" valign="top">WinHTTP Web Proxy Auto-Discovery Service</td>
<td width="161" valign="top">Manual</td>
</tr>
</tbody>
</table>
</ul>
</li>
<li>In my testing, switching the <em>Network Connections</em> and <em>WinHTTP Web Proxy Auto-Discovery Service</em> services to Automatic would reduce time to CTRL+ALT+DEL from five minutes to three minutes. It’s worth verifying these results in your environment.</li>
</ul>
<h3>Service Hardening</h3>
<p>I disable the following services, per my normal virtual machine hardening processes. I don’t believe that any of them are necessary in this environment:</p>
<ul>
<li>Certificate Propagation</li>
<li>Desktop Windows Manager Session Manager</li>
<li>Distributed Link Tracking Client</li>
<li>Encrypted File System</li>
<li>Function Discovery Provider Host</li>
<li>Function Discovery Resource Publication</li>
<li>IP Helper</li>
<li>Microsoft iSCSI Initiator Service</li>
<li>Multimedia Class Scheduler</li>
<li>Problem Reports and Solutions Control Panel Support</li>
<li>Remote Procedure Call (RPC) Locator</li>
<li>Smart Card</li>
<li>Smart Card Removal Policy</li>
<li>Special Administration Console Helper</li>
<li>Tablet PC Input Service</li>
<li>Windows Audio</li>
<li>Windows Audio Endpoint Builder</li>
<li>Windows Error Reporting Service</li>
<li>Windows Search</li>
<li>Wired AutoConfig</li>
</ul>
<p>I also disabled these services. I have no idea why they were ever enabled.</p>
<ul>
<li>Microsoft Fibre Channel Platform Registration Service</li>
<li>Microsoft FTP Service</li>
</ul>
<p>Following a reboot to assess boot times after hardening, I was prompted with a firewall exception warning for SharePoint Workspace. I allowed this exception.</p>
<h3>MSCONFIG</h3>
<p>I mentioned earlier that a warm-up script launched at login. I reviewed the contents of the script and identified that it enumerated all sites in the farm, so I browsed to each site that was getting warmed up to have a look at that content. Most of these sites pull up the “select a template” page, indicating that there is not content in the web application, so I have chosen to disable the script for now and will likely revisit the use of the <a title="IIS.NET application warm-up module" href="http://www.iis.net/download/applicationwarmup" target="_blank">IIS.NET application warm-up module</a> when it matures. In the mean time, I recommend that recipients of this build take a snapshot of the VM while the <a href="http://intranet">http://intranet</a> and Central Admin web applications are fully warmed up for their needs so they can roll back to that point as needed.</p>
<p>While in MCSONFIG, I turned off:</p>
<ul>
<li>Watson Subscriber for SENS Network Notifications</li>
<li>EcmCopyLinks</li>
<li>
<div>Warm Up</div>
</li>
<li>
<div>Optional:</div>
<ul>
<li>
<div>Microsoft Office 2010 (these are sync services – probably best to leave them running)</div>
</li>
<li>
<div>Microsoft Office Communicator 2007 R2 (this is preferential)</div>
</li>
</ul>
</li>
</ul>
<h3>Housekeeping and simple benchmarks</h3>
<p>At this point I wanted to take some basic start-up timings so I shut down the VM, but before starting back up I changed the Hyper-V VM’s BIOS settings to boot from IDE before CD. After that I took some pretty unscientific measurements of boot times and resource consumption on my Dell XPS M1330:</p>
<ul>
<li>CTRL+ALT+DEL: 2:56.</li>
<li>Desktop: 3:47.</li>
<li>Baseline RAM consumption down from &gt;4.5GB to ~3.65GB before hitting the intranet and Central Administration web apps (remember, they aren’t warmed up anymore).</li>
<li>RAM consumption at just under 4GB after hitting Central Administration.</li>
<li>RAM consumption at ~4.25GB after hitting <a href="http://intranet">http://intranet</a>.</li>
</ul>
<p>After taking these measurements I shut down the VM and took a snapshot.</p>
<h3>Network changes</h3>
<p>These changes are optional, depending on how you will use the VM in your environment. I opted to add a second IP address on our existing internal network range, as follows:</p>
<ul>
<li>The initial IP address is 192.168.150.1/255.255.255.0.</li>
<li>Rename the Local Area Connection NIC to <em>Hyper-V Internal Connection</em> (or your preference).</li>
<li>Rename the Local Area Connection 2 (or maybe 3) NIC to <em>Hyper-V ICS Connection</em> (or your preference).</li>
<li>In IPv4 properties on the <em>Hyper-V ICS Connection</em>, change the Advanced TCP/IP Settings to not &#8220;Register this connection&#8217;s addresses in DNS&#8221;, as it is dynamic.</li>
<li>I disabled IPv6 on both NICs as it is already disable on our host’s network connections.</li>
<li>
<div>Add a second IPv4 address to the <em>Hyper-V Internal Connection</em>: 192.168.200.150/255.255.255.0.</div>
<ul>
<li>I also added 192.168.200.150 on the DNS tab for this NIC.</li>
</ul>
</li>
<li>Check DNS to make sure the new address is added.</li>
<li>Add a HOSTS file entry in the root partition for <em>demo2010a</em> pointing at 192.168.200.150.
<ul>
<li>If desirable, add another entry pointing for intranet.contoso.com pointing at 192.168.200.150. This can be used for browsing from the root partition’s browser.</li>
</ul>
</li>
<li>Tested logging on via Remote Desktop and browsing to Central Admin from the Host machine.</li>
</ul>
<h3>Client tools and other changes</h3>
<p>Some final changes are optional, but I think generally desirable.</p>
<ul>
<li>Install Firefox, Opera, Safari, Chrome.</li>
<li>Install PDF Exchange Viewer or your choice of PDF viewer.</li>
<li>Add the environment variable path to the 14 hive’s BIN.</li>
</ul>
<p>And that’s it for the SharePoint VM. Shutdown and take a new snapshot, optionally deleting the first one. I would suggest exporting the VM if time/resources permit, noting that export operations can be time-consuming and disk intensive.</p>
<p>In <a title="Optimising the SharePoint 2010 IW Demo VM Part 2" href="http://tristanwatkins.com/index.php/optimising-the-sharepoint-2010-iw-demo-vm-2/" target="_blank">part two</a> I&#8217;ll discuss the Exchange VM, event logs and potential future improvements.</p>
]]></content:encoded>
			<wfw:commentRss>http://tristanwatkins.com/index.php/optimising-the-sharepoint-2010-iw-demo-vm-1/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Scheduled Sitemap Generation for SharePoint 2010 Websites</title>
		<link>http://tristanwatkins.com/index.php/scheduled-sitemap-generation-sharepoint-2010-websites/</link>
		<comments>http://tristanwatkins.com/index.php/scheduled-sitemap-generation-sharepoint-2010-websites/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 22:20:23 +0000</pubDate>
		<dc:creator>Tristan Watkins</dc:creator>
				<category><![CDATA[IT Management]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[robots.txt]]></category>
		<category><![CDATA[Scheduling]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[sitemap]]></category>

		<guid isPermaLink="false">http://tristanwatkins.com/?p=1087</guid>
		<description><![CDATA[As promised in my SharePoint 2010 SEO Analysis with the IIS SEO Toolkit post, while the IIS.NET SEO Toolkit does an excellent job of generating an initial sitemap and providing a nice GUI for ad hoc updates, it does not offer any obvious scheduling mechanism to ensure that your sitemap stays current with the changing [...]]]></description>
			<content:encoded><![CDATA[<p>As promised in my <a title="SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" href="http://tristanwatkins.com/index.php/sharepoint-2010-seo-analysis-with-the-iis-seo-toolkit/" target="_blank">SharePoint 2010 SEO Analysis with the IIS SEO Toolkit</a> post, while the IIS.NET SEO Toolkit does an excellent job of generating an initial sitemap and providing a nice GUI for ad hoc updates, it does not offer any obvious scheduling mechanism to ensure that your sitemap stays current with the changing content in your CMS. Thankfully, my colleague Glyn Clough <a title="Generate A Sitemap For SharePoint 2010 Using PowerShell" href="http://www.glynblogs.com/2010/07/generate-a-sitemap-for-sharepoint-2010-using-powershell.html" target="_blank">whipped up some PowerShell</a> to produce a full sitemap for your web application based on <a title="Generate SharePoint 2010 Sitemap with Windows PowerShell" href="http://blogs.msdn.com/b/opal/archive/2010/04/13/generate-sharepoint-2010-sitemap-with-windows-powershell.aspx" target="_blank">Jie Li&#8217;s initial script</a>, which was scoped at the root web. Running this as a Windows scheduled task will get you a very up-to-date sitemap for all sites in your web application with very little on-going maintenance. Nice one Glyn!</p>
]]></content:encoded>
			<wfw:commentRss>http://tristanwatkins.com/index.php/scheduled-sitemap-generation-sharepoint-2010-websites/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fixing the Usage and Health Data Collection Service Application Proxy</title>
		<link>http://tristanwatkins.com/index.php/fixing-the-usage-and-health-data-collection-sa/</link>
		<comments>http://tristanwatkins.com/index.php/fixing-the-usage-and-health-data-collection-sa/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 00:19:33 +0000</pubDate>
		<dc:creator>Tristan Watkins</dc:creator>
				<category><![CDATA[IT Management]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Service Application]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[Usage and Health Data Collection]]></category>
		<category><![CDATA[Web Analytics]]></category>

		<guid isPermaLink="false">http://tristanwatkins.com/?p=1020</guid>
		<description><![CDATA[You may notice that the Usage and Health Data Collection Proxy is Stopped after deploying it in your environment. This is not just a matter of starting the service like it is with some Service Applications. In this case the SA proxy itself appears to be stopped. ]]></description>
			<content:encoded><![CDATA[<p>Unfortunately I&#8217;ve found a problem with our development build, or rather, with SharePoint 2010. You may notice that the <em>Usage and Health Data Collection Proxy</em> is Stopped after deploying it in your environment. This is not just a matter of starting the service like it is with some Service Applications. In this case the SA proxy itself appears to be stopped. It appears that this is a known problem when provisioning this Service Application via the GUI. In fact, ours was created automatically as part of the Search Service Application creation process. At any rate, it doesn&#8217;t work in its current state in our environments, so it won&#8217;t actually collect any data.</p>
<p>To fix this just requires a couple of lines of PowerShell, courtesy of <a href="http://pacsharepoint.blogspot.com/2010/06/usage-and-health-data-collection-proxy.html">this article</a> (to which I&#8217;ve added some clarification here).</p>
<p><span id="more-1020"></span></p>
<p>If you go to the <em>Manage Service Applications</em> link you&#8217;ll see the problem:</p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070810_1519_FixingtheUs1.png"><img class="alignnone size-full wp-image-1025" title="070810_1519_FixingtheUs1" src="http://tristanwatkins.com/wp-content/uploads/070810_1519_FixingtheUs1.png" alt="070810 1519 FixingtheUs1 Fixing the Usage and Health Data Collection Service Application Proxy" width="479" height="30" /></a><a href="http://tristanwatkins.com/wp-content/uploads/070810_1519_FixingtheUs1.png"></a></p>
<p>Open the SharePoint 2010 Management Shell and Run as Administrator.</p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070810_1519_FixingtheUs2.png"><img class="alignnone size-full wp-image-1026" title="070810_1519_FixingtheUs2" src="http://tristanwatkins.com/wp-content/uploads/070810_1519_FixingtheUs2.png" alt="070810 1519 FixingtheUs2 Fixing the Usage and Health Data Collection Service Application Proxy" width="481" height="491" /></a></p>
<p>Run <em>Get-SPServiceApplicationProxy</em> to enumerate the IDs of all the Service Application Proxies in your farm.</p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070810_1519_FixingtheUs3.png"><img class="alignnone size-full wp-image-1027" title="070810_1519_FixingtheUs3" src="http://tristanwatkins.com/wp-content/uploads/070810_1519_FixingtheUs3.png" alt="070810 1519 FixingtheUs3 Fixing the Usage and Health Data Collection Service Application Proxy" width="468" height="97" /></a><br />
(note: you will probably have more Service Application Proxies than these)</p>
<p>Copy the ID for the WSS_UsageApplication.</p>
<p>Run the following two lines of PowerShell.</p>
<p><code>$UP = Get-SPServiceApplicationProxy | where {$_.ID -eq "<strong>&lt;PASTE COPIED ID HERE&gt;</strong>"}<br />
$UP.Provision()</code></p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070810_1519_FixingtheUs4.png"><img class="alignnone size-full wp-image-1028" title="070810_1519_FixingtheUs4" src="http://tristanwatkins.com/wp-content/uploads/070810_1519_FixingtheUs4.png" alt="070810 1519 FixingtheUs4 Fixing the Usage and Health Data Collection Service Application Proxy" width="468" height="36" /></a></p>
<p>If you refresh the Manage Service Application page the proxy should be started now.</p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070810_1519_FixingtheUs5.png"><img class="alignnone size-full wp-image-1029" title="070810_1519_FixingtheUs5" src="http://tristanwatkins.com/wp-content/uploads/070810_1519_FixingtheUs5.png" alt="070810 1519 FixingtheUs5 Fixing the Usage and Health Data Collection Service Application Proxy" width="479" height="30" /></a></p>
<p>Once that has been configured, the usage data will not appear immediately in all of the usage reports because the timer jobs to collect the data will not have run yet. The granularity of the data collection and processing is pretty fine if you want to reconfigure them for your needs, but keep in mind that none of the Web Analytics reports will appear for at least 24 hours after this fix is in place. They do not allow reporting on the current day. If you try to configure a Custom Date Range to include today&#8217;s date you will get the following message:</p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070810_1519_FixingtheUs6.png"><img class="alignnone size-full wp-image-1030" title="070810_1519_FixingtheUs6" src="http://tristanwatkins.com/wp-content/uploads/070810_1519_FixingtheUs6.png" alt="070810 1519 FixingtheUs6 Fixing the Usage and Health Data Collection Service Application Proxy" width="414" height="146" /></a></p>
<p>I&#8217;ll try to track this issue as updates come out.</p>
]]></content:encoded>
			<wfw:commentRss>http://tristanwatkins.com/index.php/fixing-the-usage-and-health-data-collection-sa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint 2010 SEO Analysis with the IIS SEO Toolkit</title>
		<link>http://tristanwatkins.com/index.php/sharepoint-2010-seo-analysis-with-the-iis-seo-toolkit/</link>
		<comments>http://tristanwatkins.com/index.php/sharepoint-2010-seo-analysis-with-the-iis-seo-toolkit/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 15:30:21 +0000</pubDate>
		<dc:creator>Tristan Watkins</dc:creator>
				<category><![CDATA[Client applications]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[robots.txt]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[sitemap]]></category>

		<guid isPermaLink="false">http://tristanwatkins.com/?p=1013</guid>
		<description><![CDATA[The IIS.NET Search Engine Optimization (SEO) Toolkit provides a powerful analysis tool that can generate reports for web editors and can automatically generate sitemaps and robots.txt files as well. These reports not only provide insight in to page rank improvements but also help content editors identify missing/duplicate content and find broken links. This post provides [...]]]></description>
			<content:encoded><![CDATA[<p>The IIS.NET Search Engine Optimization (SEO) Toolkit provides a powerful analysis tool that can generate reports for web editors and can automatically generate sitemaps and robots.txt files as well. These reports not only provide insight in to page rank improvements but also help content editors identify missing/duplicate content and find broken links. This post provides an overview of how the tools can be used by content editors or web managers who do not have access to the server infrastructure and what you can expect to see when running an SEO Analysis against an out of the box SharePoint 2010 Publishing site. I will also review the server tools that generate sitemaps and robots.txt files.</p>
<h2>Installing the SEO Toolkit</h2>
<p>Although Remote Server Administration Tools can be installed on <a href="http://www.microsoft.com/downloads/details.aspx?familyid=9FF6E897-23CE-4A36-B7FC-D52065DE9960&amp;displaylang=en">Windows Vista</a> and <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=7d2f6ad7-656b-4313-a005-4e344e43997d&amp;displaylang=en">Windows 7</a>, I have produced the directions below on my Windows Server 2008 R2 desktop. The instructions should be fundamentally the same for any OS once IIS Manager is available locally, however it is installed. To be crystal clear, the SEO Toolkit can be used by anyone with Windows Vista, Windows 7, Windows Server 2008 or Windows Server 2008 R2. <strong>It is not a requirement to have access to the web server and it is not necessary to install IIS locally</strong>.</p>
<p><span id="more-1013"></span>On Windows Server 2008 and 2008 R2 the IIS Manager Feature can be added through Server Manager, even if the IIS Server Role is not installed.</p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint21.png"><img src="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint21.png" alt="070710 1528 SharePoint21 SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" width="500" height="456" title="SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" /></a></p>
<p>Expand the Remote Server Administration Tools node and select the Web Server (IIS) Tools node.</p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint22.png"><img src="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint22.png" alt="070710 1528 SharePoint22 SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" width="500" height="368" title="SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" /></a></p>
<p>Click Next and Install. Wait for the <em>Add Features Wizard</em> to complete and then <a href="http://www.iis.net/download/SEOToolkit">download and install the SEO Toolkit</a>. IIS Manager is available in the Administrative Tools menu and should look something like this when you click on your local machine&#8217;s connection in the left-hand pane.</p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint23.png"><img src="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint23.png" alt="070710 1528 SharePoint23 SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" width="500" height="438" title="SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" /></a></p>
<p>The SEO Toolkit home page looks like this.</p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint24.png"><img src="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint24.png" alt="070710 1528 SharePoint24 SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" width="500" height="397" title="SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" /></a></p>
<p>I shan&#8217;t go over everything here because there is an excellent three minute video on the SEO Toolkit home page (linked above), which details the basic functionality of the tool.</p>
<h2>Analysing a SharePoint 2010 Publishing site</h2>
<p>Click the first link on the SEO Toolkit landing page and <em>Create a new analysis</em> of your site.</p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint25.png"><img src="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint25.png" alt="070710 1528 SharePoint25 SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" width="500" height="255" title="SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" /></a></p>
<p>The analysis takes you directly to the Site Analysis Report.</p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint26.png"><img src="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint26.png" alt="070710 1528 SharePoint26 SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" width="500" height="347" title="SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" /></a></p>
<p>Clearly, the Violations are of interest. What sort of things do they tell us? I&#8217;ll look at the errors first.</p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint27.png"><img src="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint27.png" alt="070710 1528 SharePoint27 SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" width="500" height="264" title="SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" /></a></p>
<p>Drilling in to <em>The title is missing</em>, we find that the five pages are links to authenticated content on the out of the box Publishing site template&#8217;s home page, which are 401 unauthenticated errors in this case, since this is an anonymous access zone.</p>
<p><span style="text-decoration: underline;">The Publishing Portal home page, which includes links to authenticated content<a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint28.png"><img src="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint28.png" alt="070710 1528 SharePoint28 SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" width="500" height="507" title="SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" /></a><br />
</span></p>
<p><span style="text-decoration: underline;">The individual violations</span><br />
<a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint29.png"><img src="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint29.png" alt="070710 1528 SharePoint29 SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" width="500" height="448" title="SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" /></a></p>
<p>So these errors are unsurprising, now that we know what they are. If this were real content, ideally we would modify it to remove these links to authenticated pages.</p>
<p>So what about that Canonical Formats message?</p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint210.png"><img src="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint210.png" alt="070710 1528 SharePoint210 SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" width="500" height="369" title="SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" /></a></p>
<p>This violation tells us that a single object can be accessed using two different links. In this case we have two sets of duplicated images. The first two .png files are transparent spacers and the second two are orange.</p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint211.png"><img src="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint211.png" alt="070710 1528 SharePoint211 SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" width="500" height="80" title="SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" /></a></p>
<p>That&#8217;s precisely the sort of thing we would hope to find out about and correct. So what about &#8220;The page contains broken hyperlinks&#8221;?</p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint212.png"><img src="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint212.png" alt="070710 1528 SharePoint212 SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" width="500" height="476" title="SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" /></a></p>
<p>Again, all of these links are broken because they point to authenticated content. It&#8217;s the same story for &#8220;The URL for the hyperlink is broken&#8221;, except for the five .gif files that appear there.</p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint213.png"><img src="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint213.png" alt="070710 1528 SharePoint213 SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" width="500" height="381" title="SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" /></a></p>
<p>In this case the images are actually missing. Again, this is exactly the sort of thing we want to know.</p>
<p>Unsurprisingly all of these errors point out fundamental problems in the site which content owners would want to correct even if they were unconcerned with page rank. The warnings, which I skipped over earlier, provide supplementary insight in to changes that can improve page rank in an otherwise functionally-correct website. Rather than discussing those individually, I&#8217;ll just include a screen shot of the Violations tab in the bottom half of the details pane. This tab summarises all of the violations on a selected page, which will improve the editor&#8217;s experience when making these changes.</p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint214.png"><img src="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint214.png" alt="070710 1528 SharePoint214 SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" width="500" height="161" title="SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" /></a></p>
<p>What&#8217;s particularly useful about this view is that it is now enumerating each page that violates the specified rule in the top pane, but the Violations tab enumerates all of the violations for the selected object in the top pane (the default home page in this instance).</p>
<p>Some of the other dashboards reveal slow-performing pages, most linked pages, redirects, pages blocked by robots.txt, a status code summary, a list of external links and more. It&#8217;s a very useful set of tools. If this has been at all interesting, it&#8217;s definitely worth reviewing the video and other resources up at <a href="http://www.iis.net/download/seotoolkit">IIS.NET</a>.</p>
<h2>Server tools</h2>
<p>Everything that I&#8217;ve discussed so far can be run against any site that the SEO Toolkit user can browse to. Server access is completely unnecessary. However, there are two added tools that have to be run on the server. This should not be hugely problematic for the content owner, as these tools need to be updated relatively infrequently once they&#8217;ve been set up initially.</p>
<h3>Creating a Sitemap</h3>
<p>Hopping on to my server, I click the <em>Create a new sitemap</em> link and specify the Sitemap file name.</p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint215.png"><img src="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint215.png" alt="070710 1528 SharePoint215 SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" width="500" height="435" title="SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" /></a></p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint216.png"><img src="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint216.png" alt="070710 1528 SharePoint216 SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" width="328" height="175" title="SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" /></a></p>
<p>This is my favourite bit. When the <em>Add URLs</em> dialogue first launches, it displays the IIS site files in inetpub.</p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint217.png"><img src="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint217.png" alt="070710 1528 SharePoint217 SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" width="500" height="418" title="SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" /></a></p>
<p>Not very useful for a SharePoint site, is it? But if we <em>Run new Site Analysis</em> from the URL structure drop-down…</p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint218.png"><img src="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint218.png" alt="070710 1528 SharePoint218 SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" width="500" height="100" title="SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" /></a></p>
<p>The New Analysis box pops up.</p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint219.png"><img src="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint219.png" alt="070710 1528 SharePoint219 SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" width="500" height="256" title="SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" /></a></p>
<p>After about 40 seconds of analysis (in my environment) we get the SharePoint site map!</p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint220.png"><img src="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint220.png" alt="070710 1528 SharePoint220 SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" width="500" height="417" title="SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" /></a></p>
<p>At the bottom of the dialogue the Change Frequency tells search engines how often pages are likely to change. The priority details how important we consider our site to be relative to other URLs on our site (I must confess I don&#8217;t fully understand how this works, but I&#8217;m not responsible for content. <span style="font-family: Wingdings;"> <img src='http://tristanwatkins.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' title="SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" /> </span>). You can also tell Search Engines how to identify the Last Modified Date. More information on all of this can be <a href="http://technet.microsoft.com/en-us/library/ee729257(WS.10).aspx">found on TechNet</a>.</p>
<p>One last thing before moving on. We need to add the Sitemap to our robots.txt file. There&#8217;s a handy link in the Actions pane to do so.</p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint221.png"><img src="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint221.png" alt="070710 1528 SharePoint221 SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" width="500" height="311" title="SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" /></a></p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint222.png"><img src="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint222.png" alt="070710 1528 SharePoint222 SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" width="435" height="194" title="SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" /></a></p>
<p>Also note, in the Related Features on the Actions pane, there&#8217;s a link to <em>Robots Exclusion</em>, which brings us to the final tool.</p>
<h3>Robots.txt file management</h3>
<p>If we click the <em>Robots Exclusion</em> link or the <em>View existing rules</em> link from the SEO Toolkit landing page, we can see that our sitemap.xml file is being referenced, as added above.</p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint223.png"><img src="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint223.png" alt="070710 1528 SharePoint223 SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" width="500" height="311" title="SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" /></a></p>
<p>This is confirmed if I click the <em>Open Robots.txt</em> link in the Actions pane.</p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint224.png"><img src="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint224.png" alt="070710 1528 SharePoint224 SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" width="314" height="83" title="SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" /></a></p>
<p>If we click <em>Add Disallow Rules</em> or <em>Add Allow Rules</em> we get a similar dialogue, and in both cases we will want to specify our previous Site Analysis for the URL structure.</p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint225.png"><img src="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint225.png" alt="070710 1528 SharePoint225 SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" width="500" height="131" title="SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" /></a></p>
<p>Now if I want to exclude all of the content that I don&#8217;t want to index I can just tick the appropriate boxes from my last analysis (note that this looks different than the selectable options from the Sitemap dialogue).</p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint226.png"><img src="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint226.png" alt="070710 1528 SharePoint226 SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" width="500" height="389" title="SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" /></a></p>
<p>Voila! Paths are excluded and the robots.txt file is updated.</p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint227.png"><img src="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint227.png" alt="070710 1528 SharePoint227 SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" width="500" height="438" title="SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" /></a></p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint228.png"><img src="http://tristanwatkins.com/wp-content/uploads/070710_1528_SharePoint228.png" alt="070710 1528 SharePoint228 SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" width="310" height="178" title="SharePoint 2010 SEO Analysis with the IIS SEO Toolkit" /></a></p>
<p>One thing to note is that the robots.txt file did not appear for me during testing until after I stopped and started the website in IIS. This is only an issue when it&#8217;s created for the first time, but worth noting. I believe this is also true for the sitemap.xml. file.</p>
<p>So… these are good tools! Once configured, the robots.txt shouldn&#8217;t need to be updated often and the web managers should become aware of any problems soon after they occur through their own use of the reporting tool. In short, these tools devolve a great deal of control and insight and there seems to be very little reason not to use them.</p>
<p>We have also experimented with generating the server side outputs using PowerShell, which a colleague of mine will detail soon and I will post here when ready. If there is any reluctance to use this IIS.NET extension in production infrastructure, a combination of PowerShell for file generation/management and the SEO Toolkit for reporting may be a sensible solution.</p>
]]></content:encoded>
			<wfw:commentRss>http://tristanwatkins.com/index.php/sharepoint-2010-seo-analysis-with-the-iis-seo-toolkit/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Dynamic Memory for Hyper-V in Windows Server 2008 R2 SP1</title>
		<link>http://tristanwatkins.com/index.php/dynamic-memory-for-hyper-v-in-windows-server-2008-r2-sp1/</link>
		<comments>http://tristanwatkins.com/index.php/dynamic-memory-for-hyper-v-in-windows-server-2008-r2-sp1/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 11:19:58 +0000</pubDate>
		<dc:creator>Tristan Watkins</dc:creator>
				<category><![CDATA[Virtualisation]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Dynamic Memory]]></category>
		<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[NUMA]]></category>
		<category><![CDATA[Overcommit]]></category>
		<category><![CDATA[SLAT]]></category>
		<category><![CDATA[SP1]]></category>
		<category><![CDATA[VMWare]]></category>
		<category><![CDATA[Windows Server 2008 R2]]></category>

		<guid isPermaLink="false">http://tristanwatkins.com/?p=978</guid>
		<description><![CDATA[I&#8217;ve just finished watching Virtual PC Guy&#8217;s TechEd video on the forthcoming Dynamic Memory update for Hyper-V in Windows Server 2008 R2 SP1. The beta release of the service pack is due in July. The video is fairly lengthy, at around 80 minutes, but is well worth a watch if you&#8217;re interested and find the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just finished watching <a href="http://blogs.msdn.com/b/virtual_pc_guy/archive/2010/06/10/talking-about-dynamic-memory-the-movie.aspx">Virtual PC Guy&#8217;s TechEd video</a> on the forthcoming Dynamic Memory update for Hyper-V in Windows Server 2008 R2 SP1. The beta release of the service pack is due in July. The video is fairly lengthy, at around 80 minutes, but is well worth a watch if you&#8217;re interested and find the time. If not, here&#8217;s a round-up:<span id="more-978"></span></p>
<ul>
<li>Microsoft&#8217;s approach to Dynamic Memory is fundamentally different than VMWare&#8217;s overcommitment, in that VMWare doesn&#8217;t trust information about memory usage from within the guest, whereas Microsoft&#8217;s implementation is based around an awareness of the amount and type of memory that&#8217;s being used at all times.</li>
<li>Dynamic Memory will work by Adding/Removing memory.
<ul>
<li>Adding memory is enabled through a new synthetic memory driver.</li>
<li>Removing memory that&#8217;s not being used is done with ballooning.</li>
<li>Memory is now assigned with a few new values:
<ul>
<li>Startup memory is the amount of memory assigned to a VM, which is also the minimum memory the VM will consume (default value is 512 MB).</li>
<li>Maximum memory limits how much memory a VM can consume.</li>
<li>Priority can be assigned to specific VMs in order to make sure that they receive available memory before other lower-priority VMs.</li>
<li>A Memory Buffer can be set to reserve memory for specific VMs, for instance if they need extra memory for file caching.</li>
</ul>
</li>
</ul>
</li>
<li>Hyper-V Manager adds two new columns.
<ul>
<li>Current Memory identifies how much memory the VM is consuming.</li>
<li>Memory Availability identifies the difference between how much memory a VM has vs. wants in a +/-% figure.
<ul>
<li>When the availability goes negative, the Windows guest will start to work with the lesser amount of memory that&#8217;s now available to it (via paging, etc).</li>
<li>Negative availability will result in reduced performance, but the systems will continue to function.</li>
</ul>
</li>
</ul>
</li>
<li>Memory is now reserved for the root partition in a different way, so that dynamic memory won&#8217;t bring down the host.
<ul>
<li>This amount can be configured with a new registry key based on how the root partition is being used, for instance if it&#8217;s your desktop OS.</li>
</ul>
</li>
<li>As Dynamic Memory is used more, the chances of spanning NUMA nodes increases (on NUMA systems).
<ul>
<li>He points out that different systems have vastly different Back Channel performance, so the impact of NUMA Spanning can be negligible or drastic.</li>
<li>In SP1, NUMA Spanning can be disabled (if desired).</li>
</ul>
</li>
<li>Dynamic Memory also supports Large Pages, which are likely to become more common with virtualised Exchange/SQL.
<ul>
<li>VMWare cannot overcommit these pages.</li>
</ul>
</li>
<li>I&#8217;ve asked if there are specific processor requirements. I&#8217;ll be interested to see how/if this supports processors that don&#8217;t have SLAT.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://tristanwatkins.com/index.php/dynamic-memory-for-hyper-v-in-windows-server-2008-r2-sp1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
