Blog Archives
The Lord of the Deployment Rings: The Intune Towers

How can I build out a series of progressively larger rings for deployment?
(Oh yeah, by the way I’m using Intune.)
About a week ago Mike Terrill was talking to me about a blog that he was working on. He was calling it “Lord of the Deployment Rings”. The focus was on building out a series of collections in Configuration Manager that could be used for “ramp up” deployments, deployments that start with a small group and gradually expand to larger and larger groups.
You can find it here.
I asked him if he wouldn’t mind if I were to piggyback on the concept but for use with Intune. Oh, little did I know what I was getting myself into.
Read the rest of this entryMiSCUG – 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.
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 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.]
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.
Updated Windows 10 ISO Creation Script
Several weeks ago Johan Arwidmark published an article about creating a Windows 10 ISO using the install.esd file generated from the upgrade process. He also included a PowerShell script to automate the process. His article can be found here.
I’ve used this a number of times and it works wonderfully. Call me odd, but I have a set of 4 virtual machines that I use simply to generate the ISOs and installation source files. I have a pair of Windows 10 Professional (32bit and 64bit) and a pair of Windows 10 Enterprise (32bit and 64bit) VMs. I use the Professional SKU in my lab and the Enterprise SKU for testing at work.
I modified Johan’s original script to automate some “branding” of the process. For example, the ISO generated includes the build number, SKU and architecture. When a new build is released to the Fast Ring my VMs update and then I just run this script. The script determines what build, SKU and architecture the VM is running and generates a unique name for the ISO as well as the parent folder that also contains the contents of the ISO.
Running Data DeDuplication on Hyper-V Hosts with PowerShell
First off, I want to thank Johan Arwidmark for the core code used in my script. His blog posting can be found here.
Disk space is tight on my development VM host, very tight. You cannot get too many VMs running on just 256GB. So, I decided I’d make the switch to running Hyper-V on Server 2012 R2 and take advantage of Data DeDuplication. Johan speaks highly of it, so I thought I would give it a try.
On my 2 hosts I have 8 VMs running on each and after DeDuplication I have plenty of disk space for more.
They say a picture is worth a thousand words….
I have 8 virtual machines in this folder. With DeDupe I am able to store 270GB of VMs in less than 6GB of space.
I put together this script to process the drive. It automatically shuts down any running VMs, processes the DeDuplication and then starts the VMs that it shut down back up.
# Shut down all running VMs and then process deduplication $AllVMs = Get-VM | Where {$_.State -eq 'Running'} FOREACH ($VM in $AllVMs) { Write-Host Shutting down $VM.Name Stop-VM -Name $VM.Name } # Execute the Dedupe jobs Start-DedupJob -Type Optimization -Memory 75 -Priority High -Volume D: -Wait Start-DedupJob -Type GarbageCollection -Full -Memory 75 -Priority High -Volume D: -Wait Start-DedupJob -Type Scrubbing -Full -Memory 75 -Priority High -Volume D: -Wait # Restart the VMs that had been running FOREACH ($VM in $AllVMs) { Write-Host Starting up $VM.Name Start-VM -Name $VM.Name }
When disk space starts to get a little cramped I run this script. I give it some time to run and when it is finished I have the space I need.
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.
Windows 10 Hyper-V: VM State PowerShell Bug?
Ran into this today. I have a PowerShell script that builds a series of VMs as part of a lab build-out. After upgrading my machine to Windows 10 the script no longer works. What is supposed to happen is that it starts building a VM and loops every couple of minutes looking for the VM’s state to see if it is “Running”. At the end of the VM’s build MDT shuts the VM down. The script sees that the VM is no longer running, powers it back on and moves on to the next VM.
What happens when I run this on Windows 10 Hyper-V is that the script never notices that the VM has shut down.
As you can see, the VM is powered off, but the Get-VM PoSh cmdlet shows that it as still running….