Flash info

"La connaissance ce n’est point la possession de la vérité, mais d’un langage cohérent."

Antoine de Saint Exupéry (1900-1944)

 
Accueil arrow Articles / Tutoriaux arrow Lancer un script VBscript depuis PowerShell
Lancer un script VBscript depuis PowerShell
Écrit par Robin Lemesle   
23-04-2009

Il arrive parfois que vous soyez déjà en possession d’un script VBscript, et que le temps vous manque pour le traduire en PowerShell. Dans ce cas, sachez qu’il est possible de lancer un script VBscript depuis PowerShell (en réalité PowerShell peut lancer à peu près tout ce qui est exécutable).


Prenons l’exemple du script VBscript suivant :


reponse = MsgBox("Connaissez-vous PowerShell ?",vbYesNo + vbQuestion)
if reponse= vbYes then
WScript.Quit 1
elseif reponse = vbNo then
WScript.Quit 2
end if

 

Comme vous pouvez le remarquer, il s’agit simplement d’une boîte de dialogue qui s'ouvre et qui pose une question. En fonction de la réponse, le code de retour du script (WScript.Quit) aborde différentes valeurs numériques :

-    1 si la réponse est oui
-    2 si la réponse est non

 

cmd_vbs.jpg

 

 

 

 

 

 

 

box.jpg

 

 

 
 
 
 
 
 
 
 
 
 
 
 
Maintenant, essayons de voir comment PowerShell peut appeler ce script, et en récupérer la valeur de retour. Il est très important d’appeler le script VBScript via cscript.exe et non pas avec wscript.exe (ce qui est proposé par défaut). Seul cscript.exe est capable de renvoyer des valeurs de retour. Une fois que PowerShell a appelé le script VBScript, il peut alors récupérer la valeur de retour dans la variable $LASTEXITCODE (ceci est vrai pour une grande majorité des exécutables qui retournent une valeur).


Lancement du script :

 

vbs_box_2.jpg

 

 

 

 

 

 

 

 

 

 

Le résultat via la variable $LASTEXITCODE :

 

lastexitcode.jpg

 

 

 

 

 

 

 

Le résultat peut ensuite être analysé en fonction d’une structure de type Switch :


cscript C:\Temp\Script.vbs
switch ($LASTEXITCODE) {
1 {"La réponse est Oui"}
2 {"La réponse est Non!"}
default {"Pas de valeur de retour »}
}


Dernière mise à jour : ( 23-04-2009 )
 
© 2017 PowerShell-Scripting.com