2012-05-16 71 views

回答

0

當我定義函數那樣:

function Test-WhatIf { 
[CmdletBinding(SupportsShouldProcess = $true)] 
param (
) 

    $WhatIfPreference 
    $PSBoundParameters.ContainsKey('WhatIf') 
} 

我得到$虛假或$ true,這取決於另外-WhatIf的到命令。 儘管這只是高級功能,但我不希望在編譯的命令中出現不同的行爲...您確定已正確實施SupportsShouldProcess嗎?

+0

非常感謝您的快速回復。這是我在.net(c#)中實現的自定義cmdlet。我怎樣才能以編程方式做到這一點?基本上我使用「PSCmdlet的對象GetVariableValue(字符串名稱)」。它總是返回錯誤。順便說一句,有沒有在C#$ PSBoundParameters.ContainsKey('WhatIf')的任何equalent? – Dreamer

+0

是的,我的事情我實現了supportsshouldprocess進程正確的確認/ whatif參數工作正常,當用戶通過他們。我聲明我的cmdlet具有以下屬性集:[Cmdlet(VerbsCommon.Remove,「EmcLun」, SupportsShouldProcess = true,ConfirmImpact = ConfirmImpact.High)]它只是我需要知道用戶已通過這些參數,但不知道如何在.net中以編程方式進行。 – Dreamer

+0

好吧,抓住VS並試圖在「正確」的cmdlet中找到相同的東西。你會在第二個線程上找到我的答案...... :) – BartekB

相關問題