Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Nível de gravidade: Aviso
Descrição
Se um cmdlet declarar o SupportsShouldProcess atributo, ele também deverá chamar ShouldProcess. Uma violação é qualquer função que declara atributo, SupportsShouldProcess mas não faz chamadas ShouldProcess ou chama ShouldProcess , mas não declara SupportsShouldProcess.
Para obter mais informações, consulte os seguintes artigos:
- about_Functions_Advanced_Methods
- about_Functions_CmdletBindingAttribute
- Tudo o que você queria saber sobre o ShouldProcess
Como
Para corrigir uma violação dessa regra, chame ShouldProcess o método quando um cmdlet declarar SupportsShouldProcess atributo. Ou adicione o SupportsShouldProcess argumento de atributo ao chamar ShouldProcess.
Exemplo
Errado
function Set-File
{
[CmdletBinding(SupportsShouldProcess=$true)]
Param
(
# Path to file
[Parameter(Mandatory=$true)]
$Path
)
'String' | Out-File -FilePath $Path
}
Correto
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
}
}