PC Administration du réseau
Outils d'administration
Script VBS pour lancer un script sur une autre machine

Remote scripting : lancer un script sur une autre machine :
'-----------------------------------------------------------------------------
' Fichier : remote_scripting.vbs
' Créé par Pascal Arnould le 01/06/2006 ; Modifié le 05/06/2006
'-----------------------------------------------------------------------------
' Procédure permettant de lancer l'exécution d'un script sur une machine
'   distante d'un réseau local. Pour fonctionner correctement, les conditions
'   suivantes doivent être réunies :
'   - Les deux postes doivent être sous un domaine, avec un serveur tournant
'     sous Windows 2000 Server ou Windows 2003 Server.
'   - La clé suivante de la base de registre doit se trouver sur les deux
'     postes et doit avoir la valeur 1 :
'     HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings\Remote
'     (si ce n'est pas le cas, la créer : "Nouvelle" "Valeur chaîne", une clé
'      de type REG_SZ est créée).
'   - Sur les postes sous Windows XP, lancer une fois pour toute la commande
'     (menu démarrer, "exécuter") :  wscript -regserver
'   - Il faut se loger sur le PC depuis lequel la commande va être lancée
'     avec un compte ayant les droits sur le poste distant (administrateur du
'     serveur, par exemple).
'   - Il n'est pas nécessaire d'avoir de session ouverte sur le poste distant,
'     il suffit qu'il soit sous tension.
' Le script à lancer à distance doit se trouver dans le même dossier.
'   Si ce n'est pas le cas, spécifier le chemin dans la boîte de dialogue.
' Pour exécuter ce script, taper dans une fenêtre de commande :
'   wscript remote_scripting.vbs
' On peut également créer un raccourci vers ce script vbs, en spécifiant la
'   cible : C:\WINDOWS\system32\wscript.exe remote_scripting.vbs
'-----------------------------------------------------------------------------
' Déclaration des variables :
Option Explicit
Dim RemoteComputer
Dim RemoteScript
Dim oCtrl, oProcess
'-----------------------------------------------------------------------------
' Demande à l'utilisateur du nom du script et du nom de l'ordinateur distant :
RemoteComputer = InputBox ("Saisissez le nom de l'ordinateur distant sur lequel exécuter le script")
RemoteScript = InputBox ("Saisissez le nom du script à exécuter sur l'ordinateur distant")
' Fin du programme si pas de nom fourni :
If RemoteComputer = "" Then WScript.Quit
If RemoteScript = "" Then WScript.Quit
'-----------------------------------------------------------------------------
' Initialisation des variables :
Set oCtrl = WScript.CreateObject("WSHController")
Set oProcess = oCtrl.CreateScript(RemoteScript, RemoteComputer)
'-----------------------------------------------------------------------------
' On lance le script sur l'ordinateur distant :
WScript.ConnectObject oProcess, "Process_"
oProcess.Execute
'-----------------------------------------------------------------------------
' On attend que le script soit terminé sur le poste distant...
Do While oProcess.Status <> 2
  WScript.Sleep 100
Loop
'-----------------------------------------------------------------------------
' On déconnecte le processus lancé à distance :
WScript.DisconnectObject oProcess
'-----------------------------------------------------------------------------
' On affiche un message de fin et on quitte.
WScript.Echo "Le script 'remote_scripting.vbs' est terminé !"
WScript.Quit
'-----------------------------------------------------------------------------
' Si une erreur se produit, on l'affiche :
Sub Process_Error
  With  oProcess.Error
    WScript.Echo "Erreur " & .Number & ", Ligne : " & .Line & ", Car : " & .Character & vbCrLf & .Description
    WScript.Quit
  End With
End Sub
' Message s'affichant quand le script distant commence son exécution :
Sub Process_Start
  Msgbox "Script distant commencé..."
End Sub
' Message s'affichant quand le script distant termine son exécution :
Sub Process_End
  Msgbox "Fin d'exécution du script distant..."
End Sub
'-----------------------------------------------------------------------------

Outils d'administration
Administration du réseau
Rubrique Informatique