Il est assez facile de manier les variables d'environnement avec Powershell. Pour cela, plusieurs méthodes existent, permettant d'en créer des temporaires (à comprendre, qui disparaitront avec la session Powershell) ou des permanentes.
Dans Powershell, une variable nommée $Env existe. Elle comporte l'intégralité des variables d'environnement actuellement en mémoire. En vous servant d'intellisense, vous pouvez voir leurs noms.
Et en vous servant de la commande Get-Childitem env: vous pouvez lister l'intégralité des valeurs.
Pour créer une variable d'environnement de manière temporaire, vous pouvez ajouter une sous variable à $Env:
$env:blog = "Le Blog de Nicolas Lang"
Ce qui créera une variable d'environnement temporaire, qui disparaitra avec la session Powershell.
Le fait de créer une variable déja existante va modifier l'ancienne variable, permettant de changer une valeur.
Là, nous allons passer par .Net.
[Environment]::SetEnvironmentVariable("Nom","Valeur","User")
Cette commande crée une variable d'environnement nommée "Nom", avec comme valeur "Valeur". Ici il est précisé qu'elle est de type "user" (crée une variable au niveau utilisateur). Deux autres types sont disponibles : "Machine" et "Process". Si une variable d'environnement "nom" existe déja, la commande va simplement modifier sa valeur, sans en créer une nouvelle.
Il suffit d'enregistrer une valeur nulle sur une variable pour la supprimer.
[Environment]::SetEnvironmentVariable("TestVariable",$null,"User")
La variable existera toujours jusqu'au prochain redémarrage, puis disparaitra.