Public/Get-RDUser.ps1

function Get-RDUser {
    #Require -Verb RunAs

    [CmdletBinding()]
    param (
        [parameter(Position = 0)]
        [String[]]
        $ComputerName = "Localhost",

        [PSCredential]
        $Credential

    )

    $Command = {
        $language = (Get-UICulture).name.substring(0, 2)

        $GroupsinLang = @{
            es = "Usuarios de escritorio remoto"
            en = "Remote Desktop Users"
        } # hashtable languages

        $Group = $GroupsinLang[$Language]

        IF ($PSVersionTable.PSVersion.Major -ne '5') {

            $Wmi = Get-WmiObject -Class Win32_GroupUser |
                Where-Object { $_.groupcomponent -match "$($env:computername)`",Name=`"$Group`"" }
            IF ($null -ne $wmi) {

                $Wmi | ForEach-Object {
                    IF ($_.PartComponent -match "Group.Domain") {
                        $Type = "Group"
                    }
                    else {
                        $Type = "User"
                    } # if else

                    $parser = $_.partComponent.split(".")[1]

                    $user = $Parser.split(",")[1].trimstart("Name=").trim('"')
                    $Domain = $Parser.split(",")[0].trimstart("Domain=").trim('"')

                    $Output = @{
                        Name        = "{0}\{1}" -F $Domain, $User
                        ObjectClass = $Type
                        ComputerName = $Env:ComputerName
                    } # hashtable

                    #output object
                    [PSCustomObject]$Output
                } #foreach
            }
        }
        else {
            Get-LocalGroupMember -Group $Group | Select-Object ObjectClass,Name,@{
                Name='ComputerName';
                Expression={$Env:ComputerName}
            }
        }
    }

    Foreach ($Computer in $ComputerName) {
        Write-Verbose "Retriving members from $Computer"
        $Params = @{
            ComputerName = $Computer
            ScriptBlock  = $Command
            HideComputerName = $True
        } # hashtable

        IF ($Computer -match "Localhost|$($env:computername)") {
            $Params.Remove('ComputerName')
            $Params.Remove('HideComputerName')
        }
        elseif ($PSBoundParameters.ContainsKey("Credential")) {
            $Params.credential = $Credential
        } # elseif

        try {
            Invoke-Command @Params -ErrorAction Stop
        }
        catch {
            Write-Error $_
        }
    } # foreach
} # function