Partager via


AvoidDefaultValueSwitchParameter

niveau de gravité : avertissement

Description

Si votre paramètre prend uniquement true et false, définissez le paramètre comme type [Switch]. PowerShell traite un paramètre de commutateur comme true lorsqu’il est utilisé avec une commande. Si le paramètre n’est pas inclus dans la commande, PowerShell considère que le paramètre est false. Ne définissez pas de paramètres [Boolean].

Vous ne devez pas définir de paramètre de commutateur avec une valeur par défaut de $true, car ce n’est pas le comportement attendu d’un paramètre de commutateur.

Comment

Modifiez la valeur par défaut du paramètre switch pour qu’il soit $false ou ne fournissez pas de valeur par défaut. Écrivez la logique du script pour supposer que la valeur par défaut du paramètre switch est $false ou non fournie.

Exemple

Erreur

function Test-Script
{
    [CmdletBinding()]
    Param
    (
        [String]
        $Param1,

        [switch]
        $Switch=$True
    )
    ...
}

C’est bien ça

function Test-Script
{
    [CmdletBinding()]
    Param
    (
        [String]
        $Param1,

        [switch]
        $Switch
    )

    begin {
        # Ensure that the $Switch is set to false if not provided
        if (-not $PSBoundParameters.ContainsKey('Switch')) {
            $Switch = $false
        }
    }
    ...
}

Plus d’informations