One thing that a lot of ConfigMgr. admins has spent hours on, is the collection design in CM2007 (or they should have spent the hours). When designing collections in CM2007 some of the design challenges were:
- Not being able to create folders.
- Not being able to easily include or exclude objects from other collections.
- Configure security on collection to a certain ConfigMgr. admin group.
In this post I will walk you thru what happens to some of your collections when you perform a collection migration. Before you start the migration, you need to know about the new collection rules in ConfigMgr. 2012. There are certain basic rules you need to understand:
- There are separate collections for Users and Devices. You can’t mix objects the two objects in the same collection anymore.
- There are two top collections, All Systems and All Users. Those collections can’t be deleted.
- All collections must be limited to another collection.
- Linked collections do not exist any longer.
- Sub collections do not exist any longer.
- Collections are part of the global dataset, meaning that collections will be visible at all sites.
- Two new query rules exist, Include and Exclude.
In my ConfigMgr. 2007 site I have a collection hierarchy looking like this:
In my example I have a few interesting collection settings and rules, like:
- I’m using empty top level collections, that I call (Folders).
- Below SCCMLAB (that’s the company name), I have SL Workstations and SL Servers. All child collections are limited to those two, e.g. SL All Workstations in A01 is limited to the SL Workstations collection.
- In the “SL All Workstations in A01” collection I have a dynamic query where I use the CM2007 site code “AO1”.
Specify the migration connection and the migration job
- Select the Administration workspace.
- Navigate to Overview, Site Hierarchy, Migration, Active Source Hierarchy.
- Click Specify Source Hierarchy in the ribbon.
- In Top-Level Configuration Manager 2007 site server type the CM2007 site server name.
- In Source site access accounts click Set and specify account for the SMS provider access account.
- Click OK
This will start the gathering process and collect data about the CM2007 hierarchy, client information and object information. - To create the Migration Job, navigate to Overview, Site Hierarchy, Migration, Migration Jobs.
- Click Create Migration Job in the ribbon.
- In Name type: Collections
- In Job type select: Collection migration and click Next.
- Select the collections to migrate. In this example I select the top level collection SCCMLAB (Folder). Notice that this selection also selects two other collections.
- I deselect migration of objects (will explain that in a later post) and click Next.
- Select the Default security scope and click Next (we will deal with security later).
- In Collection limiting click Next (a feature used when migrating from a multi-site environment).
- In site code replacement, select PS1 as the ConfigMgr. 2012 site code and click Next.
- In Review migration jobs, click Next.
- Click Next to run the migration job now.
- Click Next and Close.
Let’s examine the result
Once migrated all new collections will be visible in the Assets and Compliance workspace below Device collections. A quick review shows me that:
- My empty top level collections are migrated over as real Folders.
- The prompt for a new site code was due to a collection query where I used the old site code. That query is now updated with the new primary site code (notice the new site code at the end of the statement).
- The SCCMLAB collection hierarchy in CM2007 is used to divide servers and workstations as illustrated. All sub collections are (in CM2007) limited to the SL Servers or SL Workstations collection. During the migration this will be detected and the migrated collections will automatically be limited to the top level collection.
Properties of the migrated collection, notice the limited collection. - The reason for the extra selection of collections was that they were also referenced by some of my migrated collections.
Now you might wonder, Isn’t there a log file that displays all the magic behind the scenes. The answers is; Sure, the name is migmctrl.log.
[…] […]
Hi Kent,
Just completed a migration from 2007 to 2012. However, there are lots of collections that have not come across in the migration.
Though when i go to re-run the migration and select my collections again. The wizard tells me it has already migrated the collections that are missing??
I ran another migration. and the logs say that its skipping the collection as its already been migrated? Though it is not within the 2012 console at all…weird.
This collection in particular is just using the System Resource – System OU Name query for servers within a particular OU. Are collections with these queries also ignored in the migration?
Cheers
I deselect migration of objects (will explain that in a later post) and click Next.
So why not migrate objets?
When doing a collection migration from 2007 to 2012, advertised object packages are not being migrated? When looking further into this I would normally expect the wizard to show “migrated/non-migrated” however the item says “Excluded” why would this be?
Hi Kent,
I am having an issue while migrating sccm 2007 to CB 1606, could you please help me.
– We are in process of migrating sccm 2007 to CB 1606.
– Using Collection migration to migrate associated packages & advertisements.
– There is 1 collection which is having all our RAP packages advertised around 150 + packages
– This collection has parent and child collections as well, all child are excluded and parent is carried as folder in CB.
– when we tried to migrate this collection with all assoicated objects it is failing.
– Very few packages get migrated and after some time jobs shows as failed
Steps taken
– We are able to migrate other collections in the same method.
– This collection totally has 300+ objects including packages & advertisements, i tried to select only 20 in batch still failed.
– Removed all the existing queries from collection, still no go
– created Link collection on top parent collection under all Systems and tried, dint help
– I tried searching but couldn’t find anything from the error in the log.
Does anyone had this issue ealier, pls help me guys we ar stuck here.
Error from migmctrl.log
ERROR: [Worker]: System.ArgumentOutOfRangeException: Length cannot be less than zero. Parameter name: length at System.String.Substring(Int32 startIndex, Int32 length) at Microsoft.ConfigurationManagement.SoftwareLibrary.ObjectSerialization.ConfigMgr.SMS_Program.get_DependentPackage() at Microsoft.ConfigurationManagement.SoftwareLibrary.ObjectSerialization.ConfigMgr.SMS_Package.d__0.MoveNext() at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() at Microsoft.ConfigurationManagement.SoftwareLibrary.ObjectSerialization.Services.Util.CatalogIterator.d__16.MoveNext() at Microsoft.ConfigurationManagement.SoftwareLibrary.ObjectSerialization.Services.Util.CatalogIterator.d__b.MoveNext() at Microsoft.ConfigurationManagement.SoftwareLibrary.ObjectSerialization.Services.Util.CatalogIterator.d__16.MoveNext() at Microsoft.ConfigurationManagement.SoftwareLibrary.ObjectSerialization.Services.Util.CatalogIterator.d__b.MoveNext() at Microsoft.ConfigurationManagement.SoftwareLibrary.ObjectSerialization.Services.Util.Iterator`2.d__1.MoveNext() at Microsoft.ConfigurationManagement.SoftwareLibrary.ObjectSerialization.Services.LibraryCatalog.IterateService.d__2.MoveNext() at Microsoft.ConfigurationManagement.SoftwareLibrary.ObjectSerialization.Adapters.ObjectManagerBase.d__6.MoveNext() at Microsoft.ConfigurationManagement.SoftwareLibrary.ObjectSerialization.Library.d__2.MoveNext() at Microsoft.ConfigurationManagement.Migration.MigrateObjects.d__14.MoveNext() at Microsoft.ConfigurationManagement.MigrationManager.ExtensionMethods.d__6`1.MoveNext() at Microsoft.ConfigurationManagement.MigrationManager.ExtensionMethods.d__6`1.MoveNext() at Microsoft.ConfigurationManagement.MigrationManager.ObjectMigrationJob.d__f.MoveNext() at Microsoft.ConfigurationManagement.MigrationManager.ExtensionMethods.d__6`1.MoveNext() at Microsoft.ConfigurationManagement.MigrationManager.MultiSourceSiteObjectMigrationJob.d__1e.MoveNext() at Microsoft.ConfigurationManagement.MigrationManager.MultiSourceSiteObjectMigrationJob.d__2d.MoveNext() at Microsoft.ConfigurationManagement.MigrationManager.MultiSourceSiteObjectMigrationJob.d__e.MoveNext() at Microsoft.ConfigurationManagement.MigrationManager.Job`1.ExecuteNext() SMS_MIGRATION_MANAGER 3/9/2017 1:48:21 PM 7272 (0x1C68)
[Worker]: Start processing status changed event for MIG_Job.ID=16777232 SMS_MIGRATION_MANAGER 3/9/2017 1:48:21 PM 7272 (0x1C68)
[Worker]: Set the schedule item 16777232 end time SMS_MIGRATION_MANAGER 3/9/2017 1:48:21 PM 7272 (0x1C68)
[Worker]: Set the schedule item 16777232 status to Failed SMS_MIGRATION_MANAGER 3/9/2017 1:48:21 PM 7272 (0x1C68)
[Worker]: End processing status changed event for MIG_Job.ID=16777232 SMS_MIGRATION_MANAGER 3/9/2017 1:48:21 PM 7272 (0x1C68)
[Worker]: Disposing Job 16777232 SMS_MIGRATION_MANAGER 3/9/2017 1:48:21 PM 7272 (0x1C68)
[Worker]: Removing Job 16777232 from job manager. SMS_MIGRATION_MANAGER 3/9/2017 1:48:21 PM 7272 (0x1C68)
[Worker]: Removing the Job with Id 16777232. SMS_MIGRATION_MANAGER 3/9/2017 1:48:21 PM 7272 (0x1C68)
[Worker]: Disposing worker SMS_MIGRATION_MANAGER 3/9/2017 1:48:21 PM 7272 (0x1C68)
[Worker]: Disposing current site connection SMS_MIGRATION_MANAGER 3/9/2017 1:48:21 PM 7272 (0x1C68)
ERROR: [MigMCtrl]: FAILED to EXECUTE job. error = Unknown error 0x80131502, 80131502 SMS_MIGRATION_MANAGER 3/9/2017 1:48:21 PM 7272 (0x1C68)
ERROR: [MigMCtrl]: FAILED to EXECUTE job. error = Unknown error 0x80131502, 80131502 SMS_MIGRATION_MANAGER 3/9/2017 1:48:21 PM 7272 (0x1C68)