9b617666ffa2e4be66b6dba0b3f137111a8d04a7d754b5d1aeb1fe5161295ead
Detection Ratio
0 / 109 rules matched
Hashes
9b617666ffa2e4be66b6dba0b3f137111a8d04a7d754b5d1aeb1fe5161295ead
4899b3fa978fdbf8b3e14a1d396e26fc502c5f34
a163d337806964b359fbb62aa87622d2
2205aa68cff689134c0c79e194815e51e89a6029d7b6d05098e31981e64f787017ec8ea3530b7b51e4c08df7f95b125c66deb8a6374af2a8f4ce161b685fe8c8
File Properties
| Offset (hex) | Offset (dec) | String |
|---|---|---|
| 0x0 | 0 | # Windows 11 Updates Manager |
| 0x1E | 30 | # Host: log |
| 0x2B | 43 | # Category: Tool |
| 0x3D | 61 | # Options: Show Info; Pause Updates; Resume Updates; Disable Automatic Updates; Set Max Pause Time; Show Status; Revert Defaults |
| 0xBF | 191 | # Credits: https://woshub.com/pause-delay-windows-updates/ |
| 0xFD | 253 | param([string]$choice) |
| 0x117 | 279 | function Ensure-UxKey { |
| 0x130 | 304 | $ux = "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" |
| 0x170 | 368 | if (-not (Test-Path $ux)) { New-Item -Path $ux -Force | Out-Null } |
| 0x1B8 | 440 | return $ux |
| 0x1CD | 461 | function Unlock-PauseUx { |
| 0x1E8 | 488 | $pol = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" |
| 0x22E | 558 | if (Test-Path $pol) { |
| 0x249 | 585 | Remove-ItemProperty -Path $pol -Name "SetDisablePauseUXAccess" -ErrorAction SilentlyContinue |
| 0x2BB | 699 | switch ($choice) { |
| 0x2D1 | 721 | "Show Info" { |
| 0x2E4 | 740 | Write-Output "[INFO] Windows Update Tamer" |
| 0x318 | 792 | Write-Output "---------------------------------------------------" |
| 0x364 | 868 | Write-Output "Control Windows Update without opening Settings." |
| 0x3AD | 941 | Write-Output "" |
| 0x3C6 | 966 | Write-Output "Options:" |
| 0x3E7 | 999 | Write-Output "- Pause Updates : Pauses updates for 35 days (sets Feature/Quality start/end and expiry)." |
| 0x459 | 1113 | Write-Output "- Resume Updates : Clears pause values." |
| 0x499 | 1177 | Write-Output "- Disable Automatic Updates : Policy-based turn off of auto updates." |
| 0x4F6 | 1270 | Write-Output "- Set Max Pause Time : Sets a far-future expiry (10 years) and matching Feature/Quality end times." |
| 0x571 | 1393 | Write-Output "- Show Status : Prints current pause dates." |
| 0x5B5 | 1461 | Write-Output "- Revert Defaults : Removes policy and pause values." |
| 0x602 | 1538 | Write-Output "" |
| 0x61B | 1563 | Write-Output "Notes:" |
| 0x63A | 1594 | Write-Output "- Admin rights required." |
| 0x66B | 1643 | Write-Output "- Works on Windows 10/11." |
| 0x69D | 1693 | Write-Output "- Based on registry values described by Windows OS Hub." |
| 0x6F6 | 1782 | "Pause Updates" { |
| 0x70D | 1805 | Write-Output "[ACTION] Pausing updates for 35 days..." |
| 0x74D | 1869 | Unlock-PauseUx |
| 0x765 | 1893 | $ux = Ensure-UxKey |
| 0x781 | 1921 | $start = (Get-Date).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ") |
| 0x7D1 | 2001 | $end = (Get-Date).AddDays(35).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ") |
| 0x82F | 2095 | Set-ItemProperty -Path $ux -Name "PauseUpdatesStartTime" -Value $start |
| 0x889 | 2185 | Set-ItemProperty -Path $ux -Name "PauseUpdatesExpiryTime" -Value $end |
| 0x8E1 | 2273 | Set-ItemProperty -Path $ux -Name "PauseFeatureUpdatesStartTime" -Value $start |
| 0x93B | 2363 | Set-ItemProperty -Path $ux -Name "PauseFeatureUpdatesEndTime" -Value $end |
| 0x993 | 2451 | Set-ItemProperty -Path $ux -Name "PauseQualityUpdatesStartTime" -Value $start |
| 0x9ED | 2541 | Set-ItemProperty -Path $ux -Name "PauseQualityUpdatesEndTime" -Value $end |
| 0xA47 | 2631 | Write-Output "[OK] Updates paused until $((Get-Date).AddDays(35).ToShortDateString())." |
| 0xAA8 | 2728 | Write-Output "[TIP] Close and reopen the Settings app to refresh the date." |
| 0xB06 | 2822 | "Resume Updates" { |
| 0xB1E | 2846 | Write-Output "[ACTION] Resuming Windows Updates..." |
| 0xB5B | 2907 | $ux = Ensure-UxKey |
| 0xB77 | 2935 | $names = @( |
| 0xB8C | 2956 | "PauseUpdatesStartTime","PauseUpdatesExpiryTime", |
| 0xBCB | 3019 | "PauseFeatureUpdatesStartTime","PauseFeatureUpdatesEndTime", |
| 0xC15 | 3093 | "PauseQualityUpdatesStartTime","PauseQualityUpdatesEndTime" |
| 0xC5E | 3166 | ) |
| 0xC69 | 3177 | foreach ($n in $names) { |
| 0xC8B | 3211 | Remove-ItemProperty -Path $ux -Name $n -ErrorAction SilentlyContinue |
| 0xCDD | 3293 | } |
| 0xCE8 | 3304 | Write-Output "[OK] Pause cleared." |
| 0xD1D | 3357 | "Disable Automatic Updates" { |
| 0xD40 | 3392 | Write-Output "[ACTION] Disabling automatic updates via policy..." |
| 0xD8B | 3467 | $au = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" |
| 0xDD7 | 3543 | New-Item -Path $au -Force | Out-Null |
| 0xE05 | 3589 | Set-ItemProperty -Path $au -Name "NoAutoUpdate" -Type DWord -Value 1 |
| 0xE53 | 3667 | Write-Output "[OK] Automatic updates disabled (manual checks still possible)." |
| 0xEB4 | 3764 | "Set Max Pause Time" { |
| 0xED0 | 3792 | Write-Output "[ACTION] Extending pause to 10 years..." |
| 0xF10 | 3856 | Unlock-PauseUx |
| 0xF28 | 3880 | $ux = Ensure-UxKey |
| 0xF44 | 3908 | $start = (Get-Date).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ") |
| 0xF94 | 3988 | $end = (Get-Date).AddDays(3650).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ") |
| 0xFF4 | 4084 | # set all pause timestamps |
| 0x1018 | 4120 | Set-ItemProperty -Path $ux -Name "PauseUpdatesStartTime" -Value $start |
| 0x1072 | 4210 | Set-ItemProperty -Path $ux -Name "PauseUpdatesExpiryTime" -Value $end |
| 0x10CA | 4298 | Set-ItemProperty -Path $ux -Name "PauseFeatureUpdatesStartTime" -Value $start |
| 0x1124 | 4388 | Set-ItemProperty -Path $ux -Name "PauseFeatureUpdatesEndTime" -Value $end |
| 0x117C | 4476 | Set-ItemProperty -Path $ux -Name "PauseQualityUpdatesStartTime" -Value $start |
| 0x11D6 | 4566 | Set-ItemProperty -Path $ux -Name "PauseQualityUpdatesEndTime" -Value $end |
| 0x1230 | 4656 | # optional: expand UI's selectable max pause days (not required for actual pause) |
| 0x128B | 4747 | New-Item -Path $ux -Force | Out-Null |
| 0x12B9 | 4793 | New-ItemProperty -Path $ux -Name "FlightSettingsMaxPauseDays" -PropertyType DWord -Value 36500 -Force | Out-Null |
| 0x1335 | 4917 | Write-Output "[OK] Pause extended to $((Get-Date).AddDays(3650).ToShortDateString())." |
| 0x1395 | 5013 | Write-Output "[TIP] Settings app may need to be restarted to reflect the new date." |
| 0x13FB | 5115 | "Show Status" { |
| 0x1410 | 5136 | $ux = "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" |
| 0x1454 | 5204 | if (Test-Path $ux) { |
| 0x1472 | 5234 | Get-ItemProperty -Path $ux | |
| 0x149C | 5276 | Select-Object PauseUpdatesStartTime,PauseUpdatesExpiryTime,PauseFeatureUpdatesStartTime,PauseFeatureUpdatesEndTime,PauseQualityUpdatesStartTime,PauseQualityUpdatesEndTime,FlightSettingsMax |
| 0x1571 | 5489 | Format-List |
| 0x158A | 5514 | } else { |
| 0x159C | 5532 | Write-Output "[INFO] UX Settings key not found." |
| 0x15DA | 5594 | } |
| 0x15EE | 5614 | "Revert Defaults" { |
| 0x1607 | 5639 | Write-Output "[ACTION] Reverting to defaults..." |
| 0x1641 | 5697 | Remove-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" -Recurse -ErrorAction SilentlyContinue |
| 0x16BD | 5821 | $ux = "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" |
| 0x1701 | 5889 | if (Test-Path $ux) { |
| 0x171F | 5919 | $names = @( |
| 0x1738 | 5944 | "FlightSettingsMaxPauseDays", |
| 0x1767 | 5991 | "PauseUpdatesStartTime","PauseUpdatesExpiryTime", |
| 0x17AA | 6058 | "PauseFeatureUpdatesStartTime","PauseFeatureUpdatesEndTime", |
| 0x17F8 | 6136 | "PauseQualityUpdatesStartTime","PauseQualityUpdatesEndTime" |
| 0x1845 | 6213 | ) |
| 0x1854 | 6228 | foreach ($n in $names) { |
| 0x187A | 6266 | Remove-ItemProperty -Path $ux -Name $n -ErrorAction SilentlyContinue |
| 0x18D0 | 6352 | } |
| 0x18DF | 6367 | } |
| 0x18EA | 6378 | Write-Output "[OK] Default behavior restored." |
| 0x192B | 6443 | default { |
| 0x193A | 6458 | Write-Output "[ERROR] Unknown option: $choice" |