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
| Option Explicit
Dim ObjRootDSE
Dim adoConnexion
Dim AdoRecordset
Dim strDomainPath,Requete,i,Nom
Set ObjRootDSE = GetObject("LDAP://RootDSE")
'Obtenir le nom LDAP sous forme dc=mondomaine,dc=com dans la variable StrDomainPath
StrDomainPath = ObjRootDSE.Get("DefaultNamingContext")
wscript.echo strDomainPath
'Creer un objet de connexion ADO qu'on nommera ADOconnexion
Set adoConnexion = WScript.CreateObject("ADODB.Connection")
'Comme le fournisseur par defaut de ADO est MSDASQL il faut lui preciser un autre fournisseur ADsDSOObject qui offrira une syntaxe ADSI
adoConnexion.Provider = "ADsDSOObject"
'Ensuite avec la methode Open on va ouvrir la connexion sur l'AD. On peut specifier 3 parametres. 1er parametre connexion source "Active Directory Provider", les 2 autres sont l'utilisateur sous forme cn=...,dc=...etc et le mot de passe.
'On aurait pu aussi ecrire adoConnexion.Open "Active Directory Provider"
adoConnexion.Open
'Verification de la connexion
If adoConnexion.State = 1 Then
WScript.Echo "Connexion avec AD etablie"
Else
WScript.Echo "Pas de connexion à l'AD"
WScript.Quit
End If
'on inscrit dans une variable, ici requete, la commande à executer. 4 parametres separer par des points virgules(adresse LDAP OU=...,DC=mondomaine,DC=com;l'objet cherché;les champs dans cet objet;et l'etendue de la recherche (Base ou OneLevel ou SubTree(pour tous les niveaux)
Requete="<LDAP://" & strDomainPath & ">;(Objectclass=computer);Name;Subtree"
'Alimentation du Recordset
Set adoRecordset = adoConnexion.Execute (Requete)
'Lecture du Recordset
While Not adoRecordset.EOF
Nom=adoRecordset.Fields.Item("Name").Value
If lcase(Mid(Nom, 1,2))="al" or lcase(Mid(Nom, 1,2))="ca" or lcase(Mid(Nom, 1,2))="cp" or lcase(Mid(Nom, 1,2))="fo" _
or lcase(Mid(Nom, 1,2))="gu" or lcase(Mid(Nom, 1,2))="in" or lcase(Mid(Nom, 1,2))="jf" or lcase(Mid(Nom, 1,2))="jp" _
or lcase(Mid(Nom, 1,2))="mj" or lcase(Mid(Nom, 1,2))="mp" or lcase(Mid(Nom, 1,2))="mt" or lcase(Mid(Nom, 1,2))="ne" _
or lcase(Mid(Nom, 1,1))="p" or lcase(Mid(Nom, 1,2))="re" or lcase(Mid(Nom, 1,2))="sa" or lcase(Mid(Nom, 1,2))="st" _
or lcase(Mid(Nom, 1,2))="tg" or lcase(Mid(Nom, 1,2))="ti" or lcase(Mid(Nom, 1,2))="tl" or lcase(Mid(Nom, 1,2))="tp" then
i=i+1
End If
'Passer à l'enregistrement suivant
adoRecordset.MoveNext
Wend
wscript.echo i
'Fermer les connexions
adoRecordset.Close
adoConnexion.Close |
Partager