■ 威海职业学院 赵永华
编者按:采用PowerShell可以实现生成组策略安全报告的功能,这有时对于我们日常网络安全管理来说,也是非常有益的事情。
图1 PowerShell生成组策略对象HTML报告
PowerShell在组策略管理方面的命令非常丰富,它可以新建组策略对象,修改组策略设置等等。但它还能够生成组策略安全报告,这项功能容易被人忽略,却颇具实用价值。
在PowerShell中有一个专门生成有关组策略对象报告的命令即Get-GPOReport。在生成该报告时,首先需要提供组策略对象名称比如Default Domain Policy;其次还须设定报告类型,此时选项为HTML与XML,最后给出该报告存放的位置。我们不妨生成HTML格式的报告,其完整命令如下所示:
G e t-G P O R e p o r t‘Default Domain Policy’-ReportType HTML -Path C:DataGPReport.html
报告内容如图1,从报告中看到其内容全面详实并不亚于组策略编辑器。
类似地,可以生成XML格式的报告,其命令如下:
G e t-G P O R e p o r t‘Default Domain Policy’-ReportType XML -Path C:DataGPReport.xml
如果我们的目标是在PowerShell中解析数据,则不需将报告数据写入文件,此时可将报表写入变量而非写入文件。在PowerShell中,变量通常通过键入一个符号、名称和一个等号($MyReport =)来定义。 但如果变量要存储XML数据,可在变量定义之前的括号中包含单词XML,导致PowerShell将变量内容视为XML数据而非纯文本,命令如下:
[X M L]$M y R e p o r t= G e t-G P O R e p o r t‘Default Domain Policy’-ReportType XML
将报告写入变量后,可使用PowerShell显示其中信息。例如输入“$MyReport.GPO”后会看到该对象的各类信息,如机器和用户等。
如果觉得上述信息过于笼统庞杂,可进一步显示某个栏目中详细内容,比如我们关心安全状况,那么可以输入以下PowerShell命令:
$My Report.GP O.SecurityDescriptor
还可以更细,比如想要了解安全设置中的权限,则可以输入以下命令:
$My Report.GP O.SecurityDescriptor.Permissions