sparkle icon indicating copy to clipboard operation
sparkle copied to clipboard

Restore Point 24-Hour Throttle

Open AviseOffical opened this issue 4 months ago • 1 comments

OS: windows 11, 24H2, 26100.2033 Portable/Install: using portable but should be the same for installer. Repeatable: yes

when you first use installer or portable version of sparkle it asks to make a restore point. we say ok and it should make a restore point but it wont. the reason is because windows have added a 24-Hour throttle to the restore point. u can temporarily disable the restore point throttle. then make the restore point, then enable restore point throttle

[EDIT. had to use " instead of code-block `] random powershell snippet for creating restore point: "if ($CreateRestorePoint) { Write-Status "Creating system restore point..." try { # Enable System Restore on C: drive first Enable-ComputerRestore -Drive "C:" -ErrorAction Stop

    # Check and temporarily disable the 24-hour throttle
    $throttleRegPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore"
    $originalThrottleValue = $null
    
    try {
        $originalThrottleValue = Get-ItemProperty -Path $throttleRegPath -Name "SystemRestorePointCreationFrequency" -ErrorAction SilentlyContinue
        if ($originalThrottleValue) {
            Write-Status "Temporarily disabling 24-hour restore point throttle..."
            Remove-ItemProperty -Path $throttleRegPath -Name "SystemRestorePointCreationFrequency" -Force -ErrorAction SilentlyContinue
        }
    }
    catch {
        Write-Status "Could not modify throttle setting, continuing anyway..." "Yellow"
    }
    
    # Wait a moment for the service to be ready
    Start-Sleep -Seconds 3
    
    # Create the restore point
    Write-Status "Creating restore point (this may take a moment)..."
    Checkpoint-Computer -Description "Before Windows 11 Optimization $(Get-Date -Format 'yyyy-MM-dd HH:mm')" -RestorePointType "MODIFY_SETTINGS" -ErrorAction Stop
    
    # Restore the original throttle setting if it existed
    if ($originalThrottleValue) {
        try {
            Write-Status "Restoring original throttle setting..."
            Set-ItemProperty -Path $throttleRegPath -Name "SystemRestorePointCreationFrequency" -Value $originalThrottleValue.SystemRestorePointCreationFrequency -Force
        }
        catch {
            Write-Status "Could not restore throttle setting" "Yellow"
        }
    }
    
    Write-Status "System restore point created successfully" "Green"
    
    # Verify the restore point was created
    $restorePoints = Get-ComputerRestorePoint | Where-Object { $_.Description -like "*Windows 11 Optimization*" } | Sort-Object CreationTime -Descending | Select-Object -First 1
    if ($restorePoints) {
        Write-Status "Restore point verified: $($restorePoints.Description)" "Green"
    }
}
catch {
    Write-Status "Failed to create restore point: $($_.Exception.Message)" "Red"
    Write-Status "You may need to enable System Restore manually in System Properties" "Yellow"
    
    # Restore throttle setting even if restore point failed
    if ($originalThrottleValue) {
        try {
            Set-ItemProperty -Path $throttleRegPath -Name "SystemRestorePointCreationFrequency" -Value $originalThrottleValue.SystemRestorePointCreationFrequency -Force
        }
        catch {
            # Silent fail for cleanup
        }
    }
    
    $continue = Read-Host "Continue without restore point? (y/N)"
    if ($continue -notmatch '^[Yy]') {
        Write-Status "Script cancelled by user" "Red"
        exit 1
    }
}

}"

AviseOffical avatar Aug 20 '25 14:08 AviseOffical

I already addressed this, I thought, by changing the frequency of restore point creation in the registry, but I will look into it.

thedogecraft avatar Aug 22 '25 02:08 thedogecraft