Intellij 没有为 powershell 选择正确的执行策略
Intellij not picking up correct execution policy for powershell
我将我的 Powershell 执行策略从 Restricted
更改为 RemoteSigned
。如果我打开一个新的 Powershell 终端并 运行 Get-ExecutionPolicy
我会返回 RemoteSigned
。
我还在 Intellij 中将 Powershell 设置为 运行,而不是默认的命令提示符。但是,当我在 Intellij 的终端中 运行 Get-ExecutionPolicy
时(注意:我在更改策略后重新启动了 Intellij)我仍然返回 Restricted
.
这是为什么?如何让 Intellij 获取我的实际执行策略?
PowerShell 执行策略有多个范围(MachinePolicy
、UserPolicy
、Process
、CurrentUser
、LocalMachine
)。您可以在内置的 PowerShell 帮助中阅读它们:Get-Help about_Execution_Policies
。但是该帮助中没有提到的是,LocalMachine
范围对于 x86 和 x64 是分开的。因此,如果您在 LocalMachine
范围内更改执行策略,如果您没有为 Set-ExecutionPolicy
cmdlet 指定 -Scope
参数则默认使用该范围,那么您必须执行两次:一次用于 x86 和一次用于 x64。
我将我的 Powershell 执行策略从 Restricted
更改为 RemoteSigned
。如果我打开一个新的 Powershell 终端并 运行 Get-ExecutionPolicy
我会返回 RemoteSigned
。
我还在 Intellij 中将 Powershell 设置为 运行,而不是默认的命令提示符。但是,当我在 Intellij 的终端中 运行 Get-ExecutionPolicy
时(注意:我在更改策略后重新启动了 Intellij)我仍然返回 Restricted
.
这是为什么?如何让 Intellij 获取我的实际执行策略?
PowerShell 执行策略有多个范围(MachinePolicy
、UserPolicy
、Process
、CurrentUser
、LocalMachine
)。您可以在内置的 PowerShell 帮助中阅读它们:Get-Help about_Execution_Policies
。但是该帮助中没有提到的是,LocalMachine
范围对于 x86 和 x64 是分开的。因此,如果您在 LocalMachine
范围内更改执行策略,如果您没有为 Set-ExecutionPolicy
cmdlet 指定 -Scope
参数则默认使用该范围,那么您必须执行两次:一次用于 x86 和一次用于 x64。