-WhatIf
和 -Confirm
参数。它通过在执行更改之前调用 $PSCmdlet.ShouldProcess()
方法来实现此功能。这很好地解决了问题。
但我的 Cmdlet 是通过调用其他 Cmdlet 来实现的,而我无法将 -WhatIf
或-Confirm
参数传递给我调用的Cmdlets。
如何将 -WhatIf
和-Confirm
的值传递给我的Cmdlet调用的Cmdlets呢?
例如,如果我的Cmdlet是Stop-CompanyXyzServices
,并且它使用Stop-Service
来实现其操作,
如果将 -WhatIf
传递给 Stop-CompanyXyzServices
,则我希望它也被传递到 Stop-Service。是否可以实现呢?
$WhatIfPreference.IsPresent
已经生效。我不确定它是否适用于 OP 所需的解决方案。 - manojlds$ConfirmPreference.IsPresent
还是依赖于首选项变量的传递机制? - alecov-WhatIf
或-Confirm
)来代替函数和cmdlets。你需要注意这些开关是否被每个命令所支持,并且将调用它们包装在$PSCmdlet.ShouldProcess()
中。 - Charlie Joynt