当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 前 10 个组策略 PowerShell Cmdlet

作者:精品下载站 日期:2024-12-14 06:14:58 浏览:13 分类:玩电脑

前 10 个组策略 PowerShell Cmdlet


除了组策略管理控制台 (GPMC) 之外,Microsoft 还提供了一组可用于管理组策略的 Windows PowerShell cmdlet。要使用组策略 PowerShell cmdlet,您必须在将运行 cmdlet 的设备上安装 GPMC。要检查设备上是否安装了组策略 PowerShell 模块,请运行以下命令,该命令将显示安装该模块后可用的所有可用组策略 cmdlet。

Get-Command -Module GroupPolicy

创建新的组策略对象

让我们首先创建一个新的组策略对象 (GPO)。下面的命令创建一个名为“Netwrix PCs”的新 GPO,并添加注释来描述其用途:

New-GPO -Name "Netwrix PCs" -Comment "Client settings for Netwrix PCs"

该命令创建一个没有任何设置的空 GPO。如果您在 Active Directory 域中配置了入门 GPO,则可以根据其设置创建新的 GPO。以下命令根据“Windows 10 MS 安全设置”GPO 创建一个名为“Netwrix PCs”的新 GPO:

New-GPO -Name "Netwrix PCs" -StarterGPOName "Windows 10 MS Security Settings"

您可以选择使用管道将 GPO 链接到域、域控制器的组织单位 (OU) 或站点。以下命令创建一个新的 GPO 并将其链接到 ad.contoso.com 域中的客户端 OU:

New-GPO -Name "Netwrix PCs" | New-GPLink -Target "ou=clients,dc=ad,dc=contoso,dc=com"

要取消链接 GPO,请使用 Remove-GPLink cmdlet:

Remove-GPLink -Name "Netwrix PCs" -Target "ou=clients,dc=ad,dc=contoso,dc=com"

[玩转系统] 前 10 个组策略 PowerShell Cmdlet

图 1. 如何链接和取消链接 GPO

获取有关 GPO 的信息

创建 GPO 后,您可以使用 Get-GPO 返回 GPO 状态、创建时间和上次修改时间等信息:

Get-GPO -Name "Netwrix PCs"

如果您需要更多信息,请将 Get-GPO 创建的对象通过管道传输到 Get-GPOReport。下面的脚本创建一个 HTML 报告,其中提供有关 GPO 的信息,类似于您在组策略管理控制台中看到的信息:

Get-GPO -Name "Netwrix PCs" | Get-GPOReport -ReportType HTML -Path c:tempreport.html

[玩转系统] 前 10 个组策略 PowerShell Cmdlet

图 2. 包含有关特定 GPO 的详细数据的 HTML 报告

配置组策略设置

如果您知道基于注册表的组策略设置的位置,则可以使用 Set-GPRegistryValue cmdlet 来配置它。基于注册表的组策略设置是显示在 GPMC 中的管理模板下的设置。 Set-GPRegistryValue 还可用于设置组策略设置未涵盖的注册表值。例如,如果您想要为没有组策略 ADMX 文件的第三方应用程序配置注册表设置,Set-GPRegistryValue 是配置所需设置的快速方法。以下命令为登录用户设置 300 秒的屏幕保护程序超时:

Set-GPRegistryValue -Name "Netwrix PCs" -Key "HKCUSoftwarePoliciesMicrosoftWindowsControl PanelDesktop" -ValueName ScreenSaveTimeOut -Type DWord -Value 300

您可以使用 Set-GPRegistryValue 指定计算机配置或用户配置设置。下面的 -Key 参数中的注册表路径以“HKCU”(代表“HKEY_CURRENT_USER”)开头。如果您想配置计算机设置,请将“HKCU”替换为“HKLM”(扩展为 HKEY_LOCAL_MACHINE)。

要获取有关 GPO 中配置的注册表项的详细信息,请使用 Get-GPRegistryValue:

Get-GPRegistryValue -Name "Netwrix PCs" -Key "HKCUSoftwarePoliciesMicrosoftWindowsControl PanelDesktop"

[玩转系统] 前 10 个组策略 PowerShell Cmdlet

图 3. 如何获取有关 GPO 中配置的注册表项的详细信息

要从 GPO 中删除注册表设置,请使用Remove-GPRegistryValue:

Remove-GPRegistryValue -Name "Netwrix PCs" -Key "HKCUSoftwarePoliciesMicrosoftWindowsControl PanelDesktop" -ValueName ScreenSaveTimeOut

如果您决定使用首选项而不是策略来设置注册表项,上述三个 cmdlet 具有等效的组策略首选项:Set-GPPrefRegistryValue、Get-GPPrefRegistryValueRemove-GPPrefRegistryValue

应用组策略设置

如果您的 GPO 链接到域、OU 或站点,它将应用于其链接位置下方的用户和计算机对象。但如果您想在远程服务器或其他设备上强制执行组策略更新,则可以使用 Invoke-GPUpdate。运行不带任何参数的 Invoke-GPUpdate 将强制更新本地计算机上的用户和计算机配置设置。以下命令强制在 server1 上仅针对用户配置设置进行组策略更新:

Invoke-GPUpdate -Computer "adserver1" -Target "User"

检查哪些 GPO 应用于用户或计算机

要获取有关哪些 GPO 应用于用户或计算机的信息,您可以使用 Get-GPResultantSetOfPolicy cmdlet 生成策略结果集 (RSoP) 报告。以下命令为名为“dc1”的计算机生成一份报告,并将结果写入 c:temp 目录:

Get-GPResultantSetOfPolicy -Computer dc1 -ReportType HTML -Path c:tempdc1rsop.html

[玩转系统] 前 10 个组策略 PowerShell Cmdlet

图 4. 如何获取有关哪些 GPO 应用于用户或计算机的信息

PowerShell cmdlet 对于管理组策略非常有用。然而,使用 PowerShell 配置 GPO 内部的设置并不容易,因为组策略设置在设计时并未考虑基于文本的配置。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯