既存のすべてのユーザープロファイルと既定のプロファイルに対して、特定のOU内のすべてのマシンにHKCUキーと値を追加する必要があります。これに取り組む最善の方法は何ですか?
すべてのNTUSER.DATを列挙して反復処理し、Hiveをロードし、キーを追加し、Hiveをアンロードすることもできますが、これは不格好な方法のようです。
誰かがより良いアイデアを持っていますか?これをスクリプト化し(できればPowerShell)、可能であれば変更をプッシュしたいのですが、グループポリシーのログオンスクリプトも機能します。
私の推奨する方法は、アクティブセットアップを使用することです。これは、ユーザーが特定のスクリプトまたはコマンドを実行したかどうか(ユーザーが持っているものなど)をマシンにログインしたときにチェックし、実行していない場合は実行します。したがって、ユーザーの特定のスクリプトをワークステーションで1回だけ実行します。これは、HKCUへの書き込みに最適であることがわかりました。これは、各Hiveをロードする必要がなく、人々がログインするアカウントのみが変更されるためです。
自己宣伝するためではありませんが、これについて ブログ投稿 を書きました。基本的な解決策は次のとおりです。
次のレジストリエントリを追加します。
[HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components\UniqueID]
"Version"=""
"Stubpath"=""
@=""
Version
は、使用するバージョン番号です。Stubpath
は、実行されるコマンドです。 MSI、EXE、VBSの呼び出しはすべて問題ないようです。@
は、コマンドの実行中に表示されるものです。このソリューションでは、スクリプト言語は無関係です。 VBScript、Powershell、Batchファイルを実行できます。ログインユーザーとしてHKCUに書き込むことができるものは何でも。 reg.exe
も直接問題なく動作します。
もう1つのオプションの最終的な操作は、デフォルトのユーザーHiveをロードして変更することです。これにより、その特定のシステムに初めてログオンする新しいユーザーのレジストリ値が設定されます。
カスタムadmファイルを作成し、それをテンプレートとしてグループポリシーオブジェクトの[管理用テンプレート]セクションにインポートすることで、カスタムregキーを追加できます。次に、そのGPO= OUにリンクします。これを行う方法については MSのドキュメント があります。または、サーバーに既に存在するadmファイル( Sysvolのどこかにあると思います)。
このプロセスは「レジストリの入れ墨」と呼ばれ、グループポリシーの削除の制御外にいることを意味します。つまり、ポリシーが削除されても、regエントリは残ります。 「逆」の登録キーを作成して展開する(または削除する)必要があります。