是否可以使用 powershell 脚本检查本地安全策略?

我正在为我们公司的学徒做一个任务。在该任务中,学徒需要在笔记本上配置本地安全策略,该策略由任务管理员提供。因此,为了轻松检查它们,我认为脚本会很好。但经过近 14 小时的谷歌搜索,我没有发现任何好的或有帮助的东西......

我也尝试了一些微软的文档,但那些并没有真正帮助我......他们更让我感到困惑。

stack overflow Is it possible to check local security policies with a powershell script?
原文答案
author avatar

接受的答案

虽然有一些 com 对象允许使用域策略,但对于本地策略,您必须使用 SECEDIT 导出数据,如评论中所述。然后您可以在 Powershell 中导入导出的数据并对其进行处理。最后,您仍可以使用 SECEDIT 导入新数据。

这是一个小例子:

# Export Local Policies
secedit /export /cfg c:tempsecpol.cfg

# Work with Local Policies data
$secpol = (Get-Content C:tempsecpol.cfg)

$Value = $secpol | where{ $_ -like "MaximumPasswordAge*" }
$Index = [array]::IndexOf($secpol,$Value)

if($Value -ne "MaximumPasswordAge = 90") {
    $secpol.item($Index) = "MaximumPasswordAge = 90"
}

# Create new policies file
$secpol | out-file c:tempsecpol.cfg -Force

# Import modified Local Policies
secedit /configure /db c:windowssecuritylocal.sdb /cfg c:tempsecpol.cfg /areas SECURITYPOLICY

请注意,此方法有几个限制,因为并非所有本地策略都由 SECEDIT 导出。

另一种方法是使用一个名为 PolicyFileEditor 的模块。你可以在这里找到它: https://www.powershellgallery.com/packages/PolicyFileEditor/2.0.2


答案: