Automatiser l'execution d'un script VBS sur plusieurs serveurs

Signaler
Messages postés
14
Date d'inscription
jeudi 2 juillet 2009
Statut
Membre
Dernière intervention
18 septembre 2009
-
Messages postés
8
Date d'inscription
dimanche 17 octobre 2004
Statut
Membre
Dernière intervention
15 juillet 2009
-
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

4 réponses

Messages postés
14
Date d'inscription
jeudi 2 juillet 2009
Statut
Membre
Dernière intervention
18 septembre 2009

Personne n'a une petite idée pour me dépanner ?
Messages postés
14
Date d'inscription
jeudi 2 juillet 2009
Statut
Membre
Dernière intervention
18 septembre 2009

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
Messages postés
14
Date d'inscription
jeudi 2 juillet 2009
Statut
Membre
Dernière intervention
18 septembre 2009

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 ?
Messages postés
8
Date d'inscription
dimanche 17 octobre 2004
Statut
Membre
Dernière intervention
15 juillet 2009

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