Public/Get-RDConnectionStatus.ps1

function Get-RDConnectionStatus {
    <#
    .SYNOPSIS
 
    .DESCRIPTION
 
    .PARAMETER alguno
 
    .EXAMPLE
 
    .NOTES
 
#>

    #Requires -RunAs
    [CmdletBinding()]
    param (

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

        [pscredential]
        $Credential

    )


    $Command = {
        Write-Verbose "Retrieving remote desktops status on $($ENV:ComputerName)"
        $Value = (Get-ItemProperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\" -Name fdenytsconnections).fdenytsconnections

        $dicValues = @{
            0 = "ENABLED"
            1 = "DISABLED"
        }

        $Output = @{
            Status       = $dicValues[$Value]
            ComputerName = $Env:ComputerName
        }

        Write-Verbose "Outputting status"
        [PSCustomObject]$Output

    } # script block

    Foreach ($Computer in $ComputerName) {
        Write-Verbose "Connecting to $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
        } # if

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

}