-
Notifications
You must be signed in to change notification settings - Fork 20
Open
Description
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
Labels
No labels