1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198
| Option Explicit
'***** DEFINITIONS CONSTANTES *****
Const nomProgDest = "NSClient++.exe" 'variable du nom du programme à utiliser sur la machine distante
Const nomProgCo = "PsExec.exe" 'variable du nom du programme à utiliser pour établir la connxion sur la machine distante
'***** VARIABLES *****
''''' Variables globales '''''
Dim path 'Variable pour récupérer le chemin d'accès du script
Dim param 'Variable pour la sélection de l'option d'utilisation du programme
Dim nomSrv, usr, pwd 'Variables pour l'accès à l'ordinateur
''''' Variables locales '''''
Dim i, bool, temp
'***** RECUPERATION CHEMIN SCRIPT *****
path = left(WScript.ScriptFullName, InStr(WScript.ScriptFullName, WScript.ScriptName)-1) 'Récupère l'emplacement du script
'***** PARAMETRES *****
'Commutateurs d'entrées lors de l'utilisation en ligne de commande
Sub parametres()
Dim args 'Prise en charge des commutateurs d'entrées en ligne de commande
i = 0
Set args = Wscript.Arguments 'Récupère les commutateurs
'''''' SI PAS DE COMMUTATEURS '''''
If args.count = 0 Then
''''' Paramètres '''''
bool = false
param = inputBox("Paramètre à utiliser : ", "Paramètres")
param = Lcase(param) 'Mettre en minuscule
Do While bool = false ' Tant qu'on a pas la bonne saisie, on réaffiche le message
If param = "version" or param = "about" or param = "install" or param = "uninstall" or param = "start" or param = "stop" or param = "encrypt" Then
bool = true 'saisie correcte
ElseIf param = "quit" Then
WScript.Quit() 'Permet de quitter le programme
Else
param = inputBox("PARAMETRE INCORECTE !" + vbCr + vbCr + "La liste des paramètres disponibles sont les suivants :" + vbCr + " install : installation du logiciel" + vbCr + " uninstall : désinstallation du logiciel" + vbCr + " start : démarrage du service" + vbCr + " stop : arrêt du service" + vbCr + " encrypt : ???" + vbCr + " version : affichage de la version" + vbCr + " about : informations diverses sur le logiciel" + vbCr + vbCr + "Paramètre à utiliser : ", "Paramètres")
param = Lcase(param)
End If
Loop
''''' Serveurs '''''
bool = false
nomSrv = inputBox("Nom de l'ordinateur ou adresse IP : ", "Nom Serveur Distant")
nomSrv = Lcase(nomSrv) 'Mettre en minuscule
nomSrv = replace(nomSrv, "\\", "", 1, 1, vbTextCompare) 'Supprime les \\ si l'utilisateur l'a mis
Do While bool = false
If nomSrv = "quit" Then
WScript.Quit()
ElseIf nomSrv <> "" Then
bool = true
Else
nomSrv = inputBox("ADRESSE SERVEUR OBLIGATOIRE !" + vbCr + vbCr + "Merci d'indiquer le nom du serveur distant sur le quel doit être fait l'installation : ", "Nom Serveur Distant")
nomSrv = Lcase(nomSrv)
nomSrv = replace(nomSrv, "\\", "", 1, 1, vbTextCompare)
End If
Loop
''''' Utilisateurs '''''
bool = false
usr = inputBox("Nom de l'utilisateur de l'ordinateur distant : ", "Utilisateur")
temp = LCase(usr)
Do While bool = false
If temp = "quit" Then
WScript.Quit()
ElseIf usr <> "" Then
bool = true
Else
usr = inputBox("UTILISATEUR OBLIGATOIRE !" + vbCr + vbCr + "Le nom de l'utilisateur de l'ordinateur distant doit être saisie : ", "Utilisateur")
End If
Loop
''''' Mots de passe '''''
pwd = inputBox("Mot de passe de l'utilisateur : ", "Mot de passe")
temp = LCase(pwd)
If temp = "quit" Then
WScript.Quit()
End If
''''' SI COMMUTATEURS '''''
else
''''' Paramètres '''''
If args.count >= i+1 Then
param = args(i) 'On prend l'argument numéro i
param = Lcase(param)
''''' On vérifie que le commutateur existe '''''
If param = "version" or param = "about" or param = "install" or param = "uninstall" or param = "start" or param = "stop" or param = "encrypt" Then
i = i+1
Else
param = MsgBox("PARAMETRE INCORECTE !" + vbCr + vbCr + "La liste des paramètres disponibles sont les suivants :" + vbCr + " install : installation du logiciel" + vbCr + " uninstall : désinstallation du logiciel" + vbCr + " start : démarrage du service" + vbCr + " stop : arrêt du service" + vbCr + " encrypt : ???" + vbCr + " version : affichage de la version" + vbCr + " about : informations diverses sur le logiciel")
WScript.Quit()
End If
End If
''''' Serveurs '''''
If args.count >= i+1 Then
nomSrv = args(i)
nomSrv = Lcase(nomSrv)
nomSrv = replace(nomSrv, "\\", "", 1, 1, vbTextCompare)
If nomSrv <> "" Then
i = i+1
Else
nomSrv = MsgBox("ADRESSE SERVEUR OBLIGATOIRE !" + vbCr + vbCr + "Merci d'indiquer le nom du serveur distant ou son adresse IP sur le quel doit être fait l'installation.")
WScript.Quit()
End If
End If
''''' Utilisateurs '''''
If args.count >= i+1 Then 'Si on a un commutateur suplémentaire
If inStr(args(i), "-u") = 1 Then 'Si c'est -u
i = i+1
Else 'Si non, c'est obligatoire
MsgBox("NOM D'UTILISATEUR OBLIGATOIRE !" + vbCr + vbCr + "Merci d'indiquer un nom d'utilisateur ayant les droits adminitrateurs sur l'ordinateur distant.")
WScript.Quit()
End If
End If
If args.count >= i+1 Then 'Si on a un commutateur après le -u
usr = args(i) 'On prend l'argument
If usr <> "-p" Then 'Si c'est différent de -p
i = i+1
Else 'Si c'est égale à -p on veux l'utilisateur
MsgBox("NOM D'UTILISATEUR OBLIGATOIRE !" + vbCr + vbCr + "Merci d'indiquer un nom d'utilisateur ayant les droits adminitrateurs sur l'ordinateur distant.")
WScript.Quit()
End If
Else 'Si pas de commutateur après le -u
MsgBox("NOM D'UTILISATEUR OBLIGATOIRE !" + vbCr + vbCr + "Merci d'indiquer un nom d'utilisateur ayant les droits adminitrateurs sur l'ordinateur distant.")
WScript.Quit()
End If
''''' Mots de passe '''''
If args.count >= i+1 Then 'Si on a un commutateur suplémentaire
If inStr(args(i), "-p") = 1 Then 'Et si il est égale à -p
i = i+1
If args.count >= i+1 Then 'On attend le mot de passe
pwd = args(i)
Else
MsgBox("Le paramètre -p doit être suivit d'un mot de passe.")
WScript.Quit()
End If
ElseIf args(i) <> "" Then
MsgBox("Le paramètre -p est attendu !")
WScript.Quit()
End If
End If
End If
End Sub
'***** GESTION COMMUTATEURS *****
'Gestion du commutateur et
'lancement des lignes de commandes
Sub gesCommut(chemin, srvDest, u, p, progDest, m)
Dim prog, temp
''''' Analyse des variables user et pwd pour adapter aux commutateurs de l'agent NSCLient++ '''''
If NOT u = empty then
u = " -u " & usr
else
u = ""
End If
If NOT u = empty then
p = " -p " & pwd
else
p = ""
End If
''''' Analyse des paramètres et lancement des applications '''''
If param = "quit" Then
MsgBox "Bye"
WScript.Quit()
else
set prog = createobject("wscript.shell")
temp = "cmd /k " & chemin & nomProgCo & " \\" & srvDest & u & p & " -cv " & chemin & progDest & " -" & m '
prog.run temp
WScript.Sleep 5000 'Attente de 5 secondes pour l'exécution de la commande
If param = "install" Then
m = " -start"
temp = "cmd /k " & chemin & nomProgCo & " \\" & srvDest & u & p & " -cv " & chemin & nomProgDest & m '
prog.run temp
End If
If param = "uninstall" Then
temp = "cmd /k " & chemin & nomProgCo & " \\" & srvDest & u & p & " cmd /c del /f /q nsclient++.exe" '
prog.run temp
End If
End If
End Sub
'***** APPEL DES FONCTIONS *****
call parametres()
call gesCommut (path, nomSrv, usr, pwd, nomProgDest, param) |
Partager