Public/Get-ADGroupMembership.ps1
function Get-ADGroupMembership { Param( [Parameter( Position = 0, Mandatory = $true, ValueFromPipelineByPropertyName = $true )] [Alias('UserName','UN')] [String]$User, [Parameter( Position = 1, Mandatory = $false, ValueFromPipelineByPropertyName = $true )] [switch]$AuthorizationGroups ) $AuthLookup = @{ $true = 'machine' $false = 'domain' } Add-Type -AssemblyName System.DirectoryServices.AccountManagement $DS = [System.DirectoryServices.AccountManagement.PrincipalContext]::new($AuthLookup[($env:USERDOMAIN -eq $env:COMPUTERNAME)]) $UserObject = [System.DirectoryServices.AccountManagement.UserPrincipal]::FindByIdentity($DS, $User) if ($AuthorizationGroups){ $Groups = $UserObject.GetAuthorizationGroups() } else { $Groups = $UserObject.GetGroups() } $Groups | select -ExpandProperty Name } |