diff --git a/Scripts/CLI/PrintPendingChanges.ps1 b/Scripts/CLI/PrintPendingChanges.ps1 index d63ff28..30ee600 100644 --- a/Scripts/CLI/PrintPendingChanges.ps1 +++ b/Scripts/CLI/PrintPendingChanges.ps1 @@ -2,7 +2,13 @@ function PrintPendingChanges { $skippedParams = @() $undoChanges = $script:Params.ContainsKey('Undo') - Write-Output "Win11Debloat will make the following changes:" + + if ($undoChanges) { + Write-Output "Win11Debloat will make the following changes to revert the selected settings to Windows defaults:" + } + else { + Write-Output "Win11Debloat will make the following changes:" + } if ($script:Params['CreateRestorePoint']) { Write-Output "- $($script:Features['CreateRestorePoint'].Label)" diff --git a/Win11Debloat.ps1 b/Win11Debloat.ps1 index 7844686..5f9c50e 100644 --- a/Win11Debloat.ps1 +++ b/Win11Debloat.ps1 @@ -336,11 +336,12 @@ foreach ($Param in $script:ControlParams) { # Guard: Undo mode requires at least one actionable, non-control parameter. if ($script:Params.ContainsKey('Undo')) { + $loadsSettingsFromPreset = $RunDefaults -or $RunDefaultsLite -or $RunSavedSettings $undoTargets = @($script:Params.Keys | Where-Object { ($script:ControlParams -notcontains $_) -and $_ -ne 'Apps' -and $_ -ne 'CreateRestorePoint' }) - if ($undoTargets.Count -eq 0) { + if ($undoTargets.Count -eq 0 -and -not $loadsSettingsFromPreset) { Write-Error "The -Undo parameter requires at least one setting/feature parameter to revert." AwaitKeyToExit }