begin process at 2012 02 15 12:00:06
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Langages dérivés

 > 

VBScript

 > 

Code vbs pour l'automatisation de la configuration réseau (en particulier du DNS)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Code vbs pour l'automatisation de la configuration réseau (en particulier du DNS)

jeudi 2 juillet 2009 à 09:28:46 | Code vbs pour l'automatisation de la configuration réseau (en particulier du DNS)

bozoteam01

Bonjour à tous,

Je vous sollicite car je suis entrain de développer un vbs pour automatiser la config du dns (par la suite de d'autre info présent dans la carte réseau)

J'ai parcouru le forum et trouver des bouts de code pouvant m'interesser.

Mon problème je souhaite à partir d'un fichier .txt (comprennant le nom de mes serveurs) executer le script sur chaque serveur présent dans ce fichier.

Je voudrais également que mon code me renvoi une log avec le nom des serveurs qui n'on pas pu être renseigner ou qui n'ont pas pu etre contacter.

Je précise que je débute en VBS il est fort probable que des incohérences soit présent dans mon code.

Voila le bout de code que j'ai fait pour le moment.

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'' Code VBS - Automatisation de la configuration réseau ''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Option Explicit 'Je force la déclaration de variables
On Error Resume Next

Dim NomPC, objWMIService
Dim objItem, colItems, strComputer
Dim errEnable, strDNS
Dim strInFileTxt, strOutFileTxt, arrLineFicTxt, i
strDNS = array("*.*.*.*","*.*.*.*","*.*.*.*")'Tableau de chaîne, la premiére case du tableau contien l'adresse dns principale etc
strInFileTxt = "C:\Data\VBS\test.txt"
strOutFileTxt = "C:\Data\VBS\result.txt"

'Création d'un tableau contenant les lignes du fichier texte
arrLineFicTxt = FnReadFileTxt(strInFileTxt)

'Parcours du tableau
For i = 0 To UBound(arrLineFicTxt)
    If arrLineFicTxt(i) <> vbNullString Then
       Call IsConnectable(Trim(arrLineFicTxt(i)), objFile)
    End If
Next

Function FnReadFileTxt(ArgFile)
    Dim objFso, objFile, arrLineFicTxt
    Set objFso = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFso.OpenTextFile(ArgFile, 1)
    'arrLineFicTxt est un tableau contenant toutes les lignes du .txt
    arrLineFicTxt = Split(objFile.ReadAll,vbCrLf)
    objFile.Close
   
    FnReadFileTxt = arrLineFicTxt
   
    Set objFile = Nothing
    Set objFso = Nothing
End Function

strComputer = "." 'Chaîne, permettant de dire que l'on utilisera l'ordinateur courant utiliser pour récupérer son nom ce n'est pas obligatoir mais pour plus de clarté...

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

jeudi 2 juillet 2009 à 09:40:38 | Re : Code vbs pour l'automatisation de la configuration réseau (en particulier du DNS)

jack

Administrateur CodeS-SourceS
Salut
Et quelle est ta question, ton problème ?
jeudi 2 juillet 2009 à 09:49:43 | Re : Code vbs pour l'automatisation de la configuration réseau (en particulier du DNS)

bozoteam01

J'arrive pas à executer mon script à distance.

J'ai entendu parlé de wshController

La mon script se lance en local.
jeudi 2 juillet 2009 à 10:22:33 | Re : Code vbs pour l'automatisation de la configuration réseau (en particulier du DNS)

JMO

Membre Club


 Bonjour,

wbem + wmi

http://www.vbfrance.com/codes/INVENTAIRE-FICHIERS-SUR-SERVER-DISTANT-LOCAL_41522.aspx


jean-marc
jeudi 2 juillet 2009 à 10:29:38 | Re : Code vbs pour l'automatisation de la configuration réseau (en particulier du DNS)

bozoteam01

Merci j'avais vu cette petite chose

Je suis admin sur toutes les machines comme il y a une certaine quantité du serveur je ne voudrais pas rentrer manuellement le user et le mot de passe.

J'ai trouver ce code : pourrait -il m'aider

Je me suis mit au vbs il y a 2 jours pardonnez moi pour certaines question que je pourrais poser qui vous semble bête.

Set objArgs=WScript.Arguments
Set fso=CreateObject("Scripting.FileSystemObject")

filename_liste=objArgs(0)

set fic_liste = fso.OpenTextFile(filename_liste, 1, true)

while not fic_liste.AtEndOfStream
On Error Resume Next
   strComputer=fic_liste.readline

   str_out=strComputer & "; "

 Set objLocator = CreateObject("WbemScripting.SWbemLocator")
 Set ObjService = objLocator.ConnectServer(strComputer, "root\CIMV2", "domain\username", "password")

vendredi 3 juillet 2009 à 11:39:11 | Re : Code vbs pour l'automatisation de la configuration réseau (en particulier du DNS)

bozoteam01

Jean marc grâce à ton ti tuto j'ai réussi à utiliser la méthode avec inputbox.
Je voudrais maintenant automatiser le renseignement DNS grace a  un fichier txt (qui contient tous les nom de serveurs)pour que plusieurs serveur soit configurer automatiquement sans devoir lancer le programme a chaque fois.

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'' Code VBS - Automatisation de la configuration réseau ''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Option Explicit 'Je force la déclaration de variables
On Error Resume Next

Dim NomPC, objWMIService
Dim objItem, colItems, strComputer
Dim errEnable, strDNS
Dim fso, objArgs, fic_liste, objLocator, ObjService
Dim str_out

Set objArgs=WScript.Arguments
Set fso=CreateObject("Scripting.FileSystemObject")

filename_liste=objArgs(0)

set fic_liste = fso.OpenTextFile(filename_liste, 1, true)

while not fic_liste.AtEndOfStream
On Error Resume Next
   strComputer=fic_liste.readline

   str_out=strComputer & "; "

 Set objLocator = CreateObject("WbemScripting.SWbemLocator")
 Set ObjService = objLocator.ConnectServer(strComputer, "root\CIMV2", "pcnp\jlebas", "Password")

    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
Wend

lundi 13 juillet 2009 à 10:11:43 | Re : Code vbs pour l'automatisation de la configuration réseau (en particulier du DNS)

bozoteam01

bonjour à tous ,

voila mon script donc qui me demande le nom de l'utilisateur, le mot de passe ainsi que le nom du serveur

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

mercredi 15 juillet 2009 à 11:54:01 | Re : Code vbs pour l'automatisation de la configuration réseau (en particulier du DNS)

bozoteam01

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 ?



Cette discussion est classée dans : vbs, set, code, colitems, arrlinefictxt


Répondre à ce message

Sujets en rapport avec ce message

Suppression d'un VBS après exécution [ par mat76 ] Bonjour , Je me permet de vous solliciter après moult recherches infructueuses. Voici ma problématique: Sur des postes Vista, la remontée de l'impr Remonter d'info dans un fichier csv [ par cheqt ] Bonjour à tous, Je suis débutant et je ne connais pas grand chose en programmation. J'aurais aimer savoir si il vous serais possible de me donner u Passage du VBA au VBS [ par RootsNatty ] J'ai crée un ti code afin d'importer des contacts Outlook via un fichier texte ...ça fonctionne bien en VB,  mais je voudrais faire un script avec ça, Code de fin application et wmi [ par scrableur ] Bonjour je souhaite verifier ou non la presence d'un CD dans le lecteur cdrom et renvoyer 0 ou 1 en fonction sur une machine XP cela fonctionne b Rien ne s'affiche page aspx [ par flopad ] Salut,j'ai un code vb script dont je veux afficher le résultat dans une page web.J'ai donc crée une page aspx avec le code suivant contenu entre les b code vbs [ par beuzeu ] slt jé trouvé se site par hasard et je ne sé pas coment on fait pour envoyer des vbsesque l'un de vous pourez m'expliquer en claire? DEFI AUX PROGRAMEUR : Set..=nothing automatique [ par ErwanPoudes ] Bonjour,Tout le monde connait le pb des variables objets (set variable=...)que l'on oublie de mettre à nothing (set variable = nothing) à la fin du c [xml - DOM] identer le code XML generé [ par aieeeuuuuu ] Bonjour a tous,J'utilise (sous VB6) MSXML pour générer... un fichier XMLjusque la tout va bien, sauf que lorque j'ouvre mon fichier XML avec un editeu


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,571 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales