Thursday, July 28, 2011

07-10: Some permissions are not moved during synchronization

For 07-10 scenario site and lists permissions are synchronized, however there are cases when they are not migrated:

  • Deleted user permissions
  • User agged to a site group
Why it's happening:
It happens due to synchronization mechanism which is based on token received from Microsoft Content Migration API. The content migration API defines whetehr there were any changes with source site or list. If there were changes, they are added to the token and MMSP moves them during sync. But adding a user to a group is not detected as a change with the site (it's very strange, but it's how Microsoft Content Migration API works). So, the user is not moved.
However, if you add a user directly to the site permissions (not to a group), the site is detected as modified and is synchronized. That means, all it's changes will be moved, even users added to the groups before.

Tuesday, July 26, 2011

07-10: Only groups that have permissions for the site are migrated

During 07-10 migration MMSP preserves groups that have permissions for the site as well as the group owner.
Example:
Source site has the following groups:
The following groups has permissions for the site:
The group Owner is the following group:


When MMSP migrates the site the following groups are created on target:

Tuesday, July 19, 2011

Firewall configuration for 07-07/10-10 migration

Adding a farm requires the same configuration as described in Help.
For 07-07 migration different firewall configuration is required:

1. When creating a migration job the BrowserBroker service connnects to the remote BrowserAgent service.
Their ports can be found in the "server.socket_port" variable in the following files:
Quest Software\Migration Manager for SharePoint\Web Interface\SharePoint Browser\SPInfo.conf - for BrowserAgent port
Quest Software\Migration Manager for SharePoint\Web Interface\SharePoint Browser\SPInfoBroker.conf - for BrowserBroker port.

So, from a server with console the outbond connection for the Broker service should be allowed, on a server without console - inbound connection for the Agent service.

2. Source and Target serivces on the corresponding servers should have access to Repository database:

Outbound connections for pythonservice.exe should be allowed on both servers, SQL ports should be opened on the server wher Repository database is located.

3. Source service creates shared folder on the source server and exports content to the folder, target service connects to the folder remotely and uses it foe importing:

Outbound connection from the target server should be allowed for the pythonservice.exe and inbound connections should be allowed on the source server for the shared folder (SMB port 445)

Monday, July 18, 2011

03-07/10: List views are broken after migration.

Issue:
A source 2003 document library view has been modified by a user. Administrator performs the library migration and does not see error messages. But when the user goes to the target 2007 document library he does not see any objects there (the view is empty or contains an error message)
Example:
List views are stored in file system but the view changes are stored in database. When MM performs migration he applies changes incorrectly.
 
For example MM incorrectly migrates view in the following scenario:
You have Explorer view set as default view for the document library. When a user adds a new column the “Add to default view” option is checked and default view is modified. When administrator migrates the document library, the Explorer view is broken. It displays one column and it looks like there are no documents in the target document library.
Note: There might be other scenarios how to modify source view that MM migrates them incorrectly.
 
How to fix:
There are the following solutions: 
1. You can delete the broken view and re-create it on target site
2. You can disable view migration of a particular type of list. In this case MM will not migrate the list views. Only default list views will be created on target site.
To disable the view migration:

1. Open the "Quest Software\Migration Manager for SharePoint\MM4SP.Paging.CmdProcessor.xml" file
2. There is the following query in the "get_views_of_list":

SELECT *,page.LeafName as ViewUrl FROM [{0}].[dbo].WebParts wp
JOIN [{0}].[dbo].Docs page on page.Id = wp.tp_PageUrlID
JOIN [{0}].[dbo].Lists lists on wp.tp_ListID = lists.tp_ID
WHERE wp.tp_ListId = '{1}' and (tp_DisplayName is not null) and tp_DisplayName <> '' and wp.tp_WebPartTypeId = '7FBF9A80-8AE1-FA7E-9C51-30A786D33155' and (wp.tp_View is not null) and (lists.tp_ServerTemplate not in (106, 102))


You could add list types in addition to 102 and 106 to exclude their views.
There is a list of SharePoint list templates: http://sharepointkb.wordpress.com/2008/08/26/sharepoint-list-template-ids-registrationids-list-template-type-ids/

3. Once you added the required types, save the file and restart Source service.

If you have two agent deployment the changes should be done on both servers. 

07-10: Overview view contains only 100 objects

Issue:

After performing 07-10 migration, all items for a survey list have been migrated, however when you switch to the Overview view you see only 100 items.

Workaround:


1. Open the Overview.aspx for the target survey in SharePoint Designer
2. Switch to the Code mode
3. Delete the following entry:
<RowLimit Paged="FALSE">100</RowLimit>
Make sure there is no extra line left in the file.
4. Save the aspx.

Thursday, June 30, 2011

2003-2007: User lost ability to add/remove user permissions.

Security in SharePoint 2007/2010 is very different from SharePoint 2003. That may cause a lack of permissions on target SharePoint after migration.
How 2003 security works:
You can create a new group with a custom permission set which allows users of the group to manage the site permissions:
Then you add a user to the group:




In SharePoint 2003 the USER5 user can add/remove users do the group.


How 2007/2010 security works:

The new version of SharePoint works differently.
For each group, an Owner should be specified. Also there is Group Settings where you could specify who can edit membership of the group:


So, that means even if you grant Full Control to a particular user on SP 2007/2010 that does not mean he will be able to add/remove users from site groups or change the group settings.

Who can edit permissions in SharePoint 2007-2010: 
  1. The Group Owner of a SharePoint group has permission to add / remove users from a group.
  2. The Site Collection Administrator has permission to add / remove users from a group.
  3. Only one person (or group) can be assigned as the Group Owner.
How Migration Manager handles this.

Migration Manager creates corresponding groups on target site and sets the "{Site Title} Administrator" group as owner.
So, after the migration the users who were in the "My Custom Group" with the custom permission set won't be able to add/remove permissions on target site.
As a workaround, add users to the {Site Title}Administrator group or create a separate group with all the required users included and set it as Owner for groups.
You should keep in mind that adding a user to the Administrators group may add some extra permissions for the user. 

Tuesday, May 24, 2011

07-10: Error with survey migration

There is the following known issue for 07-10 migration:
The “Allow multiple responses” option of survey is not preserved during migration and is always “No”.

It may cause the following issue during a survey migration: 
The property or field has not been initialized. It has not been requested or the request has not been executed. It may need to be explicitly requested.

If you look into log file for migration job you notice the following message as a Warning:
You are not allowed to respond again to this survey. 

The error occurs if there is a response created by a user that could not be resolved on target server. 
In this case MMSP service account is left as author of the response. When MM tries to create next responses, the "You are not allowed to respond again to this survey" error occurs.

How to fix: 
1. Pre-create targte syrvey with the "Allow multiple responses" option set to "Yes". 
2. Switch the "Allow multiple responses" option to "Yes" for the source survey while you perform the migration.

MMSP is unable to set the "Allow multiple responses" option to "Yes" during migration.

Tuesday, May 17, 2011

03-07/10 and 07-10: Links are not processed during migration.

Migration Manager does not process links during migration. So, you need to change URLs manually when migration completes.



How it works:
Links are stored in database as a relative URL. If during migration the URL hierarchy is changed the link is broken.

If only the host part of the URL is changed, the URL will work, but it's description stay the same as it was on source site.

For example:

 
Source site has a list with the "Hyperlink or Picture" field type. And there is the following item:



When you perform migration of the http://ksps:81 site to a new target site collection with the http://kmoss/sites/OldRoot URL, the list has the following list item:
 
 When a user tries to open the URL he sees error message, because the document has the http://kmoss/sites/OldRoot/Shared Documents/How it works.doc
URL now, but the /sites/OldRoot part is not in the link.

If you migrate the http://ksps:81 site as a new root site collection (http://kmoss) (i.e. web application name is changed only), the link will work. In this case the link description stays original.

03-07/10: Unable to update the information in the Microsoft Office document

Issue:
The following error might occur for a document during 2003-2007 migration:
Unable to update the information in the Microsoft Office document *.*

How to fix:
The error occurs for documents that were created with a third-part tool. There is the following article where the error discussed.

The solution is:  
Open the document with the corresponding Microsoft Office application and save it back to the document library. This should help to migrate the document without issues.
Note: If the versioning is enabled for the document library you need do delete all previous versions of the document.

It is not MMSP issue.
If you download the file from source and then upload it to target manually and try to modify it's properties you receive the same error message:
 

Friday, May 6, 2011

"File not found" error when you open target site.

Issue:

The migration completed successfully with no errors, but when you try to open the target site you receive the File Not Found error:


 The problem is that the master page of the target site (e.g. default.aspx) points to the wrong page layout. This happens because it links to a layout which does not exist in the target site collection. Usually it happens when master page is inherited from the parent site but you migrate the child site only.


Example:
You have http://source/test sub-site whose default.aspx page is linked to a custom master page “Custom.master” located in the top level site.
The target site collection (http://target) does not have the "Custom.master" page. When you migrate the sub-site under the target site collection, you receive the error when open the target site. 
You should copy master page from source to the target manually using SharePoint Designer.

To find out which master page is used:
  1. Open the migrated target sub-site in SharePoint Designer.
  2. Open default.aspx. The master page relative URL is written in the top level corner:

    Note: The URL above means that the master page is located in the site collection master page gallery.


    To copy the master page:
    1. Open the source site collection (http://source) in SharePoint Designer and move to the _catalogs/masterpage
    2.  Copy the Custom.master page
    3.  Open th target site collection in SharePoint Designer and copy the master page to the _catalogs/masterpage

    When the master page is copied you can successfully access target site.


    Thursday, April 28, 2011

    SharePoint 2003-2010 migration requires direct permissions for target config db.

    When you add a user into the Farm Administrators group in SharePoint 2010 it does not receive direct access to configuration database (as it was in SharePoint 2007).

    To perform 2003-2010 migration, MM uses SharePoint Object Model which is working in a context of MMSP service account. 

    That changes list of required permissions for 2003-2010 migration. In addition db_owner for target Configuration database is required or you could add the user to the SharePoint_Shell_Access role on target SQL server.
    The following PowerShell command adds a user to the role:
    Add-SPShellAdmin –username <your username>  

    Thursday, April 14, 2011

    Discover: SQL Server does not exist or access denied.

    Issue:
    You receive the "SQL Server does not exist or access denied" error during adding SharePoint farm. The server exists and you have all the required permissions. You can successfully connect to the SQL server via ODBC or UDL test. The server running discovery process is 64bit. You have SQL alias configured for SQL server.

    How to confirm:
    The discovery is 32 bit process but when you perform ODBC/UDL test it is running as 64bit application. To run the 32bit ODBC connection, run the following application: 
    C:\Windows\SysWOW64\odbcad32.exe

    How to fix:
    Compare 64bit and 32bit SQL aliases.
    For 64 bit client aliasing use cliconfg.exe from system32 (already in path and you can just type and run).
    For 32 bit client aliasing switch to C:\Windows\SysWOW64 folder and run cliconfg.exe from there.
    Configure 32bit aliases the same way as 64bit:
     

      

     

    Wednesday, April 13, 2011

    What does the "0x80040E14" error mean

    During a migration the 0x80040E14 error may occur. The error occurs when it is unable to complete an action on SQL server. You nay see either of the following errors:

    ' Unable to complete this operation.  Please contact your administrator.’

    'Exception from HRESULT: 0x80040E14’

    How to fix:

    If you see one of the following messages in Issue report or log files, you need to check the following:

    1.     Target SQL server data drive is not full

    2.     .mdf and .ldf files of target content database haven't reached their full allocated size

    3.     Target content database files are set to increase when full.


    Note: There can be another reason for the “0x80040E14” error. Refer to the following Microsoft article for more detailed information: http://support.microsoft.com/kb/841216

    07/10 reorg: Access denied error on a list veiw importing


    Issue:

    You have a customized view with a web part in a document library.

    The following error message occurs on import:

    (-2147352567, 'Exception occurred.', (0, u'', u'Access denied.', None, 0, -2147024891), None)

    If you go to the import.log file, you see the following:

    [7/9/2010 4:27:37 PM]: Progress: Importing File Shared Documents/Forms/AllItems.aspx.
    [7/9/2010 4:27:37 PM]: FatalError: Access denied.
       at Microsoft.SharePoint.SPGlobal.HandleUnauthorizedAccessException(UnauthorizedAccessException ex)
       at Microsoft.SharePoint.Library.SPRequest.PatchUrl(String bstrUrl, String bstrWebRelFileUrl, String bstrWebRelOldUrl, String bstrWebRelNewUrl, Int32 grf)
       at Microsoft.SharePoint.Deployment.ImportObjectManager.FixLinkInFile(String fileUrl, Guid webId, String oldTargetUrl, String newTargetUrl)
       at Microsoft.SharePoint.Deployment.LinkSerializer.SetObjectData(Object obj, SerializationInfo info, StreamingContext context, ISurrogateSelector selector)
       at Microsoft.SharePoint.Deployment.FileSerializer.UpdateLinks(SPFile file, String linksXml, StreamingContext context, ISurrogateSelector selector)
       at Microsoft.SharePoint.Deployment.FileSerializer.UpdateFileAssocData(SPFile file, SPWeb web, Guid id, String fileUrl, SerializationInfoHelper infoHelper, SerializationInfoHelper infoHelperListitem, StreamingContext context, ISurrogateSelector selector, ImportObjectManager objectManager)
       at Microsoft.SharePoint.Deployment.FileSerializer.CreateOrUpdateFileAndAssocData(Object fileOrListItem, SPWeb web, Guid id, String& fileUrl, Boolean fileExistsInDb, SerializationInfoHelper infoHelper, SerializationInfoHelper infoHelperListitem, StreamingContext context, ISurrogateSelector selector)
       at Microsoft.SharePoint.Deployment.FileSerializer.SetObjectData(Object obj, SerializationInfo info, StreamingContext context, ISurrogateSelector selector)
       at Microsoft.SharePoint.Deployment.XmlFormatter.ParseObject(Type objectType, Boolean isChildObject)
       at Microsoft.SharePoint.Deployment.XmlFormatter.DeserializeObject(Type objectType, Boolean isChildObject, DeploymentObject envelope)
       at Microsoft.SharePoint.Deployment.XmlFormatter.Deserialize(Stream serializationStream)
       at Microsoft.SharePoint.Deployment.ObjectSerializer.Deserialize(Stream serializationStream)
       at Microsoft.SharePoint.Deployment.ImportObjectManager.ProcessObject(XmlReader xmlReader)
       at Microsoft.SharePoint.Deployment.SPImport.DeserializeObjects()
       at Microsoft.SharePoint.Deployment.SPImport.Run()



    How to fix:

    The issue may occur with the following web parts:

    • filter web part
    • content editor web part containing a link to another list/doc lib

    As a workaround delete the web part or the whole list view on the source and repeat migration.

    Monday, April 4, 2011

    Why does MMSP need the prescan utility to be run?


    First of all, I would like to notice that Prescan is Microsoft tool. It's required to run the tool before upgrading SharePoint 2003 environment.


    There are posts explaining what prescan utility actually does: Don't be afraid of Prescan  and Your Friend Prescan.exe - How to Get it & What it Does

    Among the other things prescan fills tp_fields column in the lists table to persist the list schema. It parses and saves List definitions with the associated Lists. SharePoint Portal Server 2003 Service Pack 2 already incorporates this feature whenever a list is modified; however, this process should be completed for all Lists, so prescan calls the SharePoint Portal Server 2003 Service Pack 2 method to persist that data.

    The tp_field column contains list schema. So, if the prescan hasn’t been run, the column is left empty and MMSP cannot read the list schema.
    In this case you see the following error message in issue report: 'Need to use 'prescan' tool! 

    Tuesday, March 22, 2011

    07-07/10-10: Migrate sub-site with a custom permission level

    Issue:
    You see the following error in the import.log for a migration job:


    Progress: Importing Role Assignment for "sub-site".
    FatalError: The given key was not present in the dictionary.

     
    Error description:
    By default permission levels of a site are inherited from its top level site (i.e. site collection). The issue occurs in the following scenario:
    There is the http://source site collection and the http://source/sub-site sub-site. The "sub-site" has a user (or group) with permissions assigned via a custom permission level. The permission levels are inherited from the site collection.
    When the "sub-site" is migrated to a new http://target site collection, the custom permission level is not created on the sub-site level as it should be created on site collection level. If the target site collection does not have the custom permission level, the error occurs.

    How to fix:
    There are two workarounds:

    1. Create the custom permission level in the target site collection manually and retry import for the migration job
    2. Break inheritance of permission levels on the source "sub-site" and restart migration job.

    03-07/03-10: How to migrate Survey with all responses

    Migration Manager preserves settings for the Survey lists. The “Allowed multiple responses” option which may cause issues with migration of survey responses. If some responses have been made by users that do not exist in AD anymore MM replaces the user account to the MM target service account. In this case all the further responses cannot be created and you see the “You are not allowed to respond again to this survey” error.
    MM has a configurable option for Survey list migration.
    User can define how to migrate the "Allowed multiple responses" option

    To adjust the option:

    1. Open the "Quest Software\Migration Manager for SharePoint\SpringConfigs\Migrators.xml" file and locate the following line:
      <property name="AllowMultiResponsesForSurvey" value="Default" />
    2.  Set required value for this property.
      The possible values are:
      AlwaysOn - the "Allowed multiple responses" option always set to Yes on the target site (for all migration jobs)
      AlwaysOff - the "Allowed multiple responses" option always set to No on the target site (for all migration jobs)
      Default - the "Allowed multiple responses" option set as it was in the source site.

      To migrate all responses you should set the option to AlwaysOn.
    3. Re-migrate the required surveys (i.e. delete the target survey and create a new job) or you re-migrate the whole site.

    Monday, March 21, 2011

    07-07: Disabling of version migration

    In some cases disabling of version migration allows you successfully complete 07/10 reorganization.
    Perform the following steps:

    1. Open the "Migration Manager for SharePoint\Web Interface\Migration 2007\ExportImport.py" file.
    2. Locate the following line:
    'IncludeVersions' :4 
    There are two lines in the file.
    3. Replace 4 to 1 in both lines.
    4. Save the file and restart 2k7 Source service.

    What the number means:
    1 - Last major version for files and list items
    2 - The current version, either the last major or the last minor
    3 - Last major and last minor version for files and list items
    4 - All versions for files and list items

     

    Thursday, March 10, 2011

    Migration Manager deployment matrix


    The following matrix helps you to understand where to install MMSP for a particular migration scenario:

            Source
    Target
    SharePoint 2003
    SharePoint 2007
    SharePoint 2010
    SharePoint 2007
    SharePoint 2007
    (SP 2003 optionally)
    Both source and target 2007 farms
    (Use the same repository database)
    Is not supported scenario
    SharePoint 2010
    SharePoint 2010
    (SP 2003 optionally)
    SharePoint 2007
    (extension on target)
    Both source and target 2010 farms
    (Use the same repository database)