Migrating MOSS 2007 SSP/MySites to SharePoint 2010 in a database attach scenario

Posted August 13th, 2010 in Featured, SharePoint by Mike Stevens

So you have decided to upgrade your MOSS 2007 farm to SharePoint 2010.  You’ve reviewed the two supported migration techniques and decided to start fresh with a new SharePoint 2010 farm on new hardware and/or VMs and use the database attach method

using the new SharePoint 2010 Mount-SPContentDatabase PowerShell cmdlet in the SharePoint 2010 Management Shell, you will be attaching and upgrading your old 2007 content dbs following the straight forward TechNet documentation

but how do you migrate your Shared Service Provider user profiles and your MySites to SharePoint 2010 in the database attach scenario now that the SSP has been replaced by service applications?

The documentation is there, but is not explicit, on TechNet(!)  Here are some more detailed steps on how to migrate your old MOSS 2007 SSP User Profiles and MySites to your new SharePoint 2010 farm:

  1. Backup your existing MySites content database(s) on your MOSS 2007 farm SQL Server
  2. Back up existing SSP database on MOSS 2007 farm SQL Server
  3. Move both database .BAK files to the new SQL Server
  4. Restore the SSP database from .BAK as database named Profile_DB on your new SQL Server
  5. Restore the MySites database from .BAK as database named WSS_Content_MySites on your new SQL Server
  6. Create a new Web Application in your SharePoint 2010 Central Administration site to host your migrated MySites content (e.g. http://mysites)
  7. Attach and upgrade the restored 2007 MySites database (i.e. WSS_Content_MySites) using the SharePoint 2010 Management Shell
    1. SP-MountContentDatabase –Name WSS_Content_MySites –WebApplication http://mysites
  8. Turn off the following services in your SharePoint 2010 Central Administration site 
    1. User Profile Service
    2. User Profile Synchronization Service
  9. Delete existing User Profile Service Application(s) if they already exist [Central Administration -> Application Management -> Manage Service Applications]
    1. Make sure to check the box for delete associated data/content
  10. Reset IIS
  11. Create a new User Profile Service Application in Central Administration [Central Administration –> Manage Service Applications –> New]
    1. Name = User Profile Service Application
    2. Create New App Pool
      1. “User Profile Service Application”
      2. DOMAIN\farm_account
    1. Use the restored 2007 SSP database as the "Profile Database Name" (Profile_DB)
    2. Accept all other default database names
    3. Enter the newly created MySites web application url (e.g. http://mysites) as the default MySites location for the new User Profile Service Application
  12. Go to "Administrators" in the ribbon menu for the User Profile Service Application and verify that DOMAIN\farm_account has "Full Control" rights
  13. Start the User Profile Service in Central Administration [Central Administration –> Application Management –> Manage Services on Server]
  14. Start the User Profile Synchronization service in Central Administration [Central Administration –> Application Management –> Manage Services on Server]

    1. Use DOMAIN\farm_account credentials
    1. This will take a few minutes…
    2. Follow progress in ULSViewer.exe if you are concerned it is failing & filter by Category="User Profile"
  15. Reset IIS
  16. In service.msc on your Central Administration host server (i.e. “App Server”), verify the two ForeFront Identity Management Windows services
    1. Services are started
    2. set to startup "Automatic"
    3. Running as DOMAIN\farm_account
  17. Setup Profile Import [Central Administration -> Manage Service Applications -> User Profile Service Application - click on title]
  18. Click on the link to "Add New Synchronization Connection” [see examples below]
    1. Name = DOMAIN
    2. Forest Name = sub.domain.local
    3. Specify a DC = dc.sub.domain.local
    4. Authentication = Windows Authentication
    5. Account Name = DOMAIN\ad_sync_account
      1. Make sure your chosen account has “Replicating Changes” rights in AD [for more details refer to this article]
    6. Click "Populate Containers"
    7. Click "Select All"
    8. "OK"
  19. Run a Full Import
    1. Central Administration –> Manage Service Applications" -> "User Profile Service Application" -> "Start Profile Synchronization" -> select Full Import radio button option
    1. This will take a few minutes..
  20. Setup Profile Sync schedules [Central Administration –> Monitoring –> Timer Jobs]
  21. Test the MySites site with a domain user account…success!

Deleting orphaned service (web) application pools in SharePoint 2010

Posted August 13th, 2010 in Featured, PowerShell, SharePoint by Mike Stevens

This has come up for me twice this week.  During an initial install a typo or a service application reinstall (I’m looking at you, User Profile service application!), web applications remain in the drop down list when creating new service applications.

Oddly, the web application pools do not show up in IIS 7.0, but you can still inadvertently select them for new service applications..and they are just clutter/remnants.

In the SharePoint 2010 Management shell (PowerShell), you will still see them listed if you run the Get-SPServiceApplicationPool cmdlet:

> Get-SPServiceApplicationPool | select Id, Name

Here is how you can remove them:

> Remove-SPServiceApplicationPool -Identity "Your Orphaned SharePoint Service Application Pool Name"

(or below if you want to step through the process)

> $apppool = Get-SPServiceApplicationPool -Identity "Your Orphaned SharePoint Service Application Pool Name”

> $apppool
> Remove-SPServiceApplicationPool $apppool

> Get-SPServiceApplicationPool

Notice here that the -Identity is looking for the “Name” of the application pool and not the “Id” value! To be clear (as mud):

  • Identity != Id
  • Identity = Name

VMWare Workstation 7

Posted December 2nd, 2009 in Virtualization by Mike Stevens

Over the past couple of years, I have used VMWare Workstation to setup, provision, and develop SharePoint development instances.  I am still on version 6.5, but will be looking to upgrade to v 7.0 to accommodate my recent switch to Windows 7.  I have played around with Hyper-V and can honestly say it is a solid solution, but I cannot give up VMWare Workstation.  The tool is simply awesome and I can’t imagine going back to developing on VirtualPC or using another product like VirtualBox for SharePoint virtualization and development (since VirtualPC won’t currently support the 64bit operating systems required to run SharePoint 2010!).  I won’t bore you with my gushing and rambling on about the product (for more info go here)…but I do feel compelled to share this “Cyber Monday” gem that fortuitously landed in my inbox:

 

image

http://store.vmware.com/store/vmware/pd/productID.165308800/Currency.USD/?src=EM2_09Q4_VMW_OTHER_WS-CYBER-MONDAY-NORAM

Channel 9 SharePoint 2010 Developer Videos

Posted November 10th, 2009 in Featured, SharePoint by Mike Stevens

There are some great SP2010 Development rampup videos out on Channel 9 to help you get started.  Here is a link to the newly posted videos:  http://channel9.msdn.com/learn/courses/SharePoint2010Developer/ 

In the weeks following SPC2009, I am beginning to feel like I have spent most of my waking hours watching videos on SP2010.  I saw a post about 2010 developer videos on Channel 9 on twitter a couple of weeks ago, but couldn’t muster up the energy to add them to my pile of recorded conference sessions :)   I finally got around to watching some of them this weekend a found them to be quite good as deeper dives into some of the new features/capabilities in SharePoint 2010.  They are all dev focused, too, so the content is not “dumbed down” for admins (j/k)!

image

Contribute to the SharePoint 2010 SDK!

Posted November 2nd, 2009 in SharePoint by Mike Stevens

Anyone who worked with MOSS 2007 and WSS 3.0 in its early release state noticed a lack of documentation in the SDK and in the usual Microsoft sites (MSDN, TechNet).  Often times you would run into issues or questions that simply had not been fleshed out or even addressed in the SDK.

This time around with SharePoint 2010, you will have the opportunity to access and submit feedback on code samples and snippets to be included in the SDK as they are released.  Additionally, you will be able to submit your own code samples for inclusion in the RTM SDK! Submitters will get full credit for their contributions…and we will all reap the benefit of having a more complete, consolidated collection of samples to get started building the next generation of killer apps on the SharePoint 2010 platform!

Here is the original post from Andrew May on the Microsoft SharePoint Developer Documentation Team Blog:

Got Code?

Contribute a Code Sample and Get Your Name in the SharePoint 2010 SDK

We’re looking for experienced SharePoint developers to share their skill and technical expertise with the SharePoint community. You’ll help your fellow SharePoint developers, and receive full attribution in the SharePoint SDK for doing so!

What we’re looking for are short code samples, what we on documentation teams tend to think of as ‘snippets’. A handful of lines that illustrate a discreet task or show how to exercise a specific piece of the object model, rather than a full-blown solution that addresses an entire scenario. Basically, the short code samples you’d find in a typical reference topic like this one.

In particular, we’re on the hunt for code samples that do one or more of the following:

· Show developers how to accomplish common SharePoint tasks programmatically

· Illustrate best coding practices in using the SharePoint object model

· Demonstrate how to avoid pitfalls when using lesser-known areas of the SharePoint object model

· Or otherwise show off the power and flexibility of developing SharePoint solutions

If you’re an experienced SharePoint developer, you probably have a toolbox of code snippets like these already; sections of code that you use over and over to perform the same routine tasks, or pieces of code that you’re particularly proud of having come up with as work-arounds for some of the, um, “eccentricities” of the SharePoint object model.

What we’re asking is that you share your hard-won knowledge by letting us publish your code samples in our SDK reference topics. In return, we want to make sure you get full credit, by giving you attribution right in the topic where the code sample appears. This includes a link to your company site. You can see an early example of this in this reference topic for the CreateTaskWithContentType class.

The SDK gets more real-world code samples, and you get increased visibility within the larger SharePoint developer community.

To submit a code sample, just shoot us an email including your code sample(s) at gotcode@microsoft.com. Include a short description of what each code sample does, or what task you would use the code sample to accomplish. Oh, and if there are any prerequisites that need to be specified for your code sample to run successfully, that’d be great to know as well. (For example, the code sample on the SPList class topic lists a few using directives, and the existence of an .aspx page containing a label control, as prerequisites.)

I’ve attached a zip with our code sample guidelines and some sample data to this post. These are the best practices for writing code samples that we give our external partners who write samples for us. For the best chance of getting your sample included in the SDK, take a look at the best practices for code snippets (the guidelines are really short, and won’t take more than a few minutes to review, I promise.)

Now, since the SharePoint 2010 Betas aren’t due out until November, for now we’re talking about code snippets written against the WSS 3.0 or MOSS 2007 object models. Go ahead and send them our way. And once you’ve worked with the SharePoint 2010 Betas a bit, you’ll undoubtedly create some useful or illuminating code samples in fairly short order. Send those our way as well. You could end up with a byline in the SharePoint SDK!

Any questions, feel free to ping gotcode@microsoft.com, or leave a comment.

Create a simple interactive image using jQuery/javascript

Posted October 30th, 2009 in jQuery by Mike Stevens

image

In spite of my rudimentary javascript skills, I’ve been using jQuery for just about anything I can think of lately to spruce up the MOSS 2007/WSS user experience.  Yesterday I threw together a simple interactive image element using the jQueryUI library.  I wanted to display info dialog/modal windows when the user moved the mouse over a region on the image.  Using some old school HTML and simple javascript I was able to throw some neat content up very quickly.

Click here for the demo

Again no ground-breaking stuff here for you javascript gurus, but I was pleased with the results for the minimal amount of effort I put into it.  Here is what I did:

1) Created a barebones html page and with an <img> element and created an associated image map (aka “hot spot” for those of us willing to admit we ever used FrontPage…)

<html>
    <head>
        <title>jQueryUI Dialog Test</title>
    </head>
    <body>
        <img src="images/map.png" alt="" usemap="#atl_map" border="0">
        <map name="atl_map">

    <!– coords="left, top, right, bottom "–>
    <area     shape="rect" coords="150,40,180,70"
            href="#" alt=""
            onMouseOver="$(northwest).dialog(‘open’)"
            onMouseOut="$(northwest).dialog(‘close’)">
    <area     shape="rect" coords="440,200,470,234"
            href="#" alt=""
            onMouseOver="$(northeast).dialog(‘open’)"
            onMouseOut="$(northeast).dialog(‘close’)">
    <area     shape="rect" coords="50,295,80,325"
            href="#" alt=""
            onMouseOver="$(southwest).dialog(‘open’)"
            onMouseOut="$(southwest).dialog(‘close’)">
    <area     shape="rect" coords="225,390,255,420"
            href="#" alt=""
            onMouseOver="$(southeast).dialog(‘open’)"
            onMouseOut="$(southeast).dialog(‘close’)">
</map>

    </body>
</html>

2) Loaded the jQuery and jQueryUI libraries from Google’s CDN by adding some lines to the <head> of my new page and linked to the jQueryUI theme .css file (not well documented, I might add!)

<script src="http://www.google.com/jsapi"></script> <script> google.load("jquery", "1.3.2"); google.load("jqueryui", "1.7.2"); </script> <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2 /themes/smoothness/jquery-ui.css" type="text/css" />

3) Added <div> elements for my dialog windows to the <body> tag in the html

<!– dialog windows –>
<div id="northwest" class="modal" title="NW Atlanta">Woodstock, Smyrna, etc.</div>
<div id="northeast" class="modal" title="NE Atlanta">Duluth, Lawrenceville, etc.</div>
<div id="southwest" class="modal" title="SW Atlanta">Douglasville, PTC, etc.</div>
<div id="southwest" class="modal" title="SE Atlanta">Stockbridge, McDonough, etc.</div>

4) Added some javascript using jQuery and jQueryUI libraries to call dialog windows and added the onmouseover and onmouseout elements to my <area> tags for the image map.  Note the e.pageX and e.pageY coordinates in the script below.  These are the current mouse coordinates on the initial mouseover event.  I am using these values to place the dialog box content.  I referred to to the jQueryUI dialog demo documentation for the available options for dialogs.

<script type="text/javascript">
var coordinates = []
$().mousemove(function(e){

    coordinates[0] = e.pageX;
    coordinates[1] = e.pageY;
    return true;
});

$.ui.dialog.defaults.bgiframe = true;
$.ui.dialog.defaults.autoOpen = false;
$.ui.dialog.defaults.resizable = false;
$.ui.dialog.defaults.hide =’slide’;
$.ui.dialog.defaults.show = ‘slide’;
$.ui.dialog.defaults.position = coordinates;
$(function() {
  $(northwest).dialog();
  $(northeast).dialog();
  $(southwest).dialog();
  $(southeast).dialog();
});
</script>

<img src="images/map.png" alt="" usemap="#atl_map" border="0">
<map name="atl_map">
    <area     shape="rect" coords="0,0,304,234"
            href="#" alt=""
            onMouseOver="$(northwest).dialog(‘open’)"
            onMouseOut="$(northwest).dialog(‘close’)">
    <area     shape="rect" coords="305,0,610,234"
            href="#" alt=""
            onMouseOver="$(northeast).dialog(‘open’)"
            onMouseOut="$(northeast).dialog(‘close’)">
    <area     shape="rect" coords="0,235,304,469"
            href="#" alt=""
            onMouseOver="$(southwest).dialog(‘open’)"
            onMouseOut="$(southwest).dialog(‘close’)">
    <area     shape="rect" coords="305,235,610,469"
            href="#" alt=""
            onMouseOver="$(southeast).dialog(‘open’)"
            onMouseOut="$(southeast).dialog(‘close’)">
</map>

5) Finally, I added some styles to the header to hide the dialog close button and play around with the look of the dialog box

<style type="text/css">
.modal
{
    font-size:x-small;
}
.ui-dialog-titlebar-close
{
    visibility:hidden;
}
.ui-widget-header
{
    color:#0033CC;
    font-size:small;
}
</style>

Here is the full page (see below). To add something like this quick and dirty to a SharePoint page, you would just need to strip out the <html>, <head>, and <body> tags and cut and paste the HTML into the “Source” for a Content Editor web part (also below)

HTML:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>jQueryUI Dialog Test</title>
<script src="
http://www.google.com/jsapi"></script>
<script>
    google.load("jquery", "1.3.2");
    google.load("jqueryui", "1.7.2");
</script>
<link rel="stylesheet"
href="
http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/smoothness/jquery-ui.css"
type="text/css" >

<style type="text/css">
.modal
{
    font-size:x-small;
}
.ui-dialog-titlebar-close
{
    visibility:hidden;
}
.ui-widget-header
{
    color:#0033CC;
    font-size:small;
}
</style>

</head>
<body>
<!– jQueryUI dialog –>
<script type="text/javascript">
var coordinates = []
$().mousemove(function(e){

    coordinates[0] = e.pageX;
    coordinates[1] = e.pageY;
    return true;
});

$.ui.dialog.defaults.bgiframe = true;
$.ui.dialog.defaults.autoOpen = false;
$.ui.dialog.defaults.resizable = false;
//$.ui.dialog.defaults.hide =’slide’;
//$.ui.dialog.defaults.show = ‘slide’;
$.ui.dialog.defaults.position = coordinates;
$(function() {
  $(northwest).dialog();
  $(northeast).dialog();
  $(southwest).dialog();
  $(southeast).dialog();
});
</script>
<font face="calibri, arial, helvetica" color="navy"><strong>Move your mouse cursor over the pushpins for a dialog window</strong></font>
<br />
<!– dialog windows –>
<div id="northwest" class="modal" title="Northwest Atlanta">Woodstock, Smyrna,
                etc.</div>
<div id="northeast" class="modal" title="Northeast Atlanta">Duluth,
                Lawrenceville, etc.</div>
<div id="southwest" class="modal" title="Southwest Atlanta">Douglasville,
                Peachtree City, etc.</div>
<div id="southeast" class="modal" title="Southeast Atlanta">Stockbridge,
                McDonough, etc.</div>

<img src="images/map.png" alt="" usemap="#atl_map" border="0">
<map name="atl_map">
    <!– coords="left, top, right, bottom "–>
    <area     shape="rect" coords="150,40,180,70"
            href="#" alt=""
            onMouseOver="$(northwest).dialog(‘open’)"
            onMouseOut="$(northwest).dialog(‘close’)">
    <area     shape="rect" coords="440,200,470,234"
            href="#" alt=""
            onMouseOver="$(northeast).dialog(‘open’)"
            onMouseOut="$(northeast).dialog(‘close’)">
    <area     shape="rect" coords="50,295,80,325"
            href="#" alt=""
            onMouseOver="$(southwest).dialog(‘open’)"
            onMouseOut="$(southwest).dialog(‘close’)">
    <area     shape="rect" coords="225,390,255,420"
            href="#" alt=""
            onMouseOver="$(southeast).dialog(‘open’)"
            onMouseOut="$(southeast).dialog(‘close’)">
</map>

</body>
</html>

Content Editor Web Part snippet:

<script src="http://www.google.com/jsapi"></script>
<script>
    google.load("jquery", "1.3.2");
    google.load("jqueryui", "1.7.2");
</script>
<link rel="stylesheet"
href="
http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/smoothness/jquery-ui.css"
type="text/css" >

<style type="text/css">
.modal
{
    font-size:x-small;
}
.ui-dialog-titlebar-close
{
    visibility:hidden;
}
.ui-widget-header
{
    color:#0033CC;
    font-size:small;
}
</style>

<!– jQueryUI dialog –>
<script type="text/javascript">
var coordinates = []
$().mousemove(function(e){

    coordinates[0] = e.pageX;
    coordinates[1] = e.pageY;
    return true;
});

$.ui.dialog.defaults.bgiframe = true;
$.ui.dialog.defaults.autoOpen = false;
$.ui.dialog.defaults.resizable = false;
//$.ui.dialog.defaults.hide =’slide’;
//$.ui.dialog.defaults.show = ‘slide’;
$.ui.dialog.defaults.position = coordinates;
$(function() {
  $(northwest).dialog();
  $(northeast).dialog();
  $(southwest).dialog();
  $(southeast).dialog();
});
</script>
<font face="calibri, arial, helvetica" color="navy"><strong>Move your mouse cursor over the pushpins for a dialog window</strong></font>
<br />
<!– dialog windows –>
<div id="northwest" class="modal" title="Northwest Atlanta">Woodstock, Smyrna,
                etc.</div>
<div id="northeast" class="modal" title="Northeast Atlanta">Duluth,
                Lawrenceville, etc.</div>
<div id="southwest" class="modal" title="Southwest Atlanta">Douglasville,
                Peachtree City, etc.</div>
<div id="southeast" class="modal" title="Southeast Atlanta">Stockbridge,
                McDonough, etc.</div>

<img src="images/map.png" alt="" usemap="#atl_map" border="0">
<map name="atl_map">
    <!– coords="left, top, right, bottom "–>
    <area     shape="rect" coords="150,40,180,70"
            href="#" alt=""
            onMouseOver="$(northwest).dialog(‘open’)"
            onMouseOut="$(northwest).dialog(‘close’)">
    <area     shape="rect" coords="440,200,470,234"
            href="#" alt=""
            onMouseOver="$(northeast).dialog(‘open’)"
            onMouseOut="$(northeast).dialog(‘close’)">
    <area     shape="rect" coords="50,295,80,325"
            href="#" alt=""
            onMouseOver="$(southwest).dialog(‘open’)"
            onMouseOut="$(southwest).dialog(‘close’)">
    <area     shape="rect" coords="225,390,255,420"
            href="#" alt=""
            onMouseOver="$(southeast).dialog(‘open’)"
            onMouseOut="$(southeast).dialog(‘close’)">
</map>

October 2009 Cumulative Update Packages for SharePoint Server 2007 and Windows SharePoint Services 3.0

Posted October 30th, 2009 in SharePoint by Mike Stevens

The Microsoft SharePoint team has released cumulative updates for SharePoint for the month of October. Remember that you have to have either SP1 and/or SP2 installed prior to loading the cumulative updates.  Also be sure to get good farm backups prior to the update.

From the Microsoft SharePoint Team Blog:

The server-packages of October 2009 Cumulative Update for Microsoft Office SharePoint Server 2007 and Windows SharePoint Services 3.0 are ready for download. October 2009 Cumulative Updates introduce more rules on Pre-Upgrade Checker, which can help customers to prepare the upgrade of their SharePoint farm to SharePoint 2010.

Download Information

Windows SharePoint Services 3.0 October 2009 cumulative update package
http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=974989

Office SharePoint Server 2007 October 2009 cumulative update package
http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=974988

Detail Description

Description of the Windows SharePoint Services 3.0 October 2009 cumulative update package
http://support.microsoft.com/kb/974989 (link may not be live yet)

Description of the Office SharePoint Server 2007 October 2009 cumulative update package
http://support.microsoft.com/kb/974988 (link may not be live yet)

Installation Recommendation for a fresh SharePoint Server

To keep all files in a SharePoint installation up-to-date, the following sequence is recommended.

  1. Service Pack 2 for Windows SharePoint Services 3.0 and language packs
  2. Service Pack 2 for Office SharePoint Server 2007 and language packs
  3. October 2009 Cumulative Update package for Windows SharePoint Services 3.0
  4. October 2009 Cumulative Update package for Office SharePoint Server 2007

Please note: Start from April 2009 Cumulative Update, the packages will no longer install on a farm without a service pack installed. You must have installed either Service Pack 1 (SP1) or SP2 prior to the installation of the cumulative updates.

After applying the preceding updates, run the SharePoint Products and Technologies Configuration Wizard or “psconfig -cmd upgrade -inplace b2b -wait” in command line. This needs to be done on every server in the farm with SharePoint installed.

The version of content databases should be 12.0.6520.5000 after successfully applying these updates.

You can also refer to April Cumulative Update post for deployment guides, slipstream how-to links and FAQs.

Jie Li

Technical Product Manager, SharePoint

View article…

Here is the list up the latest fixes included in the update:

WSS 3.0:

  • You use a tool that calls the GetChanges() method in a loop in order to obtain a list of changes from a Windows SharePoint Services (WSS) 3.0 site. You notice that this tool takes a long time to obtain changes from the WSS 3.0 site.
  • You use the Check Names feature in Windows SharePoint Service (WSS) 3.0.The feature resolves names very slowly. This issue occurs when WSS 3.0 checks names from NT4.0 domains.
  • In a Discussion list, you delete a list item. The attachment that is related to the list item is not deleted in the back-end database.
  • When the Content Approval feature is enabled, only users who can approve items can receive alerts for minor version documents. After you apply this update, users who can also read items can receive alerts for minor version documents.
    Note Draft Item Security determines whether users can read items or approve items.
  • You use the Content Deployment feature to transfer a site collection to another target. You cannot create new sites on the site collection after you transfer it. This issue occurs because the variation system does not propagate pages correctly. This issue also occurs because the wrong Content Types are used.
  • You perform the incremental deployment in the French version of Microsoft Office SharePoint Server 2007.When you perform the incremental deployment, the user information list has columns that are duplicated.
  • You propagate a Web page by using variation systems. The SPListItem.ForwardLinks property is not updated until the page is published in the target variation sites.
  • You have a sub-site that contains a lookup column that refers to a list in the root Web site. When you do an incremental content deployment, the deployment succeeds. However, you receive a warning message:

    Unable to find a lookup list /sites/PublishingSite/RootDocLib. The list is not part of the exported package and does not exist in the destination site collection.

    The lookup column is not deployed and the value for the column is not set. Additionally, the lookup value list is empty.

  • The SharePoint domain has a trust relationship with a remote domain. A user in the remote domain can access a Microsoft Office SharePoint Services (MOSS) site by using a domain local security group. A profile is created for the user at the site collection level. Then, the profile is stored in the UserInfo table that is in the content database. Information about user access is stored in the tp_ExternalToken column of the database table.
    When the tp_ExternalToken column is updated by the timer job incorrectly, alerts are not sent. Additionally, the alerts would be security trimmed.
  • When you try to restore a site collection that contains content whose URL path length will be longer than 260 characters, the restoration fails. Additionally, you receive the following error message:

    One or more files in the restored site collection will exceed the maximum supported path length. Please select a shorter destination site address and try again.

    After you install this update, restoration will complete if your site URL path length is less than or equal to the original site URL path length. However, you will only be able to access content in the restored site that is within the maximum supported path length of 260 characters.

  • You use the –includeusersecurity option to import a site from a .cab file to a SharePoint site. Then, you see a list of deleted users when you click All People in the SharePoint site. However, you do not expect to see this list.
    The following is a sample code that uses the –includeusersecurity option to import a site from a .cab file:

    Stsadm.exe –o import –url <siteURL> -f c:\sub1.cab –includeusersecurity

  • When you click X more items in a SharePoint calendar, the calendar view does not display all the items that it contains.
  • You create an ASPX page and then add a Dataformwebpart Web part in SharePoint Designer. When you try to delete the list items that have contributor rights in the Web part, you receive an "Access Denied" error. However, the list items are deleted.
  • When you upload oversized files to a Discussion Board, you receive the following error message:

    One or more attachment file is over sized…

    Additionally, five discussion topic items are duplicated.

  • You experience the performance regression that was detected in the 2009 August cumulative update (CU).
  • You open a UNC-based Web folder in an attachment folder of an Issue Tracking list item. When you drag a file attachment to the attachment folder, four duplicate comments are created for each item that is added.
  • You experience slow performance when you access a pages library that is deployed through the Content Deployment feature.
  • In a list, you have a folder that is based on a customer folder content type. The customer folder has a multiple value lookup column. When you rename the folder, the multiple value lookup values are lost.
  • You create a custom field that derives from the SPFieldLookup class. You add this field to a document library and then enable the field to have multiple values. After you add some values to the column, you run the Content Deployment feature. None of the values for the custom field is transferred successfully to the target farm.
  • When you run a SharePoint site in a .Net Framework 4.0 process, the site causes .Net Framework 4.0 assembly references to be written to the SharePoint configuration database. Then, you experience failures when you run the SharePoint site in the .Net Framework 2.0.This issue occurs because the .Net Framework 2.0 cannot resolve assembly references in the .Net Framework 4.0.

    Note The .Net Framework 4.0 release is planned for March 2010.
  • You create a data view Web part that uses SQL databases as a data source. When you try to enable the filtering functionality and the sorting functionality, the Web part generates drop-down menus. However, the Web part does not filter or sort.

    This issue does not occur when you use SharePoint Lists or SharePoint Library as data sources.
  • You upload files to a SharePoint site and mark them as "allow everyone to read." "Everyone" is defined as "all authenticated users."For multiple sites that share the same host, such as SharePoint Online, users from one site (Site A) are "authenticated users" on another site (Site B). Therefore, certain files from Site B are visible to users from Site A.
  • You input values in a page and then submit the page. When information for a mandatory field is missing, you receive the following validation error message:

    You must specify a value for this required field.

    Then, the lookup column does not keep the values that were changed during the editing process.

  • You have a multiple value lookup column. You also have a column that contains values that are calculated from another text column. If you use the multiple value lookup column and the calculated column together, you cannot open the Version History page. The Version History page fails, and you receive an unknown error.
  • Before you install a Microsoft Office SharePoint Server 2007 update, you detach the content databases and then install the 2009 August CU for the 2007 Microsoft Office system. When you try to reattach the databases, you receive the following error message:

    Index was outside the bounds of the array

  • After you install this update, reporting rules for the pre-upgrade checker utility will be updated.
  • MOSS 2007:

  • The content deployment stsadm command RunContentDeplymentJob -deploysincetime does not work correctly.
  • The Colleague Tracker Web part shows raw HTML when changes are displayed for an HTML profile property. However, you expect the Web part to interpret the HTML.
  • The table of contents Web part does not display all nodes in Windows SharePoint Services 3.0.
  • You have two zones for a Web application: a default zone and an alternative zone. You find that the search scope for the alternative zone returns no item counts.
  • The SharePoint spelling checker cannot recognize keywords that are updated in the "Custom Dictionary.txt" file.
  • You perform a search on a property that is mapped to the date/time column of a SQL Server database through Business Data Catalog (BDC).The search returns a date/time value that is incorrect. The day value that is returned differs from the correct value by one day. The time value that is returned is also incorrect.
  • You cannot edit an existing crawl schedule if the schedule description contains characters that have accents.
  • If you enable the Page Expiration feature, you receive an e-mail that contains two links when the page is about to expire. However, the second link in the e-mail is invalid.
  • After you install this update, the profile synchronization feature will be changed so that you can synchronize content databases even if the database status is "Offline."
  • You enable the publishing feature and change the site logo before the first content deployment. However, the new site logo is not deployed on the first content deployment.
  • You have two variation labels, a source label and a destination label. If you rename a sub-site in the destination label, the variation propagation fails. Then, you receive the following error message:

    A new page did not get created under Label fr by the variation system for source page <URL>. The list item <ItemName> cannot be imported because its parent web does not exist.

  • Consider the following scenario. You have two host-named site collections. Each site collection has an image that is called Logo.gif. Additionally, the blobcache is enabled. In this scenario, you browse the first site collection, and then the Logo.gif image is put in the blobcache. When you browse the second site collection, the Logo.gif image from the first site collection is displayed. However, you expect to see the Logo.gif image from the second site collection.
  • "All sites," "People," and "This site" search scopes are available only for English language sites. Sites that are written in other languages show only the "This site" search scope.
  • You click View My Site in Microsoft Office Outlook. The site that you want to access belongs to a user who has an apostrophe in his e-mail address. Then, you receive the following error message:

    User not found.

  • MOSS 2007 OTB Usage Reports

    Posted October 28th, 2009 in SharePoint by Mike Stevens

    A colleague asked last week if anyone on the team had a definitive list of the out of the box usage reports for MOSS 2007.  I could recall a lot of them from memory, but did not have a complete list.  After a little fishing, I found this list on TechNet:

    After usage reporting is enabled, site administrators and site collection administrators can view site usage summary pages that have the following information for their sites and site collections:

    · Requests and queries in the last day and the last 30 days.

    · Average number of requests per day over the last 30 days.

    · A chart of requests per day over the last 30 days.

    · A list of the top page requests over the last 30 days.

    · A list of top users over the last 30 days.

    · A chart of top referring hosts over the last 30 days.

    · A chart of top referring pages over the last 30 days.

    · A list of top destination pages over the last 30 days.

    · Top queries for the last 30 days (if search usage reporting is enabled).

    · Search results top destination pages (if search usage reporting is enabled).

    SSP administrators for the search service can view a search usage reports page that tracks the following information.

    · Number of queries per day over the previous 30 days.

    · Number of queries per month over the previous 12 months.

    · Top queries over the previous 30 days.

    · Top site collections originating queries over the previous 30 days.

    · Queries per search scope over the previous 30 days.

    Site collection administrators for the SSP site can view a usage summary page that tracks the following information:

    · Total amount of storage used by the site collection.

    · Percent of storage space used by Web Discussions.

    · Maximum storage space allowed.

    · Number of users for all sites in the hierarchy.

    · Total hits and recent bandwidth usage across all sites.

    Site collection administrators can also view a site usage report that includes monthly and daily page hit totals filtered by the following criteria:

    · Page

    · User

    · Operating system

    · Browser

    · Referrer URL

    Install SharePoint Server 2007 on Windows Server 2008 R2

    Posted October 5th, 2009 in SharePoint by Mike Stevens
    I ran across this issue building out a MOSS2007/Win2008R2 VM the other day and wish I had read this post on the Microsoft SharePoint Team Blog by Jie Li first!

    Starting from Service Pack 2, Windows SharePoint Services 3.0 and SharePoint Server 2007 support Windows Server 2008 R2 and Windows Server 2008 SP2. When you try to install SharePoint bits on Windows Server 2008 R2 directly, you may see the following dialogue:

    snap0011

    This is because Windows SharePoint Services 3.0 and SharePoint Server 2007 bits without SP2 slipstreamed are not supported on Windows Server 2008 R2. The KB article 962935 is not live on the web site yet.

    To install on Windows Server 2008 R2, for Windows SharePoint Services 3.0 you can download the slipstream builds here:

    Windows SharePoint Services 3.0 with SP2 (x86)
    http://www.microsoft.com/downloads/details.aspx?FamilyId=EF93E453-75F1-45DF-8C6F-4565E8549C2A&displaylang=en

    Windows SharePoint Services 3.0 with SP2 (x64)
    http://www.microsoft.com/downloads/details.aspx?familyid=9FB41E51-CB03-4B47-B89A-396786492CBA&displaylang=en

    For SharePoint Server 2007, you can follow Create an installation source that includes software updates (Office SharePoint Server 2007) to create one. Or you can also read on, we will go through the complete steps to create a new slipstream build for SharePoint Server 2007.

    Installation Steps

    1. Copy the content of SharePoint Server 2007 setup files from the installation media to a folder on your hard drive.

    2. Delete everything inside Updates folder.

    3. Download Windows SharePoint Services 3.0 SP2 and Office SharePoint Server 2007 SP2 to a folder.

    Make sure your Office SharePoint Server 2007 SP2 is downloaded after July 29th.

    snap0013

    4. Open a command prompt,  change directory to the folder you put the downloaded patches, and run the following two commands:

    wssv3sp2-kb953338-x64-fullfile-en-us.exe /extract:[Path to installation bits]\Updates /quiet

    officeserver2007sp2-kb953334-x64-fullfile-en-us.exe /extract: [Path to installation bits]\Updates /quiet

    Change [Path to installation bits] to where you put the bits. These will extract all the content from the two packages to Updates folder. SharePoint installation program will automatically read this folder to apply the patches.

    5. Delete wsssetup.dll. This is a very important step so please don’t miss it.

    6. If you also need the Cumulative Updates to be applied when install SharePoint, download the latest Windows SharePoint Services 3.0 and SharePoint Server 2007 Cumulative Update packages and extract them into Updates folder like step 4.

    7. Your slipstream build of SharePoint Server 2007 is done!

    8. Go and install it on your Windows Server 2008 R2 box, after the installation, the site version will show 12.0.0.6421 or possibly a higher version if you added additional cumulative update files.

    snap0012

    Jie Li
    Technical Product Manager, SharePoint