Jump to content


PC Buyback for Windows Autopilot devices - part 2

Recommended Posts


In part 1 I showed you how to prepare Azure for the PC Buyback app, in this part we'll add the Win32 app, deploy it and see how it behaves on a Windows Autopilot registered device.

This mini series is broken down into the following parts:

  • PC Buyback for Windows Autopilot devices - part 1
  • PC Buyback for Windows Autopilot devices - part 2 <--- You are here
  • PC Buyback for Windows Autopilot devices - part 3

Step 1. Download the scripts

Download this zip and extract to C:\Dev\Intune\Win32 apps

Note: you must be a logged on member of windows-noob.com to download the ZIP

PC Buyback - Intune.zip


Step 2. Get ServiceUI.exe from MDT

You'll need the ServiceUI.exe executable file to display user interfaces (UI) to end users when operating in SYSTEM context. To get the file, download and install MDT somewhere and navigate to C:\Program Files\Microsoft Deployment Toolkit\Templates\Distribution\Tools\x64. To download MDT click here. Copy the 64 bit version of ServiceUI.exe file to your extracted win32app_source folder so it looks like this.

copy serviceui exe to win32app_source.png


Step 3. Get 7Zip for compressing files

Download 7Zip and install it. Copy 7z.dll and 7z.exe from the default folder C:\Program Files\7-Zip

copy 7zip files.png

Copy those 2 files to  C:\Dev\Intune\Win32 apps\PC Buyback - Intune\encode

copy files to encode.png


In PowerShell ISE run the Encode script..

ecode scripts.png

After it is completed encoding the files, you'll have a bunch of additional text files in the encode folder.

encoded files.png

Open each text file using notepad, press CTRL+A to mark all the text, then copy using CTRL+C

mark all text.png

and paste the content of each file using CTRL+V into the corresponding section of the PCBuyback.ps1 script as shown below.

encoded files added to script.png


Note: The QR code used in the PC Buyback app points to part 1 of this blog series, but you can customize it to point to an internal knowledge base article to assist users with the entire process. One thing to keep in mind, I used https://www.qr-code-generator.com to create the QR code, but after creating it, you'll need to resize it to 118x120 pixels (in MS paint or similar).

Step 4. Modify variables

In the PCBuyback.ps1 script, configure the following email related variables:

  • $ToAddress
  • $FromAddress
  • $APIkey

to from sendmail api variables.png



Next, copy the Function URL for each of the http triggers you created in part 1, below shows you how to do that

get function url.png

paste those URLs into the corresponding variable in the script

triggers added.png

Save the changes to the PCBuyback.ps1 script.

Step 5. Get the Microsoft Win32 content prep tool

Download the Win32 content prep tool from here. Copy the IntuneWinAppUtil.exe file to your Win32 apps root folder, it should look like this.

copy intunewinapputil to win32apps root.png

Open a command prompt and browse to the PCBuyback folder structure. Launch the IntuneWinAppUtil.exe file and answer the following.

  • Please specify the source folder: win32app_source
  • Please specify the setup file: PCBuyback.ps1
  • Please specify the output folder: win32app_target
  • Do you want to specify catalog folder (Y/N)? n

as shown here.


intunewinapputil commands.png

Step 6. Add the Win32 app in Intune

Log into Intune and add a new Win32 App. Below are some screenshots showing how I've configured the app.

For Select app type, select Windows app (Win32) from the drop down menu

select app type.png


Click on Select app package file and point it to the pcbuyback.intunewin file in the win32app_target folder, fill in some info about the app, for the logo, click on Select image and point it to the encode folder where the icon file can be used



fill in the install commands, point it to install_pcbuyback.cmd

install command.png

fill in the requirements,


and for detection rules point it to the detection script in the root of the PC Buyback - Intune files

detection method.png


finally deploy it to an Entra ID group that contains the computers that are targeted for buyback, and deploy it as Available.

Step 7. Test the app on a device

On a test device that is already enrolled into Intune and Windows Autopilot registered, add the device to the azure ad group above and launch Company Portal. The PC Buyback app should appear.

pc buyback in company portal.png


Click Install and after a few moments the app should appear.

 app showing after launching from company portal.png


Clicking OK shows a warning

pc buyback warning.png

and clicking OK to the warning starts the process, after a few moments it will remove the device from Intune, then remove the Windows Autopilot registered device and zip up the logs before emailing them

zipping up the logs.png

After emailing the logs and confirmation that it's done PC Buyback, it will restart


after the restart it will start resetting Windows removing all apps and settings that were on the device

resetting this pc.png

After the reset, Windows installs itself again...

windows installing.png

and after the reinstallation, it's back to the first screen of the OOBE, so the user can now setup their device personally






When the user runs PC Buyback an email is sent to the email address you configured...

email sent.png

and the process will store details in Azure tables (coming in Part 3)


If the app fails for whatever reason, it will log the details in C:\ProgramData\windowsnoob\PCBuyback\win.ap.pcbuyback.log


Below is a sample of that log file from a successfully wiped device

04/06/2024 10:00:42 Starting script: 'Win.AP.PCBuyback' version: '0.0.5' ...
04/06/2024 10:00:42 extracting scripts to 'C:\ProgramData\windowsnoob\PCBuyback'...
04/06/2024 10:00:42 decoding BASE64 encoded file...'7z.exe'
04/06/2024 10:00:43 decoding BASE64 encoded file...'7z.dll'
04/06/2024 10:00:45 decoding BASE64 encoded file...'scanforhelp.png'
04/06/2024 10:00:45 decoding BASE64 encoded file...'PCBuybackUI.png'
04/06/2024 10:00:47 Detecting the logged on user...
04/06/2024 10:00:47 localuserfull was identified as: 'AzureAD\NiallBrady'
04/06/2024 10:00:47 Detection method 1: The user was identified as: NiallBrady
04/06/2024 10:00:47 SID: 'S-1-12-1-1583932090-1131944776-3006070936-2698034199'
04/06/2024 10:00:47 found sid
04/06/2024 10:00:48 registrypath is: HKU:\S-1-12-1-1583932090-1131944776-3006070936-2698034199\SOFTWARE\windowsnoob\Autopilot
04/06/2024 10:00:48 Checking if registryvalue: 'PCBuyback' in registrypath: 'HKU:\S-1-12-1-1583932090-1131944776-3006070936-2698034199\SOFTWARE\windowsnoob\Autopilot' exists...
04/06/2024 10:00:49 Reg key exists...
04/06/2024 10:00:49 registrypath is: HKU:\S-1-12-1-1583932090-1131944776-3006070936-2698034199\SOFTWARE\windowsnoob\Autopilot
04/06/2024 10:00:49 Checking if registryvalue: 'PCBuyback' in registrypath: 'HKU:\S-1-12-1-1583932090-1131944776-3006070936-2698034199\SOFTWARE\windowsnoob\Autopilot' exists...
04/06/2024 10:01:09 Reason added: ''
04/06/2024 10:01:11 The user chose OK to the PCBuyback warning, starting the reset process...
04/06/2024 10:01:11 Is this a Windows Autopilot device:
04/06/2024 10:01:11 Checking if the device is registered as a Windows Autopilot device started...
04/06/2024 10:01:11 Device serial number: 3135-5201-3107-6925-8353-2276-24
04/06/2024 10:01:19 DEBUG: The following was returned from the graph call. '
04/06/2024 17:01:19 Starting Azure function...
04/06/2024 17:01:19 Connected to tenant: windowsnoob.com.
04/06/2024 17:01:19 supplied serial number: '3135-5201-3107-6925-8353-2276-24'.
04/06/2024 17:01:19 Get Device Reference from Intune.
04/06/2024 17:01:19 Serial number: 3135-5201-3107-6925-8353-2276-24 is an autopilot machine.
 Exiting Azure function.'
04/06/2024 10:01:19 the device was detected as a Windows Autopilot device, so let's remove it as a registered AP device
04/06/2024 10:01:19 Remove Windows Autopilot device from Intune started.
04/06/2024 10:01:19 Windows Autopilot device serial number: 3135-5201-3107-6925-8353-2276-24
04/06/2024 10:01:20 DEBUG: The following was returned from the graph call. 'Success'
04/06/2024 10:01:20 Removed Windows Autopilot device '3135-5201-3107-6925-8353-2276-24' from intune.
04/06/2024 10:01:20 Exiting the Intune based PC Buyback script, thanks for watching :-).
  If all went well and if the recovery partition on this device is healthy, Windows Reset should begin in the next few moments...
04/06/2024 10:01:20 DEBUG: The user chose OK to the PC Buyback Warning message. Starting the Windows reinstallation process now...
04/06/2024 10:01:20 checking for Power...
04/06/2024 10:01:20 virtual machine detected, will not check for power.
04/06/2024 10:01:20 Creating folder to store logs etc...
04/06/2024 10:01:20 Grabbing the reason why the user wanted to reset...
04/06/2024 10:01:20 Grabbing 'C:\ProgramData\windowsnoob\PCBuyback' logs
04/06/2024 10:01:20 Grabbing Windows temp logs
04/06/2024 10:01:20 DEBUG: Folder size (in bytes) = 2.22250366210938
04/06/2024 10:01:20 DEBUG: truncated bytes = 3
04/06/2024 10:01:20 Folder size (in MB) = 3
04/06/2024 10:01:20 Log files size: 3
04/06/2024 10:01:20 Log file size limit = 10
04/06/2024 10:01:20 Log file size (3) is less than 10, will include temp logs in email...
04/06/2024 10:01:20 Creating Autopilot cab file...
04/06/2024 10:01:42 adding C:\ProgramData\windowsnoob\PCBuyback\Win.AP.PCBuyback.log


Share this post

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.