Installation and Upgrade WinPE - Create a Custom Windows Install USB


Win11USB Banner.png

As you all (should) already know, Windows Setup's install.wim file is growing with each new feature upgrade. It's coming close and soon going over the 4 GB size limit of a FAT32 formatted install media. Today, as I write this, (22-FEB-2022), downloading WIM-based most current public release install media as told here in Shawn Brink's tutorial, the install.wim file is 4.5 GB (UK English Windows 11).

There’s nothing in the UEFI specifications that prevents booting a computer from an NTFS formatted USB flash drive. In fact, this so-called limitation is entirely artificial, caused by the single fact that manufacturer has not included correct drivers in UEFI. Luckily, most modern computers can boot from a single-partition NTFS formatted USB flash drive, and install Windows 11 from a single partition USB media containing WIM image larger than 4 GB (maximum file size on FAT32 media).

But, what to do if the WIM file is over 4 GB, and your computer cannot boot from an NTFS formatted media?

This tutorial will show how to create a USB flash drive containing a FAT32 formatted WinPE partition, and a bigger NTFS formatted Windows Setup partition. When computer is booted from this USB flash drive, the WinPE partition takes care of boot, then runs Windows Setup from bigger setup partition on same USB.

The whole process takes 10 to 20 minutes, but only needs to be done once. In the future, the Windows Setup files on USB can be replaced with newer version of Windows 11.





Contents

Use links to jump to any part, browser back button to return to this table



Part One:Create WinPE
Part Two:Edit WinPE boot.wim
Part Three:Make WinPE ISO
Part Four:Partition USB flash drive
Part Five:Create bootable USB install media

Please notice: I have prepared a custom WinPE ISO image for you. You can download it from my OneDrive: WinPEx64.iso. File size is 474 MB.

Parts One, Two and Three in this tutorial will show how I edited and customized this WinPE image, and are intended to those users who want to learn how to do it by themselves.

Short: if you want to make this easy, download the provided WinPE ISO, and start from Part Four, and you are done in three minutes.




Part One

Create WinPE


1.1 Download and install both Windows 11 ADK (Assessment and Deployment Kit), and Windows PE add-on for the ADK, installing ADK first:

Download ADK.jpg

(Click screenshot thumbnails to open images enlarged.)

1.2 When installing ADK, for purpose of this tutorial, you will only need the Deployment Tools module. Unselecting everything else, download size is less than 100 MB:

ADK Install.jpg


1.3 When both ADK and WinPE add-on have been installed, open an elevated ADK Deployment and Imaging Tools Environment, a special mode of Command Prompt. You will find it in Start > All Apps > W > Windows Kits:

Run Tool.jpg


1.4 The prompt is quite long. Shorten it by jumping to root of the drive where ADK was installed with command cd \ (#1 in next screenshot)

1.5 Create 64-bit WinPE files with following command (#2 in next screenshot), where folder D:\WPEx64 is the folder where WinPE files will be created. Folder will be created automatically, it does not need to exist:

copype amd64 D:\WPEx64

Create PE Folder.jpg


For 32-bit WinPE, the command is as follows:

copype x86 D:\WPEx86


Part Two

Edit WinPE boot.wim


2.1 Depending on which bit architecture you selected, either folder D:\WPEx86 or D:\WPEx64 now contains all files and folders to create a WinPE ISO.

2.2 To edit it, we must mount WinPE boot.wim file for offline servicing. First, create a mount point folder. In this example, I made a folder C:\Mount. Open an elevated PowerShell, and enter following command to mount boot.wim:

Mount-WindowsImage -ImagePath D:\WPEx64\Media\Sources\boot.wim -Index 1 -Path C:\Mount

Change -ImagePath folder WPEx64 to WPEx32 if working with 32-bit WinPE.

2.3 Folder C:\Mount now contains WinPE image, and we can edit it. First thing I made when editing the provided custom WinPE image, I added PowerShell support. By default, WinPE does not support PowerShell.

To enable PowerShell in WinPE, copy and paste the following commands to elevated PowerShell:. Notice that you can copy all commands at once, and paste them all to elevated PowerShell, which will then run them one by one:

Code:
Dism /Add-Package /Image:"C:\Mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-WMI.cab"
Dism /Add-Package /Image:"C:\Mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\en-us\WinPE-WMI_en-us.cab"
Dism /Add-Package /Image:"C:\Mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-NetFX.cab"
Dism /Add-Package /Image:"C:\Mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\en-us\WinPE-NetFX_en-us.cab"
Dism /Add-Package /Image:"C:\Mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-Scripting.cab"
Dism /Add-Package /Image:"C:\Mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\en-us\WinPE-Scripting_en-us.cab"
Dism /Add-Package /Image:"C:\Mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-PowerShell.cab"
Dism /Add-Package /Image:"C:\Mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\en-us\WinPE-PowerShell_en-us.cab"
Dism /Add-Package /Image:"C:\Mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-StorageWMI.cab"
Dism /Add-Package /Image:"C:\Mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\en-us\WinPE-StorageWMI_en-us.cab"
Dism /Add-Package /Image:"C:\Mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-DismCmdlets.cab"
Dism /Add-Package /Image:"C:\Mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\en-us\WinPE-DismCmdlets_en-us.cab"

The above commands will add PowerShell to a 64-bit WinPE. If you are creating a 32-bit WinPE, change the folder amd64 at the end of long path, near end of each command to x86. An example using the first of above listed commands:

64-bit WinPE:

Rich (BB code):
Dism /Add-Package /Image:"C:\Mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-WMI.cab"

32-bit WinPE:

Rich (BB code):
Dism /Add-Package /Image:"C:\Mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\WinPE-WMI.cab"

2.4 This custom WinPE requires two scripts, a PowerShell script to find out drive letter of the NTFS partition on USB containing setup files, and then run Windows Setup, and a batch file to run that PS script.

Opening mount point folder C:\Mount, I created a folder Scripts on its root to store these two scripts:

Scripts folder created.jpg


2.5 First the small PS script. To save to mount point folder requires elevated rights, so we need to open Notepad elevated (run as administrator). Copy and paste the following code to it:

Powershell:
$SetupVolume = (Get-Volume -FileSystemLabel Setup).DriveLetter
$SetupFile = $SetupVolume + ':\setup.exe'
cmd /c $SetupFile

First line will search the USB for volume (partition) labelled Setup, and set its drive letter in variable $SetupVolume. Second line then creates variable $SetupFile, adding the important :\setup.exe to drive letter found in first line. For instance, if $SetupVolume is F, $SetupFile is F:\setup.exe.

Last line then executes command setup.exe from bigger NTFS partition Setup, which starts Windows Setup.

Save the file in folder C:\Mount\Scripts as SetupW10.ps1. In Save As dialog, remember to select Save As Type as All files:

Save PS Script.jpg


2.6 Next, short batch file. Copy and paste following code to an elevated Notepad:

Code:
@echo off
rem
rem Run PowerShell script to start Windows Setup
rem
cls
echo.
echo Starting windows Setup...
powershell -ExecutionPolicy bypass -file "X:\Scripts\SetupW11.ps1"

Only important line in this batch file is the last one. It executes the PS script made in step 2.5.

Save it to folder C:\Mount\Scripts as WinSetup.cmd. Again, as with the PS script, in Save As dialog, remember to select Save As Type as All files.

2.7 Last but not least, we need to edit file C:\Mount\Windows\System32\startnet.cmd. Startnet.cmd functions exactly like autoexec.bat did in Windows XP and older Windows versions, running every command in it automatically when WinPE boots.

By default, startnet.cmd only contains one command, wpeinit, which enables WinPE networking capabilities. We add two other commands to it.

Open startnet.cmd in an elevated Notepad. Copy and paste following code to it:

Code:
wpeinit
powercfg /s 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
X:\Scripts\WinSetup.cmd

The first line is the default command to initialize networking. In second line, we set a High Performance power plan to speed up Windows installation. In last line, we execute the batch file created in step 2.6.

When computer is booted from WinPE media, the contents of WinPE will be copied to RAM disk X. This is why we can use the path X:\Scripts on last command line, there being no need to find out the drive letter for volume containing the Scripts folder.

2.8 In an elevated PowerShell, enter following command to save changes to WinPE:

Dismount-WindowsImage -Path C:\Mount -Save


Part Three

Make WinPE ISO


3.1 Open an elevated ADK Deployment and Imaging Tools Environment as told in step 1.3.

3.2 Enter following command to create WinPE ISO:

MakeWinPEMedia /ISO D:\WPEx64 F:\WinPEx64.iso

Change path D:\WPEx64 to D:\WPEx86 if creating a 32-bit WinPE ISO. Path F:\WinPEx64.iso is the path and name of the ISO file that will be created.


Part Four

Partition USB flash drive


4.1 Plug in an at least 8 GB USB lash drive. Open an elevated PowerShell, start Windows Disk Partitioning utility with command DISKPART.

Enter command LIST DISK to show all attached disks, find out the disk ID for your USB Flash Drive. In my case now, the USB is DISK 3:

Diskpart.jpg


Be careful, absolutely sure that you find out correct Disk ID! In following step, the selected disk will be wiped clean, and new partitions will be created. Selecting wrong disk may cause Windows or data disks being formatted, all data lost.


4.2 Still in DISKPART, run following commands one by one. In first command, replace X (disk ID) with actual Disk ID for your USB flash drive:

select disk X
clean
create partition primary size=1024
format quick fs=fat32 label="Boot"
assign
create partition primary
format quick fs=ntfs label="Setup"
assign

4.3 Quit DISKPART with command EXIT. Your USB flash drive is now correctly partitioned, containing a 1 GB partition Boot, and partition Setup which occupies the rest of the USB:

USB Boot and Setup partitions.jpg





Part Five

Create bootable USB install media


5.1 Mount the WinPE ISO image created in Step 3.2 as a virtual CD / DVD drive (right click, select Mount). Copy its contents, all files and folders, to partition Boot on USB.

5.2 Mount a Windows 11 ISO image as a virtual CD / DVD drive (right click, select Mount). Copy its contents, all files and folders, to partition Setup on USB.

That's it! You have now a bootable USB flash drive to install Windows, even if the install.wim or install.esd file is bigger than FAT32 size limit 4 GB. In the future, when you need install media for a new Windows version, simply format the Setup partition on USB, and copy contents of new ISO to it.

Kari
 

Attachments

  • WIM Size.jpg
    WIM Size.jpg
    24.6 KB · Views: 208
Last edited by a moderator:
Thanks a bunch for your thorough reply.

1) I appreciate the clarification on LCU. What was totally throwing me off was that even though you have been very clear since the beginning that on the comprehensive ones we just use the most recent one I was messed up attempting to differentiate between an "Update" and a "Security Update". I've got it now!

2)
why don't I provide you a list of all the latest updates that I am using
I think I finally understand but a double check would be good. I don't think that I'll do anything on the Preview updates.

3)
Yes! This is one of my favorite tricks, I use this now every time I install Windows
I'll absolutely try this to minimize the unwanted software. I'm really excited about this one!

5)
I'm a bit surprised that your Intel adapter is not working after a clean install.
I haven't installed the OS yet so I don't know for sure. I tried connecting to my network from the WinPE environment and it couldn't/wouldn't connect. I also couldn't find the driver in any of the system32 folders where I would expect to find it so it is just a suspicion at this point.

more 5)

you can use a very minimal answer file that does nothing but create a local user account for you automatically
In years past I have just operated out of the Admin account. However, the past couple of years I had the customary Admin account on the PC but on a day to day basis operated out of a standard user account. I think that I'd like to work out of the standard user account. I would think that I'd like both of those accounts would be local (but I can set up the standard one later).

My preference would probably be to do it manually but I'll go with whatever you think best.

6)
if you want to use the Microsoft OSCDIMG utility to create the final ISO image
I think the ISO may be the best way to go. Ultimately, I'd like to make an archive of the installation and remove those installation files from the PC. What do you think would be the most efficient way to do that?

7)
I do a lot of stuff with Hyper-V
I've caught myself leaning towards Hyper-V a few times but always chicken out. I don't know if I would use it enough to justify it but the idea seems very appealing.

Thanks again for your responses. I'm hoping to put a real dent in this tomorrow.

Bob
 

My Computer

System One

  • OS
    Windows 10 Pro
    Computer type
    PC/Desktop
    Manufacturer/Model
    ASUS
    CPU
    AMD 5900X
    Motherboard
    ASUS TUF Gaming X570-PRO (WiFi 6) AM4 Zen 3 Ryzen 5000 & 3rd Gen Ryzen ATX Motherboard (PCIe 4.0, 2.5Gb LAN, BIOS Flashback, HDMI 2.1, USB 3.2 Gen 2
    Memory
    G.SKILL Trident Z Neo (For AMD Ryzen) Series 32GB (2 x 16GB) 288-Pin RGB DDR4 SDRAM DDR4 3600 (PC4 28800) Desktop Memory Model F4-3600C16D-32GTZN
    Graphics Card(s)
    NVIDIA GeForce GTX750 Ti
    Sound Card
    Realtek (on motherboard)
    Monitor(s) Displays
    Acer CZ350CK, Wasabi Mango QHD275 Supreme
    Screen Resolution
    3440 x 1440, 2560 x 1440
    Hard Drives
    1 TB Western Digital SN850 Gen 4 x 4 NVMe
    128GB Crucial CT128M4SSD1 2.5" SSD
    1TB Seagate Barracuda ST1000DM003-9YN162 HD
    16TB Western Digital WD161KRYZ-01AGBB0 HD
    PSU
    EVGA SuperNOVA 750 GT, 80 Plus Gold 750W
    Case
    Phanteks Eclipse P500A
    Cooling
    be quiet! 250W TDP Dark Rock Pro 4
    Keyboard
    Logitech
    Mouse
    IBM
    Internet Speed
    1Gbps
    Browser
    Firefox
    Antivirus
    Malwarebytes
Okay, I think that I understand where the confusion regarding the network adapter is coming from.

I don't typically use Windows PE on it's own, but I have always noticed that apps that use Windows PE, such as disk imaging software, have an option to start networkig. So, I don't think that network services are started in Win PE by default.

As for the admin account, bear in mind that during setup, you would be creating an admin level account of one sort or another. It would either be a local account or a Microsoft account, but you can always create a standard user account (not admin account) after the initial installation.

You might want to consider just trying Hyper-V sometime simply to get an idea of what it is like and get a rough idea what you can do with it. If that time ever comes, feel free to let me know. I can give a sorted of "guided tour".
 

My Computers

System One System Two

  • OS
    Win11 Pro 24H2
    Computer type
    PC/Desktop
    Manufacturer/Model
    Self-built
    CPU
    Intel i7 11700K
    Motherboard
    ASUS Prime Z590-A MB
    Memory
    64GB (Waiting for warranty replacement of another 64GB for 128GB total)
    Graphics Card(s)
    No GPU - Built-in Intel Graphics
    Sound Card
    Integrated
    Monitor(s) Displays
    HP Envy 32
    Screen Resolution
    2560 x 1440
    Hard Drives
    1 x 1TB NVMe SSD
    1 x 2TB NVMe SSD
    1 x 4TB NVMe SSD
    3 x 512GB 2.5" SSD
    1 x 4TB 2.5" SSD
    5 x 8TB Seagate Barracuda HDD
    PSU
    Corsair HX850i
    Case
    Corsair iCUE RGB 5000X mid tower case
    Cooling
    Noctua NF-S12A chromax.black.swap case fans (Qty. 7) & Home Computer Specifications, Configuration, and Usage Notes General Specifications ASUS Prime Z590-A motherboard, serial number M1M0KC222467ARP Intel Core i7-11700K CPU (11th Gen Rocket Lake / LGA 1200 Socket) 128GB Crucial Ballistix RGB DDR4 3200 MHz DRAM (4 x 32GB) Corsair iCUE RGB 5000X mid tower case Noctua NH-D15 chromax.black CPU cooler Noctua NF-S12A chromax.black.swap case fans (Qty. 7) & Corsair LL-120 RGB Fans (Qty. 3)
    Keyboard
    Corsair K70 Max RGB Magnetic Keyboard
    Mouse
    Logitech MX Master 3
    Internet Speed
    1Gb Up / 1 Gb Down
    Browser
    Edge
    Antivirus
    Windows Defender
    Other Info
    The five 8TB drives and three 512GB SSDs are part of a DrivePool using StableBit DrivePool software. The three SSDs are devoted purely to caching for the 8TB drives. All of the important data is stored in triplicate so that I can withstand simultaneous failure of 2 disks.

    Networking: 2.5Gbps Ethernet and WiFi 6e
  • Operating System
    Win11 Pro 23H2
    Computer type
    Laptop
    Manufacturer/Model
    Lenovo ThinkBook 13x Gen 2
    CPU
    Intel i7-1255U
    Memory
    16 GB
    Graphics card(s)
    Intel Iris Xe Graphics
    Sound Card
    Realtek® ALC3306-CG codec
    Monitor(s) Displays
    13.3-inch IPS Display
    Screen Resolution
    WQXGA (2560 x 1600)
    Hard Drives
    2 TB 4 x 4 NVMe SSD
    PSU
    USB-C / Thunderbolt 4 Power / Charging
    Mouse
    Buttonless Glass Precision Touchpad
    Keyboard
    Backlit, spill resistant keyboard
    Internet Speed
    1Gb Up / 1Gb Down
    Browser
    Edge
    Antivirus
    Windows Defender
    Other Info
    WiFi 6e / Bluetooth 5.1 / Facial Recognition / Fingerprint Sensor / ToF (Time of Flight) Human Presence Sensor
WinPE networking is typically enabled by running wpeutil (if Setup didn't initialize the network).
 

My Computer

System One

  • OS
    Windows 7
I don't think that it was a network services issue. The LAN driver for Intel I225-V NIC was missing. Tonight, using dism, I mounted the boot.wim file on my PC that resulted from the copype and makewinpemedia commands that I used to create my bootable USB WinPE environment last week (after installing Windows 11 ADK and WinPE add-on to my Win 10 PC). After mounting that boot.wim file I added the Intel network driver from my Windows 10 PC using DISM. I then manually replaced the boot.wim on my WinPE USB drive with this modified boot.wim from my PC. I shut down, booted to the WinPE environment then just used the net use n: command and it immediately connected and operated just like it does when I use my Win 10 WinPE environment. I didn't need to use wpeutil or anything else to connect.

I don't see the Intel I225-V driver on the Win 11 ISO either so I guess Intel missed the cut for Windows 11 somehow.
 

My Computer

System One

  • OS
    Windows 10 Pro
    Computer type
    PC/Desktop
    Manufacturer/Model
    ASUS
    CPU
    AMD 5900X
    Motherboard
    ASUS TUF Gaming X570-PRO (WiFi 6) AM4 Zen 3 Ryzen 5000 & 3rd Gen Ryzen ATX Motherboard (PCIe 4.0, 2.5Gb LAN, BIOS Flashback, HDMI 2.1, USB 3.2 Gen 2
    Memory
    G.SKILL Trident Z Neo (For AMD Ryzen) Series 32GB (2 x 16GB) 288-Pin RGB DDR4 SDRAM DDR4 3600 (PC4 28800) Desktop Memory Model F4-3600C16D-32GTZN
    Graphics Card(s)
    NVIDIA GeForce GTX750 Ti
    Sound Card
    Realtek (on motherboard)
    Monitor(s) Displays
    Acer CZ350CK, Wasabi Mango QHD275 Supreme
    Screen Resolution
    3440 x 1440, 2560 x 1440
    Hard Drives
    1 TB Western Digital SN850 Gen 4 x 4 NVMe
    128GB Crucial CT128M4SSD1 2.5" SSD
    1TB Seagate Barracuda ST1000DM003-9YN162 HD
    16TB Western Digital WD161KRYZ-01AGBB0 HD
    PSU
    EVGA SuperNOVA 750 GT, 80 Plus Gold 750W
    Case
    Phanteks Eclipse P500A
    Cooling
    be quiet! 250W TDP Dark Rock Pro 4
    Keyboard
    Logitech
    Mouse
    IBM
    Internet Speed
    1Gbps
    Browser
    Firefox
    Antivirus
    Malwarebytes
Hi hsehestedt: did you mention something about some files that need to be synchronize between the installation ISO and WinPE or is that already covered in the pdf that you prepared?Would that be the "cleanup" operation that you covered or is it something else?

Thanks,
Bob
 

My Computer

System One

  • OS
    Windows 10 Pro
    Computer type
    PC/Desktop
    Manufacturer/Model
    ASUS
    CPU
    AMD 5900X
    Motherboard
    ASUS TUF Gaming X570-PRO (WiFi 6) AM4 Zen 3 Ryzen 5000 & 3rd Gen Ryzen ATX Motherboard (PCIe 4.0, 2.5Gb LAN, BIOS Flashback, HDMI 2.1, USB 3.2 Gen 2
    Memory
    G.SKILL Trident Z Neo (For AMD Ryzen) Series 32GB (2 x 16GB) 288-Pin RGB DDR4 SDRAM DDR4 3600 (PC4 28800) Desktop Memory Model F4-3600C16D-32GTZN
    Graphics Card(s)
    NVIDIA GeForce GTX750 Ti
    Sound Card
    Realtek (on motherboard)
    Monitor(s) Displays
    Acer CZ350CK, Wasabi Mango QHD275 Supreme
    Screen Resolution
    3440 x 1440, 2560 x 1440
    Hard Drives
    1 TB Western Digital SN850 Gen 4 x 4 NVMe
    128GB Crucial CT128M4SSD1 2.5" SSD
    1TB Seagate Barracuda ST1000DM003-9YN162 HD
    16TB Western Digital WD161KRYZ-01AGBB0 HD
    PSU
    EVGA SuperNOVA 750 GT, 80 Plus Gold 750W
    Case
    Phanteks Eclipse P500A
    Cooling
    be quiet! 250W TDP Dark Rock Pro 4
    Keyboard
    Logitech
    Mouse
    IBM
    Internet Speed
    1Gbps
    Browser
    Firefox
    Antivirus
    Malwarebytes
Bob,

In the doc I provided, right near the end is a discussion about what to do for syncing the files. I'm revising this slightly based upon the new info from Microsoft. I'll get that update to you as soon as I can.
 

My Computers

System One System Two

  • OS
    Win11 Pro 24H2
    Computer type
    PC/Desktop
    Manufacturer/Model
    Self-built
    CPU
    Intel i7 11700K
    Motherboard
    ASUS Prime Z590-A MB
    Memory
    64GB (Waiting for warranty replacement of another 64GB for 128GB total)
    Graphics Card(s)
    No GPU - Built-in Intel Graphics
    Sound Card
    Integrated
    Monitor(s) Displays
    HP Envy 32
    Screen Resolution
    2560 x 1440
    Hard Drives
    1 x 1TB NVMe SSD
    1 x 2TB NVMe SSD
    1 x 4TB NVMe SSD
    3 x 512GB 2.5" SSD
    1 x 4TB 2.5" SSD
    5 x 8TB Seagate Barracuda HDD
    PSU
    Corsair HX850i
    Case
    Corsair iCUE RGB 5000X mid tower case
    Cooling
    Noctua NF-S12A chromax.black.swap case fans (Qty. 7) & Home Computer Specifications, Configuration, and Usage Notes General Specifications ASUS Prime Z590-A motherboard, serial number M1M0KC222467ARP Intel Core i7-11700K CPU (11th Gen Rocket Lake / LGA 1200 Socket) 128GB Crucial Ballistix RGB DDR4 3200 MHz DRAM (4 x 32GB) Corsair iCUE RGB 5000X mid tower case Noctua NH-D15 chromax.black CPU cooler Noctua NF-S12A chromax.black.swap case fans (Qty. 7) & Corsair LL-120 RGB Fans (Qty. 3)
    Keyboard
    Corsair K70 Max RGB Magnetic Keyboard
    Mouse
    Logitech MX Master 3
    Internet Speed
    1Gb Up / 1 Gb Down
    Browser
    Edge
    Antivirus
    Windows Defender
    Other Info
    The five 8TB drives and three 512GB SSDs are part of a DrivePool using StableBit DrivePool software. The three SSDs are devoted purely to caching for the 8TB drives. All of the important data is stored in triplicate so that I can withstand simultaneous failure of 2 disks.

    Networking: 2.5Gbps Ethernet and WiFi 6e
  • Operating System
    Win11 Pro 23H2
    Computer type
    Laptop
    Manufacturer/Model
    Lenovo ThinkBook 13x Gen 2
    CPU
    Intel i7-1255U
    Memory
    16 GB
    Graphics card(s)
    Intel Iris Xe Graphics
    Sound Card
    Realtek® ALC3306-CG codec
    Monitor(s) Displays
    13.3-inch IPS Display
    Screen Resolution
    WQXGA (2560 x 1600)
    Hard Drives
    2 TB 4 x 4 NVMe SSD
    PSU
    USB-C / Thunderbolt 4 Power / Charging
    Mouse
    Buttonless Glass Precision Touchpad
    Keyboard
    Backlit, spill resistant keyboard
    Internet Speed
    1Gb Up / 1Gb Down
    Browser
    Edge
    Antivirus
    Windows Defender
    Other Info
    WiFi 6e / Bluetooth 5.1 / Facial Recognition / Fingerprint Sensor / ToF (Time of Flight) Human Presence Sensor
Okay, here we go: Attached is my updated PDF file that reflects all the changes from the latest Microsoft info. Please note that I simply have not had the time to go through my rewritten doc and actually run all the individual commands one-by-one yet, but I'm reasonably sure that this should all be working fine. The changes made were fairly basic with the exception of swapping the order in which the main Windows OS image (install.wim) and the WinPE image (boot.wim) are updated. I'll get this tested over the next day or two, but if you encounter any difficulties, please just let me know.

I'm also including my latest update to the Wim Tools program. Please note that while the main purpose of this update is to make the changes based upon the new info from Microsoft, this is also a completely different edition of the program. The program I provided before can combine x86 and x64 images. I am now officially deprecating all x86 support since almost nobody uses it any longer and I no longer feel like maintaining two separate versions of the program :-). So from on, I support only 64-bit versions of Windows 10 and 11.

Unlike the manual procedure where I did not have time to test every individual command yet, I have fully tested the program.
 

Attachments

My Computers

System One System Two

  • OS
    Win11 Pro 24H2
    Computer type
    PC/Desktop
    Manufacturer/Model
    Self-built
    CPU
    Intel i7 11700K
    Motherboard
    ASUS Prime Z590-A MB
    Memory
    64GB (Waiting for warranty replacement of another 64GB for 128GB total)
    Graphics Card(s)
    No GPU - Built-in Intel Graphics
    Sound Card
    Integrated
    Monitor(s) Displays
    HP Envy 32
    Screen Resolution
    2560 x 1440
    Hard Drives
    1 x 1TB NVMe SSD
    1 x 2TB NVMe SSD
    1 x 4TB NVMe SSD
    3 x 512GB 2.5" SSD
    1 x 4TB 2.5" SSD
    5 x 8TB Seagate Barracuda HDD
    PSU
    Corsair HX850i
    Case
    Corsair iCUE RGB 5000X mid tower case
    Cooling
    Noctua NF-S12A chromax.black.swap case fans (Qty. 7) & Home Computer Specifications, Configuration, and Usage Notes General Specifications ASUS Prime Z590-A motherboard, serial number M1M0KC222467ARP Intel Core i7-11700K CPU (11th Gen Rocket Lake / LGA 1200 Socket) 128GB Crucial Ballistix RGB DDR4 3200 MHz DRAM (4 x 32GB) Corsair iCUE RGB 5000X mid tower case Noctua NH-D15 chromax.black CPU cooler Noctua NF-S12A chromax.black.swap case fans (Qty. 7) & Corsair LL-120 RGB Fans (Qty. 3)
    Keyboard
    Corsair K70 Max RGB Magnetic Keyboard
    Mouse
    Logitech MX Master 3
    Internet Speed
    1Gb Up / 1 Gb Down
    Browser
    Edge
    Antivirus
    Windows Defender
    Other Info
    The five 8TB drives and three 512GB SSDs are part of a DrivePool using StableBit DrivePool software. The three SSDs are devoted purely to caching for the 8TB drives. All of the important data is stored in triplicate so that I can withstand simultaneous failure of 2 disks.

    Networking: 2.5Gbps Ethernet and WiFi 6e
  • Operating System
    Win11 Pro 23H2
    Computer type
    Laptop
    Manufacturer/Model
    Lenovo ThinkBook 13x Gen 2
    CPU
    Intel i7-1255U
    Memory
    16 GB
    Graphics card(s)
    Intel Iris Xe Graphics
    Sound Card
    Realtek® ALC3306-CG codec
    Monitor(s) Displays
    13.3-inch IPS Display
    Screen Resolution
    WQXGA (2560 x 1600)
    Hard Drives
    2 TB 4 x 4 NVMe SSD
    PSU
    USB-C / Thunderbolt 4 Power / Charging
    Mouse
    Buttonless Glass Precision Touchpad
    Keyboard
    Backlit, spill resistant keyboard
    Internet Speed
    1Gb Up / 1Gb Down
    Browser
    Edge
    Antivirus
    Windows Defender
    Other Info
    WiFi 6e / Bluetooth 5.1 / Facial Recognition / Fingerprint Sensor / ToF (Time of Flight) Human Presence Sensor
hsehestedt,

Thanks for providing the updates so quickly! I'm working on it this morning. I do have a question on the SSU being embedded in the LCU. There is a SSU cab file embedded in the current KB5034123 LCU. I have extracted the SSU cab file into the working SSU folder on my PC as your instruction document indicates. According to the instructions (and Microsoft) I should incorporate the SSU into WinRE.wim, Install.wim, and Boot.wim. Should the SSU cab file remain in the LCU when I incorporate the LCU into the three wim files? I believe the answer is yes but want to be sure?

Thanks,
Bob
 

My Computer

System One

  • OS
    Windows 10 Pro
    Computer type
    PC/Desktop
    Manufacturer/Model
    ASUS
    CPU
    AMD 5900X
    Motherboard
    ASUS TUF Gaming X570-PRO (WiFi 6) AM4 Zen 3 Ryzen 5000 & 3rd Gen Ryzen ATX Motherboard (PCIe 4.0, 2.5Gb LAN, BIOS Flashback, HDMI 2.1, USB 3.2 Gen 2
    Memory
    G.SKILL Trident Z Neo (For AMD Ryzen) Series 32GB (2 x 16GB) 288-Pin RGB DDR4 SDRAM DDR4 3600 (PC4 28800) Desktop Memory Model F4-3600C16D-32GTZN
    Graphics Card(s)
    NVIDIA GeForce GTX750 Ti
    Sound Card
    Realtek (on motherboard)
    Monitor(s) Displays
    Acer CZ350CK, Wasabi Mango QHD275 Supreme
    Screen Resolution
    3440 x 1440, 2560 x 1440
    Hard Drives
    1 TB Western Digital SN850 Gen 4 x 4 NVMe
    128GB Crucial CT128M4SSD1 2.5" SSD
    1TB Seagate Barracuda ST1000DM003-9YN162 HD
    16TB Western Digital WD161KRYZ-01AGBB0 HD
    PSU
    EVGA SuperNOVA 750 GT, 80 Plus Gold 750W
    Case
    Phanteks Eclipse P500A
    Cooling
    be quiet! 250W TDP Dark Rock Pro 4
    Keyboard
    Logitech
    Mouse
    IBM
    Internet Speed
    1Gbps
    Browser
    Firefox
    Antivirus
    Malwarebytes
A quick shout out to @robra whose eagle eyes spotted an error in my PDF. On page 3 I twice reference "C:\WindowsUpdates". Both of those references should actually be to "C:\WinUpdates".

Next, I had stated earlier that it would me some time to test all the changes to manual commands that I had updated the document with. However, I had completely forgotten that I had created a batch file with all those commands in place. As a result, I simply made the same changes to the batch file that I made to my documentation and tested it. It ran flawlessly. That was a serious time saver!

I'm going to include that batch file below because it may serve as a good reference source when reading through the documentation and it provides yet another way to perform these updates.

Bob, to answer your question posted above, you are 100% correct. There is no need to remove the SSU from the LCU package. We extract a copy to facilitate applying the SSU, but there is no need to remove it from the package.

Here is the batch file that I referenced above:

Batch:
@echo off
cd /d %~dp0
cls


:::::::::::::::::::::::::::::::::::::::
:: Windows Image Updater             ::
::                                   ::
:: Version 6.0.0                     ::
::                                   ::
:: Jan 21, 2024 by Hannes Sehestedt  ::
:::::::::::::::::::::::::::::::::::::::


:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::                                                                                                     ::
:: PURPOSE OF THIS SCRIPT                                                                              ::
::                                                                                                     ::
:: This script will take one Windows edition in a Windows ISO image and inject Windows                 ::
:: updates into it. The updated edition of Windows will be saved to a new file containing              ::
:: just that one edition of Windows. As an example, assume that you have a retail Windows              ::
:: ISO image. This ISO image has multiple editions of Windows such as Win 11 Home, Pro, etc.           ::
:: Each edition of Windows has an index number associated with it.                                     ::
::                                                                                                     ::
:: For example, on the US English consumer edition ISO images from Microsoft, Windows 11 Pro is index  ::
:: number 6. To get a list of Windows editions and the index number associated with each edition, you  ::
:: can run this command:                                                                               ::
::                                                                                                     ::
:: dism /Get-WimInfo /WimFile:C:\Project\ISO_Files\Sources\install.wim                                 ::
::                                                                                                     ::
:: If located elsewhere, substitute the correct location of the install.wim file in the above command. ::
::                                                                                                     ::
:: This utility will perform the updates THE RIGHT WAY by updating all elements of the image           ::
:: including not only the cumulative update, but also the SSU (Servicing Stack Update), Safe           ::
:: OS Dynamic Update, Setup Dynamic Update, other updates such as .NET updates and Microcode           ::
:: updates, and will even allow you to add custom scripts to the Windows PE image. However,            ::
:: if you want to update only one item, such as the cumulative update, you can do that as well.        ::
::                                                                                                     ::
:: IMPORTANT: As noted, this script will only update one edition of Windows from an image. If          ::
:: you want to update multiple editions and combine them all into a single image, please               ::
:: message me as noted above. I can provide to you a tool that will allow you to update many           ::
:: Windows editions and combine them into a single image. That same tool also has many other           ::
:: features such as being able to inject drivers into an image, create bootable media, and many        ::
:: other tasks related to Windows Image Management.                                                    ::
::                                                                                                     ::
:: Please note that it is possible to also add updates such as language packs and other language       ::
:: related components to Windows images. This batch file does not apply those updates, however         ::
:: I can provide information regarding how to update those components if you need to do so.            ::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::


:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::                                                                                                                 ::
:: SUMMARY OF INSTRUCTIONS                                                                                         ::
::                                                                                                                 ::
::                                                                                                                 ::
:: 1) Read the instructions below to learn how to organize the folders that this project needs.                    ::
::                                                                                                                 ::
:: 2) Review the "User defined variables" section below and modify as needed.                                      ::
::                                                                                                                 ::
:: 3) Make sure that you have the Windows ADK installed. Only the Deployment Tools from the                        ::
::    ADK need to be installed.                                                                                    ::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::                                                                                                                 ::
:: DETAILED INSTRUCTIONS                                                                                           ::
::                                                                                                                 ::
:: Create the following folders before you run this batch file.                                                    ::
::                                                                                                                 ::
:: NOTE: The paths below assume the default settings of user defined variables. If you change those variables,     ::
:: Please alter the below paths accordingly.                                                                       ::
::                                                                                                                 ::
:: Do either one of the following:                                                                                 ::
::                                                                                                                 ::
:: 1) Create a folder and copy the contents of your Windows ISO image that you want to update to it.               ::
::                                                                                                                 ::
:: OR                                                                                                              ::
::                                                                                                                 ::
:: 2) Mount the ISO image by double-clicking it.                                                                   ::
::                                                                                                                 ::
:: For whichever of the above options you choose, note the location as the batch file will ask you for that        ::
:: location when you run it.                                                                                       ::
::                                                                                                                 ::
:: Create a folder under which you will place the Windows updates to be installed.                                 ::
::                                                                                                                 ::
:: NOTE: This location can be changed using the user defined variables below. In this example, we assume that      ::
:: location will be "C:\WinUpdates". Beneath that folder, create all of the following folders and place the        ::
:: updates described into that folder. All of these updates can be downloaded from the "Microsoft Update Catalog". ::
::                                                                                                                 ::
:: NOTE: All items are optional. For example, if you do not have a Safe OS Dynamic Update, simply leave that       ::
:: folder empty.                                                                                                   ::
::                                                                                                                 ::
:: The "PE_Files" folder can be used to place files that you want to copy to Windows setup. For example, I have a  ::
:: couple of scripts that I want to be available to Windows setup. Any files that you place here will be available ::
:: on drive X: during windows setup. Note that X: is the RAM Drive that Windows creates during setup. Since this   ::
:: is just about the first thing setup does, these files will be available very early in setup. IT IS EXTREMEMELY  ::
:: UNLIKELY that you will ever put anything in this folder unless you have a very specific reason for doing so. As ::
:: a result, you will typically leave this folder empty.                                                           ::
::                                                                                                                 ::
:: If you wish to DELETE files from Windows PE, for example, scripts that you previously added as described in the ::
:: above paragragh, please search this batch file for the text "delete files from WinPE" and follow the            ::
:: instructions found there. Once again, IT IS EXTREMEMELY UNLIKELY that you will need to do this.                 ::
::                                                                                                                 ::
:: When downloading updates from the Microsoft Update Catalog, please note that the "Safe OS Dynamic Update"       ::
:: will include "Windows Safe OS Dysnamic Update" in the "Products" column. The "Setup Dynamic Update" will        ::
:: simply be called a "Dynamic Update" in this same column.                                                        ::
::                                                                                                                 ::
:: Once again, note that the "C:\WinUpdates" portion of the paths below can be chaned using the user defined       ::
:: variables that are described below.                                                                             ::
::                                                                                                                 ::
:: C:\WinUpdates\LCU       <--- Place Latest Cumulative Update in this folder. DON'T use a DYNAMIC version.        ::
:: C:\WinUpdates\SSU       <--- Place a Standalone SSU in this folder if one is available. These are not common.   ::
:: C:\WinUpdates\Other     <--- Place other updates (for example .NET and OOBE ZDP Updates) in this folder.        ::
:: C:\WinUpdates\SafeOS_DU <--- Place the latest Safe OS Dynamic Update in this folder.                            ::
:: C:\WinUpdates\Setup_DU  <--- Place the latest Setup Dynamic Update in this folder.                              ::
:: C:\WinUpdates\PE_Files  <--- Place any files such as scripts that you want copied to WinPE here.                ::
::                                                                                                                 ::
:: IMPORTANT: Please note that for each type of update, you should only download the latest update of that type    ::
:: because updates are cumulative. However, there is one exception to this rule: The OOBE ZDP updates are NOT      ::
:: cumulative, so you should download ALL available updates of that type and place them in the Other folder. Also, ::
:: be aware that there may sometimes be no update of a certain type available. As an example, Safe OS updates do   ::
:: not get released every month, so it is possible that there is no update of that type available, especially soon ::
:: after the release of a new version of Windows.                                                                  ::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::


:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::                                                                                                                     ::
:: USER DEFINED VARIABLES                                                                                              ::
::                                                                                                                     ::
:: Below you will find a description of variables that you can set. You should check each one to make sure that it     ::
:: fits your needs. The actual variables are found below the description section. Please note that spaces in path      ::
:: names or file names are perfectly fine. you should NOT use quotes to enclose file names or paths even if there      ::
:: are spaces in the names.                                                                                            ::
::                                                                                                                     ::
:: IndexNum - Set "IndexNum" to the index number corresponding to the Windows edition you want to update. By default   ::
::    we have this set to "6" which corresponds to Windows 10 or 11 Pro when using the standard retail edition ISO     ::
::    image from Microsoft. To get a list of Windows editions and the index number associated with each edition, you   ::
::    can run this command:                                                                                            ::
::                                                                                                                     ::
::       dism /Get-WimInfo /WimFile:C:\Project\ISO_Files\Sources\install.wim                                           ::
::                                                                                                                     ::
::    If located elsewhere, substitute the correct location of the install.wim file in the above command.              ::
::                                                                                                                     ::
:: ProjectFolder - Set "ProjectFolder" to the location where the project will be created. The batch file will create   ::
::    a number of folders under the project folder. Many of the files here are temporary files. Be aware that there    ::
::    will be a lot files. You can easily need 20GB or more of space in this location.                                 ::
::                                                                                                                     ::
:: WinUpdates - Set "WinUpdates" to the location of the Windows update files. Under this folder, you should create the ::
::    folder structure that is desribed above in the "DETAILED INSTRUCTIONS" section.                                  ::
::                                                                                                                     ::
:: EnableLogs - If you want logging to show what updates actually got installed into your WinRE.WIM, BOOT.WIM, and     ::
::    INSTALL.WIM files, set "EnableLogs" to "1". Otherwise, set it "0". This will cause two text files for each WIM   ::
::    to be created. The first is created after updates are applied, but before the cleanup of the image is performed. ::
::    The second is created after cleanup. As an example, after a combined LCU / SSU package is applied, you may see   ::
::    more than one SSU package in the log prior to the cleanup, however, after the cleanup, the older SSU should have ::
::    been removed. Note that for WinPE four files are created because a pair is created for each of the two indicies  ::
::    that get updated. The files are created in the same folder from which the batch file is run. You can normally    ::
::    leave this set to "0".                                                                                           ::
::                                                                                                                     ::
:: NewImageFileName - Set "NewImageFileName" to the name you want to use for the final ISO image to be created. Make   ::
::    sure to include the .ISO file extension. Spaces in the file name are okay.                                       ::
::                                                                                                                     ::
:: ADK_Location - Set this variable to the location of the "Deployment Tools" folder within the Windows ADK. You       ::
::    should only need to change this if you did not install to the default location.                                  ::
::                                                                                                                     ::
:: SaveWinRE - Set this to "1" if you wish to save a copy of the WinRE.wim file after it is updated. This can be       ::
::    helpful if you need to replace the WinRE.wim file in your Recovery Partition. This file could otherwise be       ::
::    difficult to obtain because it is located within another WIM file (the install.wim) so saving a copy after       ::
::    updating can be helpful. Setting this to "0" (or anything other than "1") will cause a copy of the file to       ::
::    not be saved.                                                                                                    ::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::


set IndexNum=6
set ProjectFolder=C:\Project
set WinUpdates=C:\WinUpdates\x64
set EnableLogs=0
set NewImageFileName=Windows.ISO
set ADK_Location=C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools
set SaveWinRE=1


:::::::::::::::::::::::::::::::::::
:: End of user defined variables ::
:::::::::::::::::::::::::::::::::::


::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Check to see if this batch file is being run as Administrator. If it is not, then rerun the batch file ::
:: automatically as admin and terminate the initial instance of the batch file.                           ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::


(Fsutil Dirty Query %SystemDrive%>Nul)||(PowerShell start """%~f0""" -verb RunAs & Exit /B) > NUL 2>&1


::::::::::::::::::::::::::::::::::::::::::::::::
:: End Routine to check if being run as Admin ::
::::::::::::::::::::::::::::::::::::::::::::::::


::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Change the console mode to 120 columns wide by 25 lines high ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::


mode con: cols=120 lines=25


:::::::::::::::::::::::::::::::::::
:: Display introductory comments ::
:::::::::::::::::::::::::::::::::::


echo It is VERY IMPORTANT that prior to running this batch file, you open it in an editor such as notepad and read the
echo following sections: PURPOSE OF THIS SCRIPT, SUMMARY OF INSTRUCTIONS, DETAILED INSTRUCTIONS. Make certain to set the
echo user defined variables as instructed.
echo.
echo If you have not done so, please press CTRL + C to terminate this batch file, and then run it again after you perform
echo the above steps.
echo.
pause


::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Save the current location where this batch file is being run, then run the the "DandISetEnv.bat" file  ::
:: which sets environment variables for the ADK. This also changes the current directory, which we do NOT ::
:: want, so we will change it back to the current directory.                                              ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::


pushd %~dp0
call "%ADK_Location%\DandISetEnv.bat"
popd


::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Ask user for location of mounted ISO image or the directory containing the Windows files ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::


:GetSourcePath

cls
echo Enter the path to the SOURCE where your Windows files are located below.
echo.
echo Note that these files can be located in a folder on your HDD, SSD, flash drive, etc. or they can be located on an ISO
echo image that you have mounted.
echo.
echo Tip: The path can end with or without a backslash (\). D:, D:\, D:\ISO_Files, D:\ISO_Files\ are all valid paths.
echo.

:GetSourcePath

set /p SourcePath="Enter source path: "

:: Add a trailing backslash (\) if one does not exist

IF NOT "%SourcePath:~-1%"=="\" (
set SourcePath=%SourcePath%\
)


:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Any valid Windows boot media will have a file called "boot\bootfix.bin" on the drive. This is true for both ::
:: single architecture images (x64 or x86) or for images with dual architectures. We will do a simple check to ::
:: see if such a file exists as a basic test for a valid source image location.                                ::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::


if NOT EXIST "%SourcePath%boot\bootfix.bin" (
cls
echo The location that you specified does not contain a valid Windows image. Please try another location. If you are
echo specifying a location on disk, please be sure to specify the location to the root of the Windows image. If you
echo are using an ISO image, you should double-click the ISO image to mount it and note the drive letter to which it
echo was mounted.
echo.
pause
goto GetSourcePath
)

:: Finally, all preparation is done. We can now begin the update process.

cls
echo ***************************************************************
echo ***************************************************************
echo **                                                           **
echo ** PLEASE BE PATIENT! Applying updates is a lengthy process. **
echo **                                                           **
echo ***************************************************************
echo ***************************************************************
echo.

:: Create the initial directory structure for this project

md "%ProjectFolder%\Mount" > NUL 2>&1
md "%ProjectFolder%\WinRE" > NUL 2>&1
md "%ProjectFolder%\WinRE_Mount" > NUL 2>&1
md "%ProjectFolder%\WinPE" > NUL 2>&1
md "%ProjectFolder%\WinPE_Mount" > NUL 2>&1
md "%ProjectFolder%\Assets" > NUL 2>&1
md "%ProjectFolder%\Temp" > NUL 2>&1
md "%ProjectFolder%\Base" > NUL 2>&1
md "%ProjectFolder%\SSU" > NUL 2>&1

:: Copy the ISO image files to base folder

echo ****************************************
echo * Copy Windows files to working folder *
echo ****************************************
echo.


::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Note: Because the source path end with a backslash, and this is seen as an escape    ::
:: when followed by the double quotes, we have to add a space before the double quotes. ::
:: Also, we need to make sure that the files we are working with are accessible, so     ::
:: we are stripping the read-only, hidden, and system attributes from the files.        ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::


robocopy "%SourcePath% " "%ProjectFolder%\Base" /mir /a-:HSR > NUL

:: Mount the install.wim file

echo ****************************************
echo * Mounting main OS image (install.wim) *
echo ****************************************
echo.

DISM /mount-image /imagefile:"%ProjectFolder%\Base\sources\install.wim" /index:%IndexNum% /mountdir:"%ProjectFolder%\Mount" > NUL

:: Update Win RE

echo ******************************
echo * Updating WinRE (winre.wim) *
echo ******************************
echo.
echo    ***************************
echo    * Applying Standalone SSU *
echo    ***************************
echo.

copy /B "%ProjectFolder%\Mount\Windows\System32\Recovery\WinRE.wim" "%ProjectFolder%\WinRE" > NUL
DISM /mount-image /imagefile:"%ProjectFolder%\WinRE\WinRE.wim" /index:1 /mountdir:"%ProjectFolder%\WinRE_Mount" > NUL

DISM /Add-Package /Image:"%ProjectFolder%\WinRE_Mount" /PackagePath="%WinUpdates%\SSU" > NUL

echo    ****************
echo    * Applying SSU *
echo    ****************
echo.

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: We are now applying the SSU from the combined SSU / LCU package. Note that since the SSU is contained within ::
:: the combined SSU / LCU package, we first need to extract the SSU from that package. Once we have extracted   ::
:: the SSU package, we can use it here and later when we also apply the SSU to WinPE (boot.wim) and the main    ::
:: Windows image (install.wim). We will not need to extract the SSU again since we are already doing so here.   ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

expand "%WinUpdates%\LCU\*.msu" /f:SSU*.cab "%ProjectFolder%\SSU" > NUL
DISM /Add-Package /Image:"%ProjectFolder%\WinRE_Mount" /PackagePath="%ProjectFolder%\SSU" > NUL

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Microsoft documentation indicates that the LCU package does NOT get applied to the WinRE.wim. However,   ::
:: testing related to a Windows vulnerability in Jan of 2023 reveals that it is necessary to apply the LCU. ::
:: As a result, this batch file has been updated as of Jan 2023 to apply the SSU, LCU, and Safe OS Dynamic  ::
:: Updates.                                                                                                 ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

echo    ****************
echo    * Applying LCU *
echo    ****************
echo.

DISM /Add-Package /Image:"%ProjectFolder%\WinRE_Mount" /PackagePath="%WinUpdates%\LCU" > NUL

echo    ***********************************
echo    * Applying Safe OS Dynamic Update *
echo    ***********************************
echo.

DISM /Add-Package /Image:"%ProjectFolder%\WinRE_Mount" /PackagePath="%WinUpdates%\SafeOS_DU" > NUL

if %EnableLogs%==1 (
DISM /Get-Packages /image:"%ProjectFolder%\WinRE_Mount" > WinRE_Before_Cleanup.txt
)

echo    ************************************
echo    * Cleaning up old files from image *
echo    ************************************
echo.

DISM /Cleanup-Image /Image:"%ProjectFolder%\WinRE_Mount" /StartComponentCleanup > NUL

if %EnableLogs%==1 (
DISM /Get-Packages /image:"%ProjectFolder%\WinRE_Mount" > WinRE_After_Cleanup.txt
)

echo    ********************
echo    * Unmounting image *
echo    ********************
echo.

DISM /Unmount-Image /MountDir:"%ProjectFolder%\WinRE_Mount" /Commit > NUL

echo    *************************
echo    * Exporting WinRE image *
echo    *************************
echo.

DISM /Export-Image /SourceImageFile:"%ProjectFolder%\WinRE\WinRE.wim" /SourceIndex:1 /DestinationImageFile:"%ProjectFolder%\Assets\WinRE.wim" > NUL


:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: It is possible that the user may wish to save a copy of the WinRE.wim file. As an example, in Jan 2023 a vulnerability required ::
:: that the WinRE on a running system be updated to avoid an exploit that could allow access to a BitLocker encrypted OS volume    ::
:: from the Recovery Environment. Unfortunatley, there may not be enough room on the Recovery volume to update this file in place. ::
:: If the users chooses to save the WinRE.wim, we will save a copy to the same place where the final ISO image is saved.           ::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::


if %SaveWinRE%==1 (
copy /B /Y "%ProjectFolder%\Assets\WinRE.wim" "%ProjectFolder%" > NUL
)

echo **********************************
echo * Updating main OS (install.wim) *
echo **********************************
echo.

echo    ***************************
echo    * Applying Standalone SSU *
echo    ***************************
echo.

DISM /Add-Package /Image:"%ProjectFolder%\Mount" /PackagePath="%WinUpdates%\SSU" > NUL

echo    ****************
echo    * Applying SSU *
echo    ****************
echo.

DISM /Add-Package /Image:"%ProjectFolder%\Mount" /PackagePath="%ProjectFolder%\SSU" > NUL

echo    ****************
echo    * Applying LCU *
echo    ****************
echo.

DISM /Add-Package /Image:"%ProjectFolder%\Mount" /PackagePath="%WinUpdates%\LCU" > NUL

echo    ********************************************************
echo    * Move updated winre.wim back into mounted install.wim *
echo    ********************************************************
echo.

move /Y "%ProjectFolder%\Assets\WinRE.wim" "%ProjectFolder%\Mount\Windows\System32\Recovery" > NUL

if %EnableLogs%==1 (
DISM /Get-Packages /image:"%ProjectFolder%\Mount" > MainOS_Before_Cleanup.txt
)

echo    ************************************
echo    * Cleaning up old files from image *
echo    ************************************
echo.

DISM /Cleanup-Image /Image:"%ProjectFolder%\Mount" /StartComponentCleanup /ResetBase /ScratchDir:"%ProjectFolder%\Temp" > NUL

if %EnableLogs%==1 (
DISM /Get-Packages /image:"%ProjectFolder%\Mount" > MainOS_After_Cleanup.txt
)

echo    *************************************************************************************************
echo    * Install "Other" updates such as .NET and OOBE ZDP updates to the main OS image (install.wim). *
echo    *************************************************************************************************
echo.

DISM /Add-Package /Image:"%ProjectFolder%\Mount" /PackagePath="%WinUpdates%\Other" > NUL


:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: We could copy files from the mounted install.wim now but just as with the boot.wim we will delay doing so ::
:: until after the Setup Dynamic Update has been applied.                                                    ::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::


echo **************************************
echo * Updating WinPE (boot.wim), index 1 *
echo **************************************
echo.

copy /B "%ProjectFolder%\Base\sources\boot.wim" "%ProjectFolder%\WinPE" > NUL
DISM /mount-image /imagefile:"%ProjectFolder%\WinPE\boot.wim" /index:1 /mountdir:"%ProjectFolder%\WinPE_Mount" > NUL

echo    ***************************
echo    * Applying Standalone SSU *
echo    ***************************
echo.

DISM /Add-Package /Image:"%ProjectFolder%\WinPE_Mount" /PackagePath="%WinUpdates%\SSU" > NUL

echo    ****************
echo    * Applying SSU *
echo    ****************
echo.

DISM /Add-Package /Image:"%ProjectFolder%\WinPE_Mount" /PackagePath="%ProjectFolder%\SSU" > NUL

echo    ****************
echo    * Applying LCU *
echo    ****************
echo.

DISM /Add-Package /Image:"%ProjectFolder%\WinPE_Mount" /PackagePath="%WinUpdates%\LCU" > NUL

if %EnableLogs%==1 (
DISM /Get-Packages /image:"%ProjectFolder%\WinPE_Mount" > WinPE_Index1_Before_Cleanup.txt
)

echo    ************************************
echo    * Cleaning up old files from image *
echo    ************************************
echo.

DISM /Cleanup-Image /Image:"%ProjectFolder%\WinPE_Mount" /StartComponentCleanup > NUL

if %EnableLogs%==1 (
DISM /Get-Packages /image:"%ProjectFolder%\WinPE_Mount" > WinPE_Index1_After_Cleanup.txt
)

echo    ********************
echo    * Unmounting image *
echo    ********************
echo.

DISM /Unmount-Image /MountDir:"%ProjectFolder%\WinPE_Mount" /Commit > NUL

echo    **********************************
echo    * Exporting WinPE image, index 1 *
echo    **********************************
echo.

DISM /Export-Image /SourceImageFile:"%ProjectFolder%\WinPE\boot.wim" /SourceIndex:1 /DestinationImageFile:"%ProjectFolder%\Assets\boot.wim" > NUL

echo **************************************
echo * Updating WinPE (boot.wim), index 2 *
echo **************************************
echo.

DISM /mount-image /imagefile:"%ProjectFolder%\WinPE\boot.wim" /index:2 /mountdir:"%ProjectFolder%\WinPE_Mount" > NUL

echo    ***************************
echo    * Applying Standalone SSU *
echo    ***************************
echo.

DISM /Add-Package /Image:"%ProjectFolder%\WinPE_Mount" /PackagePath="%WinUpdates%\SSU" > NUL

echo    ****************
echo    * Applying SSU *
echo    ****************
echo.

DISM /Add-Package /Image:"%ProjectFolder%\WinPE_Mount" /PackagePath="%ProjectFolder%\SSU" > NUL

echo    ****************
echo    * Applying LCU *
echo    ****************
echo.

DISM /Add-Package /Image:"%ProjectFolder%\WinPE_Mount" /PackagePath="%WinUpdates%\LCU" > NUL

echo    **************************************
echo    * Copy any user files to WinPE image *
echo    **************************************
echo.

robocopy "%ProjectFolder%\PE_Files" "%ProjectFolder%\WinPE_Mount" *.* /E > NUL

:: If you want to delete files from WinPE, such as scripts you may have added previously, uncommet the
:: line below and change the filename to the name of the file you want to delete. Add additional lines using
:: the same format if needed.

:: del "%ProjectFolder%\WinPE_Mount\MyScript.bat" /Q > NUL

if %EnableLogs%==1 (
DISM /Get-Packages /image:"%ProjectFolder%\WinPE_Mount" > WinPE_Index2_Before_Cleanup.txt
)

echo    ************************************
echo    * Cleaning up old files from image *
echo    ************************************
echo.

DISM /Cleanup-Image /Image:"%ProjectFolder%\WinPE_Mount" /StartComponentCleanup > NUL

if %EnableLogs%==1 (
DISM /Get-Packages /image:"%ProjectFolder%\WinPE_Mount" > WinPE_Index2_After_Cleanup.txt
)


:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: We are going to delay exporting of the boot.wim index 2 until later so that we can copy files while ::
:: it is still mounted to the main media. We could this right now, but by delaying it until after the  ::
:: Setup Dynamic Update is applied, we can demonstrate that there are files that are out of sync after ::
:: all updates, including the Setup Dynamic Update, have been applied.                                 ::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::


echo ******************************
echo * Apply Setup Dynamic Update *
echo ******************************
echo.

Expand "%WinUpdates%\Setup_DU\*" -F:* "%ProjectFolder%\Base\Sources" > NUL

echo **************************************************
echo * Copy mismatched files to appropriate locations *
echo **************************************************
echo.


::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: The section below syncs files between Windows PE and the base media. It is ::
:: possible that some files which should be the same are not synced properly. ::
:: This section will correct that situation.                                  ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: These are the items that should be synced (In x64 Images):                                                            ::
::                                                                                                                       ::
:: From WinPE, Index 2, \Sources\Setup.exe > \Sources folder on base media.                                              ::
:: From WinPE, Index 2, \Windows\boot\efi\bootmgfw.efi > base media \efi\boot\bootx64.efi (replace the file bootx64.efi) ::
:: From WinPE, Index 2, \Windows\boot\efi\bootmgr.efi > base media \bootmgr.efi (replace the file bootmgr.efi)           ::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::


copy /b /y "%ProjectFolder%\winpe_mount\sources\setup.exe" "%ProjectFolder%\Base\sources\setup.exe" > NUL
copy /b /y "%ProjectFolder%\winpe_mount\windows\boot\efi\bootmgfw.efi" "%ProjectFolder%\Base\efi\boot\bootx64.efi" > NUL
copy /b /y "%ProjectFolder%\winpe_mount\windows\boot\efi\bootmgr.efi" "%ProjectFolder%\Base\bootmgr.efi" > NUL

echo ******************************************
echo * Unmounting index 2 of WinPE (boot.wim) *
echo ******************************************
echo.

DISM /Unmount-Image /MountDir:"%ProjectFolder%\WinPE_Mount" /Commit > NUL

echo    **********************************
echo    * Exporting WinPE Image, Index 2 *
echo    **********************************
echo.

DISM /Export-Image /Bootable /SourceImageFile:"%ProjectFolder%\WinPE\boot.wim" /SourceIndex:2 /DestinationImageFile:"%ProjectFolder%\Assets\boot.wim" > NUL

echo ****************************************
echo * Unmounting the Main OS (install.wim) *
echo ****************************************
echo.

DISM /Unmount-Image /MountDir:"%ProjectFolder%\Mount" /Commit > NUL

echo ***************************************
echo * Exporting the Main OS (install.wim) *
echo ***************************************
echo.

DISM /Export-Image /SourceImageFile:"%ProjectFolder%\Base\sources\install.wim" /SourceIndex:%IndexNum% /DestinationImageFile:"%ProjectFolder%\Assets\install.wim" > NUL

echo ******************************************************
echo * Move updated boot.wim and install.wim image folder *
echo * to replace the original files                      *
echo ******************************************************
echo.

move /Y "%ProjectFolder%\Assets\boot.wim" "%ProjectFolder%\Base\Sources" > NUL
move /Y "%ProjectFolder%\Assets\install.wim" "%ProjectFolder%\Base\Sources" > NUL

echo ******************************
echo * Create the final ISO image *
echo ******************************
echo.

oscdimg.exe -m -o -u2 -udfver102 -bootdata:2#p0,e,b"%ProjectFolder%\Base\boot\etfsboot.com"#pEF,e,b"%ProjectFolder%\Base\efi\microsoft\boot\efisys.bin" "%ProjectFolder%\Base" "%ProjectFolder%\%NewImageFileName%" > NUL 2>&1

:: Cleanup the temporary folders.

rd "%ProjectFolder%\Mount" /s /q > NUL
rd "%ProjectFolder%\winre" /s /q > NUL
rd "%ProjectFolder%\winre_mount" /s /q > NUL
rd "%ProjectFolder%\winpe" /s /q > NUL
rd "%ProjectFolder%\winpe_mount" /s /q > NUL
rd "%ProjectFolder%\assets" /s /q > NUL
rd "%ProjectFolder%\temp" /s /q > NUL
rd "%ProjectFolder%\Base" /s /q > NUL
rd "%ProjectFolder%\SSU" /s /q > NUL

echo Done! The ISO image has been saved as "%ProjectFolder%\%NewImageFileName%"
echo.
pause
 

My Computers

System One System Two

  • OS
    Win11 Pro 24H2
    Computer type
    PC/Desktop
    Manufacturer/Model
    Self-built
    CPU
    Intel i7 11700K
    Motherboard
    ASUS Prime Z590-A MB
    Memory
    64GB (Waiting for warranty replacement of another 64GB for 128GB total)
    Graphics Card(s)
    No GPU - Built-in Intel Graphics
    Sound Card
    Integrated
    Monitor(s) Displays
    HP Envy 32
    Screen Resolution
    2560 x 1440
    Hard Drives
    1 x 1TB NVMe SSD
    1 x 2TB NVMe SSD
    1 x 4TB NVMe SSD
    3 x 512GB 2.5" SSD
    1 x 4TB 2.5" SSD
    5 x 8TB Seagate Barracuda HDD
    PSU
    Corsair HX850i
    Case
    Corsair iCUE RGB 5000X mid tower case
    Cooling
    Noctua NF-S12A chromax.black.swap case fans (Qty. 7) & Home Computer Specifications, Configuration, and Usage Notes General Specifications ASUS Prime Z590-A motherboard, serial number M1M0KC222467ARP Intel Core i7-11700K CPU (11th Gen Rocket Lake / LGA 1200 Socket) 128GB Crucial Ballistix RGB DDR4 3200 MHz DRAM (4 x 32GB) Corsair iCUE RGB 5000X mid tower case Noctua NH-D15 chromax.black CPU cooler Noctua NF-S12A chromax.black.swap case fans (Qty. 7) & Corsair LL-120 RGB Fans (Qty. 3)
    Keyboard
    Corsair K70 Max RGB Magnetic Keyboard
    Mouse
    Logitech MX Master 3
    Internet Speed
    1Gb Up / 1 Gb Down
    Browser
    Edge
    Antivirus
    Windows Defender
    Other Info
    The five 8TB drives and three 512GB SSDs are part of a DrivePool using StableBit DrivePool software. The three SSDs are devoted purely to caching for the 8TB drives. All of the important data is stored in triplicate so that I can withstand simultaneous failure of 2 disks.

    Networking: 2.5Gbps Ethernet and WiFi 6e
  • Operating System
    Win11 Pro 23H2
    Computer type
    Laptop
    Manufacturer/Model
    Lenovo ThinkBook 13x Gen 2
    CPU
    Intel i7-1255U
    Memory
    16 GB
    Graphics card(s)
    Intel Iris Xe Graphics
    Sound Card
    Realtek® ALC3306-CG codec
    Monitor(s) Displays
    13.3-inch IPS Display
    Screen Resolution
    WQXGA (2560 x 1600)
    Hard Drives
    2 TB 4 x 4 NVMe SSD
    PSU
    USB-C / Thunderbolt 4 Power / Charging
    Mouse
    Buttonless Glass Precision Touchpad
    Keyboard
    Backlit, spill resistant keyboard
    Internet Speed
    1Gb Up / 1Gb Down
    Browser
    Edge
    Antivirus
    Windows Defender
    Other Info
    WiFi 6e / Bluetooth 5.1 / Facial Recognition / Fingerprint Sensor / ToF (Time of Flight) Human Presence Sensor
hsehestedt,

I'm performing the updates to the mounted WinRE on page 7 of the instructions. The instructions list the DISM update commands in this order:

SSU
LCU
SafeOS_DU

However, the Microsoft grid indicates this order:

SSU
SafeOS_DU
LCU

I have done it in the order of the instructions. Does it matter? Should I dismount WinRE (without changes) and do it over?

Thanks,
Bob
 

My Computer

System One

  • OS
    Windows 10 Pro
    Computer type
    PC/Desktop
    Manufacturer/Model
    ASUS
    CPU
    AMD 5900X
    Motherboard
    ASUS TUF Gaming X570-PRO (WiFi 6) AM4 Zen 3 Ryzen 5000 & 3rd Gen Ryzen ATX Motherboard (PCIe 4.0, 2.5Gb LAN, BIOS Flashback, HDMI 2.1, USB 3.2 Gen 2
    Memory
    G.SKILL Trident Z Neo (For AMD Ryzen) Series 32GB (2 x 16GB) 288-Pin RGB DDR4 SDRAM DDR4 3600 (PC4 28800) Desktop Memory Model F4-3600C16D-32GTZN
    Graphics Card(s)
    NVIDIA GeForce GTX750 Ti
    Sound Card
    Realtek (on motherboard)
    Monitor(s) Displays
    Acer CZ350CK, Wasabi Mango QHD275 Supreme
    Screen Resolution
    3440 x 1440, 2560 x 1440
    Hard Drives
    1 TB Western Digital SN850 Gen 4 x 4 NVMe
    128GB Crucial CT128M4SSD1 2.5" SSD
    1TB Seagate Barracuda ST1000DM003-9YN162 HD
    16TB Western Digital WD161KRYZ-01AGBB0 HD
    PSU
    EVGA SuperNOVA 750 GT, 80 Plus Gold 750W
    Case
    Phanteks Eclipse P500A
    Cooling
    be quiet! 250W TDP Dark Rock Pro 4
    Keyboard
    Logitech
    Mouse
    IBM
    Internet Speed
    1Gbps
    Browser
    Firefox
    Antivirus
    Malwarebytes
Fantastic question, and something that I need to look into further.

The Microsoft chart actually shows that the SSU should be installed followed by the Safe OS Dynamic Update, but it indicates that the LCU does not need to be applied to the WinRE.wim at all. I added the need to apply the LCU to the WinRE.wim based upon a vulnerability from January 2023 where it became clear that the LCU SHOULD be applied to WinRE.

One thing worth noting: Even if the LCU does not need to be applied to WinRE, trying to apply it won't hurt anything because it simply won't apply anything to the WinRE.wim that is not meant for it.

So, here is what I am going to do now:

1) I will change the order for WinRE to apply the SSU, then the Safe OS Dynamic Update, then the LCU. I really don't think that this will make a difference, but better safe than sorry.

2) I'll research this further to see if it really seems safe to simply leave off the step of applying the LCU to WinRE. If I can determine for sure that this is okay, I'll remove that from the procedure.

I'll update you on what I determine.

Thanks for another great catch here!
 

My Computers

System One System Two

  • OS
    Win11 Pro 24H2
    Computer type
    PC/Desktop
    Manufacturer/Model
    Self-built
    CPU
    Intel i7 11700K
    Motherboard
    ASUS Prime Z590-A MB
    Memory
    64GB (Waiting for warranty replacement of another 64GB for 128GB total)
    Graphics Card(s)
    No GPU - Built-in Intel Graphics
    Sound Card
    Integrated
    Monitor(s) Displays
    HP Envy 32
    Screen Resolution
    2560 x 1440
    Hard Drives
    1 x 1TB NVMe SSD
    1 x 2TB NVMe SSD
    1 x 4TB NVMe SSD
    3 x 512GB 2.5" SSD
    1 x 4TB 2.5" SSD
    5 x 8TB Seagate Barracuda HDD
    PSU
    Corsair HX850i
    Case
    Corsair iCUE RGB 5000X mid tower case
    Cooling
    Noctua NF-S12A chromax.black.swap case fans (Qty. 7) & Home Computer Specifications, Configuration, and Usage Notes General Specifications ASUS Prime Z590-A motherboard, serial number M1M0KC222467ARP Intel Core i7-11700K CPU (11th Gen Rocket Lake / LGA 1200 Socket) 128GB Crucial Ballistix RGB DDR4 3200 MHz DRAM (4 x 32GB) Corsair iCUE RGB 5000X mid tower case Noctua NH-D15 chromax.black CPU cooler Noctua NF-S12A chromax.black.swap case fans (Qty. 7) & Corsair LL-120 RGB Fans (Qty. 3)
    Keyboard
    Corsair K70 Max RGB Magnetic Keyboard
    Mouse
    Logitech MX Master 3
    Internet Speed
    1Gb Up / 1 Gb Down
    Browser
    Edge
    Antivirus
    Windows Defender
    Other Info
    The five 8TB drives and three 512GB SSDs are part of a DrivePool using StableBit DrivePool software. The three SSDs are devoted purely to caching for the 8TB drives. All of the important data is stored in triplicate so that I can withstand simultaneous failure of 2 disks.

    Networking: 2.5Gbps Ethernet and WiFi 6e
  • Operating System
    Win11 Pro 23H2
    Computer type
    Laptop
    Manufacturer/Model
    Lenovo ThinkBook 13x Gen 2
    CPU
    Intel i7-1255U
    Memory
    16 GB
    Graphics card(s)
    Intel Iris Xe Graphics
    Sound Card
    Realtek® ALC3306-CG codec
    Monitor(s) Displays
    13.3-inch IPS Display
    Screen Resolution
    WQXGA (2560 x 1600)
    Hard Drives
    2 TB 4 x 4 NVMe SSD
    PSU
    USB-C / Thunderbolt 4 Power / Charging
    Mouse
    Buttonless Glass Precision Touchpad
    Keyboard
    Backlit, spill resistant keyboard
    Internet Speed
    1Gb Up / 1Gb Down
    Browser
    Edge
    Antivirus
    Windows Defender
    Other Info
    WiFi 6e / Bluetooth 5.1 / Facial Recognition / Fingerprint Sensor / ToF (Time of Flight) Human Presence Sensor
Research completed: Okay, I have now officially removed the need to apply the LCU to the WinRE.wim in the chart as well as in the procedure, my batch file, and the program. That step is no longer needed.

NOTE: If you already applied the LCU to the WinRE.wim, you do not need to do anything. This will not cause any problem as the DISM command will simply not find anything needing updating.

Again, I want to thank you for taking the time to go through all of this and identifying these issues. I'm really grateful to have someone looking at this with a critical eye and forcing me to review these details.

In the meantime, I used all these updated procedures to build a new Windows image with the updates integrated into them, then installed Windows from that new image and all appears to be working flawlessly.
 

My Computers

System One System Two

  • OS
    Win11 Pro 24H2
    Computer type
    PC/Desktop
    Manufacturer/Model
    Self-built
    CPU
    Intel i7 11700K
    Motherboard
    ASUS Prime Z590-A MB
    Memory
    64GB (Waiting for warranty replacement of another 64GB for 128GB total)
    Graphics Card(s)
    No GPU - Built-in Intel Graphics
    Sound Card
    Integrated
    Monitor(s) Displays
    HP Envy 32
    Screen Resolution
    2560 x 1440
    Hard Drives
    1 x 1TB NVMe SSD
    1 x 2TB NVMe SSD
    1 x 4TB NVMe SSD
    3 x 512GB 2.5" SSD
    1 x 4TB 2.5" SSD
    5 x 8TB Seagate Barracuda HDD
    PSU
    Corsair HX850i
    Case
    Corsair iCUE RGB 5000X mid tower case
    Cooling
    Noctua NF-S12A chromax.black.swap case fans (Qty. 7) & Home Computer Specifications, Configuration, and Usage Notes General Specifications ASUS Prime Z590-A motherboard, serial number M1M0KC222467ARP Intel Core i7-11700K CPU (11th Gen Rocket Lake / LGA 1200 Socket) 128GB Crucial Ballistix RGB DDR4 3200 MHz DRAM (4 x 32GB) Corsair iCUE RGB 5000X mid tower case Noctua NH-D15 chromax.black CPU cooler Noctua NF-S12A chromax.black.swap case fans (Qty. 7) & Corsair LL-120 RGB Fans (Qty. 3)
    Keyboard
    Corsair K70 Max RGB Magnetic Keyboard
    Mouse
    Logitech MX Master 3
    Internet Speed
    1Gb Up / 1 Gb Down
    Browser
    Edge
    Antivirus
    Windows Defender
    Other Info
    The five 8TB drives and three 512GB SSDs are part of a DrivePool using StableBit DrivePool software. The three SSDs are devoted purely to caching for the 8TB drives. All of the important data is stored in triplicate so that I can withstand simultaneous failure of 2 disks.

    Networking: 2.5Gbps Ethernet and WiFi 6e
  • Operating System
    Win11 Pro 23H2
    Computer type
    Laptop
    Manufacturer/Model
    Lenovo ThinkBook 13x Gen 2
    CPU
    Intel i7-1255U
    Memory
    16 GB
    Graphics card(s)
    Intel Iris Xe Graphics
    Sound Card
    Realtek® ALC3306-CG codec
    Monitor(s) Displays
    13.3-inch IPS Display
    Screen Resolution
    WQXGA (2560 x 1600)
    Hard Drives
    2 TB 4 x 4 NVMe SSD
    PSU
    USB-C / Thunderbolt 4 Power / Charging
    Mouse
    Buttonless Glass Precision Touchpad
    Keyboard
    Backlit, spill resistant keyboard
    Internet Speed
    1Gb Up / 1Gb Down
    Browser
    Edge
    Antivirus
    Windows Defender
    Other Info
    WiFi 6e / Bluetooth 5.1 / Facial Recognition / Fingerprint Sensor / ToF (Time of Flight) Human Presence Sensor
I wanted to post this yesterday but unfortunately found out that my uninteruptible power supply is apparently not uninteruptible after all in an extremely rare brown out in the Phoenix area. In the end it thankfully doesn't appear that I lost any files though. The odd thing is that an unprotected Windows 7 PC that I have my main machine resting on continued running unphased but my UPS actually completely shutoff. I quickly need to determine whether the problem is the batteries or the UPS itself. I switched the UPS from lead acid to Lithium Ion LiFePO4 Deep Cycle Batteries about 4 months ago. I ordered a battery load tester to measure Internal Resistance of the batteries but have been researching to determine if this testing will show me whether the battery is bad the way that it will for a lead acid battery. So far I haven't been able to determine that definitively but continue to research that.

Well, I was able to finalize the new Win 11 ISO file (and a backup) early yesterday morning (before the brownout)! Thanks in huge part to the instructions and additional guidance provided by @hsehestedt!

I'd like to report places where I went wrong along the way and also provide some requested feedback to @hsehestedt on possible ways to further improve the instructions.

The 3 command prompts mentioned in the instructions are:

- customary Windows Command Prompt (as Admin)
- Powershell (as Admin)
- Deployment and Imaging Tools Environment (as Admin) -resulting from installation of ADK & WinPE Add-on from Microsoft

Early on, the instructions mentioned that Command Prompt or Powershell could be used equally. The instructions also told how to open Deployment and Imaging Tools Environment. I wasn't clear on when to use Command Prompt or Powershell vs when to use Deployment and Imaging Tools Environment. Thinking back, I believe that at one point @hsehestedt may have specifically told me in a post that about the only place that I could use Deployment and Imaging Tools Environment was to create the final installation ISO at the very end of the process. Unfortunately, I didn't recall this until after encountering a significant level of problems with the mounted WinRE.wim file.

For some unknown reason, I had it in my head that I should use the Deployment and Imaging Tools Environment to periodically use with the Dism /Get-MountedImageInfo for status on mounted image(s). At first, it seemed to be providing accurate status of the mounted images but when I really started incurring issues was when I was adding updates to the WinRE.wim file. I'm a little foggy on the timing but it seems like at one point when using the Deployment and Imaging Tools Environment for checking on mounted wim status it suddenly started reporting that wim needed to be "remounted". The issue seemed to get really bad when at one point I used the command PowerShell "Get-WindowsCapability -path 'C:\Project\Mount'" when I was in a customary Windows Command Prompt (as Admin). I realized even at the time that this command was clearly to be used in an elevated Powershell prompt but I figured that it would not recognize the command and simply just tell me that it didn't recognize the command and then I was planning to just run the command (PowerShell "Get-WindowsCapability -path 'C:\Project\Mount'") from within Powershell. Instead of telling me it didn't recognize the command in the elevated command prompt I received the following error message:

---------------------------------------------------------------------------------------
Get-WindowsCapability : The specified image needs to be remounted.
Remount the Wim to make this image available for servicing.
At line:1 char:1
+ Get-WindowsCapability -path 'C:\Project\Mount'
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Get-WindowsCapability], COMException
+ FullyQualifiedErrorId : Microsoft.Dism.Commands.GetWindowsCapabilityCommand
---------------------------------------------------------------------------------------

Whatever I did this seemed to be the beginning of the end. I did then try using the command in Powershell but received a similar error message. At this point I started running all of the unmount and clean-up wim commands and even rebooted my PC but nothing seemed to help. This was at about the time when @hsehestedt and I were posting about whether or not the LCU should be added to the WinRE image (Microsoft postings implied that it might be recommended but they never published this in their formal documentation). After researching further @hsehestedt determined that it did NOT need to be a part of the WinRE image and that he was modifying his program and the instructions to not include it in WinRE. He told me to go ahead and leave it in if I had already added it. Actually, I had already added it but I was having so many issues with the mounted WinRE image that I decided to start over on the entire WinRE part of the process. I noticed that when I was finally able to get the mounted wim image to show a status of "OK" in the elevated command prompt when I then (just for the heck of it) asked for the mounted wim status from the Deployment and Imaging Tools Environment it reported that the image needed to be remounted. I then checked it again from elevated customary Windows Command Prompt and it was now also showing the status of the image needed to be remounted.

I again ran all of the unmount and clean-up wim commands and again rebooted my PC. I then started the WinRE mounting process all over again from scratch. From this point on I only used the elevated customary Windows Command Prompt for all steps (including periodically asking for mounted wim status) and things went fine. I didn't use the Deployment and Imaging Tools Environment until at the end when it was time to create the final install ISO and I didn't use the PowerShell "Get-WindowsCapability -path 'C:\Project\Mount'" command again at all because I wasn't sure exactly what messed things up.

From here on out the only problem I incurred (more than once) was if I happened to have Windows File Explorer open to the folder and file that I was unmounting the dism unmount command would fail. The unmount command normally shows that a "saving" action is occurring (while it shows percentago of progress) on the wim image and then it would show a follow-on "unmounting" action is occurring (while it shows percentago of progress). When I absent-mindedly left Windows File Explorer open to the folder and file that I was unmounting the "saving" portion of the unmount would complete but shortly after displaying unmount percentage progress it would fail and I would receive a message that the image was not fully unmounted because the file was being accessed. I would then close File Explorer and run the unmount/commit command again but receive an error message suggesting that the image was "probably" saved correctly and suggesting that I instead run the unmount command again but with the "Discard" switch to fully unmount the image. I did as it suggested but didn't want to assume that it was saved correctly so I would begin the process of mounting the wim image to begin that portion of the process all over again.

The instructions didn't give any sort of warning to be careful of this but even if they had I still would have run into this issue due to my absent-mindedness. Thankfully, when this did occur I immediately knew why from a similar effort just a few years ago.

The following are some suggestions for modifications to the instructions document:

For the command dism /Get-WimInfo /WimFile:"C:\Project\Assets\install.wim"
This command (page 11) should maybe moved to page 12 after the Install.wim export to Assets folder.

For the Setup Dynamic Update file update to new media (page 11)
Expand "C:\Project\Setup_DU\SetupDU.CAB" -F:* "C:\Project\ISO_Files\Sources"
"Project" folder in C:\Project\Setup_DU portion of command above should be changed to "WinUpdates" folder because this cab file was downloaded from Microsoft catalog into the "WinUpdates" folder

It appears that the source document (Word, etc) contained manual carriage returns within some of the dism commands in an attempt for readability but it looks like the pdf document sees (and contains) these manual carriage returns and when copying and pasting commands from the pdf only the top line of the command shown in the pdf ends up getting pasted into the command prompt and the balance of the command is not seen by the command prompt resulting in only the first portion of the command being pasted into command prompt. On the user end this requires first pasting the command into something like notepad, placing cursor at end of top line of command then hitting delete 1 time to remove carriage return then copying and pasting result into command prompt (this is required for each additional line in original command). Suggestion is to remove manually placed carriage returns and allow text to self-wrap.

To clarify when to use command prompt or powershell vs Deployment and Imaging Tools Environment, rather than adding verbiage (or in addition to adding verbiage) attempting to explain at the beginning when to use what tool maybe indicate where a different tool should be used for a command or a series of commands. For example, immediately before the first command in the instructions say "commands below should be performed with your preference of either elevated command prompt or elevated Powershell" then stay silent until coming to a command where a different tool should be used.

That's about all I've got. I want to state emphatically that there is absolutely no way that I would have been able to modify the Windows 11 installation media without the guidance provided in these instructions for included tips or organization/folder setup nor without the individual commands that aligned with the suggested folder setup. This is an excellent document!

Now I am very anxious to install the new hard drive in my machine to install the updated install ISO (should be this weekend)!

On a side note, if anyone has any suggestions on how I can definitevly determine how to test the Lithium Ion LiFePO4 batteries in my UPS I'm all ears!

Bob
 

My Computer

System One

  • OS
    Windows 10 Pro
    Computer type
    PC/Desktop
    Manufacturer/Model
    ASUS
    CPU
    AMD 5900X
    Motherboard
    ASUS TUF Gaming X570-PRO (WiFi 6) AM4 Zen 3 Ryzen 5000 & 3rd Gen Ryzen ATX Motherboard (PCIe 4.0, 2.5Gb LAN, BIOS Flashback, HDMI 2.1, USB 3.2 Gen 2
    Memory
    G.SKILL Trident Z Neo (For AMD Ryzen) Series 32GB (2 x 16GB) 288-Pin RGB DDR4 SDRAM DDR4 3600 (PC4 28800) Desktop Memory Model F4-3600C16D-32GTZN
    Graphics Card(s)
    NVIDIA GeForce GTX750 Ti
    Sound Card
    Realtek (on motherboard)
    Monitor(s) Displays
    Acer CZ350CK, Wasabi Mango QHD275 Supreme
    Screen Resolution
    3440 x 1440, 2560 x 1440
    Hard Drives
    1 TB Western Digital SN850 Gen 4 x 4 NVMe
    128GB Crucial CT128M4SSD1 2.5" SSD
    1TB Seagate Barracuda ST1000DM003-9YN162 HD
    16TB Western Digital WD161KRYZ-01AGBB0 HD
    PSU
    EVGA SuperNOVA 750 GT, 80 Plus Gold 750W
    Case
    Phanteks Eclipse P500A
    Cooling
    be quiet! 250W TDP Dark Rock Pro 4
    Keyboard
    Logitech
    Mouse
    IBM
    Internet Speed
    1Gbps
    Browser
    Firefox
    Antivirus
    Malwarebytes
Bob, thanks for all the feedback. I glanced through it pretty quickly for now, as I have limited time at the moment, but I'll look at this in more detail later and respond back more appropriately :-).

For now, let me clarify the command promt / powershell / Deployment and Imaging Tools environment issue:

The docs that you have are part of a much larger doc that I've created (I think it is about 78 pages now). I have some notes about this early in that doc but I neglected to transfer that over to this doc. I always use only the Deployment and Imaging tools environment (run as admin). This is actually just an elevated command prompt, except that it sets environment variables, and a path to ensure that the ADK tools can be found in the path when you run those commands. It also ensures that tools that are found in multiple places are run from the ADK rather than a copy located elsewhere.

As an example, if you simply open a regular command prompt and try to run "OSCDIMG.EXE" it won't find it because it is not in the path. You have to change directories to where OSCDIMG is located or specify the whole path so that Windows can find that executable. Yuck. Also, since Windows includes copies of some of these tools, like DISM, if you run DISM from a regular command prompt, you may potentially run an older version of that utility.

Again, I'll respond in more detail later.

On to the UPS (UPS support was a specialty of mine years ago, I even built a UPS simulator to demo UPS functionality to students)...

Battery technology has been changing lately, but I have never been aware of a UPS in which you could simply drop in one of two very different battery technologies. Does your UPS have some sort of switch to let you select what type of battery you are using or does it auto sense the type of battery being used? LiFePO4 batteries use a drastically different charging method than lead acid batteries and the cells have wildly different voltages so I would not expect a UPS designed to charge a lead acid battery to be able to work with LiFePO4 batteries. Or are you using some specialized battery pack that is specifically designed for this purpose? I'm very curious :-)

Again, thanks for the feedback, and I'll respond back later. It's possible that it may not be until late this evening my time (US Central Time).
 

My Computers

System One System Two

  • OS
    Win11 Pro 24H2
    Computer type
    PC/Desktop
    Manufacturer/Model
    Self-built
    CPU
    Intel i7 11700K
    Motherboard
    ASUS Prime Z590-A MB
    Memory
    64GB (Waiting for warranty replacement of another 64GB for 128GB total)
    Graphics Card(s)
    No GPU - Built-in Intel Graphics
    Sound Card
    Integrated
    Monitor(s) Displays
    HP Envy 32
    Screen Resolution
    2560 x 1440
    Hard Drives
    1 x 1TB NVMe SSD
    1 x 2TB NVMe SSD
    1 x 4TB NVMe SSD
    3 x 512GB 2.5" SSD
    1 x 4TB 2.5" SSD
    5 x 8TB Seagate Barracuda HDD
    PSU
    Corsair HX850i
    Case
    Corsair iCUE RGB 5000X mid tower case
    Cooling
    Noctua NF-S12A chromax.black.swap case fans (Qty. 7) & Home Computer Specifications, Configuration, and Usage Notes General Specifications ASUS Prime Z590-A motherboard, serial number M1M0KC222467ARP Intel Core i7-11700K CPU (11th Gen Rocket Lake / LGA 1200 Socket) 128GB Crucial Ballistix RGB DDR4 3200 MHz DRAM (4 x 32GB) Corsair iCUE RGB 5000X mid tower case Noctua NH-D15 chromax.black CPU cooler Noctua NF-S12A chromax.black.swap case fans (Qty. 7) & Corsair LL-120 RGB Fans (Qty. 3)
    Keyboard
    Corsair K70 Max RGB Magnetic Keyboard
    Mouse
    Logitech MX Master 3
    Internet Speed
    1Gb Up / 1 Gb Down
    Browser
    Edge
    Antivirus
    Windows Defender
    Other Info
    The five 8TB drives and three 512GB SSDs are part of a DrivePool using StableBit DrivePool software. The three SSDs are devoted purely to caching for the 8TB drives. All of the important data is stored in triplicate so that I can withstand simultaneous failure of 2 disks.

    Networking: 2.5Gbps Ethernet and WiFi 6e
  • Operating System
    Win11 Pro 23H2
    Computer type
    Laptop
    Manufacturer/Model
    Lenovo ThinkBook 13x Gen 2
    CPU
    Intel i7-1255U
    Memory
    16 GB
    Graphics card(s)
    Intel Iris Xe Graphics
    Sound Card
    Realtek® ALC3306-CG codec
    Monitor(s) Displays
    13.3-inch IPS Display
    Screen Resolution
    WQXGA (2560 x 1600)
    Hard Drives
    2 TB 4 x 4 NVMe SSD
    PSU
    USB-C / Thunderbolt 4 Power / Charging
    Mouse
    Buttonless Glass Precision Touchpad
    Keyboard
    Backlit, spill resistant keyboard
    Internet Speed
    1Gb Up / 1Gb Down
    Browser
    Edge
    Antivirus
    Windows Defender
    Other Info
    WiFi 6e / Bluetooth 5.1 / Facial Recognition / Fingerprint Sensor / ToF (Time of Flight) Human Presence Sensor
I always use only the Deployment and Imaging tools environment (run as admin)

Also, since Windows includes copies of some of these tools, like DISM, if you run DISM from a regular command prompt, you may potentially run an older version of that utility.
Oh boy, it sounds like there's a possibility that I may not have ended up with what I thought I did with the installation file. It is just that once I started getting the odd statuses about the mounted WinRE I decided that maybe it was the wrong tool to be using. In the end, the only thing that I used the Deployment and Imaging tools environment (run as admin) for was running "OSCDIMG.EXE" to create the new ISO at the end.

If I'm understanding correctly, there's very little (if anything) that I should be using the regular command prompt (or Powershell) for in this process. I want to end up with the best result so if it makes sense to start over it's not the end of the world. If something that I've done (using the wrong tool) has changed my current Win 10 system to prevent me from getting a good mounted wim status I can apply my very recent Win 10 image capture to allow me to start with a fresh sheet of paper. I just need to be crystal clear on which tool(s) I should be using on which commands. When should I NOT be using the Deployment and Imaging tools environment (run as admin)?

On the UPS I know for a fact that mine was not designed to use lithium and was only designed to use lead acid batteries (CyberPower 1500PFCLCD). I didn't realize how big of a deal this was. This week I read somewhere on a random website that it is OK if you schedule the lithium batteries to be decharged down to 20-30 % charge on a regular basis. I may have made a big mistake here.

Would this situation place more stress on the batteries than on the UPS itself? Is there a good chance that I've hosed my UPS?

Thanks,
Bob
 
Last edited:

My Computer

System One

  • OS
    Windows 10 Pro
    Computer type
    PC/Desktop
    Manufacturer/Model
    ASUS
    CPU
    AMD 5900X
    Motherboard
    ASUS TUF Gaming X570-PRO (WiFi 6) AM4 Zen 3 Ryzen 5000 & 3rd Gen Ryzen ATX Motherboard (PCIe 4.0, 2.5Gb LAN, BIOS Flashback, HDMI 2.1, USB 3.2 Gen 2
    Memory
    G.SKILL Trident Z Neo (For AMD Ryzen) Series 32GB (2 x 16GB) 288-Pin RGB DDR4 SDRAM DDR4 3600 (PC4 28800) Desktop Memory Model F4-3600C16D-32GTZN
    Graphics Card(s)
    NVIDIA GeForce GTX750 Ti
    Sound Card
    Realtek (on motherboard)
    Monitor(s) Displays
    Acer CZ350CK, Wasabi Mango QHD275 Supreme
    Screen Resolution
    3440 x 1440, 2560 x 1440
    Hard Drives
    1 TB Western Digital SN850 Gen 4 x 4 NVMe
    128GB Crucial CT128M4SSD1 2.5" SSD
    1TB Seagate Barracuda ST1000DM003-9YN162 HD
    16TB Western Digital WD161KRYZ-01AGBB0 HD
    PSU
    EVGA SuperNOVA 750 GT, 80 Plus Gold 750W
    Case
    Phanteks Eclipse P500A
    Cooling
    be quiet! 250W TDP Dark Rock Pro 4
    Keyboard
    Logitech
    Mouse
    IBM
    Internet Speed
    1Gbps
    Browser
    Firefox
    Antivirus
    Malwarebytes
Oh boy, it sounds like there's a possibility that I may not have ended up with what I thought I did with the installation file.
Don't panic! It so happens that these files have been in sync for a while. It would only be an issue if you were doing this work on a very old version of Windows, but I suggest it as a best practice to avoid future potential issues. also, if you got no error, you are fine.

As for the UPS battery issue, I looked into this further. If turns out that there are Li-Ion batteries that can be used in place of lead acid batteries. I guess that they must be batteries that have a charging circuit built in that adapts the battery so that it can be used in place of a lead acid battery. So, my apologies for the alarm! I guess that I was simply not up to speed on some of these developments!
 

My Computers

System One System Two

  • OS
    Win11 Pro 24H2
    Computer type
    PC/Desktop
    Manufacturer/Model
    Self-built
    CPU
    Intel i7 11700K
    Motherboard
    ASUS Prime Z590-A MB
    Memory
    64GB (Waiting for warranty replacement of another 64GB for 128GB total)
    Graphics Card(s)
    No GPU - Built-in Intel Graphics
    Sound Card
    Integrated
    Monitor(s) Displays
    HP Envy 32
    Screen Resolution
    2560 x 1440
    Hard Drives
    1 x 1TB NVMe SSD
    1 x 2TB NVMe SSD
    1 x 4TB NVMe SSD
    3 x 512GB 2.5" SSD
    1 x 4TB 2.5" SSD
    5 x 8TB Seagate Barracuda HDD
    PSU
    Corsair HX850i
    Case
    Corsair iCUE RGB 5000X mid tower case
    Cooling
    Noctua NF-S12A chromax.black.swap case fans (Qty. 7) & Home Computer Specifications, Configuration, and Usage Notes General Specifications ASUS Prime Z590-A motherboard, serial number M1M0KC222467ARP Intel Core i7-11700K CPU (11th Gen Rocket Lake / LGA 1200 Socket) 128GB Crucial Ballistix RGB DDR4 3200 MHz DRAM (4 x 32GB) Corsair iCUE RGB 5000X mid tower case Noctua NH-D15 chromax.black CPU cooler Noctua NF-S12A chromax.black.swap case fans (Qty. 7) & Corsair LL-120 RGB Fans (Qty. 3)
    Keyboard
    Corsair K70 Max RGB Magnetic Keyboard
    Mouse
    Logitech MX Master 3
    Internet Speed
    1Gb Up / 1 Gb Down
    Browser
    Edge
    Antivirus
    Windows Defender
    Other Info
    The five 8TB drives and three 512GB SSDs are part of a DrivePool using StableBit DrivePool software. The three SSDs are devoted purely to caching for the 8TB drives. All of the important data is stored in triplicate so that I can withstand simultaneous failure of 2 disks.

    Networking: 2.5Gbps Ethernet and WiFi 6e
  • Operating System
    Win11 Pro 23H2
    Computer type
    Laptop
    Manufacturer/Model
    Lenovo ThinkBook 13x Gen 2
    CPU
    Intel i7-1255U
    Memory
    16 GB
    Graphics card(s)
    Intel Iris Xe Graphics
    Sound Card
    Realtek® ALC3306-CG codec
    Monitor(s) Displays
    13.3-inch IPS Display
    Screen Resolution
    WQXGA (2560 x 1600)
    Hard Drives
    2 TB 4 x 4 NVMe SSD
    PSU
    USB-C / Thunderbolt 4 Power / Charging
    Mouse
    Buttonless Glass Precision Touchpad
    Keyboard
    Backlit, spill resistant keyboard
    Internet Speed
    1Gb Up / 1Gb Down
    Browser
    Edge
    Antivirus
    Windows Defender
    Other Info
    WiFi 6e / Bluetooth 5.1 / Facial Recognition / Fingerprint Sensor / ToF (Time of Flight) Human Presence Sensor
Oh boy, it sounds like there's a possibility that I may not have ended up with what I thought I did with the installation file. It is just that once I started getting the odd statuses about the mounted WinRE I decided that maybe it was the wrong tool to be using. In the end, the only thing that I used the Deployment and Imaging tools environment (run as admin) for was running "OSCDIMG.EXE" to create the new ISO at the end.

If I'm understanding correctly, there's very little (if anything) that I should be using the regular command prompt (or Powershell) for in this process. I want to end up with the best result so if it makes sense to start over it's not the end of the world. If something that I've done (using the wrong tool) has changed my current Win 10 system to prevent me from getting a good mounted wim status I can apply my very recent Win 10 image capture to allow me to start with a fresh sheet of paper. I just need to be crystal clear on which tool(s) I should be using on which commands. When should I NOT be using the Deployment and Imaging tools environment (run as admin)?

On the UPS I know for a fact that mine was not designed to use lithium and was only designed to use lead acid batteries (CyberPower 1500PFCLCD). I didn't realize how big of a deal this was. This week I read somewhere on a random website that it is OK if you schedule the lithium batteries to be decharged down to 20-30 % charge on a regular basis. I may have made a big mistake here.

Would this situation place more stress on the batteries than on the UPS itself? Is there a good chance that I've hosed my UPS?

Thanks,
Bob
I have a hearing system (not UPS) that uses a smallish sealed lead acid - it is the same as those used in house burglar alarm systems.

These batteries can be trickle charged all the time (as they are in burglar alarms). They can normally cope with a few days of power off.

However, if not charged at all, the batteries still discharge of course, and need a full charge at least once a month.

If you do not charge at all in 6 months, the battery dies and has to be replaced.

Lithium Ion batteries are less prone to dying perhaps but even they will if completely discharged for a long period.

I doubt you have damaged the ups itself if you used the wrong batteries but I cannot say for certain.
 

My Computer

System One

  • OS
    Windows 11 Pro + Win11 Canary VM.
    Computer type
    Laptop
    Manufacturer/Model
    ASUS Zenbook 14
    CPU
    I9 13th gen i9-13900H 2.60 GHZ
    Motherboard
    Yep, Laptop has one.
    Memory
    16 GB soldered
    Graphics Card(s)
    Integrated Intel Iris XE
    Sound Card
    Realtek built in
    Monitor(s) Displays
    laptop OLED screen
    Screen Resolution
    2880x1800 touchscreen
    Hard Drives
    1 TB NVME SSD (only weakness is only one slot)
    PSU
    Internal + 65W thunderbolt USB4 charger
    Case
    Yep, got one
    Cooling
    Stella Artois (UK pint cans - 568 ml) - extra cost.
    Keyboard
    Built in UK keybd
    Mouse
    Bluetooth , wireless dongled, wired
    Internet Speed
    900 mbs (ethernet), wifi 6 typical 350-450 mb/s both up and down
    Browser
    Edge
    Antivirus
    Defender
    Other Info
    TPM 2.0, 2xUSB4 thunderbolt, 1xUsb3 (usb a), 1xUsb-c, hdmi out, 3.5 mm audio out/in combo, ASUS backlit trackpad (inc. switchable number pad)

    Macrium Reflect Home V8
    Office 365 Family (6 users each 1TB onedrive space)
    Hyper-V (a vm runs almost as fast as my older laptop)
Lithium Ion batteries are less prone to dying perhaps but even they will if completely discharged for a long period.

I doubt you have damaged the ups itself if you used the wrong batteries but I cannot say for certain.
I am also hopeful that the UPS is OK. The little bit I know about batteries in general is that lead acid batteries like being kept at a full charge and it is hard on them if they become depleted and recharged on a regular basis.

The LiFePO4 batteries that I purchased have a built in Battery Management System (BMS) that is supposed to provide protection against overcharge, Over-discharge, Over-current and short circuit, and excessive low self-discharge rate.

I know even less about lithium batteries than what I know about lead acid batteries except that I read a rather informative article very recently that explained that chemical changes on lithium batteries that degrades them if allowed to be below 20% charge or above 80% charge for extended periods. This implies that being installed in a UPS is much more appropriate for lead acid batteries than for lithium Ion batteries. I read a post somewhere this week where an individual that had lithium batteries installed in their UPS used the UPS software to discharge the lithium batteries down to 20-30% on a regular schedule.

I know that the manufacturer of my UPS recommends against using lithium ion batteries with my model. At this point I think that I'm going to play it safe and go back to lead acid.

On the subject of the Windows 11 installation ISO:
It would only be an issue if you were doing this work on a very old version of Windows, but I suggest it as a best practice to avoid future potential issues. also, if you got no error, you are fine.
I want to end up with the most reliable end result that can be achieved. I am leaning towards going through the process again. I don't think it will take very long because I've been through the whole process once now. Do you agree that for this process I should use the Deployment and Imaging tools environment (elevated) for every single command? Is there anything that the regular command prompt (elevated) should be used instead?

Thanks,
Bob
 

My Computer

System One

  • OS
    Windows 10 Pro
    Computer type
    PC/Desktop
    Manufacturer/Model
    ASUS
    CPU
    AMD 5900X
    Motherboard
    ASUS TUF Gaming X570-PRO (WiFi 6) AM4 Zen 3 Ryzen 5000 & 3rd Gen Ryzen ATX Motherboard (PCIe 4.0, 2.5Gb LAN, BIOS Flashback, HDMI 2.1, USB 3.2 Gen 2
    Memory
    G.SKILL Trident Z Neo (For AMD Ryzen) Series 32GB (2 x 16GB) 288-Pin RGB DDR4 SDRAM DDR4 3600 (PC4 28800) Desktop Memory Model F4-3600C16D-32GTZN
    Graphics Card(s)
    NVIDIA GeForce GTX750 Ti
    Sound Card
    Realtek (on motherboard)
    Monitor(s) Displays
    Acer CZ350CK, Wasabi Mango QHD275 Supreme
    Screen Resolution
    3440 x 1440, 2560 x 1440
    Hard Drives
    1 TB Western Digital SN850 Gen 4 x 4 NVMe
    128GB Crucial CT128M4SSD1 2.5" SSD
    1TB Seagate Barracuda ST1000DM003-9YN162 HD
    16TB Western Digital WD161KRYZ-01AGBB0 HD
    PSU
    EVGA SuperNOVA 750 GT, 80 Plus Gold 750W
    Case
    Phanteks Eclipse P500A
    Cooling
    be quiet! 250W TDP Dark Rock Pro 4
    Keyboard
    Logitech
    Mouse
    IBM
    Internet Speed
    1Gbps
    Browser
    Firefox
    Antivirus
    Malwarebytes
I am leaning towards going through the process again.
Absolutely no need. If there was a problem, you would have received an error.

BTW, I had promised to keep you updated on what the latest list of updates is. Below is a screenshot showing my updates for Windows 11 23H2 that includes the 3 updates published yesterday.

The 3 updates are:

.NET Framework (preview update)
LCU (Latest Cumulative Update - Preview)
Setup Dynamic Update

Image1.jpg
 

My Computers

System One System Two

  • OS
    Win11 Pro 24H2
    Computer type
    PC/Desktop
    Manufacturer/Model
    Self-built
    CPU
    Intel i7 11700K
    Motherboard
    ASUS Prime Z590-A MB
    Memory
    64GB (Waiting for warranty replacement of another 64GB for 128GB total)
    Graphics Card(s)
    No GPU - Built-in Intel Graphics
    Sound Card
    Integrated
    Monitor(s) Displays
    HP Envy 32
    Screen Resolution
    2560 x 1440
    Hard Drives
    1 x 1TB NVMe SSD
    1 x 2TB NVMe SSD
    1 x 4TB NVMe SSD
    3 x 512GB 2.5" SSD
    1 x 4TB 2.5" SSD
    5 x 8TB Seagate Barracuda HDD
    PSU
    Corsair HX850i
    Case
    Corsair iCUE RGB 5000X mid tower case
    Cooling
    Noctua NF-S12A chromax.black.swap case fans (Qty. 7) & Home Computer Specifications, Configuration, and Usage Notes General Specifications ASUS Prime Z590-A motherboard, serial number M1M0KC222467ARP Intel Core i7-11700K CPU (11th Gen Rocket Lake / LGA 1200 Socket) 128GB Crucial Ballistix RGB DDR4 3200 MHz DRAM (4 x 32GB) Corsair iCUE RGB 5000X mid tower case Noctua NH-D15 chromax.black CPU cooler Noctua NF-S12A chromax.black.swap case fans (Qty. 7) & Corsair LL-120 RGB Fans (Qty. 3)
    Keyboard
    Corsair K70 Max RGB Magnetic Keyboard
    Mouse
    Logitech MX Master 3
    Internet Speed
    1Gb Up / 1 Gb Down
    Browser
    Edge
    Antivirus
    Windows Defender
    Other Info
    The five 8TB drives and three 512GB SSDs are part of a DrivePool using StableBit DrivePool software. The three SSDs are devoted purely to caching for the 8TB drives. All of the important data is stored in triplicate so that I can withstand simultaneous failure of 2 disks.

    Networking: 2.5Gbps Ethernet and WiFi 6e
  • Operating System
    Win11 Pro 23H2
    Computer type
    Laptop
    Manufacturer/Model
    Lenovo ThinkBook 13x Gen 2
    CPU
    Intel i7-1255U
    Memory
    16 GB
    Graphics card(s)
    Intel Iris Xe Graphics
    Sound Card
    Realtek® ALC3306-CG codec
    Monitor(s) Displays
    13.3-inch IPS Display
    Screen Resolution
    WQXGA (2560 x 1600)
    Hard Drives
    2 TB 4 x 4 NVMe SSD
    PSU
    USB-C / Thunderbolt 4 Power / Charging
    Mouse
    Buttonless Glass Precision Touchpad
    Keyboard
    Backlit, spill resistant keyboard
    Internet Speed
    1Gb Up / 1Gb Down
    Browser
    Edge
    Antivirus
    Windows Defender
    Other Info
    WiFi 6e / Bluetooth 5.1 / Facial Recognition / Fingerprint Sensor / ToF (Time of Flight) Human Presence Sensor
Is there anything that the regular command prompt (elevated) should be used instead?
Submitted my last response too quickly. I meant to address this question as well. Since the Deployment and Imaging tools environment is just a regular command prompt modified to point to the proper path (and a few other tweaks), you can use this exclusively for the task of updating your Windows images.
 

My Computers

System One System Two

  • OS
    Win11 Pro 24H2
    Computer type
    PC/Desktop
    Manufacturer/Model
    Self-built
    CPU
    Intel i7 11700K
    Motherboard
    ASUS Prime Z590-A MB
    Memory
    64GB (Waiting for warranty replacement of another 64GB for 128GB total)
    Graphics Card(s)
    No GPU - Built-in Intel Graphics
    Sound Card
    Integrated
    Monitor(s) Displays
    HP Envy 32
    Screen Resolution
    2560 x 1440
    Hard Drives
    1 x 1TB NVMe SSD
    1 x 2TB NVMe SSD
    1 x 4TB NVMe SSD
    3 x 512GB 2.5" SSD
    1 x 4TB 2.5" SSD
    5 x 8TB Seagate Barracuda HDD
    PSU
    Corsair HX850i
    Case
    Corsair iCUE RGB 5000X mid tower case
    Cooling
    Noctua NF-S12A chromax.black.swap case fans (Qty. 7) & Home Computer Specifications, Configuration, and Usage Notes General Specifications ASUS Prime Z590-A motherboard, serial number M1M0KC222467ARP Intel Core i7-11700K CPU (11th Gen Rocket Lake / LGA 1200 Socket) 128GB Crucial Ballistix RGB DDR4 3200 MHz DRAM (4 x 32GB) Corsair iCUE RGB 5000X mid tower case Noctua NH-D15 chromax.black CPU cooler Noctua NF-S12A chromax.black.swap case fans (Qty. 7) & Corsair LL-120 RGB Fans (Qty. 3)
    Keyboard
    Corsair K70 Max RGB Magnetic Keyboard
    Mouse
    Logitech MX Master 3
    Internet Speed
    1Gb Up / 1 Gb Down
    Browser
    Edge
    Antivirus
    Windows Defender
    Other Info
    The five 8TB drives and three 512GB SSDs are part of a DrivePool using StableBit DrivePool software. The three SSDs are devoted purely to caching for the 8TB drives. All of the important data is stored in triplicate so that I can withstand simultaneous failure of 2 disks.

    Networking: 2.5Gbps Ethernet and WiFi 6e
  • Operating System
    Win11 Pro 23H2
    Computer type
    Laptop
    Manufacturer/Model
    Lenovo ThinkBook 13x Gen 2
    CPU
    Intel i7-1255U
    Memory
    16 GB
    Graphics card(s)
    Intel Iris Xe Graphics
    Sound Card
    Realtek® ALC3306-CG codec
    Monitor(s) Displays
    13.3-inch IPS Display
    Screen Resolution
    WQXGA (2560 x 1600)
    Hard Drives
    2 TB 4 x 4 NVMe SSD
    PSU
    USB-C / Thunderbolt 4 Power / Charging
    Mouse
    Buttonless Glass Precision Touchpad
    Keyboard
    Backlit, spill resistant keyboard
    Internet Speed
    1Gb Up / 1Gb Down
    Browser
    Edge
    Antivirus
    Windows Defender
    Other Info
    WiFi 6e / Bluetooth 5.1 / Facial Recognition / Fingerprint Sensor / ToF (Time of Flight) Human Presence Sensor

Latest Support Threads

Back
Top Bottom