Introduction

La plupart des exemples pour Azure CLI sont données pour Bash. Pour autant, on peut être sous Windows, sans sous-système Linux. On aura cependant toujours PowerShell !

Voyons comment transformer les commandes Bash pour être exécutées sous PowerShell.

Les variables

Les variables s’utilisent de la même façon grâce au symbole $. Ainsi la commande suivante s’exécute sous Bash ou PowerShell :

echo $mavariable
echo est un alias pour Write-Output en PowerShell.

Par contre, la déclaration est bien différente :

Bash PowerShell

mavariable=toto

$mavariable="toto"

Passage à la ligne

Pour des raisons lisibilités évidentes, les longues commandes Bash sont le plus souvent découpées pour passer à la ligne. Le caractère \ suivi d’une nouvelle ligne est compris comme une continuation de ligne.

Bash PowerShell
az storage account create \
        --name $sa \
        -g $rg \
        --access-tier Hot \
        --sku Standard_LRS
az storage account create `
        --name $sa `
        -g $rg `
        --access-tier Hot `
        --sku Standard_LRS

Récupération de la sortie d’une commande

En mettant simplement entre `, il est possible de récupérer le résultat d’une commande pour la mettre dans une variable. Finalement, ce n’est pas si compliqué en PowerShell.

Bash PowerShell
streaming_endpoint_hostname=`az ams streaming-endpoint show -g $rg -a $ams -n default`
$streaming_endpoint_hostname = az ams streaming-endpoint show -g $rg -a $ams -n default

Conclusion

Voici quelques exemples pour adapter les commandes sur PowerShell. Il resterait beaucoup à dire :

  • Gestion des erreurs

  • Transformation en objet PowerShell (ex: az aks list | ConvertFrom-Json)

  • Conversion de fonction plus avancées comme :

    • Les boucles

    • Les pipes

    • L’utilisation de fonction spécifiques non présentes par défaut comme jq

  • Etc.

Je mettrai à jour cette page en fonction des cas que je rencontre.