Private/Get-FunctionParameters.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
28
function Get-FunctionParameters() {
    <#
    .SYNOPSIS
        Simple function to get Function Parameters
    .NOTES
        Version: 1.0.0
        Author: Thomas ILLIET
        Creation Date: 21/07/2018
    #>


    # Get the command name
    $CommandName = $PSCmdlet.MyInvocation.InvocationName;
    # Get the list of parameters for the command
    $ParameterList = (Get-Command -Name $CommandName).Parameters;

    # Grab each parameter value, using Get-Variable
    $Params = @{}
    foreach ($Parameter in $ParameterList) {
        $ParameterObjects = Get-Variable -Name $Parameter.Values.Name -ErrorAction SilentlyContinue
        foreach($ParameterObject in $ParameterObjects){
            if(([string]::IsNullOrEmpty($ParameterObject.Value)) -eq $False) {
                $Params[$ParameterObject.Name] = $ParameterObject.Value
            }
        }
    }
    return $Params
}