Bennett Adelson Technical Blog

Posts from the consultants at Bennett Adelson

Importing ConfigMgr 2007 task sequences XML to ConfigMgr 2012 ZIP


With the new 2012 import/export functionality, the new file format is “.zip” file. This compressed file contains not only the task sequence XML can also include any dependencies to the task sequence like a boot image. While this is awesome for migrating between a test and production ConfigMgr 2012 environment, it does not help if you are trying to import task sequences from a disconnected 2007 environment.

In my consulting practice, we do a lot of OSD implementations using a base set of task sequences that we already have pre-configured. Once at a customer, we customize our base templates for the specific project and then export the XML or ZIP to the project documentation. Well today I was at a client that we had previously done work for and they had already performed a 2012 upgrade and removed their old 2007 environment. However, they did not migrate any of the OSD and were looking for us to re-implement OSD in their new environment. Instead of importing our canned OSD for 2012 and then customizing for their needs, we wanted to use the customized 2007 task sequences we had implemented for their old environment. The first problem, however, was the only copy of those were from the archived XML from our project files we had left them. The second is that you can’t import that XML through the 2012 console. Not to worry though, we can still make it work.

The 2012 exports are just compressed files full of the resources, some configuration files, and then the task sequences XML. This 2012 task sequence XML is not the same as the old 2007, but we are able to insert the 2007 XML into the appropriate spot to make it useful. This enabled us to save a bunch of time from recreating the old TS logic. The following is a quick example of how this works.

Start with a 2012 exported task sequence. This is in .ZIP format.

Export a Configuration manager 2012 task sequence

task sequence exported to .zip

Once exported, open the zip file and navigate to the task sequence folder and copy out the object.xml

open the object.xml file

Open the object.xml file and you will see a lot of new xml, however, scrolling almost to the end of the file you will find a section with embedded task sequence XML.

look for the embedded task sequence xml

This XML is the same task sequence XML as you have in a normal exported task sequence from 2007, however you need to be sure only to grab the appropriate XML nodes and not the whole task sequence. To do so, in the old 2007 XML, copy the nodes and data from the sequence xml node:

<sequence version=”3.00″>
…..
</sequence>
copy the 2007 task sequence xml

and paste it into the object.xml in the CDATA section in the 2012 XML replacing the existing embedded sequence node:

<![CDATA[
….
]]
paste the xml into the 2012 task sequence

You don’t have to worry about the text/line formatting. Save the file and then copy it back into the .ZIP file. You can then import the ZIP file into your 2012 environment and adjust your referenced objects accordingly. This is great when you have a master task sequence of custom tasks and you just would like the ability to copy/paste them into your new 2012 task sequences. One thing to remember is that your old task sequences were built on the package/program model for software installs. If you are leveraging the new applications model (which you should be) you will have to recreate those specific tasks anyways.

Jason Condo
Principle Consultant

   

June 26th
Additional Notes:

It seems that some people are having problems importing. While I’m not sure as to what they are seeing specifically, I found that the best option that worked for me was to create a blank default task sequence (not a MDT task sequence) to use as the export template from 2012. I grabbed the sequence node from the old and inserted it into the new, replacing the embedded sequence xml node. I don’t see why you couldn’t grab below the sequence node as well (after <sequence version=”3.00″>). It think may address some of the users’ experiences of having 3.10 as a sequence version. Hope that helps and keep sharing your experiences.

11 Comments

  1. Roland

    Hi,

    doesn’t work for me, I guess I must do something wrong.
    It doesn’t allow me to import.

    Please clarify:

    From the CM07 xml everything and including from:

    should result in this:
    <![CDATA[

    ]]>

    Notice the 3.10 from the CM07 xml (3.00 doesn’t make a difference)

    cheers, roland

  2. Mega respect ! It’s work!

    • Just replace < to and task completed!

      • Roland

        not sure what you mean, anyway, I stripped it down to be empty, to have less to worry about.
        No change, can’t import and this does look valid although empty, doesn’t it?
        It should be able to import an empty one, right?

        <![CDATA[

        ]]>

  3. Roland

    Darn, the webpage is messing with the format, probably doesn’t work now either.

    <![CDATA[

    ]]>

  4. Mike

    This Does NOT work and I am unable to migrate my task sequences from SCCM 2007 to SCCM 2012 R2.

    I posted the xml sequence between the A[ and the ]] in

    • Jason Condo

      I’m sorry to hear this workaround isn’t working for you. Could you elaborate more about what does not work. When this post was written, it was for RTM and therefore I could not vouch for R2. However, I have just ran some tests using the same methodology on a clean R2 task sequence with success. There may be some troubleshooting and cleanup you may have to do on your original task sequence and I don’t know how elaborate the task sequences can be or if there is a limit to how long they can be to use this workaround.
      If this was an easy process, I would think MS or a 3rd party would have created a tool to do it for us.

  5. So is there assumptions like packages already in existence in the 2012 environment? You skipped that part.

    • Yes. The foundational parts of OSD still need to be configured like the OS image/source, packages, drivers and categories, and any other logic that you keyed off of in your old environment. You also have the new concept of applications which didn’t even exist in 2007 to consider once your import is done. The first thing you will want to do is to disable all the steps with package/programs in the task sequence so it can be saved when editing and then you can rematch the appropriate package/program when you get them imported.

  6. I think one of the big elephants in the room is the package IDs still take on the old environment. Unforturnately this becomes a monster headache with day to day operations.
    To combat that, I was looking at leveraging the builtin migration process within 2012, along with some powershell scripts to export and reimport the packages using some of the builtin cmdlets. The next trick is to edit the package references in the old TS to the new TS with new packages. This is where some SQL queries along with your XML contribution may come into play. So far it is all in my head and still needs to be proved out.

  7. LS

    Jason,

    Thank you, your process worked like a charm!

Leave a Reply or Comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: