about_Group_Policy_Settings

简短说明

介绍 PowerShell 的组策略设置

长说明

PowerShell 包括组策略设置,可帮助你为企业环境中的 Windows 计算机定义一致的配置值。

PowerShell 组策略设置位于以下组策略路径中:

Computer Configuration\
  Administrative Templates\
    PowerShell Core

User Configuration\
  Administrative Templates\
    PowerShell Core

计算机配置路径中的组策略设置优先于用户配置路径中的组策略设置。

PowerShell 7 在 $PSHOME 中添加组策略模板和安装脚本。

组策略工具使用管理模板文件(.admx.adml),以在用户界面中填充策略设置。 这样,管理员就能管理基于注册表的策略设置。 InstallPSCorePolicyDefinitions.ps1 脚本在本地计算机上安装 PowerShell Core 管理模板

Get-ChildItem -Path $PSHOME -Filter *Core*Policy*
    Directory: C:\Program Files\PowerShell\7

Mode       LastWriteTime         Length Name
----       -------------         ------ ----
-a---      2/27/2020 12:38 AM     15861 InstallPSCorePolicyDefinitions.ps1
-a---      2/27/2020 12:28 AM      9675 PowerShellCoreExecutionPolicy.adml
-a---      2/27/2020 12:28 AM      6201 PowerShellCoreExecutionPolicy.admx

安装模板后,可以在组策略编辑器 (gpedit.msc) 中编辑这些设置。

策略如下所示:

  • 控制台会话配置:设置 PowerShell 在其中运行的配置终结点。
  • 启用模块日志记录:设置模块的 LogPipelineExecutionDetails 属性。
  • 启用 PowerShell 脚本块日志记录:启用所有 PowerShell 脚本的详细日志记录。
  • 启用脚本执行:设置 PowerShell 执行策略。
  • 启用 PowerShell 脚本:允许将 PowerShell 命令输入和输出捕获到基于文本的脚本中。
  • 设置 Update-Help 的默认源路径:将可更新帮助的源设置为目录,而不是 Internet。

每个 PowerShell 组策略设置都有“使用 Windows PowerShell 策略设置”字段。 此选项允许使用位于以下组策略路径中的类似 Windows PowerShell 组策略设置的值:

Computer Configuration\
  Administrative Templates\
    Windows Components\
      Windows PowerShell

User Configuration\
  Administrative Templates\
    Windows Components\
      Windows PowerShell

注意

这些 PowerShell 核心管理模板不包括 Windows PowerShell 的设置。 有关获取其他模板和配置组策略的详细信息,请参阅如何为 Windows 中的组策略管理模板创建和管理中心存储

控制台会话配置

控制台会话配置”策略设置指定 PowerShell 在其中运行的配置终结点。 可以是在本地计算机上注册的任何终结点,包括默认 PowerShell 远程处理终结点或具有特定用户角色功能的自定义终结点。

启用模块日志记录

启用模块日志记录”策略设置启用所选 PowerShell 模块的日志记录。 该设置在所有受影响的计算机上的所有会话中都有效。

如果启用此策略设置并指定一个或多个模块,PowerShell 会在事件查看器的 Windows PowerShell 日志中记录指定模块的管道执行事件。

如果禁用此策略设置,PowerShell 不会记录任何 PowerShell 模块的执行事件。

如果未配置此策略设置,则每个模块的 LogPipelineExecutionDetails 属性确定 PowerShell 是否记录该模块的执行事件。 默认情况下,所有模块的 LogPipelineExecutionDetails 属性设置为 $False

若要为模块启用模块日志记录,请使用以下命令格式。 模块必须导入到会话中,并且该设置仅在当前会话中有效。

Import-Module <Module-Name>
(Get-Module <Module-Name>).LogPipelineExecutionDetails = $true

若要为特定计算机上的所有会话启用模块日志记录,请将上述命令添加到“所有用户”PowerShell 配置文件 ($Profile.AllUsersAllHosts)。

有关模块日志记录的详细信息,请参阅 about_Modules

启用 PowerShell 脚本块日志记录

启用 PowerShell 脚本块日志记录”策略设置可以将所有 PowerShell 脚本输入记录到 Microsoft-Windows-PowerShell/Operational 事件日志中。 如果启用此策略设置,PowerShell 会记录命令、脚本块、函数和脚本的处理,无论是以交互方式调用还是通过自动化调用。

如果禁用此策略设置,则不会记录 PowerShell 脚本输入。 如果启用脚本块调用日志记录,则 PowerShell 在调用命令、脚本块、函数或脚本时也会记录事件。 启用调用日志记录会生成大量事件日志。

启用脚本执行

启用脚本执行”策略设置为计算机和用户设置执行策略。 执行策略确定是否允许脚本运行。

如果启用策略设置,则可以从以下策略设置中进行选择。

  • 仅允许签名的脚本”仅允许脚本在受信任的发布者签名时执行。 此策略设置等效于 AllSigned 执行策略。

  • 允许本地脚本和远程签名脚本”允许所有本地脚本运行。 源自 Internet 的脚本必须由受信任的发布者签名。 此策略设置等效于 RemoteSigned 执行策略。

  • 允许所有脚本”允许所有脚本运行。 此策略设置等效于 Unrestricted 执行策略。

如果禁用此策略设置,则不允许运行任何脚本。 此策略设置等效于 Restricted 执行策略。

如果未配置此策略设置,则 Set-ExecutionPolicy cmdlet 为计算机或用户设置的执行策略将确定是否允许脚本运行。 默认值为 Restricted

有关更多信息,请参阅 about_Execution_Policies

启用 PowerShell 听录

启用 PowerShell 听录”策略设置可将 PowerShell 命令的输入和输出捕获到基于文本的脚本中。 如果启用此策略设置,PowerShell 将为 PowerShell 和利用 PowerShell 引擎的任何其他应用程序启用听录日志记录。 默认情况下,PowerShell 会记录每个用户的 My Documents 目录的脚本输出,以及包含 PowerShell_transcript 的文件名与计算机名和开始时间。 启用此策略的效果与在每个 PowerShell 会话上调用 Start-Transcript cmdlet 的效果相同。

如果禁用此策略设置,则默认情况下,基于 PowerShell 的应用程序不会编写脚本日志。 Start-Transcript cmdlet 仍可以启用听录日志记录。

outputDirectory 设置为听录日志记录的共享位置以阻止用户查看其他用户或计算机的脚本时,限制对目录的访问。

设置 Update-Help 的默认源路径

设置 Update-Help 的默认源路径”策略设置为 Update-Help cmdlet 的 SourcePath 参数设置默认值。 此设置可防止用户使用 Update-Help cmdlet 从 Internet 下载帮助文件。

注意

此组策略设置显示在“计算机配置”和“用户配置”下。 但是,只有“计算机配置”下的组策略设置才有效。 忽略“用户配置”下的组策略设置。

Update-Help cmdlet 下载并安装 PowerShell 模块的最新帮助文件,并将其安装在计算机上。 默认情况下,Update-Help 从模块指定的 Internet 位置下载新的帮助文件。

但是,可以使用 Save-Help cmdlet 将最新的帮助文件下载到文件系统位置(例如网络共享),然后使用 Update-Help cmdlet 从文件系统位置获取帮助文件,并将其安装在计算机上。 Update-Help cmdlet 的 SourcePath 参数指定文件系统位置。

通过为 SourcePath 参数提供默认值,此组策略设置将 SourcePath 参数隐式添加到所有 Update-Help 命令。 用户可以通过输入其他文件系统位置来替代指定为默认值的特定文件系统位置。 但它们无法从 Update-Help 命令中删除 SourcePath 参数。

如果启用此策略设置,则可以为 SourcePath 参数指定默认值。 输入文件系统位置。

如果禁用或未配置此策略设置,则 Update-Help cmdlet 的 SourcePath 参数没有默认值。 用户可以从 Internet 或任何文件系统位置下载帮助。

有关详细信息,请参阅 about_Updatable_Help

Keywords

about_Group_Policies about_GroupPolicy

另请参阅