Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Уровень серьезности: предупреждение
Описание
Если командлет объявляет SupportsShouldProcess атрибут, он также должен вызываться ShouldProcess. Нарушение — это любая функция, которая объявляет SupportsShouldProcess атрибут, но не вызывает ShouldProcess или не вызывает ShouldProcess , но не объявляет SupportsShouldProcess.
Дополнительные сведения см. в следующих статьях:
- about_Functions_Advanced_Methods
- about_Functions_CmdletBindingAttribute
- Все, что вы хотели знать о ShouldProcess
Как
Чтобы устранить нарушение этого правила, вызовите ShouldProcess метод, когда командлет объявляет SupportsShouldProcess атрибут. Или добавьте SupportsShouldProcess аргумент атрибута при вызове ShouldProcess.
Пример
Неправильно
function Set-File
{
[CmdletBinding(SupportsShouldProcess=$true)]
Param
(
# Path to file
[Parameter(Mandatory=$true)]
$Path
)
'String' | Out-File -FilePath $Path
}
Правильно
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
}
}