Skip to content

Restore Point 24-Hour Throttle #22

@AviseOffical

Description

@AviseOffical

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
    }
}

}"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions