我正在强化 Windows Server 2012 R2 机器以提供安全网页,并遵循列出多个本地组策略设置和注册表设置的指南。
在研究如何自动化此过程时,我只能找到使用 Powershell 导出和导入组策略的方法,如下所示: https ://technet.microsoft.com/en-us/library/ee461027.aspx
此服务器计算机未加入域,也未安装组策略管理控制台。不幸的是,我还没有找到使用自动方法(脚本、代码)来更改本地组策略设置的资源,例如:
本地组策略编辑器 -> 计算机配置 -> Windows 设置 -> 安全设置 -> 高级审核策略配置 -> 系统审核策略 -> 全局对象访问审核 -> 定义此策略 -> 配置
本地组策略编辑器 -> 计算机配置 -> Windows 设置 -> 安全设置 -> 本地策略 -> 安全选项 -> 网络访问:不允许匿名枚举 SAM 帐户和共享
我的最终目标是创建一个进程或脚本,可以在服务器机器上设置大约 100 个不同的注册表设置和本地组策略设置,以便将其锁定。避免手动配置每一个。
我已经能够研究并找到我在这个目标上需要的东西!我从中找到最佳方向的资源如下:
http://www.itninja.com/blog/view/using-secedit-to-apply-security-templates
本地组策略设置和安全设置可以通过几个步骤进行传输:
1.安全设置:
右键单击本地组策略编辑器中的安全设置(编辑组策略)并选择导出策略... 保存 .inf 文件并传输到您希望使用相同设置的机器。在新机器上,打开命令提示符并使用 secedit 命令
查看任何返回的错误,我正在处理试图设置新机器上不存在的权限的用户帐户。
2. 本地组策略的其余部分
找到 %systemroot%\system32\grouppolicy\ 隐藏文件夹并将子文件夹复制到目标计算机的同一位置。
打开命令提示符并使用
3. 遗骸
对于杂项,我可以使用 powershell 命令添加或编辑注册表项:
添加:
编辑:
对于非域机器,您可以通过本地安全策略而不是组策略设置这些内容。而那些,您可以使用适当的 MMC (
secpol.msc
)导入和导出使用 SCM 中的 GPOpack 工具将设置部署到未加入域的计算机。如果您有不在组策略中的直接注册表编辑,则必须添加 reg.exe 命令
使用新的 LGPO.EXE 工具。它记录在案并可从此处下载: https ://blogs.technet.microsoft.com/secguide/2016/01/21/lgpo-exe-local-group-policy-object-utility-v1-0/
通过链接中的一些评论,它并不全面,它完全满足了我的需求。
它也适用于 Windows Server 2016,据报道 SCM 工具 3.0 中的 LocalGPO.Exe 不支持。事实上 LocalGPO.EXE 不再在 SCM 4.0 中提供,尽管在 SCM 中仍有指向它的帮助文本的链接!
后期添加:考虑使用auditpol.exe编写脚本。有人使用 auditpol 编写了一个powershell 示例,该示例根据预期值检查配置。
设置:
得到: