How to apply the default install.wim of Windows 7 to C:\ with ConfigMgr 2012

It’s already known that the default install.wim of Windows 8, by default, applies to C:\, but wouldn’t it be great if there was this same functionality for Windows 7? That way there is no need for a Build and Capture task sequence anymore to maintain a thin image. Applying the default image to C:\ in combination with offline servicing of updates will do the trick. Well… I’ve got good news! In this post I will show how to apply the default install.wim of Windows 7 to C:\!

Configuration

TSEdiOSDPreDriLetThe configuration is actually very easy, it’s more about knowing that it exists. ConfigMgr 2012 SP1, which is currently still in BETA, brings a set of new task sequence variables. One of these variables can be used to apply the install.wim to any drive of choice. To configure this, follow the next steps:

  • Open a task sequence, to deploy Windows 7, in the Task Sequence Editor.
  • Add a Set Task Sequence Variable –step anywhere before the Apply Operating System –step.
  • Fill in as Task Sequence Variable OSDPreserveDriveLetter and as Value False.
  • Close the Task Sequence Editor.

Result

By default the install.wim of Windows 7 would have applied to D:\, but by setting OSDPreserveDriveLetter to False it will apply to any drive of choice. Of course I can show this result with a screenshot of an Windows Explorer, but I think, in this case, a look at the SMSTS.log file will show more information of this success.OSDPreDriLet

Share

Migrating to Windows 8 by using hard-links with ConfigMgr 2012

After the release of Windows 8 last week we can already start thinking about migrating. When I’m thinking about migrations I always like the computer-refresh scenario’s where we can use hard-links. In this post I will show a basic task sequence to capture user files and settings, either offline or online, with help of hard-links. I already showed the basics of that in an earlier post last year when ConfigMgr 2012 was still in Beta. Since then the Wizard screens have not changed so I will not show that again, but  I will show some more information about what happens.

Prerequisites

To support migrating to Windows 8 we need ConfigMgr 2012 SP1 (which is currently still CTP) in place with at least the following packages:

  • Boot Image package, of at least version 6.2.xxxx
  • ConfigMgr client package
  • USMT 5.0 package, of at least version 6.2.xxxx
  • Image package, which can be the default install.wim of Windows 8

Basic steps

To create a task sequence that can migrate to Windows 8 we can use the following steps (for screenshot see my earlier post of last year):

  • Right-click the Task Sequence node and select Create Task Sequence.
  • On the Create a New Task Sequence page, select Install an existing image package and click Next.
  • On the Task Sequence Information page, fill in a Task sequence name, Browse for the Boot image and click Next.
  • On the Install Windows page, browse for the Image package, uncheck Partition and format the target computer before installing the operating system, (optional) uncheck Configure task sequence for use with Bitlocker, (optional) fill in a Product key, (optional) select Always use the same administrator password and click Next.
  • On the Configure Network page, (optional) select Join a domain, Browse for the Domain and Domain OU, Set an Account and click Next.
  • On the Install ConfigMgr page, Browse for the ConfigMgr client Package, (optional) fill in the Installation Properties and click Next.
  • On the State Migration page, select Capture user settings, Browse for the USMT Package, select Save user settings locally, (optional) uncheck Capture network settings, (optional) uncheck Capture Microsoft Windows settings and click Next.
  • On the Install Updates page, click Next.
  • On the Install Applications page, click Next.
  • On the Summary page, click Next.
  • On the Progress page, just wait…
  • On the Confirmation page, click Close.

Advanced steps

The basic steps will create a task sequence that will only perform it’s capture while the task sequence is running online (Full OS). Also notice that the task sequence already sets the ‘extra’ task sequence variable OSDStateStorePath to the value %_SMSTSUserStatePath%. But when we also want to be able to perform an capture while the task sequence is running offline (WinPE), we need to make the following small adjustments.

  • TSEd_RemConSelect the Capture Files and Settings Group, go to the Options tab and Remove the Conditions (or remove the whole top Group).

    Explanation: This is necessary to make it possible to also capture user files and settings in WinPE.

  • Select the Capture User Files and Settings Step (optional: change the name), go to the Options tab and add the condition of _SMSTSInWinPE equals FALSE.

    TSEd_FullOSExplanation: This is necessary to make this step only run in FullOS. This step will run the following scanstate command: C:\_SMSTaskSequence\Packages\<ID>\amd64\scanstate.exe C:\_SMSTaskSequence\UserState /o /localonly /efs:copyraw /c /hardlink /nocompress /l:C:\Windows\CCM\Logs\SMSTSLog\scanstate.log /progress:C:\Windows\CCM\Logs\SMSTSLog\scanstateprogress.log /i:C:\_SMSTaskSequence\Packages\<ID>\amd64\migdocs.xml /i:C:\_SMSTaskSequence\Packages\<ID>\amd64\migapp.xml

  • TSEd_WinPEAdd an extra Capture User State Step (optional: change the name), select Copy by using file system access and check Continue if some files cannot be captured, Capture locally by using links instead of copying files and Capture in off-line mode (Windows PE only). Now go to the Options tab and add the condition of _SMSTSInWinPE equals TRUE.

    Explanation: This is necessary to make this step only run in WinPE.This step will run the following scanstate command: C:\_SMSTaskSequence\Packages\<ID>\amd64\scanstate.exe C:\_SMSTaskSequence\UserState /o /localonly /efs:copyraw /offlineWinDir:C:\WINDOWS /c /hardlink /nocompress /l:X:\WINDOWS\TEMP\SMSTSLog\scanstate.log /progress:X:\WINDOWS\TEMP\SMSTSLog\scanstateprogress.log /i:C:\_SMSTaskSequence\Packages\<ID>\amd64\migdocs.xml /i:C:\_SMSTaskSequence\Packages\<ID>\amd64\migapp.xml

  • TSEd_RestTo complete the overview, I’ll show here the default values of the restore settings. (Optional) Select Restore local computer user profiles and give in a password.

    Explanation: This step will run the following loadstate command: C:\_SMSTaskSequence\Packages\<ID>\amd64\loadstate.exe C:\_SMSTaskSequence\UserState /ue:<computername>\* /c /hardlink /nocompress /l:C:\WINDOWS\CCM\Logs\SMSTSLog\loadstate.log /progress:C:\WINDOWS\CCM\Logs\SMSTSLog\loadstateprogress.log /i:C:\_SMSTaskSequence\Packages\<ID>\amd64\migdocs.xml /i:C:\_SMSTaskSequence\Packages\<ID>\amd64\migapp.xml

I still remember creating all batch files to perform these actions. Now they are possible out of the box!

Result

Now running this task sequence from either Full OS or WinPE will result in something like the example under here. In this example I migrated some files, folders and background. This last one will show as first in the new Windows 8 machine.

Before After
Before After
Share

Installing and enabling Remote Server Administration Tools with ConfigMgr 2007

It took me a while to figure out something that is actually very simple and logical… I couldn’t get the different parts of the Remote Server Administration Tools (RSAT) enabled by command-line on Windows 7 x64… On Windows 7 x86 it’s pretty straight forward, as it can be done with the default DISM commands. But on Windows 7 x64 it is kind of hard to get it to use the correct version of DISM.

ConfigMgrClientThis is all because the ConfigMgr client is 32-bit application and whenever a 32-bit application wants to access %windir%\System32, it will be redirected to %windir%\SysWOW64. I tried everything, even specifying the whole path to the DISM executable, but it all didn’t matter… Until I finally figured out that there is just something called SysNative. WOW64 recognizes SysNative as a special alias used to indicate that the file system should not redirect the access. As it was kind of hard to find this information I will post my solution here to install RSAT and enable some features. This is the batch-file I ended up:

REM ======================================================
REM SET DISM Directory based on OS Architecture
REM SET RSAT Version based on OS Architecture
REM ======================================================

IF EXIST %WINDIR%\SysNative\dism.exe (
    set DISM=%WINDIR%\SysNative\dism.exe
    set RSAT=amd64fre_GRMRSATX_MSU
) ELSE (
    set DISM=%WINDIR%\System32\dism.exe
    set RSAT=x86fre_GRMRSAT_MSU
)

REM ======================================================
REM RUN WUSA to install RSAT
REM ======================================================
   
wusa.exe %~dp0%RSAT%.msu /quiet

REM ======================================================
REM RUN DISM to enable features
REM ======================================================

%DISM% /online /enable-feature /featurename:RemoteServerAdministrationTools
/featurename:RemoteServerAdministrationTools-Roles
/featurename:RemoteServerAdministrationTools-Roles-HyperV /quiet

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

EXIT /b %errorlevel%

The first part of the batch-file set the variables based on the architecture and the second part will do the actual installing and enabling (in the example it will enable the Hyper-V manager). To conclude this story, follow the next five steps to install and enable Remote Server Administration Tools with ConfigMgr 2007:

  1. Download the full installer(s) of Remote Server Administration Tools (amd64fre_GRMRSATX_MSU.msu and/ or x86fre_GRMRSAT_MSU.msu) here: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=7d2f6ad7-656b-4313-a005-4e344e43997d&displaylang=en.
  2. Copy the code above and create a batch-file.
  3. Create a new Package in ConfigMgr 2007 (Site Database > Computer Management > Software Distribution > Packages) and point the Data Source to the location where the installer(s) and the batch-file are.
  4. Create a new Program with the newly created package and use as command-line the name of the, just created, batch file.
  5. Create a new Advertisement of the newly created program and it is all ready to install and enable!

More information about File System Redirector: http://msdn.microsoft.com/en-us/library/aa384187(VS.85).aspx

Share

ConfigMgr 2007, Updating a Windows 7 Image with the latest Software Updates – A less conventional, but very effective way

Inspired by a previous post about the option to Schedule Updates for an already existing Operating System Image in ConfigMgr vNext, I created a little batch-file to do something similar without the GUI of ConfigMgr vNext. Of course, I do know that the ‘best practice’ for ConfigMgr 2007 is to just run another Build and Capture Task Sequence, but in some cases this can come in handy. One thing is for sure, this updates a Windows 7 Image within fifteen minutes.

Background Story

Now lets start with a little background story, to explain why in some situations there might be the need for this batch-file. Every month there are new Software Updates released by Microsoft. During the Software Updates Deployment the, for the organization needed, updates get selected and downloaded to the Software Update Package. In other words, the, for the organization needed, updates are already downloaded and available. To update the existing image with the newest updates, the ‘best practice’ is to deploy the newest updates and run another Build and Capture Task Sequence. Sometimes, especially at smaller companies, this is considered as a lot of extra work/ effort and because of that, it is often forgotten. Even though an up-to-date Windows 7 Image deploys a lot faster then a Windows 7 Image that still has to install a lot of Software Updates. So to help out the people that are just to busy (you can actually fill in anything you want, I just like to think that they are to busy), I created this batch-file that will do everything.PckgSrcLctn

Input Locations

Well… after this all being said, lets take a look at the two most important inputs that we need for this batch-file:

  1. The current setup of the batch-file assumes that there is a  Software Updates Package for all Windows 7 (x86 and x64) updates. The Package source of this package is used as input for this batch-file. This location can be found in the Properties of the Software Updates Package (see the first picture) in the ConfigMgr Console. By doing this, it is not needed to re-download the Software Updates, it’s only needed to gather the Software Updates together from all the subdirectories.
  2. Another important input for the batch-file is the location of the Windows 7 Image, which has to be updated. For this the Image path can be used, which can be found in the Properties of the Operating System Image (see the second picture) in the ConfigMgr Console. Don’t forget that it is still needed to update the Distribution Point(s) after the batch-file has run!

Batch-fileImgPth

As we know now a little background story and we know where the most important parts of the input comes from, lets take a look at the batch-file that will make it happen.

REM =========================================
REM ARGUMENT -1- TempPartition = %1
REM ARGUMENT -2- UpdatesPackageSource = %2
REM ARGUMENT -3- Architecture = %3
REM ARGUMENT -4- WimFileAndLocation = %4
REM ARGUMENT -5- FromDate MM-DD-YYYY = %5
REM ===================================================

REM ===================================================
REM Make (temporary) directories for updates and mounting
REM ===================================================

MD %1\TEMP\Mount
MD %1\TEMP\Updates

REM ======================================================
REM Copy new updates of %3 -architecture and of > %5 -date to temporary directory
REM ======================================================

FOR /R %2 %%P IN (*%3.cab) DO (
XCOPY "%%P" %1\TEMP\Updates /H /C /Y /D:%5
)

REM ======================================================
REM Mount image, add updates, commit and unmount
REM ======================================================

DISM /Mount-Wim /WimFile:%4 /Index:1 /MountDir:%1\TEMP\Mount /LogPath:%1\DISM.Log
DISM /Image:%1\TEMP\Mount /Add-Package /PackagePath:%1\TEMP\Updates /LogPath:%1\DISM.log
DISM /Unmount-Wim /MountDir:%1\TEMP\Mount /Commit /LogPath:%1\DISM.log

REM ======================================================
REM Remove (temporary) directories again
REM ======================================================

RD %1\TEMP /S /Q

The biggest part will explain itself, with or without the comments, but it also shows here that I am using five variables. This is to make it easier adjustable for different Windows 7 Images, Package source location, architectures and dates. These variables are used in the following way:

  1. %1 – Presents the volume that can be used to store the temporary folders.
  2. %2 – Presents the full location of the Software Updates Package source.
  3. %3 – Presents the architecture of the Operating System.
  4. %4 – Presents the full location of the Operating System Image, including the name of it.
  5. %5 – Presents the date of the oldest Software Updates that have to be added (Format: MM-DD-YYYY).

Now lets end this post with how to run this batch-file:
[NameOfBatchFile].BAT [DriveLetter:] [SoftwareUpdatesPackageSourceLocation] [Architecture] [WIMLocation\WIMName] [DateLatestNeededUpdates]

Share

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

Share

Error trying to open the ConfigMgr Console

Last week I had some problems with opening the ConfigMgr Console. The weird part was that the error only appeared for one user. This was the error I got: MMC cannot open the file <driver>:\Program Files (x86)\Microsoft Configuration Manager\AdminUI\bin\adminconsole.msc. This may be because the file does not excist, is not an MMC console, or was created by a later version of MMC. This may also be because you do not have sufficient rights to the file.

Then I figured that, because the ConfigMgr Console is a MMC snap-in, it creates a version in the user profile. Because I use Windows 7 and Windows Server 2008 R2 it is located at: <Drive>:\Users\<Username>\AppData\Roaming\Microsoft\MMC\adminconsole.msc.

So after deleting the version from the profile and restarting the ConfigMgr Console it all worked like a charm.

Share

Configuration Manager 2007 SP2 RC has been released

Today a little newsflash from the System Center Configuration Manager team.

The System Center Configuration Manager team would like to announce that the following has been released and available for download: Configuration Manager 2007 Service Pack 2 Release Candidate.

This is the official Release Candidate build for Configuration Manager 2007 SP2.

New features:

  • Refer to the SP2 Overview article posted on the primary Configuration Manager MSConnect site for all the new features and new supported configurations.
  • Hotfixes included in SP2 article can be found on the primary Configuration Manager MSConnect page.
  • Deployment guides for BranchCache and the new AMT features are available in the download section.
  • The new OpsMgr07 R2 ConfigMgr07 Management Pack can also be downloaded, this supports 64bit OpsMgr client agents.
  • Please review the Release Notes before performing any installation and upgrade.

Feedback and Support:

  • All registered Sp2 Open Beta users can submit bugs, design change requests (DCR’s), and other feedback. See the help link on the ConfigMgr MSConnect homepage for more instructions.
  • Newsgroups are a great way to post questions and receive general support question answers.

If you experience any issues with the download or the MSConnect site please contact, sccmtap@microsoft.com

Regards,
The Configuration Manager Customer Team

Share

App-V future ready???

Let’s start my first post about App-V being future ready (or not). When I was trying to deploy an App-V Sequence on a Windows 7 Client (with App-V Client 4.5 CU1) the application didn’t seem to work… At first I thouhgt it was just me, so I recreated everything from scratch, but still no luck. The next step was to search on Google and here I found a very helpfull link: http://www.softgridblog.com/?p=126.

The solution is this: During the proces of making a sequence with the App-V Sequencer you get to tab Deployment. In this tab you can specify the Operating System (OS) on which this sequence can run. Before the App-V 4.5 CU1 version you didn’t have the option to select Windows 7. This means that the sequence will not be able to run on Windows 7. The sequence can only run on the OS that is selected on the Deployment tab (it is possible to change the OS directly in the OSD-file, for this you have to add an extra line like: <OS VALUE=”Win7″>).

After all this you can say that App-V is future ready, because by adding Windows 7 to the Deployment tab it was possible to deploy the sequence on Windows 7. Just a shame that you have to make changes to already excisting sequences…

Share