Skip to content

Instantly share code, notes, and snippets.

@irwins
Created May 17, 2017 10:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save irwins/940f56689a3c81eaba513b62aa6bb879 to your computer and use it in GitHub Desktop.
Save irwins/940f56689a3c81eaba513b62aa6bb879 to your computer and use it in GitHub Desktop.
$paramADGroup = @{
Filter = {GroupCategory -eq 'security'}
SearchBase = 'OU=Groups,DC=corp,DC=test,DC=local'
Properties = @('Members')
}
$groups = Get-ADGroup @paramADGroup
$addADGroupMembers = @{}
$groups |
ForEach-Object {
$addADGroupMembers.$($_.Name) = Get-ADGroupMember -Identity $($_.Name)
}
$htUsers = @{}
$htProps = @{}
$addADGroupMembers.Keys |
ForEach-Object {$htProps.$_ = $null}
foreach ($group in $addADGroupMembers.GetEnumerator()){
foreach ($member in $group.Value){
if (!$htUsers.ContainsKey($member.SamAccountName)){
$htProps.UserID = $member.SamAccountName
$htProps.ObjectClass = $member.objectClass
$htProps.UPN = if($member.objectClass -eq 'user'){(Get-ADUser $member.SamAccountName).UserPrincipalName}
$htUsers.$($member.SamAccountName) = $htProps.Clone()
}
($htUsers.$($member.SamAccountName)).$($group.Name) = 1
}
}
$htUsers.GetEnumerator() | ForEach-Object{
[PSCustomObject]$_.Value
} |
Sort-Object UserID
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment