UseCompatibleCmdlets

Nivel de gravedad de : advertencia

Estado por defecto: Siempre activado

Descripción

Esta regla detecta cmdlets que no están disponibles para la edición, versión y sistema operativo de PowerShell al que te diriges. La regla compara cada cmdlet de tu script con una lista de compatibilidad que viene con PSScriptAnalyzer. Estos archivos se encuentran en la siguiente ubicación: /path/to/PSScriptAnalyzerModule/Settings.

Cada archivo utiliza este formato de nombre:

<psedition>-<psversion>-<os>.json

Where:

  • <psedition> es Core o Desktop
  • <psversion> es la versión de PowerShell
  • <os> es Windows, Linux, Linux-Arm o MacOS

Configurar regla

Para comprobar si tu script es compatible con PowerShell Core 6.1 en Windows, añade esta configuración:

@{
    'Rules' = @{
        'PSUseCompatibleCmdlets' = @{
            'compatibility'      = @('core-6.1.0-windows')
        }
    }
}

El parámetro de compatibilidad acepta una lista de uno o más identificadores objetivo, tales como:

  • desktop-2.0-windows
  • desktop-3.0-windows
  • escritorio-4.0-windows (tomado de Windows Server 2012 R2)
  • desktop-5.1.14393.206-windows
  • Core-6.1.0-Windows (tomado de Windows 10, versión 1803)
  • core-6.1.0-linux (tomado de Ubuntu 18.04)
  • core-6.1.0-linux-arm (tomado de Raspbian)
  • core-6.1.0-macos

Las versiones de PowerShell parcheadas suelen tener los mismos datos de cmdlet, así que esta regla principalmente incluye perfiles de versiones mayores y menores.

También puedes crear un perfil personalizado con New-CommandDataFile.ps1. Coloca el archivo JSON generado en la Settings carpeta del PSScriptAnalyzer módulo. Luego puedes referenciar ese archivo por nombre bajo compatibility.

Los core-6.0.2-* archivos fueron eliminados en PSScriptAnalyzer 1.18 porque PowerShell 6.0 había llegado al final de su vida útil.

Aunque la regla es configurable, siempre está habilitada. Utiliza uno de los siguientes métodos para evitar usar esta regla:

  • Crea un archivo de configuración de reglas personalizado para incluir solo las reglas que quieres o excluye las reglas que no quieres.
  • Añade los atributos apropiados de supresión de reglas a tu código para suprimir la regla en bloques de código específicos. Para más información, consulte la sección Suprimir reglas de Uso de PSScriptAnalyzer.