From 54b80befee43ad22a9a319a44d7db7f5491f5427 Mon Sep 17 00:00:00 2001 From: Jeffrey <9938813+Raphire@users.noreply.github.com> Date: Tue, 19 May 2026 20:39:14 +0200 Subject: [PATCH] Continue or registry failures and show details after execution --- Scripts/Features/ExecuteChanges.ps1 | 7 +++++++ Scripts/Features/ImportRegistryFile.ps1 | 3 ++- Scripts/GUI/Show-ApplyModal.ps1 | 9 ++++++++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/Scripts/Features/ExecuteChanges.ps1 b/Scripts/Features/ExecuteChanges.ps1 index 772627a..fb69a29 100644 --- a/Scripts/Features/ExecuteChanges.ps1 +++ b/Scripts/Features/ExecuteChanges.ps1 @@ -138,6 +138,8 @@ function ExecuteParameter { # Executes all selected parameters/features function ExecuteAllChanges { + $script:RegistryImportFailures = 0 + # Build list of actionable parameters (skip control params and data-only params) $actionableKeys = @() foreach ($paramKey in $script:Params.Keys) { @@ -216,4 +218,9 @@ function ExecuteAllChanges { ExecuteParameter -paramKey $paramKey } + + if ($script:RegistryImportFailures -gt 0) { + Write-Host "" + Write-Host "$($script:RegistryImportFailures) registry import change(s) failed. See output above for details." -ForegroundColor Yellow + } } \ No newline at end of file diff --git a/Scripts/Features/ImportRegistryFile.ps1 b/Scripts/Features/ImportRegistryFile.ps1 index 99aff39..8df2cbb 100644 --- a/Scripts/Features/ImportRegistryFile.ps1 +++ b/Scripts/Features/ImportRegistryFile.ps1 @@ -18,6 +18,7 @@ function ImportRegistryFile { if (-not (Test-Path $regFilePath)) { $errorMessage = "Unable to find registry file: $path ($regFilePath)" + $script:RegistryImportFailures++ Write-Host "Error: $errorMessage" -ForegroundColor Red Write-Host "" throw $errorMessage @@ -100,9 +101,9 @@ function ImportRegistryFile { Write-Host "" } catch { + $script:RegistryImportFailures++ Write-Host $_.Exception.Message -ForegroundColor Red Write-Host "" - throw } finally { if ($offlineHiveLoaded) { diff --git a/Scripts/GUI/Show-ApplyModal.ps1 b/Scripts/GUI/Show-ApplyModal.ps1 index 75ea5a9..30bc6ca 100644 --- a/Scripts/GUI/Show-ApplyModal.ps1 +++ b/Scripts/GUI/Show-ApplyModal.ps1 @@ -123,6 +123,8 @@ function Show-ApplyModal { $applyWindow.Dispatcher.BeginInvoke([System.Windows.Threading.DispatcherPriority]::Background, [action]{ try { ExecuteAllChanges + + $registryImportFailureCount = [int]$script:RegistryImportFailures # Restart explorer if requested if ($RestartExplorer -and -not $script:CancelRequested) { @@ -139,7 +141,7 @@ function Show-ApplyModal { Write-Host "" if ($script:CancelRequested) { Write-Host "Script execution was cancelled by the user. Some changes may not have been applied." - } else { + } elseif ($registryImportFailureCount -eq 0) { Write-Host "All changes have been applied successfully!" } @@ -153,6 +155,11 @@ function Show-ApplyModal { $script:ApplyCompletionIconEl.Foreground = [System.Windows.Media.SolidColorBrush]::new([System.Windows.Media.ColorConverter]::ConvertFromString("#e8912d")) $script:ApplyCompletionTitleEl.Text = "Cancelled" $script:ApplyCompletionMessageEl.Text = "Script execution was cancelled by the user." + } elseif ($registryImportFailureCount -gt 0) { + $script:ApplyCompletionIconEl.Text = [char]0xE7BA + $script:ApplyCompletionIconEl.Foreground = [System.Windows.Media.SolidColorBrush]::new([System.Windows.Media.ColorConverter]::ConvertFromString("#e8912d")) + $script:ApplyCompletionTitleEl.Text = "Changes Applied with Errors" + $script:ApplyCompletionMessageEl.Text = "$registryImportFailureCount registry change(s) failed. See console for details." } else { $script:ApplyCompletionTitleEl.Text = "Changes Applied"