null-safe patches

This commit is contained in:
titus
2026-03-05 17:20:30 -06:00
parent d2dbf03572
commit b481064437
7 changed files with 81 additions and 18 deletions

View File

@@ -16,13 +16,20 @@ function Invoke-WinUtilFeatureInstall {
Write-Host "Installing $feature"
Enable-WindowsOptionalFeature -Online -FeatureName $feature -All -NoRestart
} catch {
if ($CheckBox.Exception.Message -like "*requires elevation*") {
if ($_.Exception -and $_.Exception.Message -like "*requires elevation*") {
Write-Warning "Unable to Install $feature due to permissions. Are you running as admin?"
Invoke-WPFUIThread -ScriptBlock { Set-WinUtilTaskbaritem -state "Error" }
} else {
Write-Warning "Unable to Install $feature due to unhandled exception"
Write-Warning $CheckBox.Exception.StackTrace
if ($_.Exception) {
if (-not [string]::IsNullOrWhiteSpace($_.Exception.Message)) {
Write-Warning $_.Exception.Message
}
if (-not [string]::IsNullOrWhiteSpace($_.Exception.StackTrace)) {
Write-Warning $_.Exception.StackTrace
}
}
}
}
}
@@ -35,13 +42,20 @@ function Invoke-WinUtilFeatureInstall {
Write-Host "Running Script for $CheckBox"
Invoke-Command $scriptblock -ErrorAction stop
} catch {
if ($CheckBox.Exception.Message -like "*requires elevation*") {
if ($_.Exception -and $_.Exception.Message -like "*requires elevation*") {
Write-Warning "Unable to Install $feature due to permissions. Are you running as admin?"
Invoke-WPFUIThread -ScriptBlock { Set-WinUtilTaskbaritem -state "Error" }
} else {
Invoke-WPFUIThread -ScriptBlock { Set-WinUtilTaskbaritem -state "Error" }
Write-Warning "Unable to Install $feature due to unhandled exception"
Write-Warning $CheckBox.Exception.StackTrace
if ($_.Exception) {
if (-not [string]::IsNullOrWhiteSpace($_.Exception.Message)) {
Write-Warning $_.Exception.Message
}
if (-not [string]::IsNullOrWhiteSpace($_.Exception.StackTrace)) {
Write-Warning $_.Exception.StackTrace
}
}
}
}
}

View File

@@ -25,20 +25,35 @@ function Invoke-WinUtilScript {
Invoke-Command $scriptblock -ErrorAction Stop
} catch [System.Management.Automation.CommandNotFoundException] {
Write-Warning "The specified command was not found."
Write-Warning $PSItem.Exception.message
if ($_.Exception -and -not [string]::IsNullOrWhiteSpace($_.Exception.Message)) {
Write-Warning $_.Exception.Message
}
} catch [System.Management.Automation.RuntimeException] {
Write-Warning "A runtime exception occurred."
Write-Warning $PSItem.Exception.message
if ($_.Exception -and -not [string]::IsNullOrWhiteSpace($_.Exception.Message)) {
Write-Warning $_.Exception.Message
}
} catch [System.Security.SecurityException] {
Write-Warning "A security exception occurred."
Write-Warning $PSItem.Exception.message
if ($_.Exception -and -not [string]::IsNullOrWhiteSpace($_.Exception.Message)) {
Write-Warning $_.Exception.Message
}
} catch [System.UnauthorizedAccessException] {
Write-Warning "Access denied. You do not have permission to perform this operation."
Write-Warning $PSItem.Exception.message
if ($_.Exception -and -not [string]::IsNullOrWhiteSpace($_.Exception.Message)) {
Write-Warning $_.Exception.Message
}
} catch {
# Generic catch block to handle any other type of exception
Write-Warning "Unable to run script for $name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
if ($_.Exception) {
if (-not [string]::IsNullOrWhiteSpace($_.Exception.Message)) {
Write-Warning $_.Exception.Message
}
if (-not [string]::IsNullOrWhiteSpace($_.Exception.StackTrace)) {
Write-Warning $_.Exception.StackTrace
}
}
}
}

View File

@@ -28,6 +28,13 @@ function Set-WinUtilDNS {
}
} catch {
Write-Warning "Unable to set DNS Provider due to an unhandled exception"
Write-Warning $psitem.Exception.StackTrace
if ($_.Exception) {
if (-not [string]::IsNullOrWhiteSpace($_.Exception.Message)) {
Write-Warning $_.Exception.Message
}
if (-not [string]::IsNullOrWhiteSpace($_.Exception.StackTrace)) {
Write-Warning $_.Exception.StackTrace
}
}
}
}

View File

@@ -46,11 +46,22 @@ function Set-WinUtilRegistry {
} catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
} catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
Write-Warning $_.Exception.ErrorRecord
} catch [System.UnauthorizedAccessException] {
Write-Warning $psitem.Exception.Message
if ($_.Exception -and -not [string]::IsNullOrWhiteSpace($_.Exception.Message)) {
Write-Warning $_.Exception.Message
} else {
Write-Warning "Unauthorized access while setting $Path\$Name"
}
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
if ($_.Exception) {
if (-not [string]::IsNullOrWhiteSpace($_.Exception.Message)) {
Write-Warning $_.Exception.Message
}
if (-not [string]::IsNullOrWhiteSpace($_.Exception.StackTrace)) {
Write-Warning $_.Exception.StackTrace
}
}
}
}

View File

@@ -29,14 +29,23 @@ function Set-WinUtilScheduledTask {
Enable-ScheduledTask -TaskName $Name -ErrorAction Stop
}
} catch [System.Exception] {
if($psitem.Exception.Message -like "*The system cannot find the file specified*") {
if ($_.Exception -and $_.Exception.Message -like "*The system cannot find the file specified*") {
Write-Warning "Scheduled Task $name was not Found"
} else {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.Message
if ($_.Exception -and -not [string]::IsNullOrWhiteSpace($_.Exception.Message)) {
Write-Warning $_.Exception.Message
}
}
} catch {
Write-Warning "Unable to run script for $name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
if ($_.Exception) {
if (-not [string]::IsNullOrWhiteSpace($_.Exception.Message)) {
Write-Warning $_.Exception.Message
}
if (-not [string]::IsNullOrWhiteSpace($_.Exception.StackTrace)) {
Write-Warning $_.Exception.StackTrace
}
}
}
}

View File

@@ -34,7 +34,14 @@ Function Set-WinUtilService {
Write-Warning "Service $Name was not found"
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $_.Exception.Message
if ($_.Exception) {
if (-not [string]::IsNullOrWhiteSpace($_.Exception.Message)) {
Write-Warning $_.Exception.Message
}
if (-not [string]::IsNullOrWhiteSpace($_.Exception.StackTrace)) {
Write-Warning $_.Exception.StackTrace
}
}
}
}