Lister les serveurs d'un domaine AD
Récupérer la liste des ordinateurs de type server dans un domaine Active Directory en VbScript
Option Explicit
Dim MyDistinguishedName
Dim objRootDSE, objItem, objConnection, objCommand, objRecordSet
Dim strContainer, strname
Dim intCounter
Dim objFSO
Dim objTextFile, CheminFichier, CheminScriptActuel, ScriptFileName, Position
'Déclaration des constantes
Const ForReading = 1
Const ForWritting = 2
Const ForAppending = 8
strContainer = "" 'Si vous souhaitez vous connecter à une OU en particulié, indiquez la ici
Const ADS_UF_ACCOUNTDISABLE = 2
Const ADS_SCOPE_SUBTREE = 2
CheminScriptActuel = Left(wscript.scriptfullname,Len(wscript.scriptfullname)-Len(wscript.scriptname)-1)
ScriptFileName = wscript.scriptname
Position = InstrRev(ScriptFileName,".")
if (Position > 0) Then ScriptFileName = Left(ScriptFileName, Position - 1)
CheminFichier = CheminScriptActuel & "\" & ScriptFileName & "_Resultat.txt" 'Déclaration du chemin et du nom du fichier
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile(CheminFichier, ForWritting, True)
On Error Resume Next
Set objRootDSE = GetObject("LDAP://rootDSE")
If strContainer = "" Then
Set objItem = GetObject("LDAP://" & objRootDSE.Get("defaultNamingContext"))
Else
Set objItem = GetObject("LDAP://" & strContainer & "," & _
objRootDSE.Get("defaultNamingContext"))
End If
On Error Goto 0
'strname = objItem.Get("name")
'WScript.Echo "name: " & strname
MyDistinguishedName = objItem.Get("distinguishedName") 'Récupération du distinguishedName du domaine par défaut. Exemple DC=Cotonso,DC=Com
'WScript.Echo "distinguishedName: " & MyDistinguishedName
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection
'objCommand.CommandText = "<LDAP://" & MyDistinguishedName & ">;(objectCategory=Computer);distinguishedName;subtree"
objCommand.CommandText = "<LDAP://" & MyDistinguishedName & ">;(&(objectCategory=Computer)(operatingSystem=*server*));name,distinguishedName;subtree"
objCommand.Properties("Page Size") = 10000
objCommand.Properties("Timeout") = 30
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.Properties("Cache Results") = False
Set objRecordSet = objCommand.Execute
intCounter = 0
Do Until objRecordset.EOF
'WScript.echo objRecordset.Fields("distinguishedName")
'WScript.echo objRecordset.Fields("Name")
objTextFile.WriteLine(objRecordset.Fields("Name"))
objRecordset.MoveNext
Loop
objConnection.Close
objTextFile.Close 'Fermeture du fichier
Set objTextFile = Nothing
Set objFSO = Nothing
Lien vers le fichier : cliquez ici
Publicité
Pages Web
| Site Web | Description |
|---|---|
| LDAP Query Basics | Les bases pour créer des requêtes LDAP |
| Lister les serveurs sauf certains | Une autre méthode pour extraire une liste de machines |
Article(s) suivant(s)
Article(s) précédent(s)
Article(s) en relation(s)