Новинка от Powershell: как автоматически принимать подтверждение - PullRequest
14 голосов
/ 05 августа 2011

Я пытаюсь создать новый каталог на сетевом диске с помощью скрипта powershell, но он продолжает запрашивать меня

"Подтвердите: Вы уверены, что хотите выполнить это действие ...."

Есть ли способ переопределить это, чтобы он не спрашивал меня, так как я запускаю этот скрипт из веб-интерфейса.

Вот мой звонок:

New-Item $rollbackDirectory -type Directory -Force

Он делает то же самое, с параметром -Force или без него

Я тоже попробовал этот формат без удачи

New-Item -name $rollbackName -itemtype directory -path $rollbackdrive -Debug -Force

Ответы [ 2 ]

17 голосов
/ 05 августа 2011

-confirm необходимо указывать только в том случае, если вы хотите, чтобы командлет запрашивал подтверждение.Будет ли командлет сам по себе запрашивать подтверждение или нет, зависит от разработчика командлета, который может установить высокий, средний и низкий значения для командлета в зависимости от его эффекта.На основании значения $ConfirmPreference вы автоматически получите подтверждение для командлета.Значение по умолчанию для $ConfirmPreference является высоким, а уровень, установленный для New-Item, является средним.Поэтому, если New-Item запрашивает подтверждение, значение $ConfirmPreference должно быть изменено на среднее или низкое.

Измените его, используя $ConfirmPreference="high" или даже $ConfirmPreference="none", чтобы New-Item не выдавалось, или ваше решение -confirm:$false также работает, переопределяя $ConfirmPreference.

Здесь объяснено отлично: http://blogs.msdn.com/b/powershell/archive/2006/12/15/confirmpreference.aspx

Надеюсь, это прояснит ситуацию.

10 голосов
/ 05 августа 2011

Я закончил тем, что попробовал это (хотя я прочитал в другом ТАКом посте, что это не правильно):

New-Item $rollbackDirectory -type Directory -Force -Confirm:$false

И это сработало!Надеюсь, что это поможет другим с той же проблемой

...