0
我想知道whatif參數是否已經傳遞給一個cmdlet。如何知道參數「whatif」是否以編程方式傳遞給客戶cmdlet?
爲前:刪除-mycmdlet -whatif
我試圖通過尋找變量的值做到這一點:WhatIfPreference。
但它總是產生錯誤。
你能告訴我怎麼知道whatif參數是否被傳入?
非常感謝你,
問候, 納雷什
我想知道whatif參數是否已經傳遞給一個cmdlet。如何知道參數「whatif」是否以編程方式傳遞給客戶cmdlet?
爲前:刪除-mycmdlet -whatif
我試圖通過尋找變量的值做到這一點:WhatIfPreference。
但它總是產生錯誤。
你能告訴我怎麼知道whatif參數是否被傳入?
非常感謝你,
問候, 納雷什
當我定義函數那樣:
function Test-WhatIf {
[CmdletBinding(SupportsShouldProcess = $true)]
param (
)
$WhatIfPreference
$PSBoundParameters.ContainsKey('WhatIf')
}
我得到$虛假或$ true,這取決於另外-WhatIf的到命令。 儘管這只是高級功能,但我不希望在編譯的命令中出現不同的行爲...您確定已正確實施SupportsShouldProcess嗎?
非常感謝您的快速回復。這是我在.net(c#)中實現的自定義cmdlet。我怎樣才能以編程方式做到這一點?基本上我使用「PSCmdlet的對象GetVariableValue(字符串名稱)」。它總是返回錯誤。順便說一句,有沒有在C#$ PSBoundParameters.ContainsKey('WhatIf')的任何equalent? – Dreamer
是的,我的事情我實現了supportsshouldprocess進程正確的確認/ whatif參數工作正常,當用戶通過他們。我聲明我的cmdlet具有以下屬性集:[Cmdlet(VerbsCommon.Remove,「EmcLun」, SupportsShouldProcess = true,ConfirmImpact = ConfirmImpact.High)]它只是我需要知道用戶已通過這些參數,但不知道如何在.net中以編程方式進行。 – Dreamer
好吧,抓住VS並試圖在「正確」的cmdlet中找到相同的東西。你會在第二個線程上找到我的答案...... :) – BartekB