自动PowerShell脚本中的用户输入

时间:2015-04-01 07:01:08

标签: powershell cmdlets

我正在编写powershell脚本,它按顺序执行几个powershell cmdlet。其中一个cmdlet要求用户输入,如[Y / N]。我想将值永远传递给Y.有没有办法做到这一点?

1 个答案:

答案 0 :(得分:4)

听起来你需要更改$ConfirmPreference变量。

来自Get-Help about_Preference_variables的输出:

$ConfirmPreference
------------------
Determines whether Windows PowerShell automatically prompts you for
confirmation before running a cmdlet or function. 

When the value of the $ConfirmPreference variable (High, Medium, Low) is
less than or equal to the risk assigned to the cmdlet or function (High,
Medium, Low), Windows PowerShell automatically prompts you for confirmation          
before running the cmdlet or function.

If the value of the $ConfirmPreference variable is None, Windows PowerShell
never automatically prompts you before running a cmdlet or function.

因此,为了取消这些确认消息,只需执行以下操作:

$ConfirmPreference = "None"
<# script here #>

您也可以使用-Confirm:$false参数在每个cmdlet的基础上执行此操作:

Set-ADUser -Description $desc -Confirm:$false

请注意,这只适用于Cmdlet支持common parameter confirmation的情况。它不会对具有时髦的自制确认逻辑的本土cmdlet产生任何影响