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

x
?
Solved

Powershell - How to check if a set of users are members of certain groups.

Posted on 2013-10-30
9
Medium Priority
?
627 Views
Last Modified: 2013-10-31
Hi EE

This is a weird issue even describing .. Does anyone have a way of doing the task below .

I have a set of users .. 2500 .. and I need to know which users are members of a set of 5 groups ..

any ideas ?
0
Comment
Question by:MilesLogan
  • 3
  • 3
  • 2
  • +1
9 Comments
 
LVL 20

Expert Comment

by:TheAvenger
ID: 39610882
General idea: create a string with all your users, then call a function to check the membership and react for each one of them.

Here is a topic on array initialization with strings and going through it using a for loop: http://get-powershell.com/post/2008/02/07/Powershell-function-New-Array.aspx

Here is a topic on how to check user membership in a group: http://social.technet.microsoft.com/Forums/scriptcenter/en-US/1e75ab95-fd52-4eb5-a1c3-136d14050b63/check-if-specific-user-is-member-of-specific-group

There are many more articles on the topics in google, so you just need to combine several to reach your solution.
0
 
LVL 40

Expert Comment

by:Subsun
ID: 39610982
What type of result file are you looking for? Do you need to report each group membership status (True false against each group) or just report if they are missing any group? or do you need to add them to group if they are missing the group membership?
0
 
LVL 35

Expert Comment

by:YZlat
ID: 39611606
See if this works for you:

$Groups = Get-Content C:\GroupsList.txt
$Users = Get-Content C:\UserList.txt

$MembersArray = @()

foreach ( $User in $Users ) {
        foreach ( $Group in $Groups ) {

            $memberOf = Get-QADMemberOf -Identity $User -Name $Group

            if($memberOf)
            {
                $MembersArray += $User
            }
         
        }
        
}


$MembersArray | Export-CSV C:\ListOfMembers.csv -NoType

Open in new window

0
 [eBook] Windows Nano Server

Download this FREE eBook and learn all you need to get started with Windows Nano Server, including deployment options, remote management
and troubleshooting tips and tricks

 
LVL 2

Author Comment

by:MilesLogan
ID: 39611643
Hi YZlat

I modified the path to point to where I have the user and group list and the outout is listed below ..

PSPath      PSParentPath      PSChildName      PSDrive      PSProvider      ReadCount      Length
E:\Projects\Groups\Users.txt      E:\Projects\Groups      Users.txt      E      Microsoft.PowerShell.Core\FileSystem      1      8
E:\Projects\Groups\Users.txt      E:\Projects\Groups      Users.txt      E      Microsoft.PowerShell.Core\FileSystem      1      8
E:\Projects\Groups\Users.txt      E:\Projects\Groups      Users.txt      E      Microsoft.PowerShell.Core\FileSystem      1      8
E:\Projects\Groups\Users.txt      E:\Projects\Groups      Users.txt      E      Microsoft.PowerShell.Core\FileSystem      2      8
E:\Projects\Groups\Users.txt      E:\Projects\Groups      Users.txt      E      Microsoft.PowerShell.Core\FileSystem      2      8
E:\Projects\Groups\Users.txt      E:\Projects\Groups      Users.txt      E      Microsoft.PowerShell.Core\FileSystem      2      8
E:\Projects\Groups\Users.txt      E:\Projects\Groups      Users.txt      E      Microsoft.PowerShell.Core\FileSystem      2      8
E:\Projects\Groups\Users.txt      E:\Projects\Groups      Users.txt      E      Microsoft.PowerShell.Core\FileSystem      2      8
E:\Projects\Groups\Users.txt      E:\Projects\Groups      Users.txt      E      Microsoft.PowerShell.Core\FileSystem      2      8
0
 
LVL 40

Expert Comment

by:Subsun
ID: 39611708
@MilesLogan, Could you please clarify my above question?
0
 
LVL 2

Author Comment

by:MilesLogan
ID: 39611718
Hi SubSub .. I just need to know if they are a member of any of those groups ..  I just need the SAmAccountName and which group they where a member of in the output file .
0
 
LVL 40

Accepted Solution

by:
Subsun earned 2000 total points
ID: 39611772
Try this and see if the output works for you...
$Groups = Get-Content C:\temp\Groups.txt
Get-Content C:\temp\User.txt | % {
$User = $_
 foreach ($Group in $Groups) {
	If(!(Get-QADMemberOf $User -Name $Group))
	{
		New-Object PSObject -Property @{
			User = $User
			Group = $Group
			Member = "No"
		}
	}
	Else{
		New-Object PSObject -Property @{
			User = $User
			Group = $Group
			Member = "Yes"
		}
	}
}
} | Select User,Group,Member | Export-CSV C:\Report.csv -NTI

Open in new window

0
 
LVL 35

Expert Comment

by:YZlat
ID: 39612101
could you show me the sample content of Users.txt and Groups.txt?
0
 
LVL 2

Author Closing Comment

by:MilesLogan
ID: 39615646
Worked perfect ! thanks !
0

Featured Post

[Webinar] Cloud and Mobile-First Strategy

Maybe you’ve fully adopted the cloud since the beginning. Or maybe you started with on-prem resources but are pursuing a “cloud and mobile first” strategy. Getting to that end state has its challenges. Discover how to build out a 100% cloud and mobile IT strategy in this webinar.

Question has a verified solution.

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

In this post we will be converting StringData saved within a text file into a hash table. This can be further used in a PowerShell script for replacing settings that are dynamic in nature from environment to environment.
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…
This tutorial will walk an individual through the process of transferring the five major, necessary Active Directory Roles, commonly referred to as the FSMO roles from a Windows Server 2008 domain controller to a Windows Server 2012 domain controlle…
This video shows how to use Hyena, from SystemTools Software, to bulk import 100 user accounts from an external text file. View in 1080p for best video quality.

916 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