public/Compare-ADUserGroupMembership.ps1

function Compare-ADUserGroupMembership {
    param (
        [Parameter(Mandatory=$true,Position=0)]
        [string]
        $ReferenceUser,
        [Parameter(Mandatory=$true,Position=1)]
        [string]
        $DifferenceUser,
        [Parameter(Position=2)]
        [string]
        $SearchString = "*",
        [string]
        $Server,
        [System.Management.Automation.PSCredential]
        $Credential
    )

    ## Import prereq module
    Import-Module ActiveDirectory

    ## Gather both users Group Memberships
    $groups1 = (Get-ADPrincipalGroupMembership -Identity $ReferenceUser -Server $Server -Credential $Credential).Name | Sort-Object | Where-Object {$_ -like $SearchString}
    $groups2 = (Get-ADPrincipalGroupMembership -Identity $DifferenceUser -Server $Server -Credential $Credential).Name | Sort-Object | Where-Object {$_ -like $SearchString}

    ##Compare groupmemberships
    $comparison = Compare-Object $groups1 $groups2 -IncludeEqual

    ##output
    $finaltable = @()
    foreach ($comp in $comparison){
        switch ($comp.SideIndicator){
            '==' {$description = "Both"}
            '<=' {$description = "$ReferenceUser ONLY"}
            '=>' {$description = "$DifferenceUser ONLY"}
        }
        
        $object = $null

        $object = [PSCustomObject]@{
            GroupName = $comp.inputobject
            Membership = $description
            SideIndicator = $comp.sideindicator
        }
        $finaltable += $object

    }#end foreach

    return $finaltable

}#end function