added boolean conversion helper and replaced code in scripts to use it
This commit is contained in:
@@ -180,6 +180,45 @@ Function Get-Version {
|
||||
Return [version]$Return.Trim('.')
|
||||
}
|
||||
|
||||
# Convert an RMM text variable into an actual Boolean value.
|
||||
Function ConvertTo-RmmBoolean {
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Converts an RMM text value to a System.Boolean.
|
||||
.DESCRIPTION
|
||||
Accepts true, $true, yes, y, or 1; false, $false, no, n, or 0.
|
||||
Matching ignores case and surrounding whitespace. Null and empty values
|
||||
return false. Unrecognized values throw instead of silently enabling an option.
|
||||
.PARAMETER Value
|
||||
The value to convert. Native Boolean values are also accepted.
|
||||
.PARAMETER VariableName
|
||||
Optional RMM variable name, without the leading $, for error messages.
|
||||
.EXAMPLE
|
||||
$ZipEnabled = ConvertTo-RmmBoolean -Value $Zip -VariableName 'Zip'
|
||||
.EXAMPLE
|
||||
ConvertTo-RmmBoolean ' No '
|
||||
#>
|
||||
[CmdletBinding()]
|
||||
[OutputType([bool])]
|
||||
param(
|
||||
[Parameter(Mandatory=$true,Position=0,ValueFromPipeline=$true)]
|
||||
[AllowNull()]
|
||||
[AllowEmptyString()]
|
||||
[string]$Value,
|
||||
[string]$VariableName = 'Value'
|
||||
)
|
||||
process {
|
||||
$NormalizedValue = ([string]$Value).Trim().ToLowerInvariant()
|
||||
If ( $NormalizedValue -in @('true', '$true', 'yes', 'y', '1') ) {
|
||||
Return $true
|
||||
}
|
||||
If ( $NormalizedValue -in @('', 'false', '$false', 'no', 'n', '0') ) {
|
||||
Return $false
|
||||
}
|
||||
Throw ('Invalid ${0} value. Use true, $true, yes, y, 1, false, $false, no, n, or 0.' -f $VariableName)
|
||||
}
|
||||
}
|
||||
|
||||
# Determines whether a URL is valid
|
||||
Function IsURLValid {
|
||||
param([Parameter(Mandatory=$true,ValueFromPipeline=$true)][string]$URL)
|
||||
|
||||
Reference in New Issue
Block a user