我正在强化 Windows Server 2012 R2 机器以提供安全网页,并遵循列出多个本地组策略设置和注册表设置的指南。
在研究如何自动化此过程时,我只找到使用 Powershell 导出和导入组策略的方法,如下所示: https://technet.microsoft.com/en-us/library/ee461027.aspx
此服务器计算机未加入域,并且未安装组策略管理控制台。遗憾的是,我尚未找到使用自动方法(脚本、代码)更改本地组策略设置的资源,例如:
本地组策略编辑器->计算机配置->Windows 设置->安全设置->高级审核策略配置->系统审核策略->全局对象访问审核->定义此策略->配置
本地组策略编辑器 -> 计算机配置 -> Windows 设置 -> 安全设置 -> 本地策略 -> 安全选项 -> 网络访问:不允许匿名枚举 SAM 帐户和共享
我的最终目标是创建一个流程或脚本,可以在服务器上设置大约 100 个不同的注册表设置和本地组策略设置,以便将其锁定。避免手动配置每一个。
答案1
我已经能够研究并找到实现这个目标所需的东西!我找到的最佳指导资源如下:
http://www.itninja.com/blog/view/using-secedit-to-apply-security-templates
本地组策略设置和安全设置可以通过以下几个步骤进行转移:
1.安全设置:
在本地组策略编辑器(编辑组策略)中右键单击“安全设置”,然后选择“导出策略...”保存 .inf 文件并传输到要使用相同设置的计算机。在新计算机上,打开命令提示符并使用 secedit 命令
安全编辑/配置/db c:\windows\security\local.sdb /cfg {.\path\to.inf}
检查返回的所有错误,我正在处理尝试设置新机器上不存在的权限的用户帐户。
2. 本地组策略的其余部分
找到 %systemroot%\system32\grouppolicy\ 隐藏文件夹并将子文件夹复制到目标计算机的同一位置。
打开命令提示符并使用
更新/力量
3. 遗骸
对于杂项,我能够使用 powershell 命令来添加或编辑注册表项:
添加:
新物品-路径 HKCU:\Software -名称 hsg –Force
编辑:
PS C:> 推送位置
PS C:> 设置位置 HKCU:\Software\hsg
PS HKCU:\Software\hsg> Set-ItemProperty .newproperty “mynewvalue”
答案2
对于非域计算机,您可以通过本地安全策略(而不是组策略)设置这些内容。您可以使用适当的 MMC 导入和导出这些内容 ( secpol.msc
)
答案3
使用 SCM 中的 GPOpack 工具将设置部署到未加入域的计算机。如果您有不在组策略中的直接注册表编辑,则必须添加 reg.exe 命令
答案4
后期添加:考虑使用审计工具脚本。有人写了一个powershell 示例使用 auditpol 检查配置是否符合预期值。
环境:
auditpol /set /category:Logon/Logoff /subcategory:"Account Lockout" /Success:enable /failure:disable
获取:
PS C:\Windows\system32> auditpol /get /category:* /r
Machine Name,Policy Target,Subcategory,Subcategory GUID,Inclusion Setting,Exclusion Setting
DESKTOP-7Q0D9I7,System,Logon,{0CCE9215-69AE-11D9-BED3-505054503030},Success and Failure,
DESKTOP-7Q0D9I7,System,User / Device Claims,{0CCE9247-69AE-11D9-BED3-505054503030},No Auditing,
...