Automatiser l'execution d'un script VBS sur plusieurs serveurs
bozoteam01
Messages postés14Date d'inscriptionjeudi 2 juillet 2009StatutMembreDernière intervention18 septembre 2009
-
13 juil. 2009 à 11:08
briovere
Messages postés8Date d'inscriptiondimanche 17 octobre 2004StatutMembreDernière intervention15 juillet 2009
-
15 juil. 2009 à 14:48
bonjour à tous ,
voila mon script donc qui me demande le nom de l'utilisateur, le mot de passe ainsi que le nom du serveur et qui renseigne le dns d'un serevur.
je souhaiterai ne plus renseigner le nom du serveur et lui donner une liste de serveur présent dans un fichier txt sous la forme :
nomserveur1
nomserveur2
nomserveur3
etc...
je souhaiterai que le script s'éxécute automatiquement sur chaque serveur
merci par avance
voila ce que moi j'ai fait.
' VB Script Document
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'' Code VBS - Automatisation de la configuration réseau ''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
On Error Resume Next
Const WbemAuthenticationLevelPktPrivacy = 6
Set objNetwork = CreateObject("Wscript.Network")
strLocalComputer = objNetwork.ComputerName
strCredentials = InputBox _
("Rentrer le nom de l'utilisateur, suivis d'un espace, puis du Mot de passe:", _
"Entrer le nom de l'utilisateur",objNetwork.UserName )
If strCredentials = "" Then
Wscript.Quit
End If
arrCredentials = Split(strCredentials," ")
strUser = arrCredentials(0)
strPassword = arrCredentials(1)
strNamespace = "root\cimv2"
strComputer = InputBox _
("Merci de renseigner le Nom du serveur:", _
"Entrer le nom du serveur", objNetwork.ComputerName)
If strComputer = "" Then
Wscript.Quit
End If
Dim NomPC, objWMIService
Dim objItem, colItems, strComputer
Dim errEnable, strDNS
strDNS = array("*.*.*.*","*.*.*.*","*.*.*.*")Tableau de chaîne, la premiére case du tableau contien l'adresse dns principale etc
Set objWMIService = GetObject("winmgmts:\" & strComputer & "\root\cimv2") 'utilisation d'un appel GetObject pour se connecter au WMI root\cimv2.
''Recuperation du nom du poste
Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystem",,48)'Execution d'une requete dans le systéme en vue de récuperer le nom
'utilisation de la méthode ExecQuery pour mettre en route la classe Win32_Service.
For Each objItem in colItems 'Je parcour chaque objet rétourner par la requête jusqu'a ce que je retrouve caption pour affecter le resultat a NomPC
NomPC = objItem.Caption
Next
Set objWMIService = Nothing 'Libere le contenu de objWMIService pour le remettre a 0
Set colItems = Nothing 'Idem
Set objWMIService = getObject("winmgmts:\" & NomPC & "\root\cimv2")Set colItems objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled true",,48)
For Each objItem in colItems
''configure les adresses DNS
errEnable = objItem.SetDNSServerSearchOrder(strDNS)
Next
A voir également:
Automatiser l'execution d'un script VBS sur plusieurs serveurs
bozoteam01
Messages postés14Date d'inscriptionjeudi 2 juillet 2009StatutMembreDernière intervention18 septembre 2009 15 juil. 2009 à 08:38
J'arrive à quelque chose comme cela : il me recupere bien les infos de mon fichiers mais j'ai une erreur sur la ligne "Set objWMIService......"
Dim objFso, objTextStream
Dim strPathFile, i
Dim NomPC, objWMIService
Dim objItem, colItems, strComputer
Dim errEnable, strDNS
strPathFile = "C:\Data\VBS\test1.txt"
ReDim strComputer(0)
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objTextStream = objFso.OpenTextFile(strPathFile, 1)
Do While Not objTextStream.AtEndOfStream
ReDim Preserve strComputer(UBound(strComputer) + 1)
strComputer(UBound(strComputer)) = objTextStream.ReadLine
Loop
objTextStream.Close
For i=1 To UBound(strComputer)
MsgBox strComputer(i),,"Enumération ligne"
strDNS = array("*.*.*.*","*.*.*.*","*.*.*.*")'Tableau de chaîne, la premiére case du tableau contien l'adresse dns principale etc
Set objWMIService = GetObject("winmgmts:\" & strComputer & "\root\cimv2") 'utilisation d'un appel GetObject pour se connecter au WMI root\cimv2.
''Recuperation du nom du poste
Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystem",,48)'Execution d'une requete dans le systéme en vue de récuperer le nom
'utilisation de la méthode ExecQuery pour mettre en route la classe Win32_Service.
For Each objItem in colItems 'Je parcour chaque objet rétourner par la requête jusqu'a ce que je retrouve caption pour affecter le resultat a NomPC
NomPC = objItem.Caption
Next
Set objWMIService = Nothing 'Libere le contenu de objWMIService pour le remettre a 0
Set colItems = Nothing 'Idem
Set objWMIService = getObject("winmgmts:\" & NomPC & "\root\cimv2")Set colItems objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled true",,48)
For Each objItem in colItems
''configure les adresses DNS
errEnable = objItem.SetDNSServerSearchOrder(strDNS)
Next
Next
bozoteam01
Messages postés14Date d'inscriptionjeudi 2 juillet 2009StatutMembreDernière intervention18 septembre 2009 15 juil. 2009 à 11:51
Est-il possible pour strComputer de lui définir une liste ? ou de lui attribuer un tableau contenant la liste de mes serveurs. on pourrais faire une boucle la dessus avez vous une idée ?
briovere
Messages postés8Date d'inscriptiondimanche 17 octobre 2004StatutMembreDernière intervention15 juillet 2009 15 juil. 2009 à 14:48
Bonjour,
Sur ta ligne en rouge la variable StrComputer n'est pas indexée.
Il te faut une variable du type StrComputer(i)
Comme tu l'as déja fait 4 lignes plus haut.
Alexandre