为服务帐户设置 PowerShell 执行策略

为服务帐户设置 PowerShell 执行策略

我想调整服务帐户(即 IIS 用户,更不用说那些新的 SSIS 虚拟帐户)的 PowerShell 执行策略。但是,看起来您只能像这样在系统范围内调整策略

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

或者对于当前用户,像这样

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

我是否看错了地方,可以在注册表中找到它吗,或者它是一个组策略?

正确的做法是什么?

答案1

如帮助文件中所定义。

执行策略

范围 您可以设置仅在特定范围内有效的执行策略。范围的有效值为 MachinePolicy、UserPolicy、Process、CurrentUser 和 LocalMachine。设置执行策略时,LocalMachine 是默认值。范围值按优先顺序列出。优先的策略在当前会话中有效,即使在较低优先级设置了更严格的策略。

机器政策由组策略为计算机的所有用户设置。

用户策略由计算机当前用户的组策略设置。

过程Process 作用域仅影响当前 PowerShell 会话。执行策略保存在环境变量 $env:PSExecutionPolicyPreference 中,而不是注册表中。关闭 PowerShell 会话时,变量和值将被删除。

当前用户执行策略仅影响当前用户。它存储在 HKEY_CURRENT_USER 注册表子项中。

本地机器执行策略影响当前计算机上的所有用户。它存储在 HKEY_LOCAL_MACHINE 注册表子项中。

但是,包括 ExecutionPolicy 设置的强制执行的域范围 GPO 将优先于您设置的任何内容。

答案2

我更喜欢三种方法,并且在这个 SO 问题中还有其他方法更改 PS 执行策略

建造机器

从 CMD(或 bash)运行

PowerShell -NonInteractive -ExecutionPolicy RemoteSigned -File "X:\Jenkins\path to your file\your file.ps1"

或者

PowerShell -NonInteractive -ExecutionPolicy RemoteSigned -File ".\your file.ps1"

或者

PowerShell -NonInteractive -ExecutionPolicy RemoteSigned "& '.\your file.ps1'"

我认为其他方法也很好但有点脆弱,除非您使用 docker。

使用 Windows 启动功能覆盖域控制器组策略

它使用一组脚本、CMD 和 PowerShell -描述

LocalMachine 策略未启用

来源

以管理员身份运行
添加组策略对象编辑器

在左侧边栏中
本地计算机策略
计算机配置
管理模板
Windows 组件
Windows PowerShell
并双击启用脚本执行

在此处输入图片描述

相关内容