Configuration Manager 2007 R3 Beta has been released!

I would like to make a short note of the following announcement on the ConfigMgr Connect Site (https://connect.microsoft.com/site16)

System Center Configuration Manager 2007 R3 Beta has been released!

As a member of the Configuration Manager 2007 R3 Open Beta program you can download at this Connection via the downloads tab.

Feedback can be provided using the Feedback tool and also available is discussions via the Newsgroups where you can post comments and ask questions.

Thank you.

ConfigMgr Customer team

How to back up your ConfigMgr 2007 Site

This post is just meant to freshen up everyone’s memory, because I still see (and get) stories (and questions)about backing up a ConfigMgr 2007 Site (and then especially about Secondary Sites). Let’s start with the most important part, the only supported way to restore your site is to use the Site Repair Wizard. This wizard needs a backup that is created with the standard Backup ConfigMgr Site Server maintenance task.

How to back up a Primary Site BackupConfigMgrSiteServerProp

  1. Open the Configuration Manager console and browse to System Center Configuration Manager > Site Database > Site Management > <YourSiteName> > Site Settings > Site Maintenance > Tasks.
  2. Select the Backup ConfigMgr Site Server task and click in the Actions pane Properties (or right-click the Backup ConfigMgr Site Server task and click Properties) to open the Backup ConfigMgr Site Server Properties.
  3. Select Enable this task, specify the backup task properties (like backup destination, day and time) and click Ok.

How to back up a Secondary Site

As you might know there is also a task to create a backup of a Secondary Site. Just keep in mind that it has no use to enable it, because you cannot restore this backup by using the Site Repair Wizard. The only supported way to recreate your Secondary Site is to reinstall your Secondary Site! After reinstalling the Secondary Site, the Primary Site will replicate the site data to it.

More information about Tasks for Backing Up a Site: http://technet.microsoft.com/en-us/library/bb680862.aspx

Using USMTUtils.exe during a Task Sequence with ConfigMgr 2007

As I had a lot of questions about the use of USMTUtils, I decided to devote a new post to this. In my previous post I used USMTUtils to clean up the hard-link statestore location.

USMTUtils is needed to clean up a hard-link statestore, because otherwise the hard-link store cannot be deleted due to a sharing lock. The command-line provided by Technet to do this is usmtutils.exe /rd <storedirectory>. Only this is exactly where the problem starts when running a command like this during a Task Sequence, because this will make the Task Sequence “hang” on the point where it has to delete the hard-link statestore. Taking a look at the SMSTS.log, at this point, will show something similar to this:

<![LOG[Executing command line: Run command line]LOG]!><time="14:56:41.804+-60" date="03-23-2010" component="InstallSoftware" context="" type="1" thread="2904" file="commandline.cpp:805">
<![LOG[]LOG]!><time="14:56:42.148+-60" date="03-23-2010" component="InstallSoftware" context="" type="1" thread="2904" file="runcommandline.cpp:34">
<![LOG[WARNING: This command is going to delete the following list of path(s).]LOG]!><time="14:56:42.195+-60" date="03-23-2010" component="InstallSoftware" context="" type="1" thread="2904" file="runcommandline.cpp:34">
<![LOG[Please review before continuing …]LOG]!><time="14:56:42.195+-60" date="03-23-2010" component="InstallSoftware" context="" type="1" thread="2904" file="runcommandline.cpp:34">

After this I just tried running the command-line manually from a cmd in Windows and this showed the following information:

WARNING: This command is going to delete the following list of path(s).
Please review before continuing …

        C:\<storedirectory>

Are you sure you want to proceed (Y/N)?

The conclusion here is that running the command-line usmtutils.exe /rd <storedirectory> will need a confirmation. This is the point where we have to grab back to a batch-file, so we can pipeline a positive response to the question asked by the USMTUtils. This can be done by using echo y|. So the batch-file, that we need to run the USMTUtils from a Task Sequence (with ConfigMgr 2007), has to include the command-line echo y| usmtutils.exe /rd <storedirectory>.

I hope this post gives a bit more inside information of why it is needed to pipeline a confirmation with the use of USMTUTils.

Capture User Files and Settings in Offline Mode (WinPE) with ConfigMgr 2007

In a previous postI already showed how to do a Hard-Link migration, when started from FullOS. That part still exists in my Task Sequence, but it is now moved under the Group Capture User Files and Settings – FullOS. This part will now only run when the Task Sequence is started from FullOS.

In this post I will add a part to the Task Sequence that makes sure that the User State will also be captured,  HardLinkOfflineTS when the Task Sequence is started from WinPE (also called Offline Mode). The cool part is that it will also be done by/ with using Hard-Links!

Capture User Files and Settings

For creating a Task Sequence, that does an Offline Capture, my way, a few variables and locations need to be created. After that a command line has to be run to do the actual Capture. Under here I will sum up the steps I take to do an Offline Capture (also see the red rectangle in the picture):

  • Set Started in WinPE – Set Task Sequence Variable
    This step sets the Task Sequence Variable TSStartedInWinPE to YES. This Task Sequence Variable only gets set when _SMSTSInWinPE is TRUE.
  • Capture User Files and Settings – WinPE – Group
    This group Captures the User Files and Settings when the machine is started from WinPE. This is done by checking if the Task Sequence Variable TSStartedInWinPE is set to YES.
  • Set Architecture – Set Task Sequence Variable
    This step sets the Task Sequence Variable Architecture to amd64. This variable will be used for selecting the USMT 4.0 version for 64-bit systems.
  • Set Windows Partition – Set Task Sequence Variable
    This step sets the Task Sequence Variable WindowsPartition to C:. This variable will be used for selecting the Windows partition.
  • Set State Store Location – Set Task Sequence Variable
    This step sets the Task Sequence Variable OSDStateStorePath to %WindowsPartition%\StateStore. This variable will be used for creating and selecting the User State Location.
  • Create State Store Location – Run Command Line
    This step creates the directory %WindowsPartition%\StateStore by running the Command line: cmd /c MKDIR %OSDStateStorePath%.
  • Cache USMT Files and Scripts – Run Command Line
    This step caches the USMT Files and Scripts from the USMT Package to the directory %OSDStateStorePath%\USMTFiles\ by running the Command line: xcopy * %OSDStateStorePath%\USMTFiles\ /herciy
  • Capture User Files and Settings – Run Command Line
    This step does the actual Capture of the User Files and Settings by running the Command line RunScanState.BAT %OSDStateStorePath% %WindowsPartition% %Architecture% which has to start in the directory %OSDStateStorePath%\USMTFiles\.

These are all the steps I need, to do an Offline Capture with Hard-Links. Now let’s take a closer look at the batch-file which does most of the work.

REM ============================================================
REM VARIABLE -1- OSDStateStorePath = %1
REM VARIABLE -2- WindowsPartition = %2
REM VARIABLE -3- Architecture = %3
REM ============================================================

SET USMT_WORKING_DIR=%1\USMTFiles\%3

REM ============================================================
REM RUN Scanstate
REM ============================================================

“%1\USMTFiles\%3\Scanstate.exe” “%1” /o /hardlink /nocompress /i:%1\USMTFiles\%3\miguser.xml i:%1\USMTFiles\%3\migapp.xml /offilinewindir:%2\Windows\TEMP\SMSTSLog\Scanstate.log /v:5 /progress:%2\Windows\TEMP\SMSTSLog\Scanstateprogress.log /c /efs:hardlink

REM ============================================================
REM EXIT Errorlevel
REM ============================================================

EXIT /b %errorlevel%

In this batch-file I am using three variables which are being set during the Task Sequence (and explained in the batch). The Scanstate command line, that is being used, is completely based on the standard syntax. Under here I created a table in which can be seen what every part of my command line stands for.

Command What does it do…
%1\USMTFiles\%3\scanstate.exe Scanstate.exe
%1 Specifies the folder where files and settings will be saved
/o Enables the possibility to overwrite existing data in de Migration Store.
/hardlink Enables the creation of a Hard-Link Migration Store
/nocompress Disables the compression of data.
/i:%1\USMTFiles\%3\miguser.xml Specifies an .xml file that contains rules that define what user, application or system state to migrate
/i:%1\USMTFiles\%3\migapp.xml Specifies an .xml file that contains rules that define what user, application or system state to migrate
/offlinewindir:%2\windows Specifies the Offline Windows directory that the ScanState command gathers user state from
/l:%2\windows\TEMP\SMSTSLog\Scanstate.log Specifies the location and name of the ScanState log
/v:5 Enables the verbose output in the ScanState log file
/progress:%2\windows\TEMP\SMSTSLog\Scanstateprogress.log Specifies the location and name of the ScanState progress log
/c Enables the ScanState command to continue to run, even if non-fatal errors occur
/efs:hardlink Enables the migration of encrypted files by creating a Hard-Link to the EFS file instead of copying it

Restore User Files and Settings

After the User Files and Settings have been captured, they need to be restored again to the new OS. For this I use the default Restore User Files and Settings step from ConfigMgr 2007 and the variable OSDMigrateAdditionalRestoreOptions. This variable is filled with the options /nocompress /hardlink, see for this also my previous post. This default step will restore everything that is found in the State Store Location.

With the red arrow in the picture I point at another important step (which is often forgotten). This step is the Cleanup User State Location, a Run Command Line step from ConfigMgr 2007. This step cleans up the State Store Location by running the command line RunUSMTutils.BAT %OSDStateStorePath% %Architecture% from the USMT 4.0 Package.

Now let’s take a look at the batch-file which does most of the work here.

REM ============================================================
REM VARIABLE -1- OSDStateStorePath = %1
REM VARIABLE -2- Architecture = %2
REM ============================================================

REM ============================================================
REM RUN USMTUtils
REM ============================================================

echo y| “%~dp0%2\usmtutils.exe” /rd “%1”

REM ============================================================
REM EXIT Errorlevel
REM ============================================================

EXIT /b %errorlevel%

The important part in here is the echo y|, because only running umstutils.exe /rd will ask for a confirmation on the action. I have to say that I really missed this in the documentation! So just use echo y| to pipeline a positive response on the confirmation, asked by the usmtutils.

Note: The RunScanState.BAT and the RunUSMTutils.BAT have to be placed inside the USMT Package at the same level as the amd64- and the x86-folder.

More information about the Scanstate Syntax:
http://technet.microsoft.com/en-us/library/dd560781(WS.10).aspx
More information about the LoadState Syntax:
http://technet.microsoft.com/en-us/library/dd560804(WS.10).aspx
More information about the USMTUtils Syntax: http://technet.microsoft.com/en-us/library/dd560799(WS.10).aspx

Add ConfigMgr Console to (Desktop-)Right-Click Menu

Sometimes you get a request that is just fun when it works. This time that was whether it was possible to add a shortcut for the ConfigMgr Console to the (Desktop-)Right-Click Menu. Well… I can tell you that it is possible!

The easiest way to make this happen is to create a reg-file that will add an extra option for the ConfigMgr Console to the Right-Click Menu. To create a working reg-file for this situation, there are two locations that you need to know:

  1. The Icon Location: (In my case) C:\Program Files (x86)\Microsoft Configuration Manager Console\AdminUI\bin\SmsSnapInResources.dll
  2. The ConfigMgr Console Location: (In my case) C:\Program Files (x86)\Microsoft Configuration Manager Console\AdminUI\bin\adminconsole.msc

These two locations have to be used in the reg-file mentioned above. With these locations the reg-file that you need will look like this (also worth mentioning, it is not necessary to add the icon):
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\CMC]
@=”ConfigMgr Console”
“Icon”=”C:\\Program Files (x86)\\Microsoft Configuration Manager Console\\AdminUI\\bin\\SmsSnapInResources.dll”,-103
“Position”=”Bottom”

[HKEY_CLASSES_ROOT\Directory\Background\shell\CMC\command]
@=”C:\\Program Files (x86)\\Microsoft Configuration Manager Console\\AdminUI\\bin\\adminconsole.msc”

What does the user see when running an OS Deployment with “Modena”?

As a follow-up on my previous post about User Driven OS Deployment with “Modena”, I will show in this post what a user sees during a OS Deployment with Modena. Why am I writing this post? Well… because I got a lot of questions about this and for some reason not everybody has the time (like I still have) to test this their self…

Under here are all the different pages the user can see during the OSD Wizard. All these pages are editable with the ModenaDesigner. For how to change these pages, take a look at the links provided in my previous post.

Welcome Page 01_Modena Preflight Page 02_Modena
Computer Page 03_Modena User Config 04_Modena
Language Page 05_Modena Volume Page 06_Modena
Application Page 07_Modena Summary Page 08_Modena

During the actual installation and configuration of the computer, Modena also takes care of a better insight in what is happening. Under here are the different states that Modena shows during the installation.

System Backup    09_Modena_Background Install Image           10_Modena_Background
Windows Setup 11_Modena_Background Install Applications 12_Modena_Background
Restore Backup 13_Modena_Background Deployment Complete 14_Modena_End

User Driven OS Deployment with “Modena”

It took a while but this weekend it was finally time for some testing of, what’s code-named, “Modena”. Modena is a tool, developed by Microsoft IT, that enables the ability of an End-User Experience by using a powerful OSD Wizard.

ModWelcWhen you are searching for a way to get your users “involved” in an OS Deployment, then I would recommend you to take a look at Modena. The OSD Wizard of Modena (see picture) can be changed in a lot of different way’s. As an administrator you can select which settings can be done by a user and which are pre-set. By these customizable settings you can think about things like computername, domain, local administrators, language, time, image, backup (via USMT 4.0) and the applications. The nice thing about the applications is that you can first do a scan of the computer to see what applications are currently installed. Based on the results of this scan, applications can get pre-selected (or not). Besides al of these settings Modena also provides a better insight in what is happening with the computer during the Task Sequence.

To make a long story short, take a look at Microsoft Connect to get Modena: 
>> https://connect.microsoft.com/site868 <<

Also take a look at the following links for setting up Modena…
1. Getting started with Modena – Step 1 – Installing Modena: http://blogs.technet.com/osd/archive/2009/12/15/getting-started-with-modena-step-1-installing-modena-rc2.aspx
2. Getting started with Modena – Step 2 – Create OSD Packages: http://blogs.technet.com/osd/archive/2009/12/16/getting-started-with-modena-step-2-create-osd-packages.aspx
3. Getting started with Modena – Step 3 – Importing Task Sequences: http://blogs.technet.com/osd/archive/2009/12/17/getting-started-with-modena-step-3-importing-task-sequence.aspx
4. Getting started with Modena – Step 4 –Introduction to OSD Designer: http://blogs.technet.com/osd/archive/2009/12/17/getting-started-with-modena-step-4-introduction-to-osd-designer.aspx
5. Getting started with Modena – Step 5 – Using Modena Online Services: http://blogs.technet.com/osd/archive/2009/12/18/getting-started-with-modena-step-5-using-modena-online-services.aspx
6. Getting started with Modena – Step 6 – Setting Up Applications: http://blogs.technet.com/osd/archive/2009/12/28/getting-started-with-modena-step-6-setting-up-applications.aspx

…and take a look at these links for the story behind Modena.
General Cravings of OSD: http://blogs.technet.com/osd/
Windows 7 Deployment Guide: http://technet.microsoft.com/en-us/magazine/ee676738.aspx

Installing/ Deploying Windows Live Writer with ConfigMgr 2007

First of all, this post is not (meant as) a Step-By-Step. I will just show the big picture. As I like to install everything with ConfigMgr 2007, I also wanted to install my blogging tool with ConfigMgr 2007. My blogging tool is Windows Live Writer, nice, simple and easy. As it was kind of hard to find information about which command-line to use, the command-line will be part of this post.

To install/ deploy Windows Live Writer with ConfigMgr 2007, simply follow the next 4 steps:

  1. Download the full installer of Windows Live (WLSetup) here: http://download.live.com/*.
  2. Create a new Package in ConfigMgr 2007 (Site Database > Computer Management > Software Distribution > Packages) and point the Data Source to the location where you keep the installer.
  3. Create a new Program with the newly created package and use the command-line: wlsetup-all.exe /AppSelect:Writer /quiet. This command-line will only install the Windows Live Writer and is based on this article: http://technet.microsoft.com/en-us/library/dd550747.aspx.
  4. Create a new Advertisement of the newly created program and it is all ready to install/ deploy!

* Keep in mind that it will first start with downloading the web installer. Cancel this download and press “Try Again”, this time it will start to download the full installer.

The best (free) tools for ConfigMgr 2007!

This time I want to devote a post to some of the best (free) tools for ConfigMgr 2007. These tools can make it a lot easier to manage, troubleshoot and develop you ConfigMgr 2007 environment.

Using Task Sequence Variables to make life a bit easier in ConfigMgr 2007

Sometimes you think you’ve got it all, so you start looking for things to make it better and easier. Well…, to be honest I’m not even close to having it all, but I am looking to make things better and easier. This is why I started looking more on using Task Sequence Variables, because they can make life a whole lot easier. In this post I will use a Task Sequence Variable to prevent the need of building two separate Task Sequences.

Let’s start with telling the scenario. I have a Task Sequence that I use for a computer-refresh by using hard-links (take a look at thisprevious post). Now I want to use the same Task Sequence to perform a clean install.TSVariable Of course it’s easy to just say, like in the default Install Task Sequence, that the step of Capture User Files and Settings only has to run when _SMSTSInWinPE equals TRUE. The only problem for me with this is that you have to set the step Restore User Files and Settings to Continue on error. I only want an error when there is really something wrong, not just because the Task Sequence can’t locate a store that doesn’t exist…

This is where the fun starts and where it makes sense to create a Task Sequence Variable. In this scenario the computer-refresh can only be started in FullOS, so when the Task Sequence gets started from WinPE it is not needed/ possible to perform a computer-refresh. This is why the first step in my Task Sequence (red arrow) only creates a Variable when _SMSTSInWinPE equals TRUE. I create here a Variable called CaptureRestoreUserFilesSettings with the value NO. Now I can use this Variable in the rest of the Task Sequence to decide whether or not some steps have to run. The steps Capture User Files and Settings and Restore User Files and Settings (first and third red rectangle) will only run when my Variable CaptureRestoreUserFilesSettings not equals NO. So that’s always except for when the Task Sequence started from WinPE. It’s not necessary to give the Variable a different value when the Task Sequence is running in FullOS, because when the Variable doesn’t exists it can’t equal NO either (nice and cryptic).  The step Partition Disk 0 (second red rectangle) will only run when CaptureRestoreUserFilesSettings equals NO. So that’s only when the Task Sequence is started from WinPE.

This same construction can of course be used in many different ways and scenario’s, all I tried to do is showing an example. To conclude this story, I don’t say that you have to use Task Sequence Variables, but I do say that it can make your life a lot easier.