如何在PowerShell中悄悄地设置执行策略而不询问?

Kon*_*ten 11 powershell

我正在运行以下命令。

Set-ExecutionPolicy -ExecutionPolicy Bypass
Run Code Online (Sandbox Code Playgroud)

它询问我是否确定,如果我确定,它就会按照预期设置策略。然而,我想知道我应该如何执行该命令,以便计算机不要求我确认。

我用谷歌搜索了这个问题,有一个标志-Confirm,但使用它会产生一个额外的确认请求。它的反面是什么,即类似这样的东西(有意为庸俗的打字错误)?

Set-ExecutionPolicy -ExecutionPolicy Bypass -JustDoWhatWeTellYouForDucksSake
Run Code Online (Sandbox Code Playgroud)

Dee*_*S1X 10

这是一个稍微好一点的方法,因为即使您没有本地管理员权限,这个方法也可以工作。但是,它仅适用于当前的 Powershell 会话。

Set-ExecutionPolicy Bypass -scope Process -Force
Run Code Online (Sandbox Code Playgroud)


Mik*_*cio 4

正如@Briantist 在这种情况下指出的那样,您想使用-Force开关来抑制提示。但是,为了将来参考,在大多数情况下,从大多数 cmdlet 中删除确认提示的正确语法是-Confirm:$False

  • 我认为,在大多数情况下,令人困惑的是,“-Confirm:$false”并不是正确的方法,而且通常不起作用。这是专门针对确认影响导致特定类型的确认提示的情况。始终提示的 Cmdlet 通常使用“-Force”来抑制所有提示。根据我的经验,“-Force”几乎总是正确的使用方式。 (3认同)
  • @briantist 在上面的评论中写的内容对我来说听起来更正确。`-Confirm` 对应于 `ConfirmImpact` [参数属性](https://msdn.microsoft.com/en-us/library/system.management.automation.confirmimpact.aspx) 和 `$ConfirmPreference` 变量。 (2认同)