none
PowerShell でグループポリシーの設定項目一覧を出力させたい。 RRS feed

  • 質問

  • お世話になります。

    グループポリシーで設定、未設定に関わらずすべての項目の一覧を出力したいと考えています。
    過去に同様の質問があったことも理解しています。

    グループポリシー項目の一覧を出力する方法

    それを踏まえての質問です。
    添付した画面キャプチャの赤枠の処理をPowerShellで実行したいのですが、
    何か手段はありますか?
    これを各フォルダごとにPowershellで自動で項目を取得したいと考えています。

    2017年6月7日 5:45

回答

  • グループポリシーエディタのエクスポート機能と同様のことを、ADMXファイルを読み込むことで実現するアプローチもありかと思います。

    例えば、stknohgさんが公開されているAdmxPolicyモジュールを利用するのはいかがでしょうか。

    stknohg/AdmxPolicy: Get Group Policy information from ADMX files.

    2017年6月7日 9:17
    モデレータ
  • グループポリシーエディタのエクスポート機能と同様のことを、ADMXファイルを読み込むことで実現するアプローチもありかと思います。

    例えば、stknohgさんが公開されているAdmxPolicyモジュールを利用するのはいかがでしょうか。

    stknohg/AdmxPolicy: Get Group Policy information from ADMX files.

    モジュールの作者として少しだけ補足しておきます。

    AdmxPolicyでは個々のポリシー情報は取得できるのですが、ポリシーの階層構造が取得できません。(取得する方法はわかっているのですがモジュールに実装できていない状態です...)

    階層構造を抜きにしてグループポリシーの日本語名の一覧を取るだけでよければ以下の様な感じで取得することができます。

    # Admxのあるフォルダを指定
    $AdmxPath = 'C:\Windows\PolicyDefinitions\'
    # コンピューターの構成 で設定可能なポリシーの一覧
    ls -Path $AdmxPath -Filter '*.admx' | % { Get-AdmxPolicies -FilePath $_.FullName } | ? { $_.RegistryType -in ('Both', 'LocalMachine') } | select FileName, DisplayName
    # ユーザーの構成 で設定可能なポリシーの一覧
    ls -Path $AdmxPath -Filter '*.admx' | % { Get-AdmxPolicies -FilePath $_.FullName } | ? { $_.RegistryType -in ('Both', 'CurrentUser') } | select FileName, DisplayName


    2017年6月8日 5:46

すべての返信

  • チャブーンです。

    おっしゃるご要望ですが、前提条件として[グループポリシーエディター]ツールを使わないとできないことなので、なんらかのコマンドやAPIのみでの実現はムリです。

    どうしてもそうしたい、なら、(ツール上での)キー操作を自動化し、結果的に同じことをする、というアプローチしかないと思います。そうなさりたいのであれば、したのページの情報が役に立つように思います。

    http://qiita.com/nimzo6689/items/488467dbe0c4e5645745


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。

    2017年6月7日 6:10
  • チャブーン さん

    ご回答ありがとうございます。
    頂いたリンクも参考に引き続き調査します。

    2017年6月7日 6:44
  • グループポリシーエディタのエクスポート機能と同様のことを、ADMXファイルを読み込むことで実現するアプローチもありかと思います。

    例えば、stknohgさんが公開されているAdmxPolicyモジュールを利用するのはいかがでしょうか。

    stknohg/AdmxPolicy: Get Group Policy information from ADMX files.

    2017年6月7日 9:17
    モデレータ
  • 牟田口 さん

    ご回答ありがとうございます。
    頂いたリンクはまだざっとしか見ていませんが、ADMXファイルを変換して出力する旨で理解しました。
    取り急ぎ、お礼申し上げます。

    2017年6月8日 0:09
  • グループポリシーエディタのエクスポート機能と同様のことを、ADMXファイルを読み込むことで実現するアプローチもありかと思います。

    例えば、stknohgさんが公開されているAdmxPolicyモジュールを利用するのはいかがでしょうか。

    stknohg/AdmxPolicy: Get Group Policy information from ADMX files.

    モジュールの作者として少しだけ補足しておきます。

    AdmxPolicyでは個々のポリシー情報は取得できるのですが、ポリシーの階層構造が取得できません。(取得する方法はわかっているのですがモジュールに実装できていない状態です...)

    階層構造を抜きにしてグループポリシーの日本語名の一覧を取るだけでよければ以下の様な感じで取得することができます。

    # Admxのあるフォルダを指定
    $AdmxPath = 'C:\Windows\PolicyDefinitions\'
    # コンピューターの構成 で設定可能なポリシーの一覧
    ls -Path $AdmxPath -Filter '*.admx' | % { Get-AdmxPolicies -FilePath $_.FullName } | ? { $_.RegistryType -in ('Both', 'LocalMachine') } | select FileName, DisplayName
    # ユーザーの構成 で設定可能なポリシーの一覧
    ls -Path $AdmxPath -Filter '*.admx' | % { Get-AdmxPolicies -FilePath $_.FullName } | ? { $_.RegistryType -in ('Both', 'CurrentUser') } | select FileName, DisplayName


    2017年6月8日 5:46
  • stknohg さん

    補足の情報ありがとうございます。
    まだモジュールのインストールまで至っていないので恐縮です。

    2017年6月8日 6:22
  • 無事グループポリシーの一覧を出力することができました。
    ご教授いただきましてありがとうございました。
    2017年6月8日 8:28