powershell 无法直接查询本地安全组策略,需借助 secedit 导出本地策略、gpresult 查看生效策略、get-gpo 管理 gpo 安全设置,并用 gpupdate 刷新策略。
powershell 本身不直接提供“查询本地安全组策略”的原生命令,因为组策略(尤其是安全策略)的核心管理接口是 组策略管理控制台(gpmc) 和 本地组策略编辑器(gpedit.msc)。powershell 的角色是辅助——它能读取、导出、应用或刷新已配置的策略,但不能像图形界面那样直观浏览完整的安全策略树(如账户策略、本地策略、公钥策略等)。真正管理本地安全策略,需结合 secedit、gpresult 和部分 gpo 相关 cmdlet。
查看当前生效的本地安全策略设置
使用 secedit 命令导出当前配置为文本文件,便于检查:
-
secedit /export /cfg C:\temp\security.cfg—— 导出本地安全策略到 cfg 文件(需管理员权限) - 导出后可用
Get-Content C:\temp\security.cfg查看内容,重点关注[System Access]、[Privilege Rights]、[Event Audit]等节 - 注意:该命令只反映 本地安全策略(Local Security Policy),不包含组策略对象(GPO)中定义的更高级别策略
查询组策略应用结果(含安全相关设置)
要确认哪些安全策略(如密码策略、用户权限分配)实际生效,用 gpresult:
-
gpresult /H C:\temp\gpreport.html—— 生成 HTML 报告,含计算机和用户策略详情,包括安全设置部分 -
gpresult /Scope Computer /v—— 以详细模式显示计算机端策略,含“Security Settings”段落 - 该命令反映的是 最终合并策略(包括本地、域、OU 策略),比单独查 secedit 更全面
管理组策略对象(GPO)中的安全设置
若你已在域环境或使用本地 GPO(通过 gpedit.msc 创建),PowerShell 可配合 GPMC 模块操作:
- 确保已安装 GroupPolicy 模块(Windows Server 默认含,Windows 10/11 需安装 RSAT:“组策略管理”)
-
Get-Gpo -Name "Default Domain Policy"或Get-Gpo -Guid "{...}"获取 GPO 对象 -
Get-GPOReport -Guid <gpo-guid> -ReportType Html -Path C:\report.html</gpo-guid>导出含安全配置的完整报告 - 修改安全策略仍需通过
gpedit.msc或 GPMC 图形界面;PowerShell 不提供直接设置“审核策略”或“账户锁定阈值”的 cmdlet
刷新与验证策略状态
策略更改后需手动刷新才能生效:
-
gpupdate /force—— 强制更新组策略(含安全设置),推荐加/boot参数重启后生效某些策略 -
rsop.msc(Resultant Set of Policy)—— 图形化工具,可实时查看当前用户/计算机的最终策略结果,比 PowerShell 更直观 - 验证关键项:如运行
net accounts查看密码策略是否更新,或whoami /priv检查用户权限是否按策略分配











