2017-10-18 4 views
1

J'ai un petit script je migration vers Azure compte automatisation Azure Runbook. A l'origine, le script utilisait certains paramètres de commutation par exemple -WhatIf. Mais lorsque j'essaie de le tester dans le volet de test, je ne peux pas lui transmettre de valeur.Est-il possible comment utiliser [switch] paramètre dans Azure Runbook

enter image description here

J'ai essayé 1,0, $ True, $ true, vrai, faux, mais rien ne semble fonctionner. Je sais que je peux changer le type de paramètre, mais je me demandais s'il y aurait un meilleur moyen. Y a-t-il?

Répondre

0

Alors que vous pouvez utiliser les paramètres de commutateur dans Azure automatisation Runbooks, le meilleur conseil pratique est d'utiliser [bool] à la place. Vous pouvez le définir par défaut sur false, et même vérifier s'il a été passé (si vous le souhaitez/devez le faire pour une raison quelconque). Cela rendrait votre look de fonction comme suit:

#Requires -Version 3.0 
[CmdletBinding()] 
param (
    [Parameter (Mandatory = $false)] 
    [bool]$WhatIf 
) 

# Check if user supplied $WhatIf parameter 
if ($PSBoundParameters.ContainsKey('WhatIf')) { 
    # User specified -WhatIf 
} else { 
    # User did not specify -WhatIf 
} 

# Simple parameter check - can't differentiate between $false supplied by user and parameter not supplied 
if ($WhatIf) { 
    # User specified -WhatIf 
} else { 
    # User did not specify -WhatIf 
} 
1

Il suffit de spécifier la valeur vrai ou faux sans guillemets simples/doubles ou toutes autres décorations. Cela fonctionnera bien dans les Runbooks AA. J'ai découvert le dur moi-même après avoir trouvé aucune direction autour de la même chose sur le Web.

Cependant, comme @AndyHerb mentionné, la meilleure pratique consiste à utiliser un type bool au lieu du commutateur dans un AA Runbook, car il est plus facile chose.

HTH ...