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 } } |