Skip to content

2.7

Choose a tag to compare

@Firever-ultix Firever-ultix released this 25 Oct 15:03
· 24 commits to main since this release

WinUltix Pro v2.7.0 — Release Notes 🚀

The Windows 11 26H2 Compatibility, Multithreaded Runspace & Low-Level Hardware Overhaul

With v2.7.0, I conducted a comprehensive, three-stage engineering audit across the entire codebase (WinUltix_Pro.ps1, Core_Helpers.ps1, and modules Z1 through Z7) to prepare the toolkit for Windows 11 24H2, 25H2, and 26H2. This release completely eradicates legacy WMI/WMIC dependencies, centralizes background multithreading to eliminate UI freezes (ANR), introduces a native COM/MDM Start Menu compiler, and upgrades hardware topology detection.


🧠 Core Architecture & Multithreading (WinUltix_Pro.ps1 & Core_Helpers.ps1)

  • Global Asynchronous Runspace Engine (Invoke-AsyncTask): I centralized all heavy background operations into a unified multithreading dispatcher powered by isolated PowerShell Runspaces ([powershell]::Create()) and a non-blocking 150ms WinForms polling timer ($timer.Tag state encapsulation). Controls are automatically locked (-ControlsToDisable) during execution and deterministically released in a finally block alongside .Dispose() calls, completely eliminating Application Not Responding (ANR) freezes and memory leaks.
  • Complete WMI-to-CIM Migration: I removed all deprecated Get-WmiObject cmdlets and wmic.exe calls across the toolkit in favor of native Get-CimInstance and Invoke-CimMethod pipelines, guaranteeing 100% compatibility with Windows 11 26H2 where WMIC binaries are stripped from the OS image.
  • GDI / HWND Resource Hardening: I wrapped the main WinForms application host, the About dialog, and Show-ActionModal inside try / finally blocks with explicit .Dispose() calls, enabled native visual styles (EnableVisualStyles()), and restricted global MouseLeave subscriptions strictly to Button controls.

📌 Start Menu Compiler & Services Engine (Z4_Services.ps1)

  • Deterministic Start Menu Reset for 24H2–26H2 (Clear-StartMenu):
    • I replaced the static Base64 start2.bin binary replacement—which suffered from StartDocked.dll / StartTileData.dll serialization header changes and AppContainer DACL corruption on newer Windows 11 builds—with a One-Shot Native Policy Compiler.
    • I now disable ContentDeliveryManager placeholder tile injection, register a temporary MDM Enrollment (HKLM:\SOFTWARE\Microsoft\Enrollments\...) and ConfigureStartPins policy, purge CloudStore tile caches, and invoke StartMenuExperienceHost.exe in the background via COM IApplicationActivationManager (WinUltix.AppActivator).
    • Windows natively compiles a clean start2.bin containing only 3 essential pins (Microsoft Edge, Windows Settings, and File Explorer), records its byte signature (StartMenuClearedSize) for audit verification, and immediately strips all temporary MDM locks in the finally block so I can freely pin or unpin apps afterwards.
    • I also provision the Default user profile (LayoutModification.json) with the same clean 3-icon layout and purge default start*.bin* caches.
  • Ghost Service & Driver Sweeper Refactor (Get-GhostServicesState): I fixed a greedy regex bug (^(.+?\.(?:exe|sys|dll))(?:$|\s)) that misidentified stopped svchost.exe/rundll32.exe services passing .dll arguments as missing binaries, integrated Win32_SystemDriver active kernel driver checks, and excluded internal NT Object Manager paths (\Driver\, \FileSystem\).
  • Task Scheduler & Service Symmetry: I consolidated Get-TelemetryTasksState and Invoke-ApplyTasks into a single asynchronous Get-ScheduledTask query pass, corrected SCM service names (WerSvc, WaaSMedicSvc), and enforced full ExpectedStart / DefaultStart revert symmetry for Xbox and Camera services.

🧹 Bloatware Catalog, OneDrive DLL Evacuation & Cache Purge (Z1_Cleanup.ps1 & Z2_Bloatware.ps1)

  • Redesigned 46-Category Bloatware Engine (Get-BloatwareState & Invoke-RemoveBloatware):
    • I structured a non-overlapping 46-item catalog covering modern Windows 11 24H2–26H2 bloatware (including Copilot, DevHome, New Outlook, MSTeams, Edge Game Assist, Clipchamp, Widgets, and Game Bar).
    • I removed the previous 10MB size cutoff blind spot: every detected package is now flagged for removal with accurate tags ([ X.X MB ], [ Installed Stub ], or [ Provisioned Image ]).
    • During removal, I enforce local GPO locks for Copilot (TurnOffWindowsCopilot = 1), write removed PackageFamilyName entries to HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Deprovisioned to block silent Windows Update reinstallations, and suppress benign 0x80070002 / 0x80070003 errors when -AllUsers removal already wiped the provisioned staging payload.
  • SFC-Safe OneDrive Removal with Locked DLL Evacuation (Invoke-RemoveOneDrive):
    • I preserved dormant %SystemRoot% OneDrive binaries during uninstallation so sfc /scannow and DISM component verification remain 100% healthy.
    • To overcome explorer.exe locking memory-mapped shell extensions (such as FileSyncShell64.dll), I added an automated evacuation routine that moves locked .dll files to $env:TEMP\WinUltix_Locked_*.tmp, strips file attributes, and wipes residual OneDrive directories across all dynamically resolved Win32_UserProfile paths.
  • Expanded Appx Garbage Collector Whitelist: I migrated all five Z2 scanners to Invoke-Z2ScannerAsync and hardened the dependency collector to protect XboxIdentityProvider, XboxGameCallableUI, PeopleExperienceHost, VCLibs, .NET, UI.Xaml, WinJS, Services.Store, WindowsAppRuntime, WindowsAppSDK, Graphics.Canvas, DirectX, AIFabric, and AugLoop.
  • Service-Aware Cache Purge & Universal SIDs (Z1_Cleanup.ps1): I updated Invoke-InteractiveCleanup to stop wuauserv and bits before purging SoftwareDistribution\Download and replaced localized group names in icacls.exe with the universal Administrators SID (*S-1-5-32-544:F).

⚙️ Hardware Diagnostics, Multi-Architecture Affinity & CPPC (Z7_Hardware.ps1)

  • Multi-Architecture Affinity Lasso (Get-CPUTopologyProfile):
    • I replaced the rigid 8-core check with dynamic CPU topology profiling:
      1. AMD 8-Core Single-CCD (e.g., 9800X3D, 7800X3D, 5800X3D): Isolates background apps to Cores 0–1 with SMT-aware bitmasks (0x0F for SMT ON, 0x03 for SMT OFF).
      2. AMD Dual-CCD (12C/16C, e.g., 7900X3D, 7950X3D, 9950X3D): Locks background apps to the last 4 threads on CCD1 ([int64]15 -shl ($logical - 4)), protecting 3D V-Cache on CCD0.
      3. Intel Hybrid (P+E Cores) & 6C+ CPUs: Isolates background processes to the last 4 logical threads (E-Cores) with BelowNormal priority.
    • I replaced per-process WMI path lookups with a single pre-cached Get-CimInstance Win32_Process hash table ($O(1)$ lookup) and fixed Remove-AppAffinity to restore full logical processor bitmasks (([int64]1 -shl $lpCount) - 1).
  • SYSTEM-Level CPPC Dead Man's Switch & Locale-Independent Parser: I rewrote the powercfg.exe /qh hex parser to work across all OS display languages and upgraded WinUltix_CPPC_Failsafe to execute under NT AUTHORITY\SYSTEM (RunLevel Highest) with dual AtStartup and AtLogon triggers, guaranteeing power plan rollback from HKLM:\SOFTWARE\WinUltix\CPPC even after a pre-logon BSOD.
  • Asynchronous WHEA XML Decoder & NDIS Optimizer: I upgraded Get-HardwareState_WHEA to extract APICId and ProcessorId directly from raw event XML trees ($evt.ToXml()) with SMT-aware core division, fixed variable shadowing ($adapterDispName vs. $propDispName) in Get-HardwareState_Network, and moved both scanners into Invoke-AsyncTask with explicit Scope 0 closure binding.
  • Idempotent MSI Interrupt Backup: I hardened Show-MsiModal so repeated clicks on Force MSI Mode never overwrite the original factory interrupt state stored in HKCU:\Software\WinUltix\MSI_Backup.

🔒 Registry Engine, Dual-Layer SRP+IFEO & System Integrity (Z3_Registry.ps1, Z5_Utilities.ps1, Z6_Integrity.ps1)

  • Dual-Layer Execution Locks (Get-RegState_SRP & Invoke-ApplySRP): To counter the deprecation of Safer API on Windows 11 26H2, I paired deterministic MD5-hashed Safer path rules (Get-DeterministicSrpGuid) with kernel-level Image File Execution Options (IFEO) debugger redirection (Debugger = "$env:SystemRoot\System32\systray.exe", WinUltixManaged = 1), updated Widgets.exe to use a version-agnostic WindowsApps wildcard, and offloaded gpupdate.exe /force to Invoke-AsyncTask.
  • Symmetric Revert Engine Fixes (Z3_Registry.ps1): I updated Invoke-RegistryAudit to explicitly verify property existence before value comparison, switched all AppPrivacy UWP rules (including LetAppsAccessCamera and LetAppsAccessMicrophone set to Expected = 2) to use Default = "DELETE_VALUE" on revert (eliminating "Some settings are managed by your organization" banners), and added recursive parent CLSID cleanup ({86ca1aa0-34aa-4e8b-a509-50c905bae2a2}) when reverting the classic context menu.
  • CBS RebootPending Protection & Async Subsystem Repairs (Z6_Integrity.ps1): I migrated Get-WinSxSState and Repair-PrintSubsystem to background Runspaces, added a pre-flight check for HKLM:\...\Component Based Servicing\RebootPending before Optimize-WinSXS (/ResetBase) to prevent 0x800f0806 (CBS_E_PENDING) errors, and fixed PowerShell 5.1 wildcard resolution when purging locked .SHD/.SPL print spooler files.
  • Hardened Interactive Utilities (Z5_Utilities.ps1): I fixed CIM parameter binding in Set-CustomDNS (-Arguments @{ DNSServerSearchOrder = ... }), rewrote Show-StartupGrid to iterate directly over registry .Property names (removing PowerShell metadata clutter and adding WOW6432Node x86 support), shielded critical gaming/framework packages in Show-AppxGrid, and updated Start-ClassicPrinters to invoke shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A} directly.