Solved

Create a query based group of all users except certain members

Posted on 2008-10-07
1
403 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 500 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

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Question has a verified solution.

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

I have never ceased to be amazed how many problems you can encounter on a fresh install of a Windows operating system.  This is certainly case in point& Unable to complete ANY MSI installation.  This means Windows Updates are failing and I can't …
Recently, I had the need to build a standalone system to run a point-of-sale system. I’m running this on a low-voltage Atom processor, so I wanted a light-weight operating system, but still needed Windows. I chose to use Microsoft Windows Server 200…
This Micro Tutorial demonstrates using Microsoft Excel pivot tables, how to reverse engineer competitors' marketing strategies through backlinks.
Windows 10 is mostly good. However the one thing that annoys me is how many clicks you have to do to dial a VPN connection. You have to go to settings from the start menu, (2 clicks), Network and Internet (1 click), Click VPN (another click) then fi…

911 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

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now