Moving shares between SBS 2003 & SBS 2008

Filed Under IT Tipz & Trix

Still migrating the data over for my client, I ran into the usual problem of moving data from one drive to another preserving both NTFS ACLs and share details.

The easiest way round this, that I have found, is as follows

Issue the following commands from the command prompt on the destination server to copy all of the NTFS ACLs and data over from the source server to the destination server (in my instance I was copying their data drive, which was D) so my commands looked like this

net use z: \\source_server\d$
robocopy z:\ d:\ /E /COPYALL

However, this does not preserve the share info. Since mine was a fresh install, I just needed a complete copy of the drive and share permissions I just exported the following registry info from source server :

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\Shares]

Re-importing that on Destination server had everything up and running in copy_time+2 mins 🙂

Happy days

Moving lists between SharePoint sites

Filed Under IT Tipz & Trix

Once I’d overcome the issues with user permissions outlined here I noticed that the companyweb was different to oldcompanyweb.

A lot of the metadata was missing, including version history. Turns out that this is quite the problem just using stsadm from the command line.

However, I found a great tool called SharePoint Content Deployment Wizard.

In my case, I just deleted the lists that didn’t have the data required and re-imported them using this tool though you could use it just as well to skip the whole stsadm -o export/import proceedure. Though please make sure which account you are logged in as else you may run into the problems outlined in my previous post.

Again – hope it helps!

SBS 2003 -> SBS 2008 Migration

Filed Under IT Tipz & Trix

Long time no post!

Thought I would update my blog with some hints and tips for some problems I hit in a recent client migration from SBS 2003 -> SBS 2008.

Following the Microsoft tech document everything went smoothly until I needed to recreate the old companyweb.

stsadm -o export -url http://OldCompanyWeb -filename cweb.bak -includeusersecurity completes with no errors

[6/14/2010 12:09:49 PM]: Progress: Export Completed.
[6/14/2010 12:09:49 PM]: Finish Time: 6/14/2010 12:09:49 PM.
[6/14/2010 12:09:49 PM]: Completed with 0 warnings.
[6/14/2010 12:09:49 PM]: Completed with 0 errors.

Though I do notice the following in the log file :

[6/14/2010 12:09:10 PM]: Debug: Security check failed in OnListItemExport

The actual site http://OldCompanyWeb looks and runs just fine

When issuing the stsadm -o import -url http://companyweb -filename cweb.bak -includeusersecurity I get the following errors

Multiple instances of :
[6/14/2010 1:30:09 PM]: Debug: Security check failed in OnUserGroupExport
[6/14/2010 1:30:10 PM]: Warning: The specified user could not be found.
*** Inner exception:
User cannot be found.
at Microsoft.SharePoint.SPUserCollection.FindUserSID(String strSearchText)
at Microsoft.SharePoint.SPUserCollection.GetBySID(String strSid)
at Microsoft.SharePoint.SPUserCollection.GetBySID(Byte[] byteSid)
at Microsoft.SharePoint.Deployment.SecurityObjectSerializer.ResolveUser(ImportStreamingContext context, SPWeb web, Byte[] sid, Int32& idUser)
[6/14/2010 1:30:10 PM]: Debug: Security check failed in OnUserGroupExport
[6/14/2010 1:30:10 PM]: Warning: The specified user could not be found.
*** Inner exception:

and at the end

[6/14/2010 1:34:50 PM]: Progress: Importing Role Assignment for _catalogs/users.
[6/14/2010 1:34:51 PM]: FatalError: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
at Microsoft.SharePoint.SPGlobal.HandleUnauthorizedAccessException(UnauthorizedAccessException ex)
at Microsoft.SharePoint.Library.SPRequest.ResetSecurityScope(String bstrUrl, UInt32 dwObjectType, String bstrObjUrl, Guid guidDoc, Boolean bUnique, Boolean bCopyRoleAssignments, Guid& pguidScopeId, Int32& piError)
at Microsoft.SharePoint.Deployment.RoleAssignmentsImport.ProcessComplexElement(ImportStreamingContext context, XmlReader xr, SqlSession session)
at Microsoft.SharePoint.Deployment.SqlBatchImport.Run()
at Microsoft.SharePoint.Deployment.SecurityObjectSerializer.SetObjectData(Object obj, SerializationInfo info, StreamingContext context, ISurrogateSelector selector)
at Microsoft.SharePoint.Deployment.XmlFormatter.ParseObjectDirect(Object objParent, Type objectType)
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()
[6/14/2010 1:34:51 PM]: Progress: Import Completed.
[6/14/2010 1:34:51 PM]: Finish Time: 6/14/2010 1:34:51 PM.
[6/14/2010 1:34:51 PM]: Completed with 18 warnings.
[6/14/2010 1:34:51 PM]: Completed with 1 errors.

Turns out that the account I was using (one created with full admin rights as the deployment document states that it is recommended that you create a new administrator account on the Source Server for migration instead of using the built-in Administrator account) did not have the correct permissions to do this.

Even though I used the ‘Run as’ option to run the command prompt as administrator :/

Logging on as a different user (in my case using the built in Administrator account) solved all the above issues.

Hope it helps someone