[vbscript] Réplication contrôleurs de domaine

Résolu
Bonjour,

J'ai 4 contrôleurs de domaine (Active Directory) et je souhaite pouvoir vérifier que la réplication des ordis que je viens de déclarer est faite (c'est à dire que le poste est bien présent sur chaque contrôleur de domaine).
Il me semble que c'est possible d'interroger un contrôleur de domaine en vbscript, mais comme je suis très loin d'être un pro en vbscript et que je ne connais rien à la gestion d'AD...

Merci d'avance pour votre aide.
Configuration: Windows 7
Firefox 3.6

3 réponses

  1. Salut

    Dans Hey, Scripting Guy!, pas mal de script orientés AD ont été publiés.
    Il existe aussi le célébrissime scriptomatic dispo dans cette page ainsi que d'autres outils plus ou moins sympas.

    Je te laisse fouiller
    1. Salut,

      Je te remercie pour ces liens.
      Pas mal de trucs intéressants, le plus dur va être de faire le tri ! Mais ce sera l'occasion d'apprendre.
      Je garde cette saine lecture pour demain et si je réussi (c'est pas gagné, mais j'essaierai), je mettrai le résultat ici.

      Merci
      1. Comme promis, le résultat de mes recherches. A mettre dans un fichier .hta.
        Les lignes précédées de *** sont à adapter selon les cas :
        <SCRIPT Language="VBScript">
            Const ADS_SCOPE_SUBTREE = 2
            Const ADS_SCOPE_ONELEVEL = 1
            Set objConnection = CreateObject("ADODB.Connection")
            Set objCommand =   CreateObject("ADODB.Command")
            objConnection.Provider = "ADsDSOObject"
            objConnection.Open "Active Directory Provider"
            Set objCommand.ActiveConnection = objConnection
            objCommand.Properties("Page Size") = 1000
        	objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE 
        
        	Function SearchForComputers (serveur)
        		strNames = strNames & "<span style='color:blue;'>" & serveur & "</span> : "
        		objCommand.Properties("Searchscope") = ADS_SCOPE_ONELEVEL 
        		objCommand.CommandText = _
        ***			"SELECT Name FROM 'LDAP://" & serveur & "/OU=Postes,DC=DOMAINEAD,DC=FR' WHERE objectCategory='computer' and Name = '" & MyComputer.value & "'"
        		Set objRecordSet = objCommand.Execute
        		If objRecordSet.RecordCount > 0 Then
        			objRecordSet.MoveFirst
        			Do Until objRecordSet.EOF
        				strNames = strNames & "présent<BR>"
        				objRecordSet.MoveNext
        			Loop
        		Else
        			strNames = strNames & "<span style='color:red;'>Non trouvé</span><BR>"
        		End If
        		SearchForComputers = strNames
            End Function
        	
        	Sub SearchComputer
        ***		Reponse = SearchForComputers("DC00001")
        ***		Reponse = Reponse & SearchForComputers("DC00002")
        ***		Reponse = Reponse & SearchForComputers("DC00003")
        ***		Reponse = Reponse & SearchForComputers("DC00004")
        		UserList.InnerHTML = Reponse
        	End Sub
        </SCRIPT>
        
        <body>
            <input type="text"  name="MonPoste" value="" onClick="SearchComputer"><p>
        	<input type="button" value="Chercher le poste" onClick="SearchComputer"><p>
            <div id="UserList"></div>
        </body>
        


        Il y a certainement des choses en trop et ce n'est peut-être pas très propre, mais c'est OK pour moi.