How to check if a not mandatory parameter was used on a customized PowerShell function? To answer this question, I’ve made an example where you’ll see how you can handle it.
Let’s imagine that we have the following parameters on a function…
function Set-ServiceRunningStatus{
[CmdletBinding()]
Param(
[Parameter(ValueFromPipeline=$true)]
[string[]]$ComputerName,
[Parameter(Mandatory=$true,
HelpMessage = "Enter a service name (or filter for multiple) to set Running Status")]
[string]$Name,
[switch]$Force
)
BEGIN { } #BEGIN
PROCESS { } #PROCESS
END { } #END
}
And we want to check if during the function execution the non-mandatory ComputerName parameter is being used… You can use the automatic variable $PSBoundParameters to perform your check.
if ($PSBoundParameters.ContainsKey('ComputerName')) {
Write-Verbose "[PROCESS] Getting Services for $($ComputerName)"
} else {
Write-Verbose "[PROCESS] Getting Services"
}#if param ComputerName
Let me know if it helped.
Top comments (0)