Public/Get-ADGroupMembersByName.ps1

function Get-ADGroupMembersByName {
    [CmdletBinding(SupportsShouldProcess)]
    Param (
    [Parameter(Mandatory,ValueFromPipeline)]
    [string]$Name,
    [switch]$Quick
    )

    process {
    $Params = @{
        Server     = $ADGlobalCatalog
        Properties = @('CanonicalName')
    }
    try {
        $Group = Get-ADGroup $Name @Params
    } catch [Microsoft.ActiveDirectory.Management.ADIdentityNotFoundException] {
        $Group = Get-ADGroup -Filter {
        (Name -eq $Name) -or (SamAccountName -eq $Name)
        } @Params
    } catch {
        throw
    }
    $Domain = $Group.CanonicalName.Substring(0, $Group.CanonicalName.IndexOf("/"))
    if ($Quick) {
        Get-ADGroupMember $Group.DistinguishedName -Server $Domain
    } else {
        Get-ADGroupMember $Group.DistinguishedName -Recursive -Server $Domain |
          Get-ADUserAllProperties
    }
    }
}