You are currently browsing the archives for the SharePoint category


SharePoint 2010 Export Managed Metadata Terms from the Term Store

As part of our SharePoint 2010 deployment here, we make extensive use of the new Managed Metadata Service Application. To ensure we have concise and correct terms we have Term Store Managers that check on a weekly basis the validity of these terms. Some of the tests they check is duplicaiton or terms, correct spelling and just general term lifecycle itself.

I’ve checked around and there are plenty of scripts around that instruct you to upload and create terms through PowerShell, but we needed a quick way to export our current terms and find out who created the term and when. So here’s a litte script you can schedule to run each week.

One thing to check for is the name of the Term Store you bind, which shoukd be listed via the Get-SPTaxonomySession cmdlet.

# Add SharePoint PowerShell Snapin
Add-PSSnapin Microsoft.SharePoint.PowerShell

# File and Drectory Location
$date = get-date -Format yyyyMMdd
$dirLocation = "\\server\share\Taxonomy\Terms\"
New-Item ($dirLocation + $date) -type directory | Out-Null

# Connect to Central Admininistration Site
$taxonomySite = Get-SPSite http://server:31337

# Connect to Term Store in the Managed Metadata Service Application
$taxonomySession = Get-SPTaxonomySession -site $taxonomySite
$termStore = $taxonomySession.TermStores["Managed Metadata Service (Enterprise)"]

# Connect to the Profiles Term Group
$termStoreGroup = $termStore.Groups["Profiles"]

# Export Terms as .csv for each Term Set
foreach ($termSet in $termStoreGroup.TermSets.GetEnumerator()) {
$termSet.Terms | select Name, Owner, CreatedDate, LastModifiedDate | Export-Csv ($dirLocation + $date + "\Terms-" + $termStore.Groups["Profiles"].Name + "-" + $termSet.Name + ".csv")
}

# Connect to the System Term Group
$termStoreGroup = $termStore.Groups["System"]

# Export Terms as .csv for each Term Set
foreach ($termSet in $termStoreGroup.TermSets.GetEnumerator()) {
$termSet.Terms | select Name, Owner, CreatedDate, LastModifiedDate | Export-Csv ($dirLocation + $date + "\Terms-" + $termStore.Groups["System"].Name + "-" + $termSet.Name + ".csv")
}

With the above script that will export all your Terms with the Name, Term Owener, Creation Date and Last Modificaiton Date. Our Term Store Managers like to review the terms on a weekly basis so all that needs to be run later is the following couple of lines per each Term Set;

# If you want see what terms have changed since last export, ie 7 days
$dateToCompare = (Get-date).AddDays(-7)
Import-Csv '.\Terms-Previous Employers.csv' | Where-Object {$_.LastModifiedDate -gt $dateToCompare} | Sort-Object {$_.LastModifiedDate} -Descending

I’ll alter the above script later to iterate through all the Term Set csv files to then export the changes in a further update. For now, enjoy.

Cheers,

Kristof Kowalski | kristof@kowalski.ms

Trials and Tribulations of the SharePoint Server 2010 User Profile Service Application

For us, identity is such a big piece of work so we wanted to centralise the whole import and transform process with a publishing and consuming farm topology. We import users from Active Directory here and also supplement the profiles with additional data from third party databases and LOB systems such as Oracle databases, JD Edwards and other custom identity solutions.

Sure there are other methods of achieving this, but we didn’t want to litter our other farms with the User Profile Service Application and then use the User Profile Replication Engine (http://technet.microsoft.com/en-us/library/cc663011.aspx) which comes with the SharePoint 2010 Administration Toolkit (http://technet.microsoft.com/en-us/library/cc508849.aspx). There’s extra storage to consider based on the service application per user profile and also the extra administrative overhead but you might still want to have a look into it. All I’m saying is, it wasn’t right for us.

I’ve been pulling my hair out for the last several days and thought I would share some of the knowledge to save people out from that same bizarre issues that I’ve come across. So here we go.

Scenario:

You have two SharePoint Server 2010 farms, one Enterprise (Publishing) and one Collaborative (Consuming) farm. On the Enterprise farm you have your User Profile Service Application that you are publishing to any consuming farms. Your end users are accessing sites on the consuming farm for their collaborative sites as well as their My Sites.

Problems:

Some of the problems that I encountered along were as follows, each one of these pretty much has an associated fix.
• When the end user searches for any colleagues in the collaborative farm they only see data that has been presented in Active Directory without any supplemented details from the User Profile Application (UPA).
• When you add  a user to your site you don’t received supplemented details such as About Me.
• When you create a My Site on your collaborative farm you receive the following errors;
- Could not load user profile.
- There has been an error creating the personal site. Contact your site administrator for more information.
- You do not have permissions to have lists and pages within My Site.

Problem 1:

• When the end user searches for any colleagues in the collaborative farm they only see data that has been presented in Active Directory without any supplemented details from the User Profile Application (UPA).
• When you add  a user to your site you don’t received supplemented details such as About Me.

Solution:

When you publish the UPA you need to ensure the each Web Application Pool ID of the consuming farms Web Apps is present. What that means is, each Web App that will need to access the UPA on the publishing farm, that App Pool ID needs to be present in the Publishing Permissions as Full Control. Now this is where I ran into issues, I also had to add these consuming App Pool IDs to UPA Administrators on the publishing farm.
Here is another gotcha, not sure if it’s just our environment or what but our consuming Pre Production and Production farms still did not fire off the Connection to: ……….. User Profile to SharePoint Full Synchronization or Connection to: ……….. User Profile to SharePoint Quick Synchronization timer jobs successfully. If you turn up ULS logging to Verbose look for an event omvh which should be the timer job kicking off the sync job and look for any exceptions that might appear. We didn’t see any of these timer jobs running so we had to manually kick them into life and it worked.
Just for the interested, if you don’t have your Application Pool IDs in both the UPA Administrators and Permissions you’ll be able to observe  the following behaviour. Prior to me adding the  IDs I was seeing an Access Denied in the Microsoft Service Trace Viewer (http://msdn.microsoft.com/en-us/library/ms732023.aspx) service tracer of the Profile Web Service.

Basic Information

Activity Name Process action ‘http://Microsoft.Office.Server.UserProfiles/GetProfileProperties’.
Time 2010-09-23 01:09:36.3123
Level Error
Source System.ServiceModel
Process w3wp
Thread 32
Computer XXXXXXXX
Trace Identifier/Code http://msdn.microsoft.com/en-GB/library/System.ServiceModel.Diagnostics.ThrowingException.aspx
Exception
System.ServiceModel.FaultException, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

Message

Access is denied.
To get your trace simply open up the web.config, make sure you back it up first, in C:\Program Files\Microsoft Office Servers\14.0\WebServices\Profile and go to <system.diagnostics>. You’ll notice that it’s commented out with the <!– and–> tags. Replace with;
  <system.diagnostics>
      <sources>
            <source name="System.ServiceModel"
                    switchValue="Information, ActivityTracing"
                    propagateActivity="true">
            <listeners>
               <add name="traceListener"
                   type="System.Diagnostics.XmlWriterTraceListener"
                   initializeData= "c:\log\Traces.svclog" />
            </listeners>
         </source>
      </sources>
   </system.diagnostics>

And remember to uncomment by removing your comment tags. Now you should be able to try rerunning the Profile Sync jobs or simple wait for them to fire off every 5 minutes for the Quick Sync or an hour for the Full Sync. There seems to be an oddity though, if you look at your Connection to: ……….. User Profile to SharePoint Full Synchronization, it’s set to hourly with Starting every hour between 0 minutes and no later than 0 minutes! That should read 0 and 59 minutes, so if your Full Sync doesn’t run you know why.

You should be able to see all your content databases being updated in the ULS logs by the Profile Sync now, so if you do a refresh all additional profile properties will be updated.

Problem 2:

When creating a My Site on the consuming farm you get the following error;
o Could not load user profile.

Solution:

This one still baffles me as to why I received this. Even though I had a Full Import sorted and I could see the profile properties being updated on all my consuming farms Web Apps, I could still not create a My Site. I simply deleted the UPA connection on the consuming farm to the publishing farm, removed the UPA WITHOUT deleting the associated databases, so we could save some time without needing a full 5 hour import again! I created a new UPA, entered the same database names in, specified the server that will run the profile service, added my URL for the dummy mysite in the Enterprise (publishing) farm and away we went. I started the User Profile Synchronization Service on the UP server an waiting till it was started correctly, takes about 5 minutes. I republished and repermissioned the UPA with the above settings and simply connected it to the consuming farm.

To save time I fired off the Connection to: ……….. User Profile to SharePoint Full Synchronization manually and ensured that it synchronised the profile properties to the consuming farm. Remember to change the time for this timer job as it seems to set it to 0 and 0.

This leads me on to the next problem, as they all seem to be related.

Problem 3:

When creating a My Site on the consuming farm you get the following error;
o You do not have permissions to have lists and pages within My Site.

Solution:

This takes me back to my days of Microsoft when we supported MOSS 2007 in the UK Premier team. Ahh the fantastic memories and some right mares too… ;-)
What it simple means is that your AAM (alternate access mappings) are incorrect. What you need to do to is to add the publishing farm’s My Site AAM to the consuming farm’s AAM. So if your Default zone on your publishing My Site Web App has http://mysite.publishing.domain.com then you need to add this URL to say, the Intranet Zone of your consuming farm’s My Site Web app. So your consuming Web App AAMs would be Default http://mysite.consuming.domain.com and Intranet http://mysite.publishing.domain.com.

And… this takes me on to the next problem.

Problem 4:

When creating a My Site on the consuming farm you get the following error;
o There has been an error creating the personal site. Contact your site administrator for more information.

This issue was around in MOSS, by the looks of things it’s still not fixed. If you turn up the ULS and check for the correlation ID of this error you’ll come across this error;
Unknown SPRequest error occurred. More information: 0×80070005

It simply means, Access Denied. The workaround, I say workaround as it’s not an ideal solution is to add the consuming farms My Site App Pool ID into the consuming Farm Administrators group. Perform an iisreset and you’re good to go. Now I don’t exactly know why you needed to elevate the privileges for this particular action but it’s still the same problem as it was in MOSS 2007.

One last word of warning if you’re using SQL Aliasing with cliconfg. Make sure you add the publishing farm’s SQL alias to all your consuming farm’s as none of this will work and you’ll receive some most peculiar issues. You’ve been warned.

Hope this helps some of you guys and gals out there and gets that Project Manager of your back!

Kristof Kowalski // Kristof@kowalski.ms

SharePoint Server 2010 Supplementing User Profile Imports Using BCS

The User Profile Service Application is used to synchronise data from Active Directory to the profile database maintained by SharePoint. The profile database contains rich information about end users that can be displayed in sites. The User Profile service application maps Active Directory fields to fields in the user ’s profile. On a scheduled basis, this information is imported from Active Directory.

But, what happens when you want to add additional information from external systems to supplement the richness of you Active Directory data? Well, you need to use BCS (Business Connectivity Services). BCS is an evolution to the functionality of MOSS’s (Microsoft Office SharePoint Server) 2007 BDC (Business Data Catalog).

What started out as a simple lab to get a proof of concept up and running really turned into a bit of a hair pulling ordeal. I’ll go through it here so that someone else doesn’t have to go through the same stress as I had to. From what I gather there’s quite a few people out there who are trying to get this running but are faced with the dreaded error;

“Microsoft.MetadirectoryServices.NoSuchObjectTypeException: No such object type “user”.
at Microsoft.MetadirectoryServices.Impl.TypeDescriptionCollectionImpl.get_Item(String Name)


So. Onto the Step by Step guide to enlightenment, so I hope. Just as a note, I’ll be importing some Customer details into my profile from the Northwinds sample database. This database can be downloaded from;

http://www.microsoft.com/downloads/details.aspx?familyid=06616212-0356-46a0-8da2-eebc53a68034&displaylang=en

Firstly go ahead and download the database. You can either run the .sql file to create the DB or simple to an attach. Once you have the DB attached to your SQL back-end you should be able to query the sample data as follows;

This is the sample data we’ll be using. In our simple test I’ll be adding an Alternate Company to my Active Directory profiles, this data will be pulled from the Customers table using the CompanyName table.

The first thing we need to do is create and ECT (External Content Type). With BCS the focul point is, it’s all about External Content Types definitions. The simplest method of generating these ECTs is using SPD (SharePoint Designer) 2010. Once we’ve created our ECT it’ll be stored in the ECT Catalog, also known as the metadata catalog.

So lets fire up SPD and create an External Content Type. Open up a Team Site where you want to test out your ECT. To ensure our ECTs are working we’ll create a list afterwards and display the Northwinds customers using the SharePoint native interface.

In SPD go to External Content Types in Site Objects.  Click External Content Type. You’ll be presented with a new ECT page;

Enter a Name such as NorthwindCustomers. Enter a Display Name as Northwind Customers. In my example I’ve changed the Office Item Type to Contact as I want to take the list offline for later use. It’s up to you, the only extra step you need to do is map the properties in the Northwinds database to Office properties.

Click the Click here to discover external data sources an…  Click Add Connection and select SQL Server. Fill in  your Database Server, Database Name and optional name. Leave Connect with User’s Identity as the default. Once you have done this, you’ll notice that your Northwinds database has been added to your Data Source Explorer as follows;

Expand your Northwindows database and right click Customers. Select Create All Operations.

You should be presented with Operations Properties wizard now. For the ease of this guide I’ve selected All Operations but in your day to day BCS solutions you might want to limit what you want you users to perform using CRUD (create, replace, update, delete) for security sake.

Select Next on the Operations Properties wizard. Since I’ve chosen the Office Item Type as Contact I will now need to map the Data Source Elements such as CompanyName to an Office Property like Company Name (CompanyName). I will also check the Show In Picker box as I want to be able to view the results from any searches. Perform these steps for as many elements as you see fit. A word of warning too, leave the CustomerID Data Source Element as Read-Only in the Properties. You dont want your users overwriting your identifier for the field that we’ll use later for our 1 to 1 profile relationship.

Click Finish. Then select Summary View in SPD to view your settings and save your changes. They should look something like this.

Congratulations. You’ve just created your first ADO.NET ECT and now we’re ready to expose the contents of our Customers table from the Northwinds database. The simplest method to create your External List and InfoPath form is to use the Create Lists & Form button on the SPD ribbon. Select the newly created ECT and then select Create Lists & Form from the ribbon to bring up the. Fill in the List Name details and also check the Create InfoPath Form checkbox. Your entry should look something like this;

Once you click OK this will go ahead and create the External List and InfoPath form in the Team Site that you used when creating the ECT. If you refresh your Team Site home page you should see a new list in the Quicklaunch bar. Before you can use the your new ECT you need to set the permissions for your ECT else you will receive the following message;

Access Denied by Business Data Connectivity.

To apply the permissions for your ECT you need to go to your Central Administration > Manage Service Applications > Business Data Connectivity Service > Select the Set Permissions action on your ECT. Open your People Picker up and search for All. Select your All Authenticated Users and check each Permissions that you would apply to this user/group. For our guide we’re allowing all permissions on this ECT for the All Authenticated Users group.

Once you set your permissions on the ECT you will be able retrieve the Customers table from the Northwind database as follows. A word of caution, you will need to close down your browser session and open your Team Site up again as you need to re-authenticate against the site again for the External List to work work.

Congratulations, you’ve now you’ve created your first External List based on a ADO.NET External Content Type. Imagine the possibilities in connecting out disparate LOB (Line of Buiness) systems out there in your organisation and having them surfaced by using native SharePoint External Lists, this is only the tip of the ice berg on what is possible.

Now I’m going to assume that your profile imports are working correctly when importing from Active Directory (AD). If you’re AD imports aren’t working then please get that up and running and move on to the next steps. A word of notice is that the BCS profile import cannot be the primary data source for profile imports, we can only supplement information from LOB systems and add them to our AD Profiles.

In this example as I mentioned initially, I’ll be adding an Alternate Company to my Active Directory profiles, this data will be pulled from the Customers table using the CompanyName table. The first step we need to perform is by adding a new User Property. In my example I will add to each user a Alternate Customer ID field that will have this fields data correlate back to the CustomerID column of the Customers table, this is how we establish our 1 to 1 relationship between our AD profiles and our BCS profiles. This Alternate Customer ID propoerty will only be a SharePoint local property, but in a real world example this can be brought in from Active Directory via one of the other attributes.

To create the new User Property go to Central Administration > Manage Service Applications > User Profile Service Applications > Manage User Properties. Select New Property and fill in the contents as follows.

Name: CustomCustomerID
Display Name: Alternate Customer ID
Type: String
Length: 5 (Since our column CustomerID is on 5 nchar in the Customers table)

Under Policy Settings change the Required Policy Setting to Optional. The rest of the property settings can be set however you like. Click OK and we’re ready to start setting up our BCS User Profile Synchonrization Connetion. Go to your User Profile Service Application > Configure Synchronization Connections > Create New Connection.

Enter a Connection Name as Northwinds, Type as Business Data Connectivity. In the Business Data Connectivity Entity select your Northwind Customers External Content Type. Now this is the import part, we need to map our CustomCustomerID to our Extrernal Content Type to create the 1 to 1 relationship. Select our CustomCustomerID property as the identifier.

Click OK and save your now synchronization connection settings. Now, we need to quickly jump back in the Manage User Profiles page and add the Alternate Customer ID data in. This will then be used to import the Alternate Company Name via BCS. Like I mentioned previously, instead of an Alternate Customer ID property that we have here, you can use an AD attribute to perform the same function, usually a mail or employeeid attribute is the way to go, anything which correlates your HR systems and AD will work.

Before we can start the profile import we need to add another User Property that will surface the Alternate Company Name data from the CompanyName column. Create a New Property with the follow values;

Name: CustomCompanyName
Display Name: Alternate Company Name
Type: String
Length: 40 (Since our column CustomerID is on 40 nvarchar in the Customers table)

Under Policy Settings change the Required Policy Setting to Optional. The rest of the property settings can be set however you like util you scroll to Property Mapping for Synchonization. Select Northwinds as the Source Data Connection, select CompanyName as the Attribute. Click Add to the add the Property Mapping to the new User Property.

Click OK and you are done with User Properties.

Lets go ahead and populate our Alternate Customer ID properties in some test profiles. I’ve got several properties imported here from my dev box so I’ll go ahead and add the CustomerID data from the Customers table in the Northwind database. As a simple test, you can add 1 or 2 Alternate Customer ID entries initially and the profile import will only import those 1 or 2 BCS profiles. So I’ll add 2 for now and we’ll check the Forefront Identity Manager 2010 client that those 2 profile are only imported.

Lets add ALFKI as the Alternate Customer ID to one of our profiles, which is the first record in the Customers table. Lets find another profile and add ANATR to the Alternate Customer ID. Once we perform a Full Import will expect to have the Alternate Company Name supplemented by our BCS import.

We’ve pretty much set up all the plumbing, lets kick off our Full Import. Go to Central Administration > Manage Service Applications > User Profile Service Application > Start Profile Synchonization > Start Full Synchronization.

With Microsoft SharePoint Sever (MSS) 2010, Microsoft has opted to use Forefront Identity Manager (FIM) 2010 instead of the SharePoint Search engine to perform the profile imports. With the install of MSS we also have the miisclient.exe that allow us to view and check certain preoprties during and after the import. You can find the tool in the following directory;

C:\Program Files\Microsoft Office Servers\14.0\Sychonization Service\UIShell

Open up miisclient.exe and view the impending profile import.

If all the steps were carried our correctly you will have success as the resultant message in the Status column all the way through. Success! All done.

Now if you check any of you modified user profiles that you added your Alternate Customer ID, you will notice that the Alternate Company Name has been supplemented. Phew! That was a long guide.

When I initually ran across the No such object type “user” error message what finally allowed to me fix the problem was drilling further into the workings of the miisclient.  Open the miisclient, go to Management Agents > Select MOSSBDC-Northwinds > Select Proprties in the Actions Menu > Configure Additional Parameters.

Notice on the righthand side the MossJoinAttribute and BDCJoinAttribute.

Ensure that these attributes are the correct entries for the 1 to 1 relationship between your LOB system and your MOSS profile. BCS needs to know how to correlate these two fields together to supplement each user’s profile, hence the error.

Hope this helps quite a few of you out there as I know this was a major feature we had to get up and running for our global rollout.

Kristof Kowalski / kristof@kowalski.ms

SharePoint Server 2010 Enterprise Service Application Publishing and Consuming Farms

As I’ve been getting to grips with SharePoint Server 2010 I’m really starting to appreciate how modular and how WAN friendly the product is.

Our organisation is a large multinational with major regional sites around the world, unfortunately not every regional site has SharePoint Administrators available for their disposal.

With that in mind we wanted to cut down on the administrative overhead around the regions and also centralise most of the common Service Applications. In SharePoint server you can publish certain Service Applications across farms as outlined in the following TechNet article;

Share service applications across farms (SharePoint Server 2010)
http://technet.microsoft.com/en-us/library/ff621100.aspx

For now we are very much interested in publishing the User Profile and Search Service Applications. I’ll delve further into the others in later posts. Since we’re embarking on a worldwide My Sites launch, we wanted to centralise the User Profile Service Application on our Enterprise Service Applications Farm and have it consumed by our regional Collaborative farms. We wanted a simple way of allowing the primacy of user profile data without the need of replicating this data by using tools such as the User Profile Replication Engine (UPRE).

On top of this we wanted to centralise our Search Service Application to allow a greater level of relevancy from our search results. One caveat is that the Crawl Components would have to reside on our Enterprise Farm and then crawl all the regional farms, we took this decisions as relevancy takes place this central farm. If we opted for the whole Federation scenario we’d have a disjoined solution where each farm calculates its own relevancy and returns the results back to the end user without taking into effect the results of all the other farms. After all in the search world, relevancy is king.

I’ve been battling away at the steps that Microsoft provided and from what I can see it partially gets you there, so I’ll try and fill in the blanks for everyone. There are several steps you need to take, so grab yourself a strong caffeinated drink and let’s crack on.

Firstly we need to establish a trust between our Publishing (Enterprise) Farm and Consuming (Collaboration) farm. Lets go ahead and exchange trusts certificates between the farms;

- To export the root certificate from the consuming farm
- $rootCert = (Get-SPCertificateAuthority).RootCertificate
- $rootCert.Export(“Cert”) | Set-Content C:\ConsumingFarmRoot.cer -Encoding byte

- To export the STS certificate from the consuming farm
- $stsCert = (Get-SPSecurityTokenServiceConfig).LocalLoginProvider.SigningCertificate
- $stsCert.Export(“Cert”) | Set-Content C:\ConsumingFarmSTS.cer -Encoding byte

- To export the root certificate from the publishing farm
- $rootCert = (Get-SPCertificateAuthority).RootCertificate
- $rootCert.Export(“Cert”) | Set-Content C:\PublishingFarmRoot.cer -Encoding byte

- Copy all certificates to publishing and consuming farm

- To import the root certificate and create a trusted root authority on the consuming farm
- $trustCert = Get-PfxCertificate C:\PublishingFarmRoot.cer
- New-SPTrustedRootAuthority EnterprisePublishingFarm -Certificate $trustCert

- To import the root certificate and create a trusted root authority on the publishing farm
- $trustCert = Get-PfxCertificate C:\ConsumingFarmRoot.cer
- New-SPTrustedRootAuthority EUConsumingFarm -Certificate $trustCert

- To import the STS certificate and create a trusted service token issuer on the publishing farm
- $stsCert = Get-PfxCertificate c:\ConsumingFarmSTS.cer
- New-SPTrustedServiceTokenIssuer EUConsumingFarm -Certificate $stsCert

On the Publishing farm go the Central Administration > Manage Service Applications

-          For each Service Application you want to publish, select the service application and click Publish

-          In our case we select the User Profile Service Application and Search Service Application

-          Select your connection type. Since I want to user encsyrpted communication I select https.

-         Select Publish this Service Application to other farms check box

-          Now the important part, write down the Service Application Published URL. Not down the urn:….

-          You can place a Description or Information URL. We stick in details of who published it, when and who to contact in case of issues.

On the consuming farm, set the permission to the appropriate service applications.

- To set permission to the Application Discovery and Load Balancing Service Application for a consuming farm
- Get-SPFarm | Select Id
- Write down the Farm Id for later use, in my example the Consuming Farm Id is 66cc8542-a854-4155-8557-27e47ef363e4.

- To set permission to the Application Discovery and Load Balancing Service Application for a publishing farm

- $security=Get-SPTopologyServiceApplication | Get-SPServiceApplicationSecurity
- $claimprovider=(Get-SPClaimProvider System).ClaimProvider
- $principal=New-SPClaimsPrincipal -ClaimType “http://schemas.microsoft.com/sharepoint/2009/08/claims/farmid” -ClaimProvider $claimprovider -ClaimValue 66cc8542-a854-4155-8557-27e47ef363e4
- Grant-SPObjectSecurity -Identity $security -Principal $principal -Rights “Full Control”
- Get-SPTopologyServiceApplication | Set-SPServiceApplicationSecurity -ObjectSecurity $security
- Go to Permissions of Published Search SAs and search for 66cc8542-a854-4155-8557-27e47ef363e4, add Full Control
- Check Permissions of Publishing Farm Application Discovery Load Balancer Service Application to ensure the claim provider of the Remote Farm is set

On the consuming farm, connect to the remote service application, go to Central Administration > Manage Service Applications

-          For each Service Application you want to connect, select the service application and click Connect

-          In our case we select the User Profile Service Application Proxy and Search Service Proxy

-          Paste in the Published URL of the Service Application you want consume

-          Select the Service Application and Click OK.

-          Double check in Service Applications that you have each of the Connected to:…  entries listed.

All that is left to do now is test. Create a simple Enterprise Search Centre site and perform a search. Assuming all the steps have been followed correctly we should receive our search results and you will also have a richly populated People Picker with the Enterprise Farms profile properties.

Cheers,

Kristof Kowalski // kristof@kowalski.ms

UPDATE 1: If you get any of the following errors in the ULS logs make sure you re-connect your Service Applications to the Publishing farm again and ensure that you have the correct Claim added to the Application Discovery and Load Balancing Service Application as well as the Search Service Application.

SearchServiceApplicationProxy::GetLocationConfigurations–Error occured: System.ServiceModel.Security.SecurityAccessDeniedException: Access is denied.    Server stack trace:      at System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter)     at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)     at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)     at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)     at System.ServiceModel.Channel…

SharePoint Server 2010 Phonetic and Nickname Search

We’ve been working with Microsoft SharePoint Server (MSS) 2010 for a little while now and trying to plan our strategy going forward. One feature we’re interested in is utilising People Search as a corporate global address-book.

One compelling reason for a multinational company like ours is to use the new phonetic search. An example a phonetical search is someone looking for Geoff Bridges.  A user can type in either Geoff or Jeff Bridges and be presented with the correct user details. Another example search is if you plug in Mike Jones, you will return back either Mike Jones or a Michael Jones.

We’ve noticed that the phonetic search hasn’t been working on our instances at all so a bit of digging around and I’ve come with some interesting facts.

All the phonetics and synonyms of each word are held in a text file, about 25MB in size in the following location;

C:\Program Files\Microsoft Office Servers\14.0\Bin\languageresources.txt

Upon further investigation since all our clients have the English (United Kingdom – LCID 2057) set in the regional settings and the the phonetics dictionary has mostly English (United States – LCID 1033), we got no phonetical search at all. A simple case of changing the browser’s user agent language settings to en-US (1033) gives you a workaround but not necessarily a total solution.

Hope this helps someone out as we were scratching our head for a little while. I’ll update the site again once I have a solution.

Kristof Kowalski // kristof@kowalski.ms

UPDATE 1: I’ve managed to find some more details about the Phonetic and Nickname Search issue. Here is what I have thus far.

  • Phonetic / fuzzy matching on names, i.e. searching for  “Peat” and getting results for Pete  are done via  Speech Server in 2010 People Search.
  • Different results for each different LCID (locale/language ID ) at query time – this is to be expected for both the above new features in People Search. Given that this behaviour is by design.
  • Nickname matches are done via  the MSSLanguageResources table of the Search Service application database. This table is partitioned on LCID for different languages. indicates nickname matches and it is a separate  to phonetic matching.
  • If you look into MSSLanguageResources table of Search Service application database, you can see mappings for the nick-names.
  • What happens in the scenario of searching with the locale as en-US is: we are matching nickname results in en-US  - which mean with search term Mike we return:

Mike Scott (exact match )
Michael Scott (nickname match) – As per the above said table, Pete is  a valid nickname match for peter in the EN US LCID [i.e. 1033]

  • For non English language LCIDs, the above said table does not have nickname entries by design for English names. In other words, there is no nick-name assigned for the LCID 2057 [which is EN-GB].

From all intensive purposes we should be able to add/remove nicknames via the New-spenterprisesearchlanguageresourcephrase cmdlet. In a simple test case we would be able to perform the following commands, my Search Application Id is df4fdf37-0fc3-45ab-b42f-64650e42d1a5;

New-spenterprisesearchlanguageresourcephrase –Name Michael -Language "en-GB" –Type "Nickname" –Mapping Mike -SearchApplication df4fdf37-0fc3-45ab-b42f-64650e42d1a5

New-spenterprisesearchlanguageresourcephrase –Name Mike -Language "en-GB" –Type "Nickname" –Mapping Michael -SearchApplication df4fdf37-0fc3-45ab-b42f-64650e42d1a5

That’s using Mike and Michael as the test users. When I added them to the Search Service Application and then need invoke the “Prepare query suggestions” job, as it only runs once every 24 hours;

Start-SPTimerJob -Identity “Prepare query suggestions”

I still don’t get the nickname matching at all. I can see that the job runs successfully but we don’t get back any results. Strange. To ensure that the new nicknames are added to Search Service Applicaiton DB, I ran the following query;

SELECT * FROM dbo.MSSLanguageResources WHERE Locale like ’2057′

Hmmm… All there. More investigation needed.

UPDATE 2: Have logged a call with Microsoft UK Premier support and this is reproducible, so it looks like it could be a bug. More to come, stay tuned.

UPDATE 3: With the help of Microsoft I’ve now been able to fix the issue. The crux of the problem is, when you install the pre-reuisites it installes the Microsoft Speech Platform Server Runtimes for en-US only. Since nicknames and phonetic search are done by the Speech server we were missing the language files for the localised searches to take place. So the fix is as follows;

You’ll be ready to rock n’ roll after this. From my above example, Mike and Micheal should work now based on the en-GB (2057 LCID). By adding the new language you will still manually have to manually add the nicknames using New-spenterprisesearchlanguageresourcephras, so rather then making up the nicknames on the fly I’ve gone ahead and converted the languageresources.txt to a CSV file and only kept the en-US (1033) nicknames. With this CSV file I can simply read the contents using the Import-CSV command. Here is the csv file as well as the PowerShell commands to import your nicknames for your particular language, remember to get your Search Application Id in my above example prior to running this command;

Download languageresources.zip.
$names = Import-Csv d:\temp\languageresources.csv
foreach ($line in $names) {
New-spenterprisesearchlanguageresourcephrase –Name $($line.name) -Language "en-GB" –Type "Nickname" –Mapping $($line.nickname) -SearchApplication df4fdf37-0fc3-45ab-b42f-64650e42d1a5
}

Then run;

Start-SPTimerJob -Identity "Prepare query suggestions"

Finally, check that the timer job has run successfully;

(Get-SPTimerJob -Identity "Prepare query suggestions").HistoryEntries | Format-Table -Property Status,StartTime,EndTime,ErrorMessage

Enjoy peeps, it’s been emoitional!
Kristof Kowalski / kristof@kowalski.ms

The Local Farm Is Not Accessible. Cmdlets With FeatureDependencyId Are Not Registered

I’m in the process of finalising my unattended install script for SharePoint Server 2010 and during some of my initial playing around I came across this vague error;

The Local Farm Is Not Accessible. Cmdlets With FeatureDependencyId Are Not Registered

Being early in the morning and all, I was kind of spooked as the error is not really that descriptive. Essentially what the error means is that you don’t have the necessary permissions to access the SharePoint configuration database.

In my case it was a stupid move on my part where UAC (User Account Control) was on and I didn’t run the SharePoint 2010 Management Shell as Administrator. Remember to elevate your privileges before running the shell!

For the people out there with genuine permisions issues on this error, Add-SPShellAdmin is your friend. Check out more information here;

Add-SPShellAdmin

http://technet.microsoft.com/en-us/library/ff607596(office.14).aspx

Kushdie!

– Kristof Kowalski // kristof@kowalski.ms

LookSee 2.0 FUBAR Release

Hi All,

Just wanted to say there was a slight quality control issue with the release of the 2.0 version.

When you Zoom In and Out the page numbers will jump when viewing PDF files. How this escaped this eagle eye is beyond me, but there is a 2.1 release sitting in the App Store approval process already.

Apologies and rest assured the the offending party has been reprimanded! … Ah yeah that, would be me!?! <spank>

Kristof Kowalski | kristof@kowalski.ms

WSS 3.0 and MOSS 2007 Service Pack 2 Released! Finally!

Top 5 reasons to upgrade!

1. Performance Reliability/Stability Fixes

2. Browser support for IE 8 and improvements in tier 2 browsers (Firefox)

3. Reliability improvements in Indexing and Index Corpus

4. Security Improvements

5. New STSADM Commands including some to fix corruption and relationships (orphaning)

BONUS! Pre Upgrade Checker! – 960577 (http://support.microsoft.com/kb/960577/ ) List of all Windows SharePoint Services and SharePoint Server Pre-Upgrade Checker knowledge base articles.  This WILL Be required for the next version.  I use to LOVE Prescan with the previous version, you can guess this is going to be very HOT on my list and will add value even waaaay before you’re ready to upgrade to fix consistency issues and identify areas that will be challenges to upgrade.

WOW there’s a TON of SP2 information.  Soooo much!!!  You can find a choose your own adventure in reading these docs.  I’ve pulled out what I think are the most relevant, but you’ll likely find many I didn’t find in my initial pass.

READ IT ALL and Test Test Test!!!

By the way, I’m sure the SharePoint Team blog will have some similar information to this blog.  Be sure to visit http://blogs.msdn.com/sharepoint some time later today.

Information on Service Pack 2 (Most of this information is in the KBs, but just want to lay this out so it’s easy to understand.

Start Here:

NOTE: Windows SharePoint Services 3.0 Service Pack 2 is required for 2007 Microsoft Office servers SP2.

968173 (http://support.microsoft.com/kb/968173/ ) Known issues that you may experience when you install the 2007 Microsoft Office suite Service Pack 2 and Windows SharePoint Services 3.0 Service Pack 2

968170 (http://support.microsoft.com/kb/968170/ ) List of all 2007 Office system Service Pack 2 and Windows SharePoint Services 3.0 Service Pack 2 packages

970359 (http://support.microsoft.com/kb/970359/ ) Technical details about the Windows SharePoint Services 3.0 Service Pack 2 (S)

970358 (http://support.microsoft.com/kb/970358/ ) Technical details about the 2007 Microsoft Office servers Service Pack 2 (S)

945013 (http://support.microsoft.com/kb/945013/ ) How to deploy the 2007 Microsoft Office servers Service Pack 1 and Office Server Language Pack 2007 Service Pack 1

968170 (http://support.microsoft.com/kb/968170) Description of Windows SharePoint Services 3.0 SP2 and of Windows SharePoint Services 3.0 Language Pack SP2

What is fixed! Thanks PFE’s for these Lists!

Download the Windows SharePoint Services 3.0 Service Pack 2 Changes.xlsx package.

Download the 2007 Office servers Service Pack 2 Changes.xlsx package.

WSS Specific Download Locations

  • Windows SharePoint Services 3.0 Service Pack 2 (x86)http://www.microsoft.com/downloads/details.aspx?FamilyId=79BADA82-C13F-44C1-BDC1-D0447337051B
  • Windows SharePoint Services 3.0 Service Pack 2 (x64)http://www.microsoft.com/downloads/details.aspx?FamilyId=79BADA82-C13F-44C1-BDC1-D0447337051B Windows SharePoint Services 3.0 Language Pack Service Pack 2 (x86)
  • http://www.microsoft.com/downloads/details.aspx?FamilyId=085E5AC8-58F6-4CF9-8012-33B95EE36C0F
  • Windows SharePoint Services 3.0 Language Pack Service Pack 2 (x64)http://www.microsoft.com/downloads/details.aspx?FamilyId=2C2B6CAF-B46D-45EB-AC4D-DEAAA48C3A2C
  • MOSS Specific download locations are here:

    2007 Microsoft Office servers Service Pack 2 (x86)

  • http://www.microsoft.com/downloads/details.aspx?FamilyId=B7816D90-5FC6-4347-89B0-A80DEB27A082
  • 2007 Microsoft Office servers Service Pack 2 (x64)http://www.microsoft.com/downloads/details.aspx?FamilyId=B7816D90-5FC6-4347-89B0-A80DEB27A082
  • 2007 Microsoft Office servers Language Pack Service Pack 2 (x86)http://www.microsoft.com/downloads/details.aspx?FamilyId=01C6A3E8-E110-4956-903A-AD16284BF223
  • 2007 Microsoft Office servers Language Pack Service Pack 2 (x64)http://www.microsoft.com/downloads/details.aspx?FamilyId=66C5026F-9F47-4642-8378-2526918009FA
  • Office Suite (Client) and it’s language packs:

    968170 (http://support.microsoft.com/kb/968170/) Description of 2007 Microsoft Office Suite Service Pack 2 (SP2) and of Microsoft Office Language Pack 2007 SP2

    List of Fixes

    Download the 2007 Office Service Pack 2 Changes.xlsx package now.

    Download

  • 2007 Microsoft Office Suite Service Pack 2http://www.microsoft.com/downloads/details.aspx?FamilyId=B444BF18-79EA-46C6-8A81-9DB49B4AB6E5 (http://www.microsoft.com/downloads/details.aspx?FamilyId=B444BF18-79EA-46C6-8A81-9DB49B4AB6E5)
  • Microsoft Office Language Pack 2007 Service Pack 2http://www.microsoft.com/downloads/details.aspx?FamilyId=E1203DB2-1CC9-4809-9B6E-3F232CB8899FEnjoy!Kristof Kowakski | kristof@kowalski.ms
  • SharePoint Server and Windows SharePoint Services Hotfix Build Numbers

    This has been bugging me for a while now. I have not been able to find a definitive guide to all the build numbers of Microsoft Office SharePoint Server (MOSS) 2007, Windows SharePoint Services (WSS) 2.0/3.0 and SharePoint Portal Server 2003 since they RTM’ed.

    So for your viewing pleasure here is a very very long list of Build Numbers, KB articles and Description of the hotifx.

    Just a note, since not all .dll’s are modified for every build, the highest version across all .dlls indicates the patch level.

    Windows SharePoint Services 3.0 hotfix packages

    Build

    KB Article

    Description

    12.0.4518.1016

     

    RTM

    12.0.6004.5000

    931637

    Description of the Windows SharePoint Services 3.0 hotfix package: January 25, 2007

    12.0.6007.5000

    931636

    Description of the Windows SharePoint Services 3.0 hotfix package: February 6, 2007

    12.0.6008.5000

    932621

    Description of the Windows SharePoint Services 3.0 hotfix package: February 10, 2007

    12.0.6010.5000

    932914

    Description of the Windows SharePoint Services 3.0 hotfix package: February 28, 2007

    12.0.6011.5000

    933818

    Description of the Windows SharePoint Services 3.0 hotfix package: March 9, 2007

    12.0.6017.5000

    934790

    Description of the Windows SharePoint Services 3.0 hotfix package: April 12, 2007

    12.0.6017.5000

    934251

    Description of the Windows SharePoint Services 3.0 hotfix package that includes the English, French, and German MUI: April 12, 2007

    12.0.6020.5000

    936867

    Description of the Windows SharePoint Services 3.0 hotfix package: May 8, 2007

    12.0.6021.5000

    937203

    Description of the Windows SharePoint Services 3.0 hotfix package: May 15, 2007

    12.0.6023.5000

    937901

    Description of the Windows SharePoint Services 3.0 hotfix package: May 25, 2007

    12.0.6023.5000

    938183

    Description of the Windows SharePoint Services 3.0 hotfix package: May 31, 2007

    12.0.6023.5000

    938241

    of the Windows SharePoint Services 3.0 for the Multilingual User Interface pack hotfix package: May 31, 2007

    12.0.6025.5000

    938536

    Description of the Windows SharePoint Services 3.0 hotfix package: June 11, 2007

    12.0.6027.5000

    939188

    Description of the Windows SharePoint Services 3.0 hotfix package: June 24, 2007

    12.0.6028.5000

    939592

    Description of the Windows SharePoint Services 3.0 hotfix package: June 29, 2007

    12.0.6039.5000

    934525

    Description of the security update for Windows SharePoint Services 3.0: October 9, 2007

    12.0.6219.1000

    936988

    Description of Windows SharePoint Services 3.0 Service Pack 1 and of Windows SharePoint Services 3.0 Language Pack Service Pack 1

    12.0.6300.5000

    941422

    Description of the Windows SharePoint Services 3.0 post-Service Pack 1 hotfix package: January 31, 2008

    12.0.6303.5000

    948945

    Description of the Windows SharePoint Services 3.0 hotfix package: February 21, 2008

    12.0.6303.5000

    948957

    Description of the Windows SharePoint Services 3.0 hotfix package: February 22, 2008

    12.0.6304.5000

    949399

    Description of the Windows SharePoint Services 3.0 hotfix package: February 27, 2008

    12.0.6305.5000

    949956

    Description of the Windows SharePoint Services 3.0 hotfix package: March 17, 2008

    12.0.6307.5000

    950279

    Description of the Windows SharePoint Services 3.0 hotfix package: March 21, 2008

    12.0.6308.5000

    950484

    Description of the Windows SharePoint Services 3.0 hotfix package: March 27, 2008

    12.0.6309.5000

    953484

    Description of the Windows SharePoint Services 3.0 hotfix package: May 5, 2008

    12.0.6314.5000

    952288

    Description of the Windows SharePoint Services 3.0 hotfix package: May 8, 2008

    12.0.6309.5000

    952292

    Description of the Windows SharePoint Services 3.0 hotfix package: May 12, 2008

    12.0.6315.5000

    952698

    Description of the Windows SharePoint Services 3.0 hotfix package: May 20, 2008

    12.0.6317.5000

    953473

    Description of the Windows SharePoint Services 3.0 hotfix package: June 5, 2008

    12.0.6322.5000

    951695

    of the Infrastructure Update for Windows SharePoint Services 3.0: July 15, 2008 >> Reports (12.0.6318.5000)

    12.0.6324.5000

    955594

    Description of the Windows SharePoint Services 3.0 hotfix package: July 22, 2008

    12.0.6324.5001

    956248

    Description of the Windows SharePoint Services 3.0 hotfix package: August 7, 2008

    12.0.6327.5000

    957109

    Description of the Windows SharePoint Services 3.0 hotfix package: August 26, 2008

    Windows SharePoint Services 2.0 hotfix packages

    Build

    KB Article

    Description

    11.0.5530.0

     

    RTM

    11.0.6361.0

    841876

    Description of Windows SharePoint Services 2.0 Service Pack 1

    11.0.6568.0

    887624

    Description of Windows SharePoint Services 2.0 Service Pack 2

    11.0.8000.0

    900929

    Description of the Windows SharePoint Services 2.0 post-Service Pack 2 hotfix package: November 15, 2005

    11.0.8165.0

    923643

    Description of Windows SharePoint Services 2.0 Service Pack 3

    11.0.8205.0

    941412

    Description of the Windows SharePoint Services 2.0 post-Service Pack 3 hotfix package: January 25, 2008

    11.0.8209.0

    948919

    Description of the Windows SharePoint Services 2.0 post-Service Pack 3 hotfix package: February 26, 2008

    11.0.8210.0

    950386

    Description of the Windows SharePoint Services 2.0 hotfix package: March 21, 2008

    11.0.8219.0

    952903

    Description of the Windows SharePoint Services 2.0 hotfix package: May 12, 2008

    SharePoint Server 2007 hotfix packages

    Build

    KB Article

    Description

    12.0.4518.1016

     

    RTM

    12.0.6005.5000

    931497

    Description of the SharePoint Server 2007 hotfix package: January 25, 2007

    12.0.6007.5000

    931496

    Description of the SharePoint Server 2007 hotfix package: February 7, 2007

    12.0.6008.5000

    932620

    Description of the SharePoint Server 2007 hotfix package: February 10, 2007

    12.0.6010.5000

    932919

    Description of the SharePoint Server 2007 hotfix package: February 26, 2007

    12.0.6010.5000

    932917

    Description of the SharePoint Server 2007 hotfix package: February 26, 2007

    12.0.6011.5000

    933586

    Description of the SharePoint Server 2007 hotfix package: March 3, 2007

    12.0.6012.5000

    933819

    Description of the SharePoint Server 2007 hotfix package: March 9, 2007

    12.0.6017.5000

    934793

    Description of the SharePoint Server 2007 hotfix package: April 12, 2007

    12.0.6020.5000

    936877

    Description of the SharePoint Server 2007 hotfix package for SharePoint Server 2007 and for SharePoint Server 2007 for Search: May 8, 2007

    12.0.6021.5000

    937207

    Description of the SharePoint Server 2007 hotfix package: May 15, 2007

    12.0.6021.5000

    937208

    Description of the SharePoint Server 2007 hotfix package: May 15, 2007

    12.0.6023.5000

    937906

    Description of the SharePoint Server 2007 hotfix package: May 25, 2007

    12.0.6023.5000

    937904

    Description of the SharePoint Server 2007 hotfix package: May 25, 2007

    12.0.6024.5000

    938182

    Description of the SharePoint Server 2007 hotfix package for SharePoint Server 2007 and for SharePoint Server 2007 for Search: May 31, 2007

    12.0.6025.5000

    938535

    Description of the SharePoint Server 2007 hotfix package: June 11, 2007

    12.0.6025.5000

    938537

    Description of the SharePoint Server 2007 hotfix package: June 12, 2007

    12.0.6027.5000

    939077

    Description of the SharePoint Server 2007 hotfix package for SharePoint Server 2007 and for SharePoint Server 2007 for Search: June 24, 2007

    12.0.6028.5000

    939599

    Description of the SharePoint Server 2007 hotfix package: June 29, 2007

    12.0.6028.5000

    939654

    Description of the SharePoint Server 2007 hotfix package: June 29, 2007

    12.0.6030.5000

    939877

    Description of the SharePoint Server 2007 hotfix package: July 17, 2007

    12.0.6211.5000

    942390

    Description of the SharePoint Server 2007 issues that are fixed by the 2007 Microsoft Office servers Service Pack 1

    12.0.6300.5000

    944710

    Description of the SharePoint Server 2007 hotfix package: January 31, 2008

    12.0.6300.5000

    941653

    Description of the SharePoint Server 2007 post-Service Pack 1 hotfix package: January 31, 2008

    12.0.6300.5000

    942819

    Description of the SharePoint Server 2007 post-Service Pack 1 hotfix package: January 31, 2008

    12.0.6300.5000

    945089

    Description of the SharePoint Server 2007 post-Service Pack 1 hotfix package: January 31, 2008

    12.0.6301.5000

    941274

    Description of the SharePoint Server 2007 and SharePoint Server 2007 for Search post-2007 Office servers Service Pack 1 hotfix package: January 31, 2008

    12.0.6303.5000

    948947

    Description of the SharePoint Server 2007 hotfix package: February 21, 2008

    12.0.6304.5000

    949402

    Description of the SharePoint Server 2007 post-Service Pack 1 hotfix package: February 27, 2008

    12.0.6304.5000

    949955

    Description of the SharePoint Server 2007 hotfix package: March 17, 2008

    12.0.6307.5000

    950280

    Description of the SharePoint Server 2007 hotfix package: March 21, 2008

    12.0.6307.5000

    950292

    Description of the SharePoint Server 2007 hotfix package: March 21, 2008

    12.0.6308.5000

    950487

    Description of the SharePoint Server 2007 hotfix package: March 27, 2008

    12.0.6314.5000

    952294

    Description of the SharePoint Server 2007 hotfix package: May 8, 2008

    12.0.6315.5000

    952704

    Description of the SharePoint Server 2007 hotfix package: May 20, 2008

    12.0.6316.5000

    953137

    Description of the SharePoint Server 2007 post-2007 Microsoft Office servers Service Pack 1 hotfix package: May 29, 2008

    12.0.6316.5000

    953138

    Description of the SharePoint Server 2007 post-2007 Microsoft Office servers Service Pack 1 hotfix package: May 29, 2008

    12.0.6317.5000

    953471

    Description of the SharePoint Server 2007 post-2007 Microsoft Office servers Service Pack 1 hotfix package: June 5, 2008

    12.0.6324.5000

    955593

    Description of the SharePoint Server 2007 post-2007 Microsoft Office servers Service Pack 1 hotfix package: July 21, 2008

    12.0.6322.5000

    951297

    Description of the Microsoft Office Servers Infrastructure Update: July 15, 2008 >> Reports (12.0.6318.5000)

    12.0.6324.5000

    955586

    Description of the SharePoint Server 2007 post-2007 Microsoft Office servers Service Pack 1 hotfix package: July 23, 2008

    SharePoint Portal Server 2003 hotfix packages

    Build

    KB Article

    Description

    11.0.5704.0

     

    RTM

    11.0.6715.0

    841883

    Description of SharePoint Portal Server 2003 Service Pack 1

    11.0.8126.0

    887623

    Description of SharePoint Portal Server 2003 Service Pack 2

    11.0.8126.2

    898547

    Description of the SharePoint Portal Server 2003 post-Service Pack 2 hotfix package for the Spanish and German versions of SharePoint Portal Server 2003: October 24, 2005

    11.0.8168.0

    923644

    Description of SharePoint Portal Server 2003 Service Pack 3

    11.0.8168.3

    941204

    Description of the SharePoint Portal Server 2003 post-Service Pack 3 hotfix package: February 26, 2008

    11.0.8168.3

    943167

    Description of the SharePoint Portal Server 2003 post-Service Pack 3 hotfix package: February 26, 2008

    Enjoy.

    Kristof Kowalski | kristof@kowalski.ms

    Problems After Installing MS08-040 (KB948110)

    It seems like there have been some calls coming in regarding this particular issue. Funny how some problems seem to go around in waves. Just had a customer Severity A come though where this patch was rolled out automatically via Windows Update, now when the server rebooted MSSQL$SHAREPOINT fails to start.

    Ooops!

    Delving further into this issue it would seem that there are several work around’s to this issue depending if you are running WMSDE or SQL Server 2000.

    The first port of call to see what is happening is checking the SQL Server ERRORLOG. If you go to C:\Program Files\Microsoft SQL Server\MSSQL$\Log\ERRORLOG you’ll see something like this;

    2008-07-14 11:26:13.21 spid2 Skipping startup of clean database id 4
    2008-07-14 11:26:13.21 spid2 Skipping startup of clean database id 6
    2008-07-14 11:26:13.21 spid2 Starting up database ‘STS_Config’.
    2008-07-14 11:26:13.29 spid5 Clearing tempdb database.
    2008-07-14 11:26:13.32 spid5 Starting up database ‘tempdb’.
    2008-07-14 11:26:13.35 spid2 Recovery complete.
    2008-07-14 11:26:14.26 spid2 Cannot validate object ‘master’.'dbo’.'sp_helptext’.
    2008-07-14 11:26:14.26 spid2 Database ‘master’ has invalid schema.

    The issue we have here is quite evident, the ‘master’ database scehema is invalid due to the installation logic not being aware of whether this instance is running SQL Server 2000. For anyone who has upgraded from WMSDE to SQL Server 2000, you’ll quite possibly come across this error. Before rolling the patch out I would recommend testing it out on a non product system and see what results you get.

    Everyone has uses best practices for patch management, right? right?? Test > Replica > Live! LOL

    Now to the fix itself, first for WMSDE which is the easier one to get around;

    • Download SQLWMSDE-KB948110-x86-ENU.exe

    • Run SQLWMSDE-KB948110-x86-ENU.exe /upgradesp sqlrun 1 INSTANCENAME=UDDI /l*v %windir%WMSDE.log

    • Reboot

    Voila!

    The SQL Server fix is a little bit more so you might need a strong coffee before reading this.

    • Perform the upgrade again from WMSDE to SQL Server 2000.

      Note You must use the same media that was previously used to perform the upgrade to SQL Server 2000.

    • Restart the server instance. The server instance should start as the upgraded version.

    • Apply SQL Server 2000 Service Pack 4.

      Note Make sure that you apply the SQL Server 2000 Service Pack 4 and not the MSDE SP4 or WMSDE SP4 updates.

    • For more information about how to obtain SQL Server 2000 Service Pack 4, visit the following Microsoft Web page:

    osql -n -b -d master -Slpc:%computername%\SHAREPOINT -i “%programfiles%\Microsoft SQL Server\MSSQL$SHAREPOINT\Install\sp4_serv_uni.sql” -o “%programfiles%\Microsoft SQL Server\MSSQL$SHAREPOINT\Install\sp4_serv_uni.out” -E

    Hope that gets some of you out of a right pickle.

    Case closed.

    Kristof Kowalski | kristof@kowalski.ms