Want to share a script? Click here to contribute!
Author:
Shane Boudreaux
Platform:
Windows
Type:
Win
Description:
Script will enumerate group members, based on an Active Directory Group name.
Scroll down to view the script.
''================================== '' Enumerate Active Directory Group Members '' Author: Shane Boudreaux '' Start Date: 5/22/07 '' Last Modified: 5/22/07 ''================================== ''================================== '' GLOBAL DECLARES & CONSTANTS ''================================== On Error Resume Next Const ForAppending = 8 Const DOMAIN = "LDAP://DC=YourDomain,DC=com" Const GROUPHEADER = "GROUP:" Const GROUPFOOTER = "=====================" Dim groupName '' prompt user for FULL group name groupName = inputbox("Enter Full Group Name") '' check if output file exists; create if doesn''t exist fileExists "c:members.txt" '' find the group and output members to text file findGroup groupName wscript.echo "DONE!" '' display results text file openFile ''======================== Private Sub findGroup(grp) Const ADS_SCOPE_SUBTREE = 2 Set objConnection = CreateObject("ADODB.Connection") Set objCommand =CreateObject("ADODB.Command") objConnection.Provider = "ADsDSOObject" objConnection.Open "Active Directory Provider" Set objCommand.ActiveConnection = objConnection objCommand.Properties("Page Size") = 5000 objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE objCommand.CommandText = "SELECT ''distinguishedName'' FROM ''" & DOMAIN & "'' WHERE objectCategory=''group'' " & _ "AND Name=''" & grp & "*''" Set objRecordSet = objCommand.Execute objRecordSet.MoveFirst Do Until objRecordSet.EOF group = objRecordSet.Fields("distinguishedName").Value getMembers group objRecordSet.MoveNext Loop End Sub ''======================== ''======================== Private Sub getMembers(grp) Set objGroup = GetObject ("LDAP://" & grp) objGroup.GetInfo arrMemberOf = objGroup.GetEx("member") text = GROUPHEADER & vbcrlf & vbtab & grp & vbcrlf & GROUPFOOTER & vbcrlf & "MEMBERS:" & vbcrlf & GROUPFOOTER & vbcrlf For Each strMember in arrMemberOf ''Dim temp ''temp = pwdExpire(strMember) ''strMember = strMember & vbcrlf & temp text = text & strMember & vbcrlf Next AppendToFile text End Sub ''======================== ''======================== Private Sub AppendToFile(text) Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile("C:members.txt", ForAppending) If text "" Then objFile.WriteLine text Else objFile.WriteLine "No Members OR Incorrect Input" End If objFile.Close End Sub ''======================== ''======================== Private Sub openFile() Const WIN_STYLE = 4 Set objShell = WScript.CreateObject("WScript.Shell") objShell.Run "notepad.exe c:members.txt", WIN_STYLE End Sub ''======================== ''================================ Private Sub fileExists(file) '' NOTE: param file must be full path and file name! Set objFSO = CreateObject("Scripting.FileSystemObject") If objFSO.FileExists(file) Then Exit Sub Else '' Create File if DOESN''t Exist Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.CreateTextFile(file) End If End Sub ''================================ ''=============================== Private Function pwdExpire(user) Const SEC_IN_DAY = 86400 Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000 Dim retVal Set objUserLDAP = GetObject("LDAP://" & user) intCurrentValue = objUserLDAP.Get("userAccountControl") If intCurrentValue and ADS_UF_DONT_EXPIRE_PASSWD Then retVal = vbTab & "Password does NOT expire." Else dtmValue = objUserLDAP.PasswordLastChanged retVal = vbTab & "The password was last changed on " & _ DateValue(dtmValue) & " at " & TimeValue(dtmValue) & VbCrLf & _ vbTab & "The difference between when the password was last set" & _ "and today is " & int(now - dtmValue) & " days" intTimeInterval = int(now - dtmValue) Set objDomainNT = GetObject("WinNT://its") intMaxPwdAge = objDomainNT.Get("MaxPasswordAge") If intMaxPwdAge = intMaxPwdAge Then retVal = retVal & vbcrlf & vbtab & vbtab & "The password has expired." Else retVal = retVal & vbcrlf & vbtab & vbtab & "The password will expire on " & _ DateValue(dtmValue + intMaxPwdAge) & " (" & _ int((dtmValue + intMaxPwdAge) - now) & " days from today" & _ ")." End If End If End If pwdExpire = retVal End Function ''===============================
Disclaimer: We hope that the information in these pages is valuable to you. Your use of the information contained in these pages, however, is at your sole risk. All information on these pages is provided “as -is”, without any warranty, whether express or implied, of its accuracy, completeness, fitness for a particular purpose, title or non-infringement, and none of the third-party products or information mentioned in the work are authored, recommended, supported or guaranteed by me. I shall not be liable for any damages you may sustain by using this information, whether direct, indirect, special, incidental or consequential, even if it has been advised of the possibility of such damages.
Ethics and Artificial Intelligence: Driving Greater Equality
FEATURE | By James Maguire,
December 16, 2020
AI vs. Machine Learning vs. Deep Learning
FEATURE | By Cynthia Harvey,
December 11, 2020
Huawei’s AI Update: Things Are Moving Faster Than We Think
FEATURE | By Rob Enderle,
December 04, 2020
Keeping Machine Learning Algorithms Honest in the ‘Ethics-First’ Era
ARTIFICIAL INTELLIGENCE | By Guest Author,
November 18, 2020
Key Trends in Chatbots and RPA
FEATURE | By Guest Author,
November 10, 2020
FEATURE | By Samuel Greengard,
November 05, 2020
ARTIFICIAL INTELLIGENCE | By Guest Author,
November 02, 2020
How Intel’s Work With Autonomous Cars Could Redefine General Purpose AI
ARTIFICIAL INTELLIGENCE | By Rob Enderle,
October 29, 2020
Dell Technologies World: Weaving Together Human And Machine Interaction For AI And Robotics
ARTIFICIAL INTELLIGENCE | By Rob Enderle,
October 23, 2020
The Super Moderator, or How IBM Project Debater Could Save Social Media
FEATURE | By Rob Enderle,
October 16, 2020
FEATURE | By Cynthia Harvey,
October 07, 2020
ARTIFICIAL INTELLIGENCE | By Guest Author,
October 05, 2020
CIOs Discuss the Promise of AI and Data Science
FEATURE | By Guest Author,
September 25, 2020
Microsoft Is Building An AI Product That Could Predict The Future
FEATURE | By Rob Enderle,
September 25, 2020
Top 10 Machine Learning Companies 2021
FEATURE | By Cynthia Harvey,
September 22, 2020
NVIDIA and ARM: Massively Changing The AI Landscape
ARTIFICIAL INTELLIGENCE | By Rob Enderle,
September 18, 2020
Continuous Intelligence: Expert Discussion [Video and Podcast]
ARTIFICIAL INTELLIGENCE | By James Maguire,
September 14, 2020
Artificial Intelligence: Governance and Ethics [Video]
ARTIFICIAL INTELLIGENCE | By James Maguire,
September 13, 2020
IBM Watson At The US Open: Showcasing The Power Of A Mature Enterprise-Class AI
FEATURE | By Rob Enderle,
September 11, 2020
Artificial Intelligence: Perception vs. Reality
FEATURE | By James Maguire,
September 09, 2020
Datamation is the leading industry resource for B2B data professionals and technology buyers. Datamation's focus is on providing insight into the latest trends and innovation in AI, data security, big data, and more, along with in-depth product recommendations and comparisons. More than 1.7M users gain insight and guidance from Datamation every year.
Advertise with TechnologyAdvice on Datamation and our other data and technology-focused platforms.
Advertise with Us
Property of TechnologyAdvice.
© 2025 TechnologyAdvice. All Rights Reserved
Advertiser Disclosure: Some of the products that appear on this
site are from companies from which TechnologyAdvice receives
compensation. This compensation may impact how and where products
appear on this site including, for example, the order in which
they appear. TechnologyAdvice does not include all companies
or all types of products available in the marketplace.