'PowerShell Script to display all users part of AD security groups within an OU in AD
I am new to PowerShell I am trying to display all AD security groups within a certain OU and to display each user part of that security group.
I want to show username and name and the security group name to a CSV file.
I have managed to get this information but I had to manually add the AD security group name within the script itself:
$groups = "GroupName1", "GroupName2", "GroupName3", "GroupName4", "GroupName5"
$results = foreach ($group in $groups) {
Get-ADGroupMember $group | select samaccountname, name, @{n='GroupName';e={$group}}, @{n='Description';e={(Get-ADGroup $group -Properties description).description}}
}
$results
$results | Export-csv C:\Users\Sam\Desktop\Users.csv -NoTypeInformation
The above script outputs the information I require but as stated above I have to manually enter the Security GroupName within the script itself.
I think the command I need to use is Get-ADGroup
Any help is appreciated thanks.
Solution 1:[1]
You can use Get-ADGroup -Filter * -SearchBase 'OUdnHere' to search for all groups under your desired Organizational Unit, then you can simply apply the same logic you already have:
- Loop over the Groups
- Get their memberships
- Construct the output
- Export to CSV
$ou = 'distinguished name of my OU here'
Get-ADGroup -Filter * -SearchBase $ou -Properties Description | ForEach-Object {
foreach($member in Get-ADGroupMember $_) {
[pscustomobject]@{
SamAccountName = $member.SamAccountName
Name = $member.Name
GroupName = $_.Name
Description = $_.Description
}
}
} | Export-csv C:\Users\Sam\Desktop\Users.csv -NoTypeInformation
Solution 2:[2]
Try something like this (add the correct dn for the OU of course):
$Groups = Get-AdGroup -SearchBase "ou=OuName,DC=contoso,DC=local" -Filter * | Select -ExpandProperty Name
Or somewhat shorter and easier to read according to me:
$Groups = (Get-AdGroup -SearchBase "ou=OuName,DC=contoso,DC=local" -Filter *).Name
Untested code, but you get the gist of it.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Santiago Squarzon |
| Solution 2 |
