-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy path1077.ps1
More file actions
49 lines (41 loc) · 1.17 KB
/
Copy path1077.ps1
File metadata and controls
49 lines (41 loc) · 1.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
function Get-RecurseMember {
<#
.Synopsis
Does a recursive search for unique users that are members of an AD group.
.Description
Recursively gets a list of unique users that are members of the specified
group, expanding any groups that are members out into their member users.
Note: Requires the Quest AD Cmdlets
http://www.quest.com/powershell/activeroles-server.aspx
.Parameter group
The name of the group.
.Example
PS> Get-RecurseMember 'My Domain Group'
.Notes
NAME: Get-RecurseMember
AUTHOR: tojo2000
#Requires -Version 2.0
#>
param([Parameter(Position = 0,
Mandatory = $true]
[string]$group)
$users = @{}
try {
$members = Get-QADGroupMember $group
} catch [ArgumentException] {
Write-Host "`n`n'$group' not found!`n"
return $null
}
foreach ($member in $members) {
if ($member.Type -eq 'user') {
$users.$($member.Name.ToLower()) = $member
} elseif ($member.Type -eq 'group') {
foreach ($user in (Get-RecurseMember $member.Name)) {
$users.$($user.Name.ToLower()) = $user
}
}
}
foreach ($user in $users.Keys | sort) {
Write-Output $users.$user
}
}