Real world notes: In-place OS upgrade on Server 2012 R2 ConfigMgr distribution points

In my MEMCM primary site I had several distribution points that were still running Windows Server 2012 R2, so I decided to run an in-place OS upgrade on them to bring them up to Server 2019. After reading the MS Docs, I concluded this is a supported scenario and things would go smoothly. I was … Continue reading Real world notes: In-place OS upgrade on Server 2012 R2 ConfigMgr distribution points

Get a daily admin Audit Report for MEM / Intune

In an environment where you have multiple admin users it's useful to audit admin activities so everyone can be aware of changes that others have made. I do this for Endpoint Configuration Manager with a daily email report built from admin status messages, so I decided to create something similar for Intune / MEM. Admin … Continue reading Get a daily admin Audit Report for MEM / Intune

Forcing a Full Hardware Inventory Report to be Sent Immediately on a ConfigMgr Client

Sometimes you might want to force a ConfigMgr client to send a full hardware inventory report immediately for whatever reason. Typically you would simply clean out the WMI instance for the InventoryAction then trigger the schedule. But sometimes there may already be a scheduled action in the queue, for example the hardware inventory cycle has … Continue reading Forcing a Full Hardware Inventory Report to be Sent Immediately on a ConfigMgr Client

Collecting ConfigMgr Client Logs to Azure Storage

In the 2002 release of Endpoint Configuration Manager, Microsoft added a nice capability to collect log files from a client to the site server. Whilst this is a cool capability, you might not be on 2002 yet or you might prefer to send logs to a storage account in Azure rather than to the site … Continue reading Collecting ConfigMgr Client Logs to Azure Storage

Installing and Configuring Additional Languages during Windows Autopilot

I was experimenting with different ways to get additional languages installed and configured during Windows Autopilot and it proved to be an interesting challenge. The following is what I settled on in the end and what produced the results that I wanted. Here were my particular requirements, but you can customize this per your own … Continue reading Installing and Configuring Additional Languages during Windows Autopilot

Managing Intune PowerShell Scripts with Microsoft Graph

In this blog I'll cover how to list, get, create, update, delete and assign PowerShell scripts in Intune using Microsoft Graph and PowerShell. Although you can use the Invoke-WebRequest or Invoke-RestMethod cmdlets when working with MS Graph, I prefer to use the Microsoft.Graph.Intune module, aka Intune PowerShell SDK, as it more nicely handles getting an … Continue reading Managing Intune PowerShell Scripts with Microsoft Graph

Delete Device Records in AD / AAD / Intune / Autopilot / ConfigMgr with PowerShell

I've done a lot of testing with Windows Autopilot in recent times. Most of my tests are done in virtual machines, which are ideal as I can simply dispose of them after. But you also need to cleanup the device records that were created in Azure Active Directory, Intune, the Autopilot registration service, Microsoft Endpoint … Continue reading Delete Device Records in AD / AAD / Intune / Autopilot / ConfigMgr with PowerShell

Get Program Execution History from a ConfigMgr Client with PowerShell

Have you ever been in the situation where something unexpected happens on a users computer and people start pointing their fingers at the ConfigMgr admin and asking "has anyone deployed something with SCCM?" Well, I decided to write a PowerShell script to retrieve the execution history for ConfigMgr programs on a local or remote client. … Continue reading Get Program Execution History from a ConfigMgr Client with PowerShell

Get Previous and Scheduled Evaluation Times for ConfigMgr Compliance Baselines with PowerShell

I was testing a compliance baseline recently and wanted to verify if the schedule defined in the baseline deployment is actually honored on the client. I set the schedule to run every hour, but it was clear that it did not run every hour and that some randomization was being used. To review the most … Continue reading Get Previous and Scheduled Evaluation Times for ConfigMgr Compliance Baselines with PowerShell

[Unsupported] Getting / triggering ConfigMgr Client Programs using Software Center Code

An odd title perhaps, but I recently had a requirement to retrieve the deadline for a deployed task sequence on the client side in the user context using PowerShell. You can find this info in WMI, using the CCM_Program class of the ROOT\ccm\ClientSDK namespace. Problem is, standard users do not have access to that. I … Continue reading [Unsupported] Getting / triggering ConfigMgr Client Programs using Software Center Code