■ 威海職業學院 趙永華
編者按:采用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