Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Nivel de gravedad: Error
Estado por defecto: Desactivado
Descripción
Esta regla detecta elementos sintácticos que no son compatibles con las versiones objetivo de PowerShell que especificas. Cuando ejecutas esta regla desde PowerShell 3 o 4, no puede detectar sintaxis incompatible con esas versiones porque esas versiones no pueden analizar construcciones sintácticas más recientes.
Example
No conforme
El siguiente ejemplo utiliza la sintaxis de PowerShell 7. Si TargetVersions incluye 5.1 o es anterior, esta regla señala estas afirmaciones.
$message = $IsReady ? 'Ready' : 'Not ready'
$displayName = $name ?? 'Unknown'
Compliant
if ($IsReady) {
$message = 'Ready'
} else {
$message = 'Not ready'
}
if ($name -ne $null) {
$displayName = $name
} else {
$displayName = 'Unknown'
}
Configurar regla
@{
Rules = @{
PSUseCompatibleSyntax = @{
Enable = $true
TargetVersions = @(
'6.0',
'5.1',
'4.0'
)
}
}
}
Parameters
Enable
Este parámetro controla si ScriptAnalyzer comprueba el código con esta regla. Acepta un valor booleano. Para habilitar esta regla, establece este parámetro en $true. El valor por defecto es $false.
TargetVersions
Este parámetro especifica las versiones de PowerShell con las que tu código debe ser compatible. Acepta un array de cadenas de versión, como '7.0', '5.1', o '4.0'. ScriptAnalyzer señala una sintaxis que no está soportada en ninguna versión a la que aspires.