web-dev-qa-db-ja.com

すべての既存のユーザーとすべての新しいユーザーにHKCUキーと値を追加する最良の方法は?

既存のすべてのユーザープロファイルと既定のプロファイルに対して、特定のOU内のすべてのマシンにHKCUキーと値を追加する必要があります。これに取り組む最善の方法は何ですか?

すべてのNTUSER.DATを列挙して反復処理し、Hiveをロードし、キーを追加し、Hiveをアンロードすることもできますが、これは不格好な方法のようです。

誰かがより良いアイデアを持っていますか?これをスクリプト化し(できればPowerShell)、可能であれば変更をプッシュしたいのですが、グループポリシーのログオンスクリプトも機能します。

11
Doug Chase

私の推奨する方法は、アクティブセットアップを使用することです。これは、ユーザーが特定のスクリプトまたはコマンドを実行したかどうか(ユーザーが持っているものなど)をマシンにログインしたときにチェックし、実行していない場合は実行します。したがって、ユーザーの特定のスクリプトをワークステーションで1回だけ実行します。これは、HKCUへの書き込みに最適であることがわかりました。これは、各Hiveをロードする必要がなく、人々がログインするアカウントのみが変更されるためです。

自己宣伝するためではありませんが、これについて ブログ投稿 を書きました。基本的な解決策は次のとおりです。

次のレジストリエントリを追加します。

[HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components\UniqueID]
"Version"=""
"Stubpath"=""
@=""
  • 任意の一意のIDを選択できます。 GUIDがよく使用されますが、一意になるものなら何でも使用できます。
  • Versionは、使用するバージョン番号です。
  • Stubpathは、実行されるコマンドです。 MSI、EXE、VBSの呼び出しはすべて問題ないようです。
  • @は、コマンドの実行中に表示されるものです。

このソリューションでは、スクリプト言語は無関係です。 VBScript、Powershell、Batchファイルを実行できます。ログインユーザーとしてHKCUに書き込むことができるものは何でも。 reg.exe も直接問題なく動作します。

もう1つのオプションの最終的な操作は、デフォルトのユーザーHiveをロードして変更することです。これにより、その特定のシステムに初めてログオンする新しいユーザーのレジストリ値が設定されます。

13
Rob Haupt

カスタムadmファイルを作成し、それをテンプレートとしてグループポリシーオブジェクトの[管理用テンプレート]セクションにインポートすることで、カスタムregキーを追加できます。次に、そのGPO= OUにリンクします。これを行う方法については MSのドキュメント があります。または、サーバーに既に存在するadmファイル( Sysvolのどこかにあると思います)。

このプロセスは「レジストリの入れ墨」と呼ばれ、グループポリシーの削除の制御外にいることを意味します。つまり、ポリシーが削除されても、regエントリは残ります。 「逆」の登録キーを作成して展開する(または削除する)必要があります。

7
PowerApp101