TUTOS.EU

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 Copier le code

Pages Web

Site WebDescription
LDAP Query BasicsLes bases pour créer des requêtes LDAP
Lister les serveurs sauf certainsUne autre méthode pour extraire une liste de machines

Article(s) suivant(s)

Article(s) précédent(s)

2