2010/05/24

サーバのグループポリシーのリンク監視の方法を模索してみる その2

前回の続き
前回は、OUのリストを取得し、そこに貼られているGPOを出力するということをやりました。
で、OUに貼られているGPOはとれてもサイトに貼られたGPOはとれないね、というところまでやりました。

・・・まぁ、サイトに関するGPOはとりあえずおいとく(笑)
できるところを固め、そこから順次付け足すというのが 僕の今ままでの手法なので
とりあえずできそうなところからやってみます。
ということで、オリジナルGPOと変更したGPOを比較する手法を今回はやってみます。


前回はリンクに関することしか触れませんでしたが、
PowerShell v2 のgrouppolicy モジュールにはGet-GPO というGPO情報を取得できるコマンドがあります。

PS > Import-Module grouppolicy
PS > get-gpo -all

 -All オプションをつけることで、すべてのGPOの情報を取得できます。
情報としては、Statusや、変更時刻などが記されているので、この情報を保存します。
PowerShellだとオブジェクトはXMLファイルとして保存できるので、それを利用してみます。
PS > Get-GPO -All | Export-Clixml -Path .\origpo.xml
では、試しにGPOを変更して、比較してみましょう。
↓が現在のGPO

GPOtest1を内容変更、GPOtest2を「すべての状態を無効」 GPOtest4を削除してみます。

では、さっき保存したorigpo.xml と現在のGPOを比較してみます。
PS > $origpo=Import-Clixml .\origpo.xml
PS > $crgpo=Get-GPO -All

PS > Compare-Object $crgpo $origpo -Property displayname,modificationtime,GpoStatus | sort displayname


表示名、変更時刻、ステータスを比較対象として出力してみました。
ちゃんと、変更された、削除されたGPOが出力されていますねー。
これを定期的に実行、タスクに組み込むことで変更に対する監視ができるのではないでしょうか。
前回のOUリンクも同じ方法でオブジェクトを保存し、リンクの比較をしてみるとよいかもですね。

・・でも、サイトのやりかたはやっぱりわからんw

スポンサーリンク

スポンサーリンク