Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Create a query based group of all users except certain members

Posted on 2008-10-07
1
Medium Priority
?
423 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
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

Veeam Task Manager for Hyper-V

Task Manager for Hyper-V provides critical information that allows you to monitor Hyper-V performance by displaying real-time views of CPU and memory at the individual VM-level, so you can quickly identify which VMs are using host resources.

Question has a verified solution.

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

Learn about cloud computing and its benefits for small business owners.
ADCs have gained traction within the last decade, largely due to increased demand for legacy load balancing appliances to handle more advanced application delivery requirements and improve application performance.
In response to a need for security and privacy, and to continue fostering an environment members can turn to for support, solutions, and education, Experts Exchange has created anonymous question capabilities. This new feature is available to our Pr…
Please read the paragraph below before following the instructions in the video — there are important caveats in the paragraph that I did not mention in the video. If your PaperPort 12 or PaperPort 14 is failing to start, or crashing, or hanging, …

971 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