Category Archives: SCCM
[6-Jul-2018: Updated Script to v 1.2 – New .NET 3.5.1 install command (per Mike Horton @mikeh36)]
After attending MMS one of the items that I put on my “Post-MMS To Do” list was to patch my OS Upgrade package source the proper way. I don’t want to do it manually, nobody does, so I set out to learn exactly how to do it right and script it.
That where Mike Terrill and Johan Arwidmark come in.
How to provide hard statistics on your build sequences.
A while back my boss gave me two goals for our OS deployments; 1) he set a target for 90% successful builds and 2) build times as close to 1 hour as possible. Okay, getting there is one thing, but how do I report on that?
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
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.
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).
|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.]
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.
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.
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.
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:
And now I’m off and running.
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.