-->

Lorsque vous désirez tapez dans une ligne de commande et taper le nom d'un logiciel, vous avez parfois ce genre d'erreur:

Mais vous avez bien, pour cet exemple, le fichier msdeploy.exe qui se trouve dans "C:\Program Files (x86)\IIS\Microsoft Web Deploy V3", par contre elle ne peut pas être appelé partout, il faudrait explicitement taper: "C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe" ce qui est lourd et long.

Il existe donc la possibilité de dire à Windows ou se trouve précisément "msdeploy.exe" ou que vous vous trouvez, ça s’appelle les variables de l'environnement de Windows. Pour y accéder, vous devez ouvrir le panneau de configuration, ensuite cliquez sur "System et sécurité", ensuite sur "Système" et à gauche encore de l'écran, cliquez sur "Paramètres systèmes avancés", une fenêtre s'ouvre comme ceci:

Vous cliquez maintenant sur le bouton tout en bas "Variables d'environnement", une nouvelle fenêtre s'ouvre et vous trouverez en bas, dans la 2eme partie de l'écran, une liste des variables système, mais le plus important c'est "PATH", trouvez le dans la liste et cliquez deux fois dessus:

Il suffit d'ajouter ici le nouveau chemin pour que Windows, où que vous soyez, trouve l’exécutable "msdeploy.exe", cliquez donc sur le bouton "Nouveau" et ajouter le chemin, pour l'exemple, j'ajoute ici mon chemin: "C:\Program Files (x86)\IIS\Microsoft Web Deploy V3" sans les guillemets.

Si vous ouvrez à nouveau une ligne de commande et que vous tapez "msdeploy", vous aurez toujours la même erreur:

Normalement il faut redémarrer la machine, mais voilà, sur un serveur, on ne peut pas redémarrer comme on veut, voici donc un script VBScript qui permet de recharger les variables en un seul clic:

Set oShell = WScript.CreateObject("WScript.Shell")
filename = oShell.ExpandEnvironmentStrings("%TEMP%\resetvars.bat")
Set objFileSystem = CreateObject("Scripting.fileSystemObject")
Set oFile = objFileSystem.CreateTextFile(filename, TRUE)

set oEnv=oShell.Environment("System")
for each sitem in oEnv 
    oFile.WriteLine("SET " & sitem)
next
path = oEnv("PATH")

set oEnv=oShell.Environment("User")
for each sitem in oEnv 
    oFile.WriteLine("SET " & sitem)
next

path = path & ";" & oEnv("PATH")
oFile.WriteLine("SET PATH=" & path)
oFile.Close

Créez un fichier Texte, coller ce code et renommer ce fichier avec l'extension .vbs, et voici un script qui permettra de rafraîchir les variables sans redémarrer le PC !