如何使用脚本编辑本地组策略?

P. *_*gli 17 scripting windows powershell group-policy

我必须为不在 Windows 域中的几台机器设置本地组策略设置和本地安全策略。到目前为止,我是通过在 gpedit 中手动设置键来完成的。由于过渡到 Windows 10,我想自动化并使用批处理或 PowerShell 脚本来设置它们。如果这可以在没有 3rd 方工具的情况下完成,那就太好了。

如何使用 Powershell 或批处理文件设置这些策略?

提前感谢您的回答!

彼得

小智 11

您可以在 PowerShell 中使用Set-ItemProperty注册表提供程序来完成;例如要禁用 Windows 更新访问,您可以运行:

Set-ItemProperty -Path HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate -Name DisableWindowsUpdateAccess -Value 1
Run Code Online (Sandbox Code Playgroud)

(HKLM:\ 是“Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\”注册表驱动器路径的标准别名。)

组策略注册表项列表可以从 Microsoft下载 Windows 和 Windows Server 的组策略设置参考 | 微软下载中心

  • 手动更改注册表与设置策略不同。当相应的注册表值在 gpedit 中设置并且用户更改时,条目 gpupdate 将在启动时强制设置值。如果我使用 regedit 在注册表中设置 fpr 机器策略的值,这不会导致策略中的正确条目。因此,如果由于任意原因更改了 get 值,gpupdate 将不会更正此设置。但这就是我正在寻找的。那么,是否有可能使用批处理脚本或 PowerShell 脚本来设置 *.pol 文件? (8认同)
  • 非常感谢!但通过直接更改注册表,如果由于任何原因发生更改,策略将不会强制执行实际的注册表值。那么是否可以设置组策略,然后相应地设置注册表? (2认同)
  • 正如所问的那样,这不会设置本地组策略。注册表设置被本地策略(和组策略,如果机器在域中)覆盖,所以这个答案不会产生预期的结果。见[这个答案](https://superuser.com/a/1192458/245038) (2认同)

小智 9

PolicyFileEditor是一个 PowerShell 模块,用于管理本地 GPO registry.pol 文件。

Brandon Padgett 提供了一个示例用法

$RegPath = 'Software\Policies\Microsoft\Windows\Control Panel\Desktop'
$RegName = 'ScreenSaverIsSecure'
$RegData = '1'
$RegType = 'String'


Set-PolicyFileEntry -Path $UserDir -Key $RegPath -ValueName $RegName -Data $RegData -Type $RegType
Run Code Online (Sandbox Code Playgroud)