Vous êtes ici : Accueil > Administration réseaux > Récupération de la liste des ordinateurs dans un domaine Active Directory
Récupération de la liste des ordinateurs dans un domaine Active Directory
J'ai eu besoin, il y a quelques temps de récupérer la liste des ordinateurs d'un domaine Active Directory. Pour éviter de les lister un par un, j'ai écrit un petit script VBS qui m'a permit de le faire en quelques secondes. Ce script permet donc de lister dans un fichiers texte tous les pcs du domaine Active Directory en excluant une OU (ici Ordinateurs supprimés) ce qui est pratique pour n'avoir que les pcs actifs du domaine. Je le met donc à disposition. Il n'est surement pas parfait donc si vous avez des remarques ou suggestions, n'hésitez pas à me le dire.
Pré-requis :
Ce script nécessite le fichier ldifde.exe (normalement présent sur les serveurs dans C:\Windows\System32)
'Listing PC AD by ced-info' 'A modifier avant utilisation : ' - le chemin du ldif ' - le nom du srv ' - le chemin complet de l'OU à scanner ' - le filtre ' - le chemin du fichier txt qui récupère la liste des pcs 'Déclarations des variables dim wshell, ldif, srv, OU, filtre, Computers ldif = "computers.ldif" Computers = "computers.txt" srv = "SRV" OU = "OU=Ordinateurs,DC=domain,DC=lan" filtre = "CN=Computers,CN=Schema,CN=Configuration,DC=domain,DC=lan" 'On récupère le ldif de tout les pcs set wshell=CreateObject("Wscript.Shell") wshell.Run"ldifde -f " & ldif & " -s " & srv & " -d " & OU & " -p subtree -r (objectCategory=" & filtre & ")",0 'On attend 5s que le fichier soit généré en affichant un message d'attente Set message = WScript.CreateObject("WScript.Shell") message.Popup "Récupération de la liste des ordinateurs du domaine en cours ...",5,"..:: LISTING PC AD BY CED-INFO ::.." 'Lecture du fichier généré 'Déclarations des variables Const Writing = 2 Dim file, f, SearchName, name, ComputersListe, OUNOK, ComputersNOK, DebutOU, FinOU, BaliseDebut, BaliseFin OUNOK = "OU=Ordinateurs supprimés" BaliseDebut = "CN=" BaliseFin = ",OU=" Set file = CreateObject("Scripting.FileSystemObject") Set f = file.OpenTextFile(ldif, 1) Set ComputersListe = file.OpenTextFile(Computers, Writing,true) 'On fait une boucle pour récuperer le nom des pcs Do While Not f.AtEndOfStream SearchName = f.ReadLine If left(SearchName, 2) = "dn" Then 'On exclut les pcs de l'OU qu'on ne veut pas 'InStr renvoi 0 si pas d'occurence trouvé sinon il renvoie sa position ComputersNOK = InStr(SearchName, OUNOK) If ComputersNOK = 0 Then 'On récupère le nom des pcs dans le dn DebutOU = InStr(1, SearchName, BaliseDebut) DebutOU = DebutOu + Len(BaliseDebut) FinOu = DebutOu FinOu = InStr(FinOu, SearchName, BaliseFin) SearchName = Mid(SearchName, DebutOu, FinOu - DebutOu) 'On écrit le nom des pcs dans le fichiers txt ComputersListe.write(SearchName & vbCrlf) End if End If Loop f.close 'On nettoie file.DeleteFile(ldif) 'Fin de la création de la liste message.Popup "La récupération de la liste des ordinateurs du domaine est terminée." & vbCrLf & "La liste des ordinateurs est consultable dans le fichier : " & Computers,20,"..:: LISTING PC AD BY CED-INFO ::.."
Articles similaires
Espace utilisateur
-
Connexion
Pingback: child porn()