MEMCM debug in-place upgrade (IPU) using Azure blob

MEMCM debug in-place upgrade (IPU) using Azure blob

NuGet Gallery | Microsoft.Azure.WebJobs.Logging.ApplicationInsights 3.0.25


A couple weeks ago I showed you how to get vital logs from a client without disturbing the user. This blog post will cover how to deal with in-place upgrades that did not go as expected. Now as most people still work from home, it can be difficult to see and find those issues. This is where setupdiag.exe comes to the rescue. On systems version 2004 and newer this is already included in the OS, but I will deploy it to every client to make sure I know where to find it.


Updated and added Adam Gross solution as I was told sometimes Setupdiag.exe does not show the problem. Thanks Karl Wester-Ebbinghaus for notify me of this cool addon.



  • Azure storage account
  • CMG

Azure Storage

I have already covered that in another blog


Prepare your client environment

Before we can run the script on clients, we need to make sure they have the PowerShell modules.


Start a Windows 10 client and fire up PowerShell shell.


Go through the prompts



Install-module azureRM.profile

Go through the prompts



Install-module FU.WhyAmIBlocked

Go through the prompts



To automize this, go to file explorer

Copy the folder Azure.Storage and AzureRM.profile



Go to your browser and download setupdiag.exe

Create a script and a MEMCM package that copies these 2 folders (Azure.Storage + AzureRM.profile + FU.WhyAmIBlocked) and setupdiag.exe (Setupdiag.exe should go to C:Windowstemp) to your clients.


Deploy the package to your clients.


MEMCM preparations

Download this script

Start your MEMCM Console

Create Script



Copy the content of the Github Script

Paste the code to the script in MEMCM.

We need to change the xxx parameters



StorageAccountName can be found here:



StorSas parameter where the string we saved to notepad earlier.

Container parameter also went to the notepad doc.


When added, click next next and done.


Approve the script


And we are ready to rock and roll getting logs


Right click a device -> run script



Get IPU logs from device




On the device CPC-TEST03 it starts setupdiag.exe which will take a minute or two.



Result before uploading




output from Adam Gross script



And on the Azure Storage


You can either choose to grab it manually or go to Tom Degreef’s blog and get his download script, to automate the last part. -> Retrieve the logs


There is always a scenario that goes into haywire and we need a way to reach out and have some insight of the problem. Guiding a user how to do things can be time consuming and not very agile. We need to be able to get logs even though our endpoints roam the internet. This is good example of how that can be achieved.

Happy testing!

Table of Contents

Share this post
Search blog posts
Modern Workplace consultant and a Microsoft MVP in Enterprise Mobility.
Modern Workplace consultant and a Microsoft MVP in Windows and Devices for IT.

Infrastructure architect with focus on Modern Workplace and Microsoft 365 security.

Cloud & security specialist with focus on Microsoft backend products and cloud technologies.

Cloud & security specialist with focus on Microsoft 365.

Cloud & Security Specialist, with a passion for all things Cybersecurity

Cloud and infrastructure security specialist with background in networking.

Infrastructure architect with focus on design, implementation, migration and consolidation.

Infrastructure consultant with focus on cloud solutions in Office365 and Azure.

follow us in feedly

Follow on SoMe