Category Archives: SCCM

Enabling BranchCache with Configuration Manager

Last week I wrote a post about setting up Windows PE Peer Caching.  One of the limitations of that feature is that it only works within the Windows PE portion of a build task sequence.  Once in the full OS or for deployments to established clients Peer Caching is unavailable.

Phil Wilcock, co-founder of 2Pint Software, commented and pointed out that you could use Peer Caching for getting the OS deployed and then use BranchCache within the full OS.

Now, I’ll be honest here.  I understand the “textbook” when it comes to BranchCache but I had never actually set it up.  It always seemed to fall under the, “One day I’m going to have to give that a try.”  Well that day is today.  This post will get BranchCache working with Configuration Manager.  Once that is done my next step will be getting 2Pint’s BranchCache for OSD up and running.

“Unless you try to do something beyond what you have already mastered, you will never grow.”

-Ralph Waldo Emerson

Read the rest of this entry

ConfigMgr Current Branch–Windows PE Peer Caching

What is Windows PE Peer Caching?

Windows PE Peer Caching was a feature added in Configuration Manager Technical Preview 2.  During an OS deployment, it allows a machine being built to pull content from other systems on the local subnet (its peers) as opposed to going across a potentially slow WAN connection.  It is quite simply a peer-to-peer network of content providers.  This is similar functionality to 1E’s NomadBranch and 2Pint’s BranchCache for OSD Toolkit.

Read the rest of this entry

Creating Your Own Personal Hydration Solution – Part 4: Configuration Manager Infrastructure

Part 0 Introduction
Part 1 Setting Up
Part 2 First VM – Windows Router
Part 3 Domain Controller
Part 4 Configuration Manager Infrastructure

Configuration Manager 1511

After completing the first three parts of this series you would have a virtual lab with 4 separate network segments all connected to and routed through a Windows 2012 R2 server (RTR01) acting as the router. This server will also provide Internet access to any virtual machines that are connected to the 4 network segments.  You also would have an Active Directory domain controller (DC01) that provides DHCP and DNS services to the lab.

In Part 4 we are going to build out a Configuration Manager 1511 infrastructure.  This will include a Primary site server (CM16) and 2 Distribution Points (DP16a & DP16b).

Read the rest of this entry

Creating Your Own Personal Hydration Solution – Part 1: Setting Up

Part 0 Introduction
Part 1 Setting Up
Part 2 First VM – Windows Router
Part 3 Domain Controller
Part 4 Configuration  Manager Infrastructure

In this first installment we’ll work on getting the foundation set for building up the lab.  We’ll configure the virtual networks, the host networking and get our MDT environment installed and configured.  We are going to use a number of tricks that I’ve learned from others.

[This is going to be a long one.]

Read the rest of this entry

Creating Your Own Personal Hydration Solution: Introduction

Setting up a lab can be a pretty time consuming project.  A number of people, myself included, have created various hydration kits in an attempt to make it easier.  One thing that they many have in common is that they use the Microsoft Deployment Toolkit (MDT) to generate a large build ISO to be used for building each virtual machine.

Using an MDT build ISO has both advantages and disadvantages.  It is portable.  It is simple. But it takes massive amounts of disk space and changes are very time consuming.

Read the rest of this entry

PowerShell – Archive all Task Sequences to XML with Index

We’ve amassed a very large number of task sequences since migrating to Configuration Manager 2012 and it got me thinking about ways to archive off older sequences so that we can clean house.  So I came up with this script.

The script will first collect all of the task sequences in your site.  Next it will enumerate through them, write the sequence to an XML named after the task sequence ID and finally create a CSV index of the TSID, task sequence name, the last modified date of the sequence and when the sequence was backed up.

Read the rest of this entry

SCCM 2012 Client Install Fails on Windows 10 Build 10061 OS Deployment

Ran into a problem deploying build 10061 using SCCM 2012 R2.  It would get as far as the standard “Setup Windows and ConfigMgr” action, reboot into the full OS and fail to continue the OSD task sequence.  My test machine would join the domain and I could log in, but it was as if it just got bored and gave up on running the rest of the task sequence.

I would open up Control Panel and there would not be a Configuration Manager applet.  The client folder (C:\Windows\CCM) didn’t exist either.

So, I checked the CCMSETUP.log file and found that the client was failing to install.CCMSETUPlogClip

Did some searching and ran across this posting by Jörgen Nilsson.  This was my exact problem.

The workaround is to skip the Windows Update Agent installation.  So in my task sequence I added an ” /skipprereq:windowsupdateagent30-x64.exe” to the Installation Properties:CM12ClientInstall

And now I’m off and running.

Upgrade Failure: Windows 10 10049 Using SCCM 2012 R2

I’ve been working on integrating Windows 10 into our environment and ran across a couple of issues learning opportunities while doing so.

Upgrading from 9926 to 10049

First off I hit a snag attempting to upgrade my test machines from build 9926 to build 10049.  The SCCM Team published a blog article back in October of last year on how to use a task sequence to upgrade a client to Windows 10.  You can find the article here.   A couple of weeks ago I had the opportunity to work with Paul Winstanley (SCCMentor and WMUG author) on a live blog he was writing on upgrading from one build to another using this method.  In the lab environment it worked wonderfully, but when I tried it outside of the lab it failed every time in my environment.

Now, your first question might be along the lines of, “Why are you upgrading builds like that?”  That is a good question.  I cannot use Windows Update to upgrade my machines as new builds come out because the company I work for uses a combination of Group Policy and SCCM client policies to block access to WU and use WSUS/SCCM as the source for all of our updates.  So I have to upgrade builds outside of the native process, hence using the task sequence in SCCM to perform the upgrade.

Read the rest of this entry

SCCM 2012 R2 – PowerShell Export-CMTaskSequence Fails (Broken by CU1)

This was an old problem that I first ran into last Spring and I gave up after getting nowhere.  I had forgotten all about it until this morning when a friend and fellow SCCM warrior Paul Winstanley wrote and asked me about it as he was getting the same failure.  (Check out his writings here and here.)

First, some background…

Back in May 2014 I was having problems getting the Export-CMDriverPackage and Export-CMTaskSequence PowerShell cmdlets working.  At the time I was looking for a way to easily move content from our development site to our production site.

Read the rest of this entry

OSD Migration – Windows 10 9926 to 10041 using SCCM 2012 R2

Last week ConfigMgr blogger and Twitter friend Paul Winstanley ran a live blog detailing the process of using SCCM 2012 to upgrade an existing Windows 10 machine from one build (build 9926) to the next (build 10041).

Paul is a number of time zones ahead of me so he had a good head start when I tuned in Tuesday morning.  We both ran into a bit of a stumbling block when our upgrades failed.


While Paul ran into this error upgrading 9926 to 10041, I received the same error attempting to upgrade Windows 8.1 to Windows 10 (9926).

In both of our cases the error was triggered by a mismatch of our original OS with the intended OS we were trying to upgrade to.  Specifically in my case I was starting with the evaluation version of Windows 8.1 from the TechNet Evaluation Center, so the SKU of my Windows 8.1 machine was “EnterpriseEval” while the Windows 10 SKU was “Enterprise“.  This mismatch triggered the error.

While I was troubleshooting the failure I started to document the process of setting this all up in my lab and I decided to share it for others who might be interested in giving this a try.

Read the rest of this entry