MiSCUG – Using Power BI to Report OS Deployment Stats
On 11 January 2019 I had the privilege to speak at the Michigan System Center Users Group meeting on the topic of using Power BI to report your OSD build stats. This is a companion post to that presentation.
This is an update to my original post ( here ) on how to gather and present statistics on your build sequences. I’ve taken what I’ve learned since that original post and have expanded the process to handle not only an OSD “build” but also a WaaS CompatScan or In-Place Upgrade, or any other Task Sequence.
Nested Task Sequence Mapper
I’ve been looking for a simple way to identify and map out the nested task sequences. This is the first part of a project that I’m working on. The goal of the overall project is to duplicate an entire task sequence “suite” of the parent and all nested sequences, and then update all the nested references.
Automating Windows 10 Servicing
[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.
So your boss is going to want stats for your OSD sequence? [Part 1 – Data Gathering]
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?
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).
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.
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.
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.
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.
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.
Learn from my Mistakes – SCCM 2012: Importing Computers and Limiting Collections
This is probably one of those “Duh” moments that we all have but I thought I’d share it anyway.
I was getting frustrated when I was importing the MAC address of a new, out of the box computer into SCCM 2012 to be used to test my latest development build. I had a testing collection used solely for testing this new build. I’d import the computer and have the wizard place it into my testing collection, but it would never show up. I’d search All Systems and it would be there, so I know the import worked. I tried importing using a CSV. I tried adding the resource manually. I tried adding the object to the collection using a query. Nothing worked. No mater what I tried the imported computer would not appear in my test collection.
Then I noticed that my test collection was limited to a custom collection we have set up for only Windows 7 computers. I could only chuckle and laugh at myself for missing that in the first place.
So, what happened?
When you import a computer into SCCM it is added to the All Systems collection. That’s why when I searched All Systems I could find my imported machine. If, while going through the Import Computer wizard you specify a collection to add it to SCCM will create a direct membership rule for your newly imported computer account.
Where things went off the tracks for me was that my test collection was limited to that Windows 7 custom collection. That collection was, for the record, built using a query that looks at the OS info returned from Hardware Inventory. Since my imported computer had never reported inventory the query to scoop it up would pass right over it. So it only sat in All Systems, and since my test collection was not looking at All Systems it would never find it. No matter what I wanted.
Morale of the story?
If you’re going to be using a test collection for something like build testing, be sure that it is limited to the All Systems collection if you’re going to be importing new, out of the box computers for testing.