为具体命名的PowerShell命令提供警告

时间:2018-03-12 17:53:46

标签: powershell warnings global

是否可以配置 PowerShell 会话,以便在我运行特定命名的命令/功能时发出警告?

作为一个例子(我每次使用以 " Set - " 开头的命令时都希望收到警告) :

       If I run a Get-foo command, it runs that command without warning.
       If I run a Set-foo command, then it provides a warning about changes being made.

1 个答案:

答案 0 :(得分:4)

您可以使用$PSDefaultParameterValues变量来定义默认值,许多Set-命令包含'Confirm'参数或'WhatIf'参数。你可以这样做:

$PSDefaultParameterValues = @{
    "Set-*:Confirm"=$true
    "Set-*:WhatIf"=$true
}

此格式为哈希表,其中键为“:”,值为您要设置的值。允许使用通配符来表示cmdlet名称,因此您可以轻松地将设置应用于所有Set- cmdlet。

如果你想使用'WhatIf',你可以简单地使用-WhatIf:$false运行命令,如果你想让命令实际做事而不是只是告诉你它会做什么。

Get-Item C:\Temp\*.docx | Copy-Item -Dest "$home\desktop" -WhatIf:$false

有关该主题的详情,请参阅this page