Accueil > > > RECHERCHE DES INFORMATIONS UTILISATEURS / GROUPES / COMPUTERS DANS ACTIVE DIRECTORY
RECHERCHE DES INFORMATIONS UTILISATEURS / GROUPES / COMPUTERS DANS ACTIVE DIRECTORY
Information sur la source
Description
Bonjour,
Ne sachant pas comment restaurer l'appartenance à un groupe AD, j'ai créé ce petit script qui permet d'enregistrer toutes les informations de type "Membre de" et "Membre" des utilisateurs, ordinateurs et groupes d'un domaine AD.
La variable SavePathFile s'incrémente tous les jours ( différence de jours entre aujourd'hui et le 31/12/2007 )
Source
'---------------------------------------------------------------------------------------------------------
' Search Users / Groups / Computers Information in the current Windows domain
'---------------------------------------------------------------------------------------------------------
set netw=createobject("wscript.network")
Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject")
set oshell = createobject("wscript.shell")
'---------------------------------------------------------------------------------------------------------
' Set the SaveFile
'---------------------------------------------------------------------------------------------------------
SavePathFile = "C:\Save_AD_" & datediff("d",#31/12/2007#,date) & ".csv"
Set OutPutFileTxt = FileSystem.CreateTextFile( SavePathFile, True)
OutPutFileTxt.WriteLine "ItemTyp;ItemName;Member Cat.;DistinguishedName"
'---------------------------------------------------------------------------------------------------------
'Find the current LDAP Name
'---------------------------------------------------------------------------------------------------------
Set oRootDSE = GetObject("LDAP://RootDSE")
Set oShell = WScript.CreateObject("WScript.Shell")
sUserName = oShell.Environment("PROCESS").Item("username")
Const ADS_PROPERTY_CLEAR = 1
Const ADS_NAME_INITTYPE_GC = 3
Const ADS_NAME_TYPE_NT4 = 3
Const ADS_NAME_TYPE_1779 = 1
strDNSDomain = oRootDSE.Get("defaultNamingContext")
Set objTrans = CreateObject("NameTranslate")
objTrans.Init ADS_NAME_INITTYPE_GC, ""
objTrans.Set ADS_NAME_TYPE_1779, strDNSDomain
strNetBIOSDomain = objTrans.Get(ADS_NAME_TYPE_NT4)
strNetBIOSDomain = Left(strNetBIOSDomain, Len(strNetBIOSDomain) - 1)
strUserNTName = Trim(LogonAccount)
objTrans.Set ADS_NAME_TYPE_NT4, strNetBIOSDomain & "\" & strUserNTName
If Err.Number <> 0 Then
On Error GoTo 0
Wscript.Echo "ERROR: Login not found in Active Directory: " & strUserNTName
Else
On Error GoTo 0
strUserDN = objTrans.Get(ADS_NAME_TYPE_1779)
LDAP_Name = "LDAP://" & strUserDN
End If
'---------------------------------------------------------------------------------------------------------
' Main Script
'---------------------------------------------------------------------------------------------------------
Set oContainer=GetObject(LDAP_Name)
EnumerateItems oContainer
OpenExcelFile
OutPutFileTxt.close
'---------------------------------------------------------------------------------------------------------
' EXIT
'---------------------------------------------------------------------------------------------------------
WScript.Quit(0)
'---------------------------------------------------------------------------------------------------------
'Sub "EnumerateItems"
'---------------------------------------------------------------------------------------------------------
Sub EnumerateItems(oCont)
Dim oItem
On Error Resume Next
For Each oItem In oCont
Select Case LCase(oItem.Class)
Case "user"
strmemberOf = oItem.GetEx("memberOf")
OutPutFileTxt.WriteLine "User;" & oItem.cn
For Each Item in strmemberOf
OutPutFileTxt.WriteLine ";" & oItem.cn & ";IsMemberOf;" & Item
next
strmemberof = UNSET
Case "group"
OutPutFileTxt.WriteLine "Group;" & oItem.cn
strhasmember = oItem.GetEx("member")
For Each Item in strhasmember
OutPutFileTxt.WriteLine ";" & oItem.cn & ";HasMember;" & Item
next
strhasmember = UNSET
strmemberOf = oItem.GetEx("memberOf")
For Each Item in strmemberOf
OutPutFileTxt.WriteLine ";" & oItem.cn & ";IsMemberOf;" & Item
next
strmemberof = UNSET
Case "computer"
strmemberOf = oItem.GetEx("memberOf")
OutPutFileTxt.WriteLine "Computer;" & oItem.cn
For Each Item in strmemberOf
OutPutFileTxt.WriteLine ";" & oItem.cn & ";IsMemberOf;" & Item
next
strmemberof = UNSET
Case "organizationalunit", "container"
EnumerateItems oItem
End Select
Next
End Sub
'---------------------------------------------------------------------------------------------------------
'Open .CSV File in Excel with Filter on the First Line
'---------------------------------------------------------------------------------------------------------
Sub OpenExcelFile
Set objExcel = CreateObject("Excel.Application")
objExcel.visible = true
objExcel.Workbooks.Open(SavePathFile)
objExcel.Range("A1").Select
objExcel.Selection.AutoFilter
objExcel.Columns("A:D").Select
objExcel.Columns("A:D").EntireColumn.AutoFit
objExcel.Range("A1:D1").Select
objExcel.Selection.Font.Bold = True
objExcel.Selection.Interior.ColorIndex = 15
End Sub
Conclusion
Grace à ces fichiers .CVS si ce script est exécuté régulièrement, vous pourrez retrouver toutes les informations ActiveDirectory.
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Signet et ASP [ par vbfrogs ]
Bonjour,J'ai besoin de votre aide....J'ai une page ASP dans laquelle je crée des signets pour chaque groupe d'enregistrement... Lorsque l'utilisateur
Signet et ASP [ par vbfrogs ]
Bonjour,J'ai besoin de votre aide....J'ai une page ASP dans laquelle je crée des signets pour chaque groupe d'enregistrement... Lorsque l'utilisateur
Signet et ASP [ par vbfrogs ]
Bonjour,J'ai besoin de votre aide....J'ai une page ASP dans laquelle je crée des signets pour chaque groupe d'enregistrement... Lorsque l'utilisateur
Signet et ASP [ par vbfrogs ]
Bonjour,J'ai besoin de votre aide....J'ai une page ASP dans laquelle je crée des signets pour chaque groupe d'enregistrement... Lorsque l'utilisateur
Problème VBA [ par garfunkel ]
Je travaille sous access 97, j'ai plusieurs groupes d'utilisateurs et j'aimerais que lorsque j'ouvre un formulaire je test le groupe de l'utilisateur,
probléme ADsError help [ par ganbalfro ]
Je veux creer des compte utilisateur sur windows 2000 server.Le probléme c'est que j'ai toujours une erreur Il me dit :L'objet ADsError n'est pas inst
Utilisateur incorrect après compilation, mais valide à l'interprétation [ par happexamendios ]
Bonjour,j'ai une procédure qui est censée me mettre un utilisateur spécifié dans un groupe global de mon active directory.le code utilise des droits e
Modifier les parametre d'ouverture en fonction de l'utilisateur [ par katmandou ]
Bonjour, voila mon probleme, j'ai crée une base de donnees access (access 97), et je l'ai securise avec l'assistant securité au niveau
Groupe de l'active directory [ par slyman99 ]
Comment je fait pour déterminer si l'utilisateur X appartien au groupe Y pour l'instant j'ai essayer: (Avec "Active DS Type Library") Public Functi
les information d'un textbox vers une base de donnée [ par cricri_b34 ]
SalutJ'ai créer un programme avec deux textbox: Nom d'UtilisateurMot de passeet un bouton:EnvoyerJ'aimerais que l'orsque je clique sur envoyer, le Nom
|
Derniers Blogs
PAS D'INTELLITRACE SUR MON SITE WEB DANS IIS !PAS D'INTELLITRACE SUR MON SITE WEB DANS IIS ! par Etienne Margraff
J'ai récemment eu un problème pour obtenir l'intelliTrace sur un site web dans IIS. Il n'y avait pas de message d'erreur, rien dans le journal d'évènement Windows, et après 3 appels à une voyante, 2 visites chez un marabou, j'ai failli me résign...
Cliquez pour lire la suite de l'article par Etienne Margraff OFFICE 365 - SHAREPOINT ONLINE, QUELQUES LIMITATIONSOFFICE 365 - SHAREPOINT ONLINE, QUELQUES LIMITATIONS par junarnoalg
De nombreuses entreprises font le choix de SharePoint Online, service fourni au travers de l'offre de Microsoft Office 365. S'il est vrai que ce choix apporte un grand nombre d'avantages; rapidité de mise en œuvre, disponibilité, large couvertu...
Cliquez pour lire la suite de l'article par junarnoalg PRéSENTATION DES API REST DE WINDOWS AZURE : LISTER LES COMPTES DE STORAGEPRéSENTATION DES API REST DE WINDOWS AZURE : LISTER LES COMPTES DE STORAGE par richardc
http://www.c2idotnet.com/articles/presentation-des-api-rest-de-windows-azure-lister-les-comptes-de-storage
Désolé pour "toto", mais c2i existait avant blogs.developpeur.org et c'est mon site "officiel" ;-) ...
Cliquez pour lire la suite de l'article par richardc [HTML5] SLIDES ET DéMOS : AUTOUR DU W3C , NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] SLIDES ET DéMOS : AUTOUR DU W3C , NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Très bonne après-midi passée lors cette conférence avec le W3C, organisée par L' Inria sur les nouveaux standards, ce Mardi 14 Février, on sent vraiment que çà bosse au W3C, et l'avenir est très très prometteur pour le HTML5, notamment ...
Cliquez pour lire la suite de l'article par Gio
Forum
FONCTION EXCEL VBAFONCTION EXCEL VBA par samanta26
Cliquez pour lire la suite par samanta26
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|