src/Add-MandatoryParameters.ps1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
function Add-MandatoryParameters { [CmdletBinding()] Param( [Parameter(Mandatory)] [System.Management.Automation.InvocationInfo] $InvocationInfo, [Parameter(Mandatory)] [Hashtable] $Parameters ) $boundedParametersFromCaller = $InvocationInfo.BoundParameters $parametersFromCallingFunction = $InvocationInfo.MyCommand.Parameters # Add ParameterName/ParameterValue pairs for all mandatory parameters to hashtable $parametersFromCallingFunction.Keys ` | Where-Object { Test-MandatoryParameter $parametersFromCallingFunction[$_] } ` | Foreach-Object { $Parameters.Add($_, $boundedParametersFromCaller[$_]) } Write-Output $Parameters } |