Several years ago I started to use Jason Sandys’ OSDInfo Script. I liked the idea of having a script run during OSD that would write information to WMI, which made it easy to inventory. Now I do IPU (In Place Upgrade) so much more than OSD, and I wanted to do the same, gather important information from IPU and be able to use it for Reporting or creating collection queries.
I’ve taken Jason’s script and modified it… a lot. All of his plumbing is still in place (functionality to add information to WMI & Registry), but I’ve added a lot of logic around using the script for different functions.
The script is now broken into 3 sections, OSD (Operating System Deployment), CS (Compatibility Scan), IPU (In Place Upgrade). Using TS Variables, the script will run different sections of the script. This allows me to use the same script in numerous scenarios.
First, I’ll show you results, and then go into details about how it’s done. But I feel it’s easier to understand the script and process if you can see the end product.
Update 3/15 - Ran several more tests to learn what actions are available to run during Provisioning mode. Scroll to bottom for updates.
I’ve been doing a lot of testing with Provisioning Mode. I needed to know what was going on when a system was in provisioning mode.
Quick Overview of what works and what is difference. (As I continue testing, I'll continue to update this list)
- Works Normally
- Software Center
- Lists all Deployments available & required it knew about before entering provisioning mode
- Can Install any of those by clicking "Install"
- ConfigMgr Control Panel
- You can still trigger actions, or change cache size
- By Triggering Actions, you can get deployments to install if they are past deadline
- Policy doesn't update Automatically
- Does NOT report to CM (Inventory)
- Does NOT run Required Deployments automatically once deadline hits.
If (You Enjoy Reading)
I thought that was a clever title, but it seems more confusing the longer I look at it… anyway, this is the follow up post to take BGinfo from MDT, and add it’s capabilities to the ConfigMgr In-Place Upgrade Task Sequence Process. If you’ve been working with in-place upgrade task sequences, you’ll know they are a different beast than regular OSD. You can’t just call an application and expect it to show up on the screen.. like in OSD, you can say Command Line Step: notepad.exe… and guess what, a notepad.exe window opens during the TS.. freaking amazing! Read more
If you use MDT, then you’re familiar with their use of changing the background and adding system information during the OSD process. This is pretty handy to get some basic info, but with a little tweaking, you can add additional data that can be very useful to make visible during OSD.
Basics, the required files used during this process are stored here: MDT Package\Tools\x64 & x86
So you have a Personal ConfigMgr lab, but you want to add some app deployments to better simulate your actual environment. So you add Chrome, Reader, and a couple others (NOT JAVA). Next Month, they are out of date. You probably don’t have time to keep your personal lab app deployments updated, so you keep deploying old versions. How about, you leverage ninite.com’s ability to dynamically install the latest version of the app every time? Now you're asking, "Isn't the command line version that supports silent install cost money?" Yes, yes, it does, to use ninite’s silent install, you need the Pro version. What, you don't want to pay for pro when it’s your personal lab? I hear you. Powershell to the rescue! It doesn’t make it completely silent, but it will allow you to automate it to work with the ConfigMgr App Model during OSD and Post OSD. Read more