Compartir a través de


UseCompatibleCmdlets

Nivel de gravedad de : advertencia

Descripción

Esta regla marca los cmdlets que no están disponibles en una determinada edición y versión de PowerShell en un sistema operativo determinado. Funciona comparando un cmdlet con un conjunto de listas de permitidos que se incluyen con PSScriptAnalyzer. Se pueden encontrar en /path/to/PSScriptAnalyzerModule/Settings. Estos archivos tienen el formato , <psedition>-<psversion>-<os>.json donde <psedition> puede ser Core o Desktop, <os> puede ser Windows, Linux o MacOS, y <psversion> es la versión de PowerShell. Para habilitar la regla para comprobar si el script es compatible con PowerShell Core en windows, coloque el siguiente archivo de configuración:

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

El parámetro compatibility es una lista que contiene cualquiera de las siguientes

  • desktop-2.0-windows
  • desktop-3.0-windows
  • desktop-4.0-windows (tomado de Windows Server 2012R2)
  • desktop-5.1.14393.206-windows
  • core-6.1.0-windows (tomado de Windows 10 - 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

Normalmente, las versiones revisadas de PowerShell tienen los mismos datos de cmdlet, por lo que solo se proporcionan configuraciones de versiones principales y secundarias de PowerShell. También puede crear un archivo de configuración personalizado con el script New-CommandDataFile.ps1. Coloque el archivo .json creado en la carpeta Settings de la carpeta PSScriptAnalyzer módulo. A continuación, los valores del parámetro compatibility son solo el nombre de archivo. Tenga en cuenta que los archivos de core-6.0.2-* se quitaron en PSScriptAnalyzer 1.18 desde que PowerShell 6.0 alcanzó su fin de vida.