Files
winutil/functions/private/Invoke-WinUtilScript.ps1
T

45 lines
1.5 KiB
PowerShell
Raw Normal View History

+3
2023-03-07 12:28:00 -08:00
function Invoke-WinUtilScript {
<#
2023-10-19 17:12:55 -05:00
.SYNOPSIS
Invokes the provided scriptblock. Intended for things that can't be handled with the other functions.
+3
2023-03-07 12:28:00 -08:00
2023-10-19 17:12:55 -05:00
.PARAMETER Name
The name of the scriptblock being invoked
.PARAMETER scriptblock
The scriptblock to be invoked
.EXAMPLE
+3
2023-03-07 12:28:00 -08:00
$Scriptblock = [scriptblock]::Create({"Write-output 'Hello World'"})
Invoke-WinUtilScript -ScriptBlock $scriptblock -Name "Hello World"
2023-10-19 17:12:55 -05:00
+3
2023-03-07 12:28:00 -08:00
#>
param (
$Name,
[scriptblock]$scriptblock
)
try {
+3
2023-03-07 12:28:00 -08:00
Write-Host "Running Script for $name"
Invoke-Command $scriptblock -ErrorAction Stop
} catch [System.Management.Automation.CommandNotFoundException] {
Write-Warning "The specified command was not found."
Write-Warning $PSItem.Exception.message
} catch [System.Management.Automation.RuntimeException] {
Write-Warning "A runtime exception occurred."
Write-Warning $PSItem.Exception.message
} catch [System.Security.SecurityException] {
Write-Warning "A security exception occurred."
Write-Warning $PSItem.Exception.message
} catch [System.UnauthorizedAccessException] {
Write-Warning "Access denied. You do not have permission to perform this operation."
Write-Warning $PSItem.Exception.message
} catch {
# Generic catch block to handle any other type of exception
+3
2023-03-07 12:28:00 -08:00
Write-Warning "Unable to run script for $name due to unhandled exception"
2023-10-19 17:12:55 -05:00
Write-Warning $psitem.Exception.StackTrace
+3
2023-03-07 12:28:00 -08:00
}
2023-10-19 17:12:55 -05:00
}