Windows 10 IoT – Removing Windows Update history

Hi everyone

In my latest blog post I talked on how to patch a IoT terminal when the SSD is small.

A tip not talked inside the blog post is how to remove unnecessary files after the update.

I dont recommend that tip if you have plenty of disk space, as it will break for you some ability, like to remove Windows KB.

The command to use is;

Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase

I will quote the same warning than on the Windows website;


All existing service packs and updates cannot be uninstalled after this command is completed. This will not block the uninstallation of future service packs or updates.

By running the command I save a 1 or 2 gigs. It’s not a lot, but on low disk space disk it mean a lot.

Thanks for reading, today was a small tip 🙂

Windows 10 IoT – Windows Update on small hard disk

Hi everyone

On IoT terminal often the hard disk is small, and there is a activity that can be a pain in such device, it’s to install a cumulative update.

The last update I did I had in example 7gigs of free space, and the uncompressing of the patch did fill the space completely to make the update fail.

To show the problem you can see these printscreens, please remark the free space available;

In my example in my struggle to install the patch, which is by itself 1.6gig, I tried to run the patch from the network, but voila, it’s not possible. You would receive such 0x80070003 error.

The tip I give today is to make an ISO with the patch, so you can mount the .ISO from a network share to trick the system.

I my case as Windows can’t make the ISO natively, I got a free tool to make the job, wincdemu. A lot of other tool exist to make that work by the way.

After the tool is installed, you can just right click your update folder, and select the Build an ISO image option.

You can name the ISO like patch.ISO.

In the Windows after you can mount the ISO to run the setup from there.
After it’s mounted you can run the EXE.

At that point you can wait.

Thanks everyone, hope the tip help some

Windows 10 – Unified Write Filter – Quick tip for the monitor resolution

Hi everyone

Today I wanted to share a quick tip if you want to allow your users to set their own resolution.

By default the unified write filter allow some registry key, but when a user set a resolution, that setting currently impact all users sessions, so that specific setting is inside the HKLM.

As the seeting can change depending on the terminal you use, I would give you the tip to find the correct keys.

I used process monitor, and I log what SystemSettings do in the registry when you click to change the resolution, in example;

As you can see, the registry key might be long, you can select to easilly copy it;

Inside the terminal after, add the exception for that registry key hive;

That will allow you user to set the resolution they want, and it will not come back to the default’s one.

Thanks for the reading

In Remote Desktop how to send CTRL-ALT-DEL

Hi everyone, today I waned to share a small tip that not everyone know; how to send the famous key stroke CTRL-ALT-DELETE to the remote system in Remote Desktop.

It’s always useful, in case you want to bring the task manager, or to try to recover from a unresponsible session.

ctrl+alt+end is the prescribed way to do this.

A small tip it’s, but it’s handy to have 🙂

You can see other shortcut there; Remote Desktop Tips and Tricks

Windows 10 build 2004 – Login script – Net Use Problem

Hi everyone

Today I wanted to share a small problem with Windows 10’s newer build, 2004.

Login script that use net use no longer seem able to be used, the mapping no longer work.

To work around the issue you have two possible’s way;

Add a timeout in the script’s beginning;

timeout /t 60

or add a delete script first before the mapping;

NET USE * /DELETE /YES persistent: yes

Be sure that setting is set too, set it if not already before trying to make the workaround;

Computer Configuration

  » Administrative Templates

    » System

      » Logon

        » Always wait for the network at computer startup and logon

Some other mentionned that Enabling SMBv2 could help, but it all depend on your environnement, as in my case it happened between Windows 10 2004 client and a new DC in 2019.


Windows 10 IoT – Enable local profil with UWF

Hi, Today I wanted to share a small tip if you want to enable local write for the HCU / HKEY_USERS registry hive with UWF enabled.

By default UWF does not allow to exclude the HCU/ HKEY_USERS, you will got error if you try to exclude those registry path.

The tip seem small, but it’s not intuitive to do it with UWF. The tip is to exclude the NTUSER.DAT folder where those settings are wrote.  c:\users\ if you want to exclude all user profile, or just c:\users\userx\ntdata.* where you want to exclude the registry.

With such exclusion it would be mandatory to exclude that registry hive;

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList

That exclusion would make sure Windows will remember each profile created inside the computer.

Thanks everyone




Windows 10 IoT Terminal Deployment – Part 6 – Manage the system local on first boot

Hi everyone

Today I will share a small tip if you got a lot of Windows 10 to manage the default language. IoT or any other Windows 10 version for that tip.

A lot of new system come by default in en-US but if you want to automate the distribution you can tweak a bit some policy to set correctly the wanted locale.

It seem simple, but don’t forget the locale impacts those settings differently;

– The OS language

– The login screen language

– The default keyboard for new session

– The default keyboard for the login screen

– The date format and various localized settings


For almost all of those settings it’s a settings to push for each one.

Where it can be tricky is if like me you live in zone where the default keyboard never match by default.

In example, I live in French’s Canada, and Windows put for me Canadian multilingual by default, which is not the best one for fr-CA. You have legacy french Canadian keyboard and finally the french Canadian’s layout.

So when we push the locations settings, as you can guess in a case like me the default keyboard is never set correctly, thus it need a bit more settings to push.

First of, you need to know if your computer got ready the language pack or not. On IoT usually they are already ready. If not, please download the language ISO and copy the one you need to deploy.



When the file is deployed, you can pre-install the .cab that way in a script :

dism /online /add-package /packagepath:C:\

After that we can run the script to set the correct layout we need, I will explain below;

Powershell.exe -executionpolicy remotesigned -File C:\language.ps1

control.exe intl.cpl,, /f:”C:\language.xml”


Set-Culture fr-CA
Set-WinSystemLocale fr-CA
Set-WinHomeLocation -GeoId 39
Set-WinSystemLocale -SystemLocale fr-CA

$langList = New-WinUserLanguageList -Language “fr-CA”

Set-WinUserLanguageList -LanguageList $langList


<!–Keyboard Language Change–>
<gs:GlobalizationServices xmlns:gs=”urn:longhornGlobalizationUnattend”>
<!–User List–>
<gs:User UserID=”Current” CopySettingsToDefaultUserAcct=”true” CopySettingsToSystemAcct=”true”/>

<!– MUI–>
<gs:MUILanguage Value=”fr-CA” />
<gs:MUIFallback Value=”fr-CA” />

<!–input preferences–>
<gs:InputLanguageID Action=”add” ID=”0409:00000409″/>

The command Powershell.exe -executionpolicy remotesigned -File C:\language.ps1 does set the location and the default local.

The only thing the script can’t do, is to set the keyboard for NEW users account.

The XML import, control.exe intl.cpl,, /f:”C:\language.xml”,  simulate a click on apply to new user account and to the login screen and system’s account. The important flag is see is; CopySettingsToDefaultUserAcct & CopySettingsToSystemAcct

That XML set that screen options correctly;



Thanks everyone 🙂

Windows 10 IoT Terminal Deployment – Part 5 – HPDM – Auto-Enrollment into the Domain

Hi everyone

Today I will talk about the auto-enrollment inside the domain.

This task is possibly one of the first that would be done if you have a internal domain.

For this task I suggest to create a service account that will have the correct deleguated right. In my case, with my exytaordinary imagination, created an account named hpdm 😳🤷‍♂️

The task itselft is kinda straighforward to create from the HPDM, but if we want to autoenroll our devices, so if like our customers plug 100 or even 1000 of devices we want to do the less manual tasks possibles and with the autoenrollment we can target GPO to those computers afterward.

For rhe task please create too an OU where all those IoT device will be 🙂 a big party for them alone.. just kidding.

In the HPDM we will start by creating a rule with a first contact condition.

In my rule I will add another configuration too, I will rename the terminal. As the generic name is pretty ugly, I will add one easier to spot. Out of the box it’s a generic name generated from the MAC address, in my task I will rename the terminal to win10-mac.

Now for the rule;

The sub task :

Our domain creatial and the target OU:

The renaming task:

After we can apply that rule 🙂


I hope you enjoyed today tip !

Windows 10 – Can’t deploy printers – Spooler error 0x000006BA / 0x000003EB

Hi everyone

Today I wanted to talk a small bug I seen from some Windows 10 with UWF enabled.

The error I seen was 0x000003EB and 0x000006BA


The error is pretty generic, but the system greyed all the printers in the Windows 10’s list, and you can’t connect to other printers from the server, nor add them by GPP or by deploying them.


In the past I used to use a Microsoft KB .exe to fix and erase all the spooler, by a hard reset, but the utility was removed from the website, as such to find the exact cause or to reset the error I suggest to get that small Kyocera’s utility (KM Deleter) now;


The error in my case seemed to come from UWF, as I unlocked the spooler folder for read and write, but I miss some registry key. As seen there;


As you can see no file or driver were present, but the registry were, so it blocked the Windows 10 to reconnect to those printers.

In my case I allowed more exceptions in the UWF, but you can see those two errors can happen if the driver is badly setupped, or missing necessary files.