未调用时设置执行策略错误
Set-ExecutionPolicy Error when not being called
当我 运行 来自我服务器上的 .ps1 文件的任何脚本时,我收到一个关于 Set-ExcutionPolicy
成功但被更高范围覆盖的错误。
但是,我 运行ning 中的代码 none 与执行策略或更改它们有任何关系。知道为什么我会收到此错误吗?
这是在 Windows 2012 R2 服务器上,所有级别的执行策略都设置为远程签名。我 运行正在使用 PowerShell V4.0
如果我打开 PowerShell 或 ISE 并输入它完成的命令而不显示错误,它只会在我尝试 运行 来自 .ps1 文件的脚本时发生。
这是错误:
Set-ExecutionPolicy : Windows PowerShell 更新了您的执行策略
成功,但该设置被定义在更多位置的策略覆盖
具体范围。由于覆盖,您的 shell 将保留其当前
RemoteSigned 的有效执行策略。输入 "Get-ExecutionPolicy -List"
查看您的执行策略设置。欲了解更多信息,请参阅
"Get-Help Set-ExecutionPolicy"。
在 line:1 char:46
+ if((Get-ExecutionPolicy) -ne 'AllSigned') { Set-ExecutionPolicy -Scope Process ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 类别信息:PermissionDenied: (:) [Set-ExecutionPolicy], SecurityException
+ FullyQualifiedErrorId : ExecutionPolicyOverride,Microsoft.PowerShell.Commands.SetExecutionPolicyCommand
.ps1 文件的 "Run with PowerShell" 上下文菜单条目调用以下命令行:
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" "-Command" "if((Get-ExecutionPolicy ) -ne 'AllSigned') { Set-ExecutionPolicy -Scope Process Bypass }; & '%1'"
它存储在注册表项 HKCU\Microsoft.PowerShellScript.1\Shell[=12=]\Command
中。由于您通过组策略定义了执行策略,因此只要您通过其上下文菜单 运行 PowerShell 脚本,在 Process 范围内设置冲突的执行策略会导致您观察到的错误。
将注册表中的命令行更改为如下内容:
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -File "%L"
错误将消失。
当我 运行 来自我服务器上的 .ps1 文件的任何脚本时,我收到一个关于 Set-ExcutionPolicy
成功但被更高范围覆盖的错误。
但是,我 运行ning 中的代码 none 与执行策略或更改它们有任何关系。知道为什么我会收到此错误吗?
这是在 Windows 2012 R2 服务器上,所有级别的执行策略都设置为远程签名。我 运行正在使用 PowerShell V4.0
如果我打开 PowerShell 或 ISE 并输入它完成的命令而不显示错误,它只会在我尝试 运行 来自 .ps1 文件的脚本时发生。
这是错误:
Set-ExecutionPolicy : Windows PowerShell 更新了您的执行策略 成功,但该设置被定义在更多位置的策略覆盖 具体范围。由于覆盖,您的 shell 将保留其当前 RemoteSigned 的有效执行策略。输入 "Get-ExecutionPolicy -List" 查看您的执行策略设置。欲了解更多信息,请参阅 "Get-Help Set-ExecutionPolicy"。 在 line:1 char:46 + if((Get-ExecutionPolicy) -ne 'AllSigned') { Set-ExecutionPolicy -Scope Process ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + 类别信息:PermissionDenied: (:) [Set-ExecutionPolicy], SecurityException + FullyQualifiedErrorId : ExecutionPolicyOverride,Microsoft.PowerShell.Commands.SetExecutionPolicyCommand
.ps1 文件的 "Run with PowerShell" 上下文菜单条目调用以下命令行:
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" "-Command" "if((Get-ExecutionPolicy ) -ne 'AllSigned') { Set-ExecutionPolicy -Scope Process Bypass }; & '%1'"
它存储在注册表项 HKCU\Microsoft.PowerShellScript.1\Shell[=12=]\Command
中。由于您通过组策略定义了执行策略,因此只要您通过其上下文菜单 运行 PowerShell 脚本,在 Process 范围内设置冲突的执行策略会导致您观察到的错误。
将注册表中的命令行更改为如下内容:
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -File "%L"
错误将消失。