Как изменить параметр подтверждения по умолчанию для командлета PowerShell?

Есть ли способ изменить параметр подтверждения по умолчанию для скрипта High Impact PowerShell?

Когда я реализую командлет и запускаю его, запрашивая подтверждение, например

MyPS

Confirm
Are you sure you want to perform this action?    
Performing operation "XYZ" on Target "123".
[Y] Yes [A] Yes to All [N] No [L] No to all [S] Suspend [?] Help (default is "Y"):

Как я могу изменить значение по умолчанию? Я хочу изменить значение по умолчанию с «Y» на «N».


person user3006883    schedule 19.11.2013    source источник


Ответы (1)


Немного непонятно, что вы пытаетесь спросить. Вы хотите знать, как установить глобальное значение по умолчанию (для данного сеанса PowerShell), чтобы подавить запросы подтверждения для командлетов, которые запрашивают подтверждение по умолчанию, чтобы вам не приходилось указывать -Confirm:$false каждый раз при их запуске? Установите переменную по умолчанию:

$ConfirmPreference = $false

Или вы спрашиваете, как изменить влияние подтверждения для определенного командлета? Объявите [CmdletBinding(ConfirmImpact = 'high')] в начале вашего скрипта. Обратите внимание, что если вы объявляете CmdletBinding, требуется блок param(), даже если он пуст.

person Adi Inbar    schedule 19.11.2013
comment
Я хочу получить подтверждение, однако что-то вроде [Y] Да [A] Да для всех [N] Нет [L] Нет для всех [S] Приостановить [?] Справка (по умолчанию N): - person user3006883; 19.11.2013
comment
[CmdletBinding(ConfirmImpact = 'high')] просто сделайте так, чтобы запросить подтверждение, но не позволяет изменить параметры по умолчанию в подтверждении. Параметр по умолчанию — Да ((по умолчанию — Y)), необходимо изменить его на Нет (по умолчанию — N) - person user3006883; 19.11.2013
comment
Ах... это совсем другое. Хороший вопрос... Я не знаю, как это изменить, но не могу сказать, что когда-либо изучал его. Обычно, если я не хочу использовать поведение по умолчанию, я добавляю if ($PSBoundParameters.Confirm) {$ConfirmPreference = 'SilentlyContinue'} в начале, а затем реализую свои собственные запросы подтверждения. Но, возможно, есть встроенный способ, если вы хотите внести такое незначительное изменение. - person Adi Inbar; 19.11.2013
comment
powershell по-прежнему запрашивает подтверждение дляset-winuserlanguagelist, даже если $confirmpreference равно 'none' (из четырех счетчиков). - person ; 06.09.2017