<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>SharePoint Shenanigans</title><link>http://blogs.technet.com/b/blairb/</link><description>Blair Bigger [MSFT]</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>Using SSL with SharePoint 2010 Send To Connections</title><link>http://blogs.technet.com/b/blairb/archive/2010/08/18/using-ssl-with-sharepoint-2010-send-to-connections.aspx</link><pubDate>Wed, 18 Aug 2010 13:39:26 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3350670</guid><dc:creator>BlairBMSFT</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/blairb/rsscomments.aspx?WeblogPostID=3350670</wfw:commentRss><comments>http://blogs.technet.com/b/blairb/archive/2010/08/18/using-ssl-with-sharepoint-2010-send-to-connections.aspx#comments</comments><description>&lt;p&gt;In working on a customer POC for the Content Organizer and Records Management in SharePoint 2010, I ran into an issue trying to add a new Send To Connections in Central Administration that doesn’t seem to yet be documented. &lt;/p&gt;  &lt;p&gt;For my scenario, I needed to route user documents from the Drop Library that gets created when you enable the Content Organizer feature on a SharePoint Web in one site collection – to another Content Organizer in different site collection. I am using the Content Type Synchronization Hub feature in 2010 to make sure all the site collections in the POC have the same Content Types available. My site, my.fourthcoffee.com, is using a SSL certificate from a Trusted Root CA in my AD DS domain – making the default URL for the site: &lt;a href="https://my.fourthcoffee.com"&gt;https://my.fourthcoffee.com&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;The URL that you need to add to the Send To Connections list in CA can be found in Site Actions –&amp;gt; Site Settings –&amp;gt; Content Organizer Settings (in the Submission Points section) of the target Web that has the Content Organizer feature activated. For my POC this URL is &lt;a href="https://my.fourthcoffee.com/subweb/_vti_bin/officialfile.asmx"&gt;https://my.fourthcoffee.com/subweb/_vti_bin/officialfile.asmx&lt;/a&gt;. When I went to Send To Connections to add the new connection, I used the “Click here to test” link to make sure my connection was valid. This will open a dialog box with the results of the test. In my case the message said:     &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;Verification failed: URL is not a valid routing destination.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;I then put the URL in the browser and made sure I got the Web Services page for the ASMX file successfully. I tried to click OK and got the same message on the next page with a&amp;#160; correlation ID. Using ULS Viewer and the correlation ID, I got the same message thrown as an exception from Microsoft.SharePoint.ApplicationPages.OfficialFileAdminPage.AddorUpdateConnection() but no real detail. In the Event Viewer at the same time that I tried to add the site I got the following entry:&lt;/p&gt;  &lt;p&gt;Log Name:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Application    &lt;br /&gt;Source:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Microsoft-SharePoint Products-SharePoint Foundation     &lt;br /&gt;Date:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 8/17/2010 11:13:51 PM     &lt;br /&gt;Event ID:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 8311     &lt;br /&gt;Task Category: Topology     &lt;br /&gt;Level:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Error     &lt;br /&gt;Keywords:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;User:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; FOURTHCOFFEE\fc.spfarm.svc     &lt;br /&gt;Computer:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; FCMSS01.fourthcoffee.com     &lt;br /&gt;Description:     &lt;br /&gt;An operation failed because the following certificate has validation errors:\n\nSubject Name: CN=my.fourthcoffee.com, OU=IT, O=Fourth Coffee, L=Charlotte, S=NC, C=US\nIssuer Name: CN=fourthcoffee-FCDC01-CA, DC=fourthcoffee, DC=com\nThumbprint: 57D85F3BCFE16B4735ED51AF1E3C2CF1A9126F02\n\nErrors:\n\n &lt;font style="background-color: #ffff00"&gt;The root of the certificate chain is not a trusted root authority&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;This threw me for a bit since I had checked the certificate on the local store and in IIS and the cert and its issuing authority both showed up as OK/Trusted. I extended the Web Application to another zone with a&amp;#160; different FQDN but no SSL and the verification succeeded so I knew the validation error and the SSL error were related. Since I’ve set up publishing for SharePoint 2010 Service Applications between Farms and ADFS 2.0 a few times I know SharePoint has its own certificate store and wondered if that might be the problem?&lt;/p&gt;  &lt;p&gt;Using Inetmgr I copied the CA’s certificate to a .CER file (C:\rootca.cer.) I then opened Windows PowerShell (as admin) and ran the following commands, each command is one line – sorry about the wrapping: &lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Consolas"&gt;Add-PSSnapin Microsoft.SharePoint.PowerShell      &lt;br /&gt;      &lt;br /&gt;$rootca = New-Object System.Security.Cryptography.x509Certificates.x509Certificate2(“c:\rootca.cer”)       &lt;br /&gt;      &lt;br /&gt;New-SPTrustedRootAuthority –Name “FC Root CA” –Certificate $rootca       &lt;br /&gt;&lt;/font&gt;    &lt;br /&gt;I did an IISRESET and then tested verification again – bingo.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3350670" width="1" height="1"&gt;</description></item><item><title>Patching SharePoint 2010 on Windows 7</title><link>http://blogs.technet.com/b/blairb/archive/2010/07/16/patching-sharepoint-2010-on-windows-7.aspx</link><pubDate>Sat, 17 Jul 2010 03:38:53 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3344798</guid><dc:creator>BlairBMSFT</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/blairb/rsscomments.aspx?WeblogPostID=3344798</wfw:commentRss><comments>http://blogs.technet.com/b/blairb/archive/2010/07/16/patching-sharepoint-2010-on-windows-7.aspx#comments</comments><description>&lt;p&gt;On July 13, 2010 we released a &lt;a href="http://support.microsoft.com/kb/2032588" target="_blank"&gt;patch&lt;/a&gt; for Microsoft SharePoint Foundation 2010 running on Windows 7 and Windows Vista. The guidance in the KB article directs you to run PSCONFIG after the patch to complete the installation. If your workstation is set to allow Windows Update&amp;#160; to automatically install updates you might already have this update and not even know about it!&lt;/p&gt;  &lt;p&gt;Look in your Windows Update history:    &lt;br /&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-61-71-metablogapi/5734.image_5F00_40CFDED9.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-61-71-metablogapi/7318.image_5F00_thumb_5F00_57325793.png" width="569" height="150" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If you haven’t run PSCONFIG yet – this gives you a good opportunity to see what the new &lt;a href="http://technet.microsoft.com/en-us/library/ff806325.aspx" target="_blank"&gt;SharePoint 2010 patching process&lt;/a&gt; feels before the release of the first SharePoint 2010 CU. Open Central Administration on your developer workstation and select Upgrade and Migration. Click Check Product and Patch Installation Status. If you scroll down the list you should see an update listed under Microsoft SharePoint Foundation 2010 Core for KB 2032588. Clicking the link takes you to the KB article for the update – nice.     &lt;br /&gt;    &lt;br /&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-61-71-metablogapi/1452.image_5F00_7332F0B1.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-61-71-metablogapi/0550.image_5F00_thumb_5F00_648844CC.png" width="404" height="27" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Now go back to the Upgrade and Migration page and choose Review Database Status. This page lists all the SharePoint databases, for services and content, and their respective patch status. On my workstation I had two Content Databases – one from a site and one from CA that have a status of:    &lt;br /&gt;”Database is in compatibility range and upgrade is recommended.” My Configuration database and the WSS Logging database also have the same status. This status means the content database isn’t at the same level as the bits of the farm – in this case the files that were updated in SharePoint Foundation 2010 Core. However the Farm and this content are available to end users. &lt;/p&gt;  &lt;p&gt;If I open the SharePoint Management Shell I can use the Get-SPDatabase cmdlet to find the same information:&lt;/p&gt;  &lt;p&gt;Get-SPDatabase | ?{$_.NeedsUpgrade –eq $true} | Select Name&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-61-71-metablogapi/0878.image_5F00_63AFDEE2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-61-71-metablogapi/7737.image_5F00_thumb_5F00_1BEE55FB.png" width="530" height="96" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Now to upgrade the Content Databases I need to run Upgrade-SPContentDatabase against the Content Database:&lt;/p&gt;  &lt;p&gt;Get-SPContentDatabase | ?{$_.NeedsUpgrade –eq $true} | Upgrade-SPContentDatabase&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: this command line&amp;#160; would run the Upgrade for every Content Database in the Farm that needs Upgrade, however this will do this one at a time through the PowerShell pipeline and not in parallel. Also the Central Admin Content Database will get updated by PSCONFIG. You don’t (and can’t) touch it with Upgrade-SPContentDatabase.&lt;/p&gt;  &lt;p&gt;Get-SPContentDatabase –Identity WSS_Content | Upgrade-SPContentDatabase&lt;/p&gt;  &lt;p&gt;Since this could be quite a long-running operation for a Content Database with lots of Site Collections – you are prompted to confirm proceeding with the process:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-61-71-metablogapi/3034.image_5F00_5ADFD696.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-61-71-metablogapi/3630.image_5F00_thumb_5F00_3F5AD493.png" width="536" height="130" /&gt;&lt;/a&gt;     &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;After you are finished with all your content databases – run PSCONFIG to finish updating the farm. When this completes, if you run this line again:   &lt;br /&gt;    &lt;br /&gt;Get-SPDatabase | ?{$_.NeedsUpgrade –eq $true}     &lt;br /&gt;    &lt;br /&gt;it will return no results since all databases have been upgraded.&amp;#160; Services in on a Server in Central Administration will now show the farm is at 2010 build &lt;strong&gt;14.0.5050.5001&lt;/strong&gt;. If you didn’t get all the Content Databases with the Upgrade-SPContentDatabase cmdlet – the PSCONFIG run will upgrade them during it’s run. &lt;/p&gt;  &lt;p&gt;This new patching process definitely adds some much needed flexibility to the SharePoint patching story. The process allows administrators to patch pieces of the Farm’s services and content with out having in incur all of the downtime in the same maintenance window. You could potentially install the update bits on the box during the week in a short maintenance window (AFTER you’ve tested it first!) and then schedule a weekend outage to upgrade the content. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3344798" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/b/blairb/archive/tags/PowerShell/">PowerShell</category><category domain="http://blogs.technet.com/b/blairb/archive/tags/Patching/">Patching</category><category domain="http://blogs.technet.com/b/blairb/archive/tags/SharePoint+2010/">SharePoint 2010</category></item><item><title>New Document ID Feature in SharePoint 2010</title><link>http://blogs.technet.com/b/blairb/archive/2009/10/20/new-document-id-feature-in-sharepoint-2010.aspx</link><pubDate>Tue, 20 Oct 2009 16:39:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3287930</guid><dc:creator>BlairBMSFT</dc:creator><slash:comments>13</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/blairb/rsscomments.aspx?WeblogPostID=3287930</wfw:commentRss><comments>http://blogs.technet.com/b/blairb/archive/2009/10/20/new-document-id-feature-in-sharepoint-2010.aspx#comments</comments><description>&lt;p&gt;Tired of broken links when someone moves a document within a site collection? Tired of nasty URL’s for a document buried deep in a doclib? &lt;/p&gt;  &lt;p&gt;SharePoint 2010 includes a new Site Collection scoped Feature called the Document ID Service. &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="DocIDSiteCollectionFeatures" border="0" alt="DocIDSiteCollectionFeatures" src="http://blogs.technet.com/blogfiles/blairb/WindowsLiveWriter/NewDocumentIDFeatureinSharePoint2010_B1DB/DocIDSiteCollectionFeatures_5.png" width="489" height="33" mce_src="http://blogs.technet.com/blogfiles/blairb/WindowsLiveWriter/NewDocumentIDFeatureinSharePoint2010_B1DB/DocIDSiteCollectionFeatures_5.png" /&gt; &lt;/p&gt;  &lt;p&gt;To enable this feature you can go the old and tired route of Site Settings -&amp;gt; Site Collection Features (under Site Collection Administration) or you can launch the SharePoint 2010 Management Shell and run the following:&lt;/p&gt;  &lt;p&gt;PS C:\Users\blairb&amp;gt; Enable-SPFeature -id docid -url &amp;lt;site collection url&amp;gt;&lt;/p&gt;  &lt;p&gt;Viewing the properties of a document in the document you will see your document now has a field called Document ID:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="DocIDDocumentProperties" border="0" alt="DocIDDocumentProperties" src="http://blogs.technet.com/blogfiles/blairb/WindowsLiveWriter/NewDocumentIDFeatureinSharePoint2010_B1DB/DocIDDocumentProperties_3.png" width="503" height="318" mce_src="http://blogs.technet.com/blogfiles/blairb/WindowsLiveWriter/NewDocumentIDFeatureinSharePoint2010_B1DB/DocIDDocumentProperties_3.png" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;Note that for existing documents some action has to be taken on the document to cause a Document ID to be generated (like check-in/check-out.) Any new documents will have a Document ID generated on upload... Or you can go into Site Collection Administrator and force a timer job to stamp all the documents.&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;If you grab the link off the Document ID field you will have a URL that looks something like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://%3csitecollectionurl%3e/_layouts/DocIdRedir.aspx?ID=MFSHF5F7ZUF5-1-1"&gt;http://&amp;lt;sitecollectionurl&amp;gt;/_layouts/DocIdRedir.aspx?ID=MFSHF5F7ZUF5-1-1&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;As you can see from this URL we have a new ASPX page in the layouts directory called DocIdRedir.aspx that takes a Doc ID as a querystring parameter. You can use this link to provide others with a consistent link to your documents. Even if I take the document and move it to another folder in the doclib or another doclib in the site collection the same Doc ID will still find the document.&lt;/p&gt;  &lt;p&gt;UPDATE: A colleague asked me about Document Sets (another bad ass new feature in 2010 that lets you work with a set of files as one entity) and Document ID’s. The Document ID Service Features tags an ID on the Document Set AND on each individual file in the set. Fantastic.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3287930" width="1" height="1"&gt;</description></item><item><title>Setting the Recovery Model of all SharePoint Databases</title><link>http://blogs.technet.com/b/blairb/archive/2008/08/27/setting-the-recovery-model-of-all-sharepoint-databases.aspx</link><pubDate>Wed, 27 Aug 2008 16:30:12 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3112776</guid><dc:creator>BlairBMSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/blairb/rsscomments.aspx?WeblogPostID=3112776</wfw:commentRss><comments>http://blogs.technet.com/b/blairb/archive/2008/08/27/setting-the-recovery-model-of-all-sharepoint-databases.aspx#comments</comments><description>&lt;p&gt;Since my customer is using Data Protection Manager 2007 to protect their SharePoint Farm workloads - they decided they wanted to set all the SharePoint databases to use the Simple Recovery Model. They have 30+ Farms so they needed a way to do this quickly per each Farm. &lt;br/&gt;&lt;br/&gt;The following SQL script creates a Stored Procedure that will loop through all the Databases in the SQL instance, skipping the system databases, and setting the rest of the databases returned to use the Simple model: 
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;USE [master]&lt;br/&gt;GO&lt;br/&gt;SET ANSI_NULLS ON&lt;br/&gt;GO&lt;br/&gt;SET QUOTED_IDENTIFIER ON&lt;br/&gt;GO &lt;/span&gt;
	&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="font-family:Courier New"&gt;CREATE procedure [dbo].[SetSharePointRecoveryModel]&lt;br/&gt;as&lt;br/&gt;&lt;br/&gt;/* variables */&lt;br/&gt;declare @dbname varchar(80)&lt;br/&gt;declare @dbmodel varchar(80)&lt;br/&gt;declare @msg varchar(120)&lt;br/&gt;&lt;br/&gt;/* create a cursor for all the databases */&lt;br/&gt;declare system_databases cursor for&lt;br/&gt;select Name, Recovery_Model_Desc from Sys.Databases&lt;br/&gt;&lt;br/&gt;open system_databases&lt;br/&gt;fetch system_databases into @dbname, @dbmodel&lt;br/&gt;&lt;br/&gt;if (@@fetch_status = 2)&lt;br/&gt;begin&lt;br/&gt;print 'No databases found.'&lt;br/&gt;close system_databases&lt;br/&gt;return&lt;br/&gt;end&lt;br/&gt;&lt;br/&gt;while (@@fetch_status = 0)&lt;br/&gt;begin&lt;br/&gt;if (@dbname = 'tempdb' or @dbname = 'master' or @dbname = 'model' or @dbname = 'msdb')&lt;br/&gt;begin&lt;br/&gt;select @msg = @dbname + ' -- Not updating recovery model of system databases.'&lt;br/&gt;    print @msg&lt;br/&gt;end&lt;br/&gt;else&lt;br/&gt;if (@dbmodel = 'FULL')&lt;br/&gt;begin&lt;br/&gt;EXECUTE ('ALTER DATABASE [' + @dbname + '] SET RECOVERY SIMPLE WITH NO_WAIT;');&lt;br/&gt;select @msg = @dbname + ' -- Set to SIMPLE.'&lt;br/&gt;print @msg&lt;br/&gt;end&lt;br/&gt;else&lt;br/&gt;begin&lt;br/&gt;select @msg = @dbname + ' -- Already set to SIMPLE.'&lt;br/&gt;print @msg&lt;br/&gt;end&lt;br/&gt;fetch system_databases into @dbname, @dbmodel&lt;br/&gt;end &lt;/span&gt;
	&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;close system_databases&lt;br/&gt;deallocate system_databases &lt;/span&gt;
	&lt;/p&gt;&lt;p&gt; 
 &lt;/p&gt;&lt;p&gt;This creates the sproc in the Master database. Using it then is simply: 
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;USE Master&lt;br/&gt;EXEC dbo.SetSharePointRecoveryModel &lt;/span&gt;
	&lt;/p&gt;&lt;p&gt;More information on SQL Recovery Models: 
&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Overview of the Recovery Models&lt;/strong&gt;&lt;br/&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ms189275(SQL.90).aspx"&gt;http://technet.microsoft.com/en-us/library/ms189275(SQL.90).aspx&lt;/a&gt;
	&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3112776" width="1" height="1"&gt;</description></item><item><title>Unable to send e-mail alerts to users with an external e-mail address</title><link>http://blogs.technet.com/b/blairb/archive/2008/05/08/unable-to-send-e-mail-alerts-to-users-with-an-external-email-address.aspx</link><pubDate>Thu, 08 May 2008 16:51:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3052380</guid><dc:creator>BlairBMSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/blairb/rsscomments.aspx?WeblogPostID=3052380</wfw:commentRss><comments>http://blogs.technet.com/b/blairb/archive/2008/05/08/unable-to-send-e-mail-alerts-to-users-with-an-external-email-address.aspx#comments</comments><description>&lt;P&gt;This one is short and sweet. My customer has federated partners so we use ADFS to allow these partners the ability to access and collaborate with our SharePoint portal. One of our amazing developers wrote code to create user profiles in the ADFS enabled SSP (an extension of the normal Windows auth'ed SSP.) Part of this new process pulls in their email address from the claim and inserts it in the Work E-mail profile property which enables alerts to function properly. Unfortunately alert e-mails, including the initial alert setup e-mail were not being delivered to these new users. We verified that the e-mail address was correct in the profile and that normal e-mail could flow to the users. Off to the ULS logs we went, after turning up E-mail and Timer Jobs to Verbose. We found the Immediate Alerts job was logging the following: &lt;/P&gt;
&lt;P&gt;The e-mail address '&amp;lt;email address&amp;gt;' is unknown.&lt;BR&gt;&lt;EM&gt;Where &amp;lt;email address&amp;gt; is a valid address in the ADFS account partner.&lt;BR&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;I found this KB – which has to be the most confusing KB I think I've seen to date: &lt;/P&gt;
&lt;P&gt;"The email address '&amp;lt;EmailAddress&amp;gt;' is unknown" error message when you add a user to a Windows SharePoint Services 3.0 or Windows SharePoint Services 2.0 Web site &lt;/P&gt;
&lt;P&gt;&lt;A href="http://support.microsoft.com/kb/838109" mce_href="http://support.microsoft.com/kb/838109"&gt;http://support.microsoft.com/kb/838109&lt;/A&gt; &lt;BR&gt;… ok same error message although not related at all. Message tracking on the Exchange Server that the SharePoint farm was configured to relay through did not show any messages arriving there bound for the ADFS Partner organization (expected – just verifying.) &lt;/P&gt;
&lt;P&gt;Exchange 2003 SMTP Virtual Server was set to "Only the List below" with an empty list and the "Allow all computers which successfully authenticate to relay, regardless of the list above. &lt;/P&gt;
&lt;P&gt;Unfortunately there is not a way for SharePoint to send credentials when sending alert/notification e-mails. So just to verify this is a relay issue - telnet time… &lt;/P&gt;
&lt;P&gt;From a command prompt:&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="FONT-FAMILY: Courier New"&gt;telnet &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-FAMILY: Courier New"&gt;set localecho &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-FAMILY: Courier New"&gt;open ex01.contoso.com 25 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;where ex01.contoso.com is the server specified in Outgoing E-mail Settings. &lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-FAMILY: Courier New"&gt;ehlo litware.com &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;where litware.com is the server domain&amp;nbsp;of the SharePoint user to whom the alert is being sent. &lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-FAMILY: Courier New"&gt;mail from: johndoe@litware.com &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;where johndoe@litware.com is the e-mail address of the external user &lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-FAMILY: Courier New"&gt;250 2.1.0 email….Sender OK &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-FAMILY: Courier New"&gt;rcpt to:sharepoint@contoso.com &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;where sharepoint@contoso.com is the from address specified in Outgoing E-mail Settings. &lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;If you get this: &lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-FAMILY: Courier New"&gt;550 5.7.1 Unable to relay for sharepoint@contoso.com &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;If you get this: &lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-FAMILY: Courier New"&gt;250 sharepoint@contoso.com… recipient ok &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Then your e-mail will be sent successfully. &lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;&lt;/P&gt;
&lt;P&gt;In Exchange 2003 we could add the IP address of the SharePoint servers to the Relay list in the SMTP virtual server. In Exchange 2007 - check out this article: &lt;A href="http://msexchangeteam.com/archive/2006/12/28/432013.aspx" mce_href="http://msexchangeteam.com/archive/2006/12/28/432013.aspx"&gt;http://msexchangeteam.com/archive/2006/12/28/432013.aspx&lt;/A&gt; &lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3052380" width="1" height="1"&gt;</description></item><item><title>How to use SSL Certificates with Multiple Subject Alternative Names in MOSS</title><link>http://blogs.technet.com/b/blairb/archive/2008/01/11/how-to-use-ssl-certificates-with-multiple-subject-alternative-names-in-moss.aspx</link><pubDate>Fri, 11 Jan 2008 19:44:03 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:2736807</guid><dc:creator>BlairBMSFT</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/blairb/rsscomments.aspx?WeblogPostID=2736807</wfw:commentRss><comments>http://blogs.technet.com/b/blairb/archive/2008/01/11/how-to-use-ssl-certificates-with-multiple-subject-alternative-names-in-moss.aspx#comments</comments><description>&lt;p style="margin-left: 1pt"&gt;Some companies do not allow wildcard * SSL certificates – but do allow certificates with multiple subject alternative names. Unfortunately there is not a way to easily implement this in MOSS via the GUI.  I had a customer that required this – so I figured I'd share what I found…&lt;br/&gt;&lt;br/&gt;First:&lt;br/&gt;Verify all host names are in DNS and correct &lt;br/&gt;Verify you have an SSL cert with the SAN's you need and that certificate is available on each WFE. &lt;br/&gt;Verify all sites are created/extended and currently NOT using SSL.  
&lt;/p&gt;&lt;p style="margin-left: 1pt"&gt;&lt;img src="http://blogs.technet.com/blogfiles/blairb/011108_1643_HowtouseSSL1.png" alt=""/&gt;
	&lt;/p&gt;&lt;p style="margin-left: 1pt"&gt;MOSS is the main site - Default Zone &lt;br/&gt;MOSSANON is the site Anonymous Access enabled - Internet Zone &lt;br/&gt;MOSSEXTRANET is the site that would be FBA or some other auth mechanism - Extranet Zone &lt;br/&gt;&lt;br/&gt;Change the AAM's for each zone through Central Administration: &lt;br/&gt;&lt;br/&gt;From: &lt;br/&gt;&lt;img src="http://blogs.technet.com/blogfiles/blairb/011108_1643_HowtouseSSL2.png" alt=""/&gt;
	&lt;/p&gt;&lt;p style="margin-left: 1pt"&gt;To: &lt;br/&gt;&lt;img src="http://blogs.technet.com/blogfiles/blairb/011108_1643_HowtouseSSL3.png" alt=""/&gt;
	&lt;/p&gt;&lt;p style="margin-left: 1pt"&gt;From: &lt;br/&gt;&lt;img src="http://blogs.technet.com/blogfiles/blairb/011108_1643_HowtouseSSL4.png" alt=""/&gt;
	&lt;/p&gt;&lt;p style="margin-left: 1pt"&gt;To: &lt;br/&gt;&lt;img src="http://blogs.technet.com/blogfiles/blairb/011108_1643_HowtouseSSL5.png" alt=""/&gt;
	&lt;/p&gt;&lt;p style="margin-left: 1pt"&gt; 
 &lt;/p&gt;&lt;p style="margin-left: 1pt"&gt;From: &lt;br/&gt;&lt;img src="http://blogs.technet.com/blogfiles/blairb/011108_1643_HowtouseSSL6.png" alt=""/&gt;
	&lt;/p&gt;&lt;p style="margin-left: 1pt"&gt;To: &lt;br/&gt;&lt;img src="http://blogs.technet.com/blogfiles/blairb/011108_1643_HowtouseSSL7.png" alt=""/&gt;
	&lt;/p&gt;&lt;p style="margin-left: 1pt"&gt;   
 &lt;/p&gt;&lt;p style="margin-left: 1pt"&gt;Assign the certificate to all 3 websites - only the first one applied will start - this is to be expected. &lt;br/&gt;&lt;br/&gt;One each WFE navigate via command prompt to &amp;lt;System Drive&amp;gt;:\Inetpub\AdminScripts &lt;br/&gt;&lt;br/&gt;Type the following command at the command prompt for each host header in this format :&lt;br/&gt;&lt;br/&gt;&lt;span style="font-family:Courier New"&gt;cscript.exe adsutil.vbs set /w3svc/&lt;em&gt;&amp;lt;site identifier&amp;gt;&lt;/em&gt;/SecureBindings ":443&lt;em&gt;:&amp;lt;&lt;span style="color:black"&gt;&lt;strong&gt;host&lt;/strong&gt;&lt;/span&gt; header&amp;gt;&lt;/em&gt;" &lt;/span&gt;
	&lt;/p&gt;&lt;p style="margin-left: 1pt"&gt;NOTE: Site Identifier can be obtained in the IIS MMC:  
&lt;/p&gt;&lt;p style="margin-left: 1pt"&gt;&lt;img src="http://blogs.technet.com/blogfiles/blairb/011108_1643_HowtouseSSL8.png" alt=""/&gt;
	&lt;/p&gt;&lt;p style="margin-left: 1pt"&gt;     
 &lt;/p&gt;&lt;p style="margin-left: 1pt"&gt;So in our example: &lt;br/&gt;&lt;br/&gt;&lt;span style="font-family:Courier New"&gt;cscript.exe adsutil.vbs set /w3svc/&amp;lt;site identifier&amp;gt;/SecureBindings ":443:moss.litware.com" &lt;br/&gt;cscript.exe adsutil.vbs set /w3svc/&amp;lt;site identifier&amp;gt;/SecureBindings ":443:mossanon.litware.com" &lt;br/&gt;cscript.exe adsutil.vbs set /w3svc/&amp;lt;site identifier&amp;gt;/SecureBindings ":443:mossextranet.litware.com" &lt;/span&gt;
	&lt;/p&gt;&lt;p style="margin-left: 1pt"&gt;Run IISRESET 
&lt;/p&gt;&lt;p style="margin-left: 1pt"&gt;&lt;strong&gt;Repeat this on the other WFE's &lt;br/&gt;&lt;br/&gt;&lt;/strong&gt;Verify all sites are responding:   
&lt;/p&gt;&lt;p style="margin-left: 1pt"&gt;&lt;img src="http://blogs.technet.com/blogfiles/blairb/011108_1643_HowtouseSSL9.png" alt=""/&gt;
	&lt;/p&gt;&lt;p style="margin-left: 1pt"&gt;   
 &lt;/p&gt;&lt;p style="margin-left: 1pt"&gt;&lt;strong&gt;Troubleshooting: &lt;/strong&gt;
	&lt;/p&gt;&lt;p style="margin-left: 1pt"&gt;Follow sequence of steps in specified order – very important!&lt;br/&gt;Verify all sites are started in IIS and no errors reported. &lt;br/&gt;Verify by Viewing the SSL cert on each website that the SSL cert has a matching private key. &lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=2736807" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/b/blairb/archive/tags/SharePoint/">SharePoint</category><category domain="http://blogs.technet.com/b/blairb/archive/tags/Security/">Security</category></item><item><title>Help I've renamed a Hidden MOSS Site Column!</title><link>http://blogs.technet.com/b/blairb/archive/2008/01/10/help-i-ve-renamed-a-hidden-moss-site-column.aspx</link><pubDate>Fri, 11 Jan 2008 00:35:35 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:2733187</guid><dc:creator>BlairBMSFT</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/blairb/rsscomments.aspx?WeblogPostID=2733187</wfw:commentRss><comments>http://blogs.technet.com/b/blairb/archive/2008/01/10/help-i-ve-renamed-a-hidden-moss-site-column.aspx#comments</comments><description>&lt;p&gt;One of my customers recently found that someone in the process of working with SharePoint Content Types had renamed one of the built-in Site Columns - Title - to something else… If you attempt to change the Site Column back to "Title" you get this error message: &lt;br/&gt;&lt;br/&gt;&lt;span style="color:red"&gt;&lt;strong&gt;"The column name that you entered is already in use or reserved." &lt;br/&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/span&gt;This is discussed in the following KB Article: &lt;br/&gt;&lt;br/&gt;Error message when you try to change the name of a site column back to its original name in Windows SharePoint Services 3.0: "The column name that you entered is already in use or reserved." &lt;a href="http://support.microsoft.com/kb/923589"&gt;http://support.microsoft.com/kb/923589&lt;/a&gt;
	&lt;/p&gt;&lt;p&gt;In the article there is an example of C# code to programmatically access the Field object in question and change the name back to the correct/desired name. Let's see if we can make this short and sweet with PowerShell… &lt;br/&gt;&lt;br/&gt;I've got PowerShell installed on one of the members of my Farm so that I have easy access to the SharePoint object model. &lt;br/&gt;&lt;br/&gt;# First we need to tell PowerShell how to use SharePoint objects: &lt;br/&gt;&lt;span style="font-family:Consolas"&gt;[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") &lt;br/&gt;&lt;br/&gt;&lt;/span&gt;# Next we create a site object by created a variable and providing the URL of the site in question. &lt;br/&gt;&lt;span style="font-family:Consolas"&gt;$site=[Microsoft.Sharepoint.SPSite]("&lt;a href="http://localhost"&gt;http://&lt;/a&gt;&amp;lt;your site&amp;gt;") &lt;br/&gt;&lt;br/&gt;&lt;/span&gt;# Next we create a web object and open it from the site.openweb method &lt;br/&gt;&lt;span style="font-family:Consolas"&gt;$web=$site.openWeb() &lt;br/&gt;&lt;br/&gt;&lt;/span&gt;# Next we create a field object and site it to the name of the field that we want to correct - in this case: Title &lt;br/&gt;&lt;span style="font-family:Consolas"&gt;$fld = $web.Fields.getFieldByInternalName("Title") &lt;br/&gt;&lt;br/&gt;&lt;/span&gt;# Next we set the Field object's Title attribute to the name we want to be displayed, again in this case: Title &lt;br/&gt;&lt;span style="font-family:Consolas"&gt;$fld.Title = "Title" &lt;br/&gt;&lt;br/&gt;&lt;/span&gt;# Next we tell SharePoint that we want this change to apply to all Lists &lt;br/&gt;&lt;span style="font-family:Consolas"&gt;$fld.PushChangesToLists = $true &lt;br/&gt;&lt;br/&gt;&lt;/span&gt;# Finally we make the change official. &lt;br/&gt;&lt;span style="font-family:Consolas"&gt;$fld.Update() &lt;br/&gt;&lt;br/&gt;&lt;/span&gt;PowerShell for Windows 2003 SP1 can be downloaded from here: &lt;br/&gt;&lt;br/&gt;X86 - &lt;a href="http://go.microsoft.com/fwlink/?LinkID=75790&amp;amp;clcid=0x09"&gt;http://go.microsoft.com/fwlink/?LinkID=75790&amp;amp;clcid=0x09&lt;/a&gt;
		&lt;br/&gt;X64 - &lt;a href="http://go.microsoft.com/fwlink/?LinkID=75791&amp;amp;clcid=0x09"&gt;http://go.microsoft.com/fwlink/?LinkID=75791&amp;amp;clcid=0x09&lt;/a&gt;
		&lt;br/&gt;&lt;br/&gt;If you've gotten daring and are playing around with MOSS SP1 on top of Windows 2008 - PowerShell is simply a one-line command from the Windows 2008 Command Prompt: &lt;br/&gt;&lt;br/&gt;&lt;span style="font-family:Courier New"&gt;ServerManagerCmd -i PowerShell &lt;/span&gt;
	&lt;/p&gt;&lt;p&gt;Hope this helps! &lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=2733187" width="1" height="1"&gt;</description></item></channel></rss>
