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: advertencia
Descripción
Si un cmdlet declara el SupportsShouldProcess atributo , también debe llamar a ShouldProcess. Una infracción es cualquier función que declara el SupportsShouldProcess atributo pero no realiza ninguna llamada a o llama ShouldProcess a ShouldProcess , pero no declara SupportsShouldProcess.
Para más información, consulte los siguientes artículos.
- about_Functions_Advanced_Methods
- about_Functions_CmdletBindingAttribute
- Todo lo que le interesa saber sobre ShouldProcess
Cómo
Para corregir una infracción de esta regla, llame al ShouldProcess método cuando un cmdlet declare el SupportsShouldProcess atributo . O bien, agregue SupportsShouldProcess el argumento de atributo al llamar a ShouldProcess.
Ejemplo
Incorrecto
function Set-File
{
[CmdletBinding(SupportsShouldProcess=$true)]
Param
(
# Path to file
[Parameter(Mandatory=$true)]
$Path
)
'String' | Out-File -FilePath $Path
}
Correcto
function Set-File
{
[CmdletBinding(SupportsShouldProcess=$true)]
Param
(
# Path to file
[Parameter(Mandatory=$true)]
$Path,
[Parameter(Mandatory=$true)]
[string]$Content
)
if ($PSCmdlet.ShouldProcess($Path, ("Setting content to '{0}'" -f $Content)))
{
$Content | Out-File -FilePath $Path
}
else
{
# Code that should be processed if doing a WhatIf operation
# Must NOT change anything outside of the function / script
}
}