web-dev-qa-db-ja.com

Windowsグループポリシー-VBscriptで変更できますか?

まず第一に、私はWindowsまたはグループポリシースクリプトの専門家ではありませんが、私のタスクの1つは、ネットワークではない運命にあるXPマシンを構成することです。したがって、VBScriptを使用してレジストリ設定を変更しますが、現在手動​​で構成しているグループポリシーにいくつかの設定がありますが、これらをスクリプト化するか、何らかの方法で自動化したいです。

VBscriptを使用してグループポリシーを変更できるかどうか、または他のものを使用する必要があるかどうかを誰かに教えてもらえますか?

私は this いくつかの可能性を概説しているページを見つけましたが、詳細があまりなく、フォローアップ記事をまだ見つけることができません。

** 追加情報 **

Gpedit.mscを使用して、現在GUIで次の設定を手動で設定しています。

  1. コンピューターの構成>管理用テンプレート>システム>ログオン>コンピューターの起動時とログオン時に常にネットワークを待機する
  2. コンピューターの構成>管理用テンプレート>システム>自動再生をオフにする
  3. コンピューターの構成> Windowsの設定>セキュリティの設定>ユーザー権利の割り当て>ネットワークからこのコンピューターにアクセスする
  4. コンピューターの構成> Windowsの設定>セキュリティの設定>ユーザー権利の割り当て>ネットワークからこのコンピューターへのアクセスを拒否する
  5. コンピューターの構成> Windowsの設定>セキュリティの設定>ユーザー権利の割り当て>ローカルでのログオンを拒否する
  6. コンピューターの構成> Windowsの設定>セキュリティの設定>ユーザー権利の割り当て>ローカルでログオン
  7. コンピューターの構成> Windowsの設定>セキュリティの設定>セキュリティのオプション>ネットワークアクセス:ネットワークからアクセスできる共有

VBScriptまたはその他の手段(おそらく.NET?)を使用してこれらの変更をスクリプト化できるようにしたい

上記のいくつかの設定では、レジストリで直接変更できますが、変更はグループポリシーエディター(gpedit.msc)に表示されないことがわかりました。

1
Kerubu

はい、可能です。

これを行うためのサポートされ推奨される方法は、gpedit.mscツール(またはドメイン上のGPO)を使用することであるため、実際にはお勧めできません。結果として、スクリプトを使用してそれを行うことは、せいぜい半文書化されており、試行するといくつかの奇妙なことに遭遇します。

それでも試してみることにした場合、これらの設定は実際には単なるレジストリキーです。どのキーが変更されているかを把握できる場合は、スクリプトを作成してそれらすべてのレジストリキーをインポートし、目的の構成にするのは簡単です。正直なところ、バッチファイルを使用します。

ただし、発生する問題は、これらの変更を%SYSTEM ROOT%\System32\GroupPolicy\User\Registry.polに保存して、ローカルグループポリシーとして適用する必要があることです。これに対する適切なスクリプトによる解決策がわからないため、一般的な回避策があります。これを2台目のマシンで希望どおりに設定し、%SYSTEM ROOT%\System32\GroupPolicy\Userフォルダーとファイルをターゲットマシンにコピーすることです。

個人的には、全体が非常に苦痛であるため、ローカルグループポリシーの自動適用を適用するプロセスを実行するよりも、小さなドメインを設定したいと思います。

1
HopelessN00b

GPOレジストリエディタ と呼ばれるツールがあり、既存のすべてのポリシーを上書きすることなく、コマンドごとにローカルグループポリシーを編集/更新できます(Registry.polをコピーして貼り付けるだけの大きな利点)。このツールを最初に使用するには、 ソースコード を取得できます。 GREはAutoItScriptで書かれています。実行可能ファイルを作成するには、それをコンパイルする必要があります。 AutoItScriptエディター を使用します。

これで、次のコマンドラインオプションを持つgre.exeができました。

GPO Registry Editor provides read/write capabilities for registry policy files.

Usage:
-a  --add    Add the entry specified by the key, value, type, and data parameters.
-r  --remove Remove the entry specified by the key and value parameters.
-d  --data   Specifies the data of the registry entry.
-f  --file   Specifies the registry file to load or modify.
             Use `computer` or `user` to specify the system policy files.
-k  --key    Specifies the key of the registry entry.
-s  --silent Perform the operation silently (no GUI).
-t  --type   Specifies the type of the registry entry.     
-v  --value  Specifies the value of the registry entry.
-h  --help   Display this message.     
-?  --?      Display this message.

それぞれのキーを把握する。 gpedit.mscを実行し、設定する設定を設定するには、値が必要です。 gpedit.mscはポリシーを直接適用するため、regedit.exeを開いて、HKLM\SOFTWARE\Policiesrespに移動できます。どのキーが設定されているかを確認するためのHKCU\SOFTWARE\Policies。

[編集]レジストリポリシーファイル(Registry.pol)を読み取ることができる Registry.pol Viewer Utility というツールを見つけました)これは%SYSTEMROOT%\ System32\GroupPolicy\Machinerespにあります。 %SYSTEMROOT%\ System32\GroupPolicy\User。データとともにどのキーと値がグループポリシーに適用されているかが表示されます。そのようなものは、greで簡単に使用できます。 [/編集]

たとえば、ポリシーの場合[コンピューターの構成]> [管理用テンプレート]> [システム]> [ログオン]>コンピューターの起動時に常にネットワークを待機し、次のgreコマンドを使用してログオンします。

gre --add -s -f=computer -k="Software\Policies\Microsoft\Windows NT\CurrentVersion\Winlogon" -v="SyncForegroundPolicy" -t REG_DWORD -d="1"

次に、いくつかのgreコマンドをバッチスクリプトに追加し、次のコマンドを追加して、更新されたグループポリシーを適用できます。

gpupdate /force

このようなスクリプトは、必要なポリシーを適用するためにターゲットコンピューターで簡単に開始できます。または、 [〜#〜] wpkg [〜#〜] などの選択したデプロイメントツールで使用することもできます。

0
Oliver Sauder