Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Create a query based group of all users except certain members

Posted on 2008-10-07
1
Medium Priority
?
421 Views
Last Modified: 2012-05-05
I have a need to create a group that contains all users in AD except 7 users.  Does anyone know a way to acheive this end?
0
Comment
Question by:jcistaro
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
1 Comment
 
LVL 38

Accepted Solution

by:
Shift-3 earned 2000 total points
ID: 22661269
Paste the script below into a text file with a .vbs extension.  Customize the values of the variables and dictionary entries above the horizontal line as indicated in the comments.  Running the script will create a new group containing all users except the excluded ones.


On Error Resume Next
 
Const ADS_SCOPE_SUBTREE = 2
Const ADS_GROUP_TYPE_DOMAIN_LOCAL_GROUP = 4
Const ADS_GROUP_TYPE_GLOBAL_GROUP = 2
Const ADS_GROUP_TYPE_UNIVERSAL_GROUP = 8
Const ADS_GROUP_TYPE_SECURITY_ENABLED = -2147483648
 
'Distinguished name of your domain
strContainer = "dc=yourdomain,dc=local"
 
'Name of the group to create
strGroup = "new group"
 
'Distinuished name of the OU to create the new group in
strGroupOU = "ou=security groups,dc=yourdomain,dc=local"
 
'Type of group to create
strGroupType = ADS_GROUP_TYPE_GLOBAL_GROUP Or ADS_GROUP_TYPE_SECURITY_ENABLED
 
'Description of the new group
strGroupDesc = "My new group"
 
Set objExclude = CreateObject("Scripting.Dictionary")
objExclude.CompareMode = VBTextCompare
'Customize each entry with the SAM ID of a user to exclude from the query
objExclude.Add "user1", ""
objExclude.Add "user2", ""
objExclude.Add "user3", ""
objExclude.Add "user4", ""
objExclude.Add "user5", ""
objExclude.Add "user6", ""
objExclude.Add "user7", ""
 
'--------------------------------------------------------------------------------------
 
set objGroupOU = GetObject("LDAP://" & strGroupOU)
set objGroup = objGroupOU.Create("group","cn=" & strGroup)
objGroup.Put "groupType", strGroupType
objGroup.Put "samAccountName", strGroup
objGroup.Put "description", strGroupDesc
objGroup.SetInfo
 
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") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE 
 
objCommand.CommandText = _
    "SELECT AdsPath FROM 'LDAP://" & strContainer & "' WHERE objectCategory='user'"  
Set objRecordSet = objCommand.Execute
 
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
    Set objUser = GetObject(objRecordSet.Fields("AdsPath").Value)
    
    If Not objExclude.Exists(objUser.sAMAccountName) Then
        objGroup.Add(objUser.ADsPath)
    End If
    objRecordSet.MoveNext
Loop

Open in new window

0

Featured Post

Prepare for your VMware VCP6-DCV exam.

Josh Coen and Jason Langer have prepared the latest edition of VCP study guide. Both authors have been working in the IT field for more than a decade, and both hold VMware certifications. This 163-page guide covers all 10 of the exam blueprint sections.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

A quick step-by-step overview of installing and configuring Carbonite Server Backup.
This article provides a convenient collection of links to Microsoft provided Security Patches for operating systems that have reached their End of Life support cycle. Included operating systems covered by this article are Windows XP,  Windows Server…
In this video you will find out how to export Office 365 mailboxes using the built in eDiscovery tool. Bear in mind that although this method might be useful in some cases, using PST files as Office 365 backup is troublesome in a long run (more on t…
Visualize your data even better in Access queries. Given a date and a value, this lesson shows how to compare that value with the previous value, calculate the difference, and display a circle if the value is the same, an up triangle if it increased…

704 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question