Private/Test-TechCareAdmin.ps1

function Test-TechCareAdmin {
    <#
    .SYNOPSIS
        Indica si la sesion tiene privilegios de administrador local.
    .DESCRIPTION
        Fuera de Windows devuelve $false sin intentar la consulta, porque
        WindowsIdentity no existe en Linux ni en macOS.
    #>

    [CmdletBinding()]
    [OutputType([bool])]
    param()

    if (-not (Test-TechCarePlatform)) { return $false }
    try {
        $identity  = [Security.Principal.WindowsIdentity]::GetCurrent()
        $principal = New-Object -TypeName Security.Principal.WindowsPrincipal -ArgumentList $identity
        return $principal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
    } catch {
        # Sin identidad legible se asume el caso restrictivo: sin privilegios.
        return $false
    }
}