Collect OSD / IPU Info with Hardware Inventory

Update 2019.01.22 To include User Account that triggered the Upgrade & Unique Build Record Info. Blog Post for “Gather Account Name during IPU” HERE

Update 2018.08.01 To include Hard  Blocker from  Compat Scan, requires you to add a step into the TS to capture the Hard  Blocker to a  TS Variable,  Blog Post HERE

Update 2018.06.05 – I’ve posted the first WaaS Post, which incorporates this Script into a Compatibility Scan Task Sequence.  I’ve updated the script since this post, which is available to download, along with the Task Sequence Export in this POST HERE

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.

Read more

Get Package CCMCache Location

Ever want to know where in the CCMCache the content was located for that package that was downloaded?  Ever think you found it, then figured out it wasn’t the most updated version of the content?  I quick wrote this script to help me find where in the cache the content is located, and spits back the most updated version of it.

Read more

Send Text and Email to User from Task Sequence

Bonus: Learn to use Gmails SMTP service.

Updated 1/31/2019 – Updated Script to work independently of XAML Form, you can use the last script to send text / email by running the script and using arguments: SendTextEmail.ps1 -UserEmail gwblok@garytown.com -UserCell 6512015555 -UserCellProvider Verizon

Updated 3/6/2018 – added auto close feature, so if user ignores the window, it will auto close allowing the TS to continue. (Updated the 3rd Form image below to reflect the change)

Or if some of you awesome PowerShell guys want to make my code pretty and add that feature…  🙂

As I try to improve the user experience for in-place upgrades, notifications came to mind, and how to incorporate that into the process.  Using the TS variable _SMSTSUserStarted = true, I launch a powershell driven “front end” to collect the user’s email, cell number & provider, then use that to notify user when process is complete.

Read more

ConfigMgr Client Provisioning Mode

Update 8/14/2019 – SEE MORE INFO AT BOTTOM… – MS created official Docs for Prov Mode & 1902 pulls machines out of Prov Mode automatically after 48 hours – Docs HERE

Update 8/3/2018 – With ConfigMgr 1806, The client no longer goes into Provisioning Mode if you run a Compatibility Scan.  Confirmed in my lab!

Update 3/15/2018 – Ran several more tests to learn what actions are available to run during Provisioning mode.  Scroll to bottom for updates.

Original Post:

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)

  1. Works Normally
    1. Software Center
      1. Lists all Deployments available & required it knew about before entering provisioning mode
      2. Can Install any of those by clicking “Install”
    2. ConfigMgr Control Panel
      1. You can still trigger actions, or change cache size
        1. By Triggering Actions, you can get deployments to install if they are past deadline
  2. Differences
    1. Policy doesn’t update Automatically
    2. Does NOT report to CM (Inventory)
    3. Does NOT run Required Deployments automatically once deadline hits.

Read more

BGIn-Place Upgrades

image

image
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