using System Center 2012 Configuration Manager – Part 13. Deploying Windows 8 X64 with custom Start screen

In Part 1 of this series we created our new LAB, we got the System Center 2012 Configuration Manager ISO and extracted it, then copied it to our Active Directory server. We then created the System Management container in AD, delegated permissions to the container, extended the Schema for Configuration Manager. We then opened TCP ports 1433 and 4022 for SQL replication between sites, installed some prerequisites like .NET Framework 4.0, added some features and then downloaded and installed SQL Server 2008 R2 SP1 CU6. We then configured SQL Server using SQL Server Management Studio for security and memory configurations prior to running the Configuration Manager 2012 setup to assess server readiness. Finally we installed a central administration site (CAS).  In Part 2 we setup our Primary server with SQL Server 2008 R2 SP1 CU6. We then installed Configuration Manager 2012 on our primary server (P01) and verified that it was replicating to our central administration site (CAS) server. Then we configured Discovery methods for our Hierarchy and then configure Boundaries and Boundary Groups.

 

In Part 3 we configured Discovery methods and configured boundaries and created a boundary group, we then configured them for Automatic Site Assignment and Content Location. In Part 4 we added the Application Catalog roles to our Hierarchy. We then configured Custom Client Device Settings and then deployed those settings to the All Systems collection on site P01. After that we created Custom Client User Settings and deployed them to the All Users collection in order to allow users to define their own User and Device affinity settings. In Part 5 we installed the WSUS server role (it is required for the Software Update Point role). We then installed the Software Update Point role on our CAS and Primary servers and we configured the SUP to support ConfigMgr Client Agent deployment which is a recommended Best Practice method of deploying the Configuration Manager Client Agent.

 

In Part 6 we prepared our server for the Endpoint Protection Point role, and installed that role before configuring custom client device settings and custom antimalware policies. We then deployed those custom client device settings and custom antimalware policies to our newly created Endpoint Protection collections. In Part 7 we added operating system deployment ability to our hierarchy by adding Windows 7 X64. We used the Build and Capture process to capture a WIM image which we can later deploy to targeted computers using network boot (PXE). PXE boot requires specific settings on our distribution points and the boot images used to deliver the operating system WIM images were therefore also enabled for PXE support.

In Part 8 we added Applications to our Software Library and configured the requirements in the Deployment Type to add new abilities to the application delivery process. We monitored the approval process of our applications and saw how requirements can influence whether an application is installed or not and we noted the difference between deploying to Users versus Devices. Now we will take a look at how Automatic Deployment Rules can be used to automate the deployment of windows updates on Patch Tuesday using a recurring schedule to patch your infrastructure using Software Updates.

In Part 9 we created some folders and collections using a PowerShell script to make targeting of Windows Updates easier, we then performed a full synchronization of our Software Update Point before creating an Automatic Deployment Rule (ADR) for Windows 7 monthly updates for Patch Tuesday.  In Part 10 we monitored our previously created ADR and monitored the downloading and deployment of those updates both to the distribution points and finally to our Windows 7 client computers. We reviewed the process in fine detail in order to understand the sequence of events when an ADR is run on a schedule.

 

In Part 11 we upgraded our Hierarchy to System Center 2012 Configuration Manager Service Pack 1. In Part 12 we used the new Build and Capture process in Configuration Manager 2012 Service Pack 1, to capture a master image of Windows 8 Enterprise with the .NET 3.5 feature pre-installed, in addition we did most of it using Powershell cmdlet’s which are now part of Configuration Manager, now we will deploy that captured image.

 

Tip: This is a long post, give yourself plenty of time to go through it all, it’s worth it.

 

Introduction

 

Having a captured image (master image with FAT applications such as Microsoft Office 2013, this image would typically be captured with as many Windows updates that are available at that time) is essential for this part of the series. We use that captured image to save time in Deploying new computers with Windows 8, the end result is quicker deployments (less time waiting for Office to install, less time waiting for Windows updates to install), and a predictable, automated, professional, Enterprise ready experience for end users as they will have a clean Start screen with only the ‘approved’ applications for your organization present.

 

Step 1. Design your Windows 8 Start Screen [Optional]

Perform the following on the W81 virtual machine as Administrator

 

At the end of Part 12, we were left with a newly installed virtual machine with Windows 8 Enterprise joined to a workgroup, this installation had some windows updates installed, some applications and of course .NET 3.5 installed, we can still use that virtual machine to create a special file used later in our deploy process, however this involves some manual steps.

 

Login to our Build and Capture machine (W81) as administrator,

 

start screen before customization.png

 

using your preferences, remove tiles that you don’t want to appear in your corporate image by right clicking and choosing the appropriate action, for example you can remove games by choosing Unpin from start to remove it from the Start Screen or Uninstall to uninstall it altogether.

 

choose uninstall.png

 

Once you’ve unpinned (or uninstalled) some applications, your start screen will look something like this

 

unpinned apps.png

 

Now you want to add your Enterprise apps, if they don’t appear as tiles already, choose right click and select All Apps

 

all apps.png

 

all your apps appear, select the ones you want to appear by right clicking the tile and choose Pin to start

 

pin to start.png

 

keep on doing this until you’ve added the apps you want in your start screen

 

newly designed Windows 8 start screen.png

 

Next we need to sysprep this image in order to generate the AppsFolderLayout.bin file that we need for the deploy task sequence, open a command prompt and browse to C:\Windows\System32\Sysprep and run sysprep.exe, choose Enter System Out-Of-Box Experience (OOBE), enable Generalize like in the screenshot and select Shutdown.

 

sysprep options.png

 

once sysprep has run it will power off the computer.

 

vm powered off.png

 

Next we will PXE boot this virtual machine to the PXE password prompt, we do this as we are not interested in reinstalling or recapturing this image, in fact we only want one file from the computer, this file will get overwritten (and be removed) if we let the computer boot into sysprep (with the Generalize option), so booting to the network (PXE) will allow us to get to the file. PXE boot the computer and when the PXE password prompt appears press F8 to open a command prompt, then browse to the drive letter that holds windows (probably D:\) and to the following path:-

 

D:\Users\Administrator\Appdata\Local\Microsoft\Windows

 

in there you should see a file called appsFolderLayout.bin

 

AppsFolderLayout bin.png

 

copy that file somewhere safe like to a network share or USB key, I use the command below to connect to my CAS server’s default D:\ drive admin share

 

net use h: \\cas\d$

it may prompt for credentials, enter credentials that have the adequate permissions and then copy the file to the share

 

copy the file to your CAS or some other network share.png

 

Step 2. Create the AppsFolderLayout package and distribute it

Perform the following on the CAS server as SMSadmin

 

Once you have a copy of the AppsFolderLayout.bin file from Step 1, create a new folder in your OS sources called appsfolderlayout and copy the appsfolderlayout.bin file to that folder. We will create a new package in powershell pointing to that source eg: \\cas\sources\os\appsfolderlayout

 

New-CMPackage –Name "AppsFolderLayout" –Version "X64" –Description "Windows 8 Start Screen customizations, © windows-noob.com April 2013." –Language "English" –Manufacturer "Microsoft" –Path "\\cas\sources\os\appsfolderlayout"

 

appsfolderlayout bin package creation in powershell.png

 

Ok now that we’ve created the package using PowerShell, the next job is to distribute it to our distribution point P01, so issue the following command

 

Start-CMContentDistribution –PackageName "AppsfolderLayout" –DistributionPointName "P01.server2008r2.lab.local"

start-cmcontentdistribution for appsfolderlayout package.png

 

Step 3. Distribute the User State Migration Tool for Windows 8 package

Perform the following on the CAS server as SMSadmin

 

Tip: When you upgraded to Service Pack 1, part of the installation used the Windows ADK source files to create a User State Migration Tool package called User State Migration Tool for Windows 8. That mouthful could be easily abbreviated to USMT 5, but either way, the package (which is added as part of the upgrade) is not distributed to any distribution points and that means any task sequence that references it will fail.

 

To resolve this we need to distribute our package by right clicking and choose Distribute Content and continuing through the wizard, or be cool and do it with powershell.

 

The PowerShell cmdlet (Start-CMContentDistribution) is as follows, replace the DistributionPointName with your own distribution point FQDN.

 

 

Start-CMContentDistribution -PackageName "User State Migration Tool for Windows 8" –DistributionPointName "P01.server2008r2.lab.local"

 

start-cmcontentdistribution.png

 

you can once again monitor the distribution using CMTrace by opening the distmgr.log

 

distmgr log.png

 

and verify in the console if you are a traditionalist

 

content is installed.png

 

Step 4. Add the previously captured Operating System Image

Perform the following on the CAS server as SMSadmin

 

In the previous guide we captured our Windows 8 master image and now we need to add that captured image to Configuration Manager and then distribute it to the distribution points.

 

Note: There are hundreds of PowerShell CMDlets which help us automate every day tasks in Configuration Manager, and the Add an Operating System Image step has  a CMDlet for that too, called New-CMOperatingSystemImage. However, it’s not working correctly at present (it creates the image but you will not be able to distribute the image after creation) therefore until further notice, please add the operating system image manually in the console. The Powershell cmdlet is listed below for your reference, but I repeat it is not working at present (you will get the following error when you try to distribute the image via powershell “Warning there is no object that can distribute content”) therefore please add the Operating System image manually.

 

add operating system image.png

 

continue through that wizard, I mark the version info as (Captured) to make things clearer later on…

 

add operating system image completed.png

 

Tip: Here is the corresponding way of doing it using PowerShell *remember, this cmdlet doesn’t work at present*. Issue the following command New-CMOperatingSystemImage as shown below:-

 

New-CMOperatingSystemImage -Name "Windows 8 Enterprise X64" -Path "\\cas\sources\os\captures\windows8x64.wim" -Version "(Captured)"

 

 

Step 5. Distribute the Operating System Image

Perform the following on the CAS server as SMSadmin

 

After you’ve added the operating system image,  we want to distribute the image, we’ll do that with the Start-CMContentDistribution powershell cmdlet.

 

 

Start-CMContentDistribution –OperatingSystemImageName "Windows 8 Enterprise X64" –DistributionPointName "P01.server2008r2.lab.local"

review the distribution of the image to your distribution point via distmgr.log or  via the Configuration Manager console or via PowerShell using the following command, replace the PackageID listed below with the ImageID in your Configuration Manager console or

 

Get-WmiObject –NameSpace Root\SMS\Site_CAS –Class SMS_PackageStatusRootSummarizer –Filter "PackageID='CAS0002b'"

Check for Installed=1 and Targeted=1 in the output, this means that the package is distributed successfully.

 

verify package distribution via powershell.png

 

 

Step 6. Create the Deploy Windows 8 Task Sequence

Perform the following on the CAS server as SMSadmin

 

Now it’s time to create a Deploy Task Sequence, this task sequence will be used to deploy our previously captured image. This task sequence can be as flexible, simple or complex as you want (here is an example of a complex Deploy Windows 8 task sequence using MDT 2012 Update 1 integrated with Configuration Manager).

 

In the Operating System node, select Task Sequences, expand our Windows 8 folder and select the Deploy folder, right click and choose Create Task Sequence.

 

create task sequence.png

 

choose Install an Existing image package

 

Install an Existing image package.png

 

give the task sequence a suitable name and description, choose the X86 boot image

 

Task Sequence Information.png

 

for the Install Windows step, browse to our captured image,

 

captured wim.png

 

you’ll see the Captured wim clearly if you gave it an appropriate name earlier…enter an Administrator password if you want, and select any additional options such as BitLocker

 

install windows.png

 

for the Configure Network step, select join a domain and enter the domain join user account credentials, make sure to Verify the credentials as shown in the screenshot below

 

Configure Network.png

 

continue with the wizard through to completion (next next next, add any additional applications if you wish)

 

Deploy Task Sequence completed.png

 

Step 7. Edit the Task Sequence

Perform the following on the CAS server as SMSadmin

 

In the Configuration Manager console, right click on the Deploy Windows 8 task sequence and choose edit

 

Edit task sequence.png

 

Locate the Partition Disk 0 step, if the primary partition (for the Operating System) is set to a fixed size as in the screenshot below then  you’ll need to change it (otherwise the task sequence will fail on any computer that has a disc smaller than 29GB in size)

 

Here’s the step before the change

 

primary size is 30368MB.png

 

change it to Use a percentage of remaining free space instead (100%)

 

use a percentage of remaining free space.png

 

so that the Format and Partition Disk step now looks like this

 

Format and Partition Disk.png

 

Once done apply your changes and then locate the Apply data image step and disable it in the options tab (it is not needed for our purposes)

 

disable this step.png

 

create a new Run Command Line step after the Apply Operating System image step, rename it to xcopy AppsFolderLayout.bin locally

 

in the run command line step use the following xcopy command to copy our previously saved appsfolderlyout.bin file to the default users profile, this will force our start screen changes on all users that login to this computer

 

 

xcopy ".\*.*" "D:\Users\Default\AppData\Local\Microsoft\Windows" /D /E /C /I /Q /H /R /Y /S

beneath this, select our previously created AppsFolderLayout package as shown in the screenshot below

 

xcopy command.png

 

change the options on this step to only run if D:\Windows exists as per the screenshot below

 

windows on d.png

 

copy the entire step, and then replace all references to D:\ to C:\ in that copied step both on the run command line and options tab (we could use variables to do this in one step by using a checkdriveletter.wsf script but that is beyond the scope of this post)

 

if c windows exists.png

 

Basically what the above two steps do is verify which drive (C: or D: has Windows on it, and copies the appsfolderlayout.bin file to the respective drive letter default users profile

 

 

Next edit the built in Enable BitLocker step and add the following wmi query for root\cimv2 so that it won’t run on Virtual Machines otherwise the task sequence will bomb out on hyperV virtual machines…

 

select * from Win32_ComputerSystem where Model <> "Virtual Machine"

 

 

if All the conditions are true.png

 

Tip: if you want to Add drivers for different hardware based on WMI queries then see Step 2 in the following guide.

 

Step 8. Deploy the Task Sequence

Perform the following on the CAS server as SMSadmin

 

Next we want to deploy our Deploy Windows 8 X64  task sequence to our Deploy Windows 8 collection (if you have not yet created that collection do so now, it should be a device collection with no members).

 

We will use the following PowerShell CMDLet: Start-CMTaskSequenceDeployment

 

 

Start-CMTaskSequenceDeployment –Name "Deploy Windows 8 X64" –CollectionName "Deploy Windows 8" –Comment "© windows-noob.com April 2013" –Deploypurpose "Available"

start-cmtasksequencedeployment.png

 

Next, manually edit the deployment so that it points to Media and PXE clients as per the screenshot below (this is necessary otherwise you won’t see the deployment via PXE boot)

 

edit deployment settings.png

 

or use the modified cmdlet in Cumulative Update 1 which does allow for that switch

 

 

Start-CMTaskSequenceDeployment –TaskSequencePackageId "CAS0002F" –CollectionName "Deploy Windows 8" –Comment "© windows-noob.com April 2013" –Deploypurpose "Available" –MakeAvailableTo "ClientsMediaAndPXE"

 

 

Next, add some computers to the Deploy Windows 8 collection using Queries or Direct Membership either manually or using PowerShell via the following cmdlet (Note: SP1 CU1 or later)

 

 

Import-CMComputerInformation –ComputerName = "W82" –MacAddress= "00:11:22:33:44:55" –CollectionName= "Deploy Windows 8"

 

 

Step 9. Deploy Windows 8 to a computer via PXE

Perform the following on a new computer

 

Now everything is in place to allow us to start Deploying Windows 8, so PXE boot a new computer press F12 when prompted

 

PXE boot new computer.png

 

and select the Deploy Windows 8 X64 task sequence

 

Deploy Windows 8 X64.png

 

off it goes… it will download and then apply the previously captured Windows 8 Operating System

 

Applying operating system.png

 

and Windows gets ready

 

getting ready.png

 

before finalizing settings

 

Finalizing your settings.png

 

After that it will Install Updates (if any are targeted towards that collection) and Install your Applications

 

install your applications.png

and the process is complete, login as a testuser and you will see the Start screen customizations which you did in Step 1. have been applied correctly, cool huh ?

job done.png

and any applications you installed in the Deploy Windows 8 X64 task sequence will also be installed

new application installed on desktop.png

That’s it ! until next time, adios !

cheers, niall.

 

Summary

In this part of the series, you’ve learned how to customize the Windows 8 start screen to suit your organizations needs on a  previously captured image, you’ve learned the  steps required to successfully deploy that customized  image and finally you’ve done most of the work using PowerShell Cmdlets (where available). Congratulations !

Recommended Reading:

This entry was posted in ConfigMgr 2012, Windows 8. Bookmark the permalink.

2 Responses to using System Center 2012 Configuration Manager – Part 13. Deploying Windows 8 X64 with custom Start screen

  1. fabdub says:

    I have tried so many times to use the AppsFolderLayout method but if I do it, it takes over 2-3mins to login for the 1rst time (only) for every different user!

    If I get rid of the AppsFolderLayout file, the login is under a minute.

    Have you ever seen this?

    thanks!

  2. ncbrady says:

    I would imagine that what you are seeing is normal, it’s copying the ‘changes’ to the default user profile to the New profile and this happens only once,

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.