I would consider upgrading to Windows 11 if you have the latest drivers installed (you may be using a newer Windows 11 driver that has code partially backported for Windows 10.)
Summary
1.) Download Windows 10 ISO Image to “C:\Win11_English_x64.iso”
2A.) Run these commands in PowerShell:
2B.) New-Item -Path “HKLM:\SYSTEM\Setup\MoSetup”
2C.) New-ItemProperty -Path “HKLM:\SYSTEM\Setup\MoSetup” -Name “AllowUpgradesWithUnsupportedTPMOrCPU” -PropertyType DWord -Value “00000001”
2D.) Mount-DiskImage -ImagePath “C:\Win11_English_x64.iso”
3.) Open Windows Explorer and select the drive labeled “CCCOMA_X64FRE_EN-US_DV9”
4.) Run setup.exe
NOTE: Steps 2B/2C bypass the glitchy “PC Health Check,” which doesn’t work 3/4 of the time, EVEN IF your PC has a compatible TPM and 64-bit processor. Even if you didn’t have a compatible BSP file, most likely you could just slipstream motherboard / chipset / graphics card drivers with the image via the Windows ADK. It would probably still work perfectly. The most important part is the initial registration process, especially with OEM versions. Later on it’s very easy to reformat with an ISO image, without having to go through the process again, given it was already activated and has its own hardware ID tied to the motherboard, which is permanently associated with that key, ie a node-locked licensing format. I had ZERO issues on a 5 year old Taiwanese-made laptop with hybrid-UEFI, despite what other people may imagine. Feature updates were not blocked. Everything worked. If you have to reset anything, the following scripts / batch routines / powershell cmdlets will work…
OPTIONAL: Check to see whether or not you have TPM 2.x support (or if you need to enable it in UEFI - UEFI/BIOS.) The PC Health App may not be able to recognize your PC, even if your computer is fully capable of running Windows 11 (just because it’s not on the supported list yet.)
NOTE: It may try to resize your partition to create a recovery drive (which you may have to delete that later, and then go back into diskpart and resize your system drive (if you care that much about partition alignment that is. Not everyone does.)
I would NOT suggest reinstalling Windows unless your registry hive is unrecoverable. In the worst case scenario, you could use the “Push-button reset” via WinRE, or even just use a generic ISO image to restore the running operating system image. I don’t personally think that’s necessary as this is probably just a driver issue. This would work to restore any corrupt operating system files or correct any configuration issues (I posted a variation of this in another area.)
Once you boot up again and you have network access, you could try this via Powershell (as long as your firewall is not set to block the following executable files from accessing the network: TiWorker.exe, TrustedInstaller.exe, Powershell.exe, MoUsoCoreWorker.exe, etc)… → Start Menu → Run → taskmgr → File → Run new Task → %SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe → Select “Create this task with administrative privileges.” → Click OK.
A script / batch routine to update your powershell, the repository, 3rd-party modules, help files, turn off the saved command line history, and set execution privileges so you can use basic powershell cmdlets built into the operating system itself:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser -Force
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope LocalMachine -Force;
Set-PSReadLineOption -HistorySaveStyle SaveNothing -MaximumHistoryCount 1;
Set-Content -Value “Remove-Module PSReadline” -NoNewline -Path $PROFILE;
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12;
Install-PackageProvider -Name NuGet -Scope AllUsers -Force;
Install-PackageProvider -Name PowerShellGet -Scope AllUsers -Force;
Get-Module -ListAvailable | Update-Module -Scope AllUsers -Force;
Update-Help -Verbose -Force -ErrorAction SilentlyContinue;
Now run these commands in this order via powershell:
DISM.exe /Online /Cleanup-image /Restorehealth
DISM.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase
DISM.exe /Cleanup-Mountpoints
./sfc /scannow
After that run Windows Update (Settings → Windows Update → Check for Updates) to patch the operating system…
If Windows Update does not work, run this from a powershell prompt:
./sc config EventLog start=auto;./sc config UsoSvc start=auto;./sc config wuauserv start=auto;./net start EventLog;./net start UsoSvc;./net start wuauserv;
Reinstall all apps: Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register “$($_.InstallLocation)\AppXManifest.xml”};
Reset all apps: Get-AppxPackage | Reset-AppxPackage;
Display all apps: Get-AppxPackage | Sort Name | Format-Table Name, InstallLocation
Reset apps individually: In many ways it does not matter for most people, but it is MUCH smarter to the repair option FIRST, mainly so you don’t lose your data, especially if any of these apps have login information or any media files that were purchased via the app, and stored offline: Settings → Apps → Apps & Features → (insert app name here) → 3 Vertical Dots On The Right Side Of The Pane → Advanced Options → Repair
Get-AppxPackage -allusers Microsoft.549981C3F5F10 | Reset-AppxPackage
Get-AppxPackage -allusers Microsoft.BingNews | Reset-AppxPackage;
Get-AppxPackage -allusers Microsoft.BingWeather | Reset-AppxPackage;
Get-AppxPackage -allusers Microsoft.GamingApp | Reset-AppxPackage;
Get-AppxPackage -allusers Microsoft.GetHelp | Reset-AppxPackage;
Get-AppxPackage -allusers Microsoft.Getstarted | Reset-AppxPackage;
Get-AppxPackage -allusers Microsoft.MicrosoftOfficeHub | Reset-AppxPackage;
Get-AppxPackage -allusers Microsoft.MicrosoftSolitaireCollection | Reset-AppxPackage;
Get-AppxPackage -allusers Microsoft.MicrosoftStickyNotes | Reset-AppxPackage;
Get-AppxPackage -allusers Microsoft.MixedReality.Portal | Reset-AppxPackage;
Get-AppxPackage -allusers Microsoft.Office.OneNote | Reset-AppxPackage;
Get-AppxPackage -allusers Microsoft.People | Reset-AppxPackage;
Get-AppxPackage -allusers Microsoft.ScreenSketch | Reset-AppxPackage;
Get-AppxPackage -allusers Microsoft.SkypeApp | Reset-AppxPackage;
Get-AppxPackage -allusers Microsoft.Todos | Reset-AppxPackage;
Get-AppxPackage -allusers Microsoft.Windows.Photos | Reset-AppxPackage;
Get-AppxPackage -allusers Microsoft.WindowsAlarms | Reset-AppxPackage;
Get-AppxPackage -allusers Microsoft.WindowsCamera | Reset-AppxPackage;
Get-AppxPackage -allusers microsoft.windowscommunicationsapps | Reset-AppxPackage;
Get-AppxPackage -allusers Microsoft.WindowsFeedbackHub | Reset-AppxPackage;
Get-AppxPackage -allusers Microsoft.WindowsMaps | Reset-AppxPackage;
Get-AppxPackage -allusers Microsoft.WindowsSoundRecorder | Reset-AppxPackage;
Get-AppxPackage -allusers Microsoft.Xbox.TCUI | Reset-AppxPackage;
Get-AppxPackage -allusers Microsoft.XboxApp | Reset-AppxPackage;
Get-AppxPackage -allusers Microsoft.XboxGameOverlay | Reset-AppxPackage;
Get-AppxPackage -allusers Microsoft.XboxGamingOverlay | Reset-AppxPackage;
Get-AppxPackage -allusers Microsoft.XboxIdentityProvider | Reset-AppxPackage;
Get-AppxPackage -allusers Microsoft.XboxSpeechToTextOverlay | Reset-AppxPackage;
Get-AppxPackage -allusers Microsoft.ZuneMusic | Reset-AppxPackage;
Get-AppxPackage -allusers Microsoft.ZuneVideo | Reset-AppxPackage;
Get-AppxPackage -allusers Microsoft.Microsoft3DViewer | Reset-AppxPackage;
Get-AppxPackage -allusers Microsoft.MSPaint | Reset-AppxPackage;
Get-AppxPackage -allusers Microsoft.Paint | Reset-AppxPackage;
Get-AppxPackage -allusers Microsoft.WindowsCalculator | Reset-AppxPackage;
Get-AppxPackage -allusers Microsoft.WindowsNotepad | Reset-AppxPackage;
An example of how to set a pagefile:
NTFS:
1TB = 1048576 (MB) → 2^20 * 1
500GB = 512001 (MB) → 500 * 1024 + 1
250GB = 256001 (MB) → 250 * 1024 + 1
150GB = 153601 (MB) → 150 * 1024 + 1
100GB = 102401 (MB) → 100 * 1024 + 1
50GB = 51201 (MB) → 50 * 1024 + 1
NTFS → (Size in GB * 1024) + 1
FAT32 (up to 32GB) → (Size in GB * 1024) + 12
“Minimum page file size: Varies based on page file usage history, amount of RAM (RAM ÷ 8, max 32 GB) and crash dump settings. Maximum page file size: 3 × RAM or 4 GB, whichever is larger. This is then limited to the volume size ÷ 8. However, it can grow to within 1 GB of free space on the volume if required for crash dump settings.”
16385 (16GB NTFS) → MIN 2048 MAX 49155 (MAX > 19200 = 1/8th of 150GB Volume)
If you had 16GB of memory installed, the maximum size of the page file would be around 19.2GB represented as 19200MB, based on the system drive being 150GB, the minimum page file size being set at 2GB, which in this instance is 2048MB (aside from what the operating system has set.) This is very close to HOW it would physically allocate the files on disk, using a similar method you would utilize to create the partitions themselves.
On Linux / Unix / Nix in general it’s slightly different but more of the same when you compare the numbers…
NEWFS: TB = {[(1099511627776 * Size in TB) + 1048576] / 512}
NEWFS: GB = {[(1073741824 * Size in GB) + 1048576] / 512}
FDISK:
1TB = 16385 cylinders {[(2^40) / (Cylinder Blocks * Sectors)]+1}
500GB = 8001 cylinders {[(2^30 * 500) / (Cylinder Blocks * Sector Size)]+1}
250GB = 4001 cylinders {[(2^30 * 250) / (Cylinder Blocks * Sector Size)]+1}
150GB = 2401 cylinders {[(2^30 * 150) / (Cylinder Blocks * Sector Size)]+1}
100GB = 1601 cylinders {[(2^30 * 100) / (Cylinder Blocks * Sector Size)]+1}
50GB = 801 cylinders {[(2^30 * 50) / (Cylinder Blocks * Sector Size)]+1}
NOTE: As a last resort you could download the ISO image, extract it with WinRAR to a folder like this, and then run DISM. The only issue is at this point you have to download all your updates again. Make sure to use the correct index number or you will have to do this over again. If it’s a Windows 10 image you could just change the folder and path names (if that’s actually necessary to use a Windows 10 image.)
DISM /Online /Cleanup-Image /RestoreHealth /Source:C:\Win11_English_x64\sources\install.wim:1 /LimitAccess
Here’s another way to figure out which edition of Windows you have. Almost any of these commands should work:
Get-ComputerInfo -Property Windows*
Get-ComputerInfo | select WindowsProductName, WindowsVersion, OsHardwareAbstractionLayer
systeminfo /fo csv | ConvertFrom-Csv | select OS*, System*, Hotfix* | Format-List
(Get-WmiObject -class Win32_OperatingSystem).Caption
[System.Environment]::OSVersion.Version
[Environment]::OSVersion
winver
systeminfo
If you’re not sure which one to use, here’s an example. This is exactly the same as on Windows 10 btw, aside from the folder being different in this example:
DISM /Get-WimInfo /WimFile:“C:\Win11_English_x64\sources\install.wim”
Details for image : C:\Win11_English_x64\sources\install.wim
Index : 1
Name : Windows 11 Home
Description : Windows 11 Home
Size : 15,854,479,870 bytes
Index : 2
Name : Windows 11 Home N
Description : Windows 11 Home N
Size : 15,170,988,662 bytes
Index : 3
Name : Windows 11 Home Single Language
Description : Windows 11 Home Single Language
Size : 15,857,403,299 bytes
Index : 4
Name : Windows 11 Education
Description : Windows 11 Education
Size : 16,136,983,252 bytes
Index : 5
Name : Windows 11 Education N
Description : Windows 11 Education N
Size : 15,450,067,990 bytes
Index : 6
Name : Windows 11 Pro
Description : Windows 11 Pro
Size : 16,134,043,048 bytes
Index : 7
Name : Windows 11 Pro N
Description : Windows 11 Pro N
Size : 15,447,756,461 bytes
Index : 8
Name : Windows 11 Pro Education
Description : Windows 11 Pro Education
Size : 16,136,934,462 bytes
Index : 9
Name : Windows 11 Pro Education N
Description : Windows 11 Pro Education N
Size : 15,450,018,300 bytes
Index : 10
Name : Windows 11 Pro for Workstations
Description : Windows 11 Pro for Workstations
Size : 16,136,958,857 bytes
Index : 11
Name : Windows 11 Pro N for Workstations
Description : Windows 11 Pro N for Workstations
Size : 15,450,043,145 bytes
Here’s an example of an ISO image extracted with WinRAR that also has drivers added to it, and then feature updates / patches. On one line with OSCDIMG it forced me to put a space after etfsboot, as it falsely recognized that as a link. I’m not allowed to post links for some odd reason (remove the space and that will work, as it’s a file name and not a link.) This requires the ADK obviously (Deployment and Imaging Tools Environment,) and you would probably have to edit the directories to make this useful. I also used “Export-WindowsDriver” via powershell to create the driver store for the servicing stack (DISM) to reference when adding drivers to the image (Microsoft Update Catalog has the feature updates for download as well. I added them to the image based on the order they were released, and then removed any superseded packages / components with another command as you can see in the following script / batch routine.)
@ECHO OFF
SETLOCAL
MKDIR “C:\Scritch_Scratch”
MKDIR “C:\Snarfjob”
DISM /Mount-Image /ImageFile:“C:\Win11_English_x64\sources\install.wim” /Index:1 /MountDir:“C:\Snarfjob”
DISM /Add-Package /Image:“C:\Snarfjob” /ScratchDir:“C:\Scritch_Scratch” /PackagePath:“C:\Win11_Drivers\windows10.0-kb5005537-x64-ndp48_5f30e4f308a26108777da3f8488a308dff827ead.msu”
DISM /Add-Package /Image:“C:\Snarfjob” /ScratchDir:“C:\Scritch_Scratch” /PackagePath:“C:\Win11_Drivers\windows10.0-kb5006674-x64_c71b094804f4f592fa810ee9c4484489297c5dfc.msu”
DISM /Add-Package /Image:“C:\Snarfjob” /ScratchDir:“C:\Scritch_Scratch” /PackagePath:“C:\Win11_Drivers\windows10.0-kb5006363-x64-ndp48_ca9dc54f0f42e71c847a75567493f123d123c923.msu”
DISM /Add-Package /Image:“C:\Snarfjob” /ScratchDir:“C:\Scritch_Scratch” /PackagePath:“C:\Win11_Drivers\windows10.0-kb5006746-x64_7de0eb046446a91264144613b6bba263541ad009.msu”
Dism /Add-Driver /Image:“C:\Snarfjob” /Driver:“C:\Win_10_11_Drivers” /Recurse
DISM /Cleanup-Image /Image:“C:\Snarfjob” /ScratchDir:“C:\Scritch_Scratch” /StartComponentCleanup /ResetBase
COPY “C:\SysinternalsSuite\sdelete64.exe” “C:\Snarfjob\Windows\System32”
DISM /Image:“C:\Snarfjob” /ScratchDir:“C:\Scritch_Scratch” /Optimize-Image /WimBoot
DISM /Unmount-Image /MountDir:“C:\Snarfjob” /Commit
REM DISM /Remount-Image /MountDir:“C:\Snarfjob”
DISM /Cleanup-Mountpoints
RMDIR /S /Q “C:\Scritch_Scratch”
RMDIR /S /Q “C:\Snarfjob”
DISM /Export-Image /SourceImageFile:“C:\Win11_English_x64\sources\install.wim” /SourceIndex:1 /DestinationImageFile:“C:\Win11_English_x64\sources\install2.wim”
DEL “C:\Win11_English_x64\sources\install.wim”
COPY “C:\Win11_English_x64\sources\install2.wim” “C:\Win11_English_x64\sources\install.wim”
DEL “C:\Win11_English_x64\sources\install2.wim”
REM oscdimg -m -o -u1 -udfver102 -lCCCOMA_X64FRE_EN-US_DV9 -bootdata:2#p0,e,b"C:\Win11_English_x64\boot\etfsboot .com"#pEF,e,b"C:\Win11_English_x64\efi\microsoft\boot\efisys_noprompt.bin" “C:\Win11_English_x64” “C:\ISO\Win11_English_x64_Generic.iso”
REM 2021-10 Cumulative Update for .NET Framework 3.5 and 4.8 for Windows 11 for x64 (KB5005537)
REM 2021-10 Cumulative Update for Windows 11 for x64-based Systems (KB5006674)
REM 2021-10 Cumulative Update Preview for .NET Framework 3.5 and 4.8 for Windows 11 for x64 (KB5006363)
REM 2021-10 Cumulative Update for Windows 11 for x64-based Systems (KB5006746)