AvoidUsingCmdletAliases

Nivel de gravedad de : advertencia

Descripción

Esta regla detecta el uso de alias cmdlet y la omisión del Get- prefijo en escenarios de alias implícitos. Un alias es un nombre alternativo o apodo para un cmdlet o elemento de comando, como una función, script, archivo o archivo ejecutable. Aunque puedes usar alias en lugar del nombre completo del comando, hacerlo reduce la legibilidad y la mantenibilidad del código.

PowerShell también soporta alias implícitos. Cuando no se encuentra el nombre de un cmdlet, PowerShell se añade Get- al comando como respaldo. Por ejemplo, al verb escribir se ejecuta Get-Verb.

Los alias crean inconsistencias entre bases de código porque diferentes autores aprenden y usan distintos alias. Los alias pueden dificultar la lectura y la comprensión del código en entornos colaborativos. También puede causar problemas con la portabilidad y disponibilidad de los scripts.

Usar nombres completos de cmdlets mejora la claridad del código, facilita el mantenimiento de los scripts y permite un resaltado de sintaxis adecuado en editores de código y plataformas como GitHub y Visual Studio Code. Usa siempre el nombre completo del cmdlet en lugar de alias.

Ejemplo

No conforme

gps | Where-Object {$_.WorkingSet -gt 20000000}

Compliant

Get-Process | Where-Object {$_.WorkingSet -gt 20000000}

Configurar regla

Para evitar PSScriptAnalyzer que te marquen tus alias preferidos, crea una lista de permisos de los alias en tu archivo de configuración y apunta PSScriptAnalyzer para usar el archivo de configuración. Por ejemplo, para deshabilitar PSScriptAnalyzer marcar cd, que es un alias de Set-Location, establezca el contenido del archivo de configuración en lo siguiente.

@{
    'Rules' = @{
        'PSAvoidUsingCmdletAliases' = @{
            'allowlist' = @('cd')
        }
    }
}