「グループポリシー基本設定」をご存知ですか?
Windows Server 2008 から搭載されている新機能で、従来のグループポリシーの機能拡張という位置づけで、主にクライアント PC に対する設定を中央から一括して実施する仕組みです。グループポリシーでは実現が難しかった「かゆい所に手が届く」設定が可能になっています。例えばこんなことができます。
◇ Windows の設定
◇ コントロール パネルの設定
いかがでしょう?従来はログオンスクリプトでゴリゴリ書いて実現していた設定が、グループポリシー基本設定を使えば、UI からスマートに、かつ確実に、クライアント PC に対して一括適用することができます。
また、グループポリシーとは挙動の異なる適用の仕方をすることができます。それは、設定を一度だけ適用したり、適用対象外になった時に設定を削除できるという点です。
例えば、
こんな要件も、グループポリシー基本設定の機能で実現できます。クライアント PC には初期設定をしておきたいけれど、後はエンドユーザーの自由に任せたい or 徹底的に管理したい、といった要件を満たすことが可能になります。
グループポリシー基本設定の対応 OS は、設定を管理する側(グループポリシーの編集)が Windows Server 2008 / 2008 R2 / Vista / 7(Vista / 7 は別途 RSAT のインストールが必要)、適用を受けるクライアントは、Vista / 7 / 2008 / 2008 R2 が標準対応、XP / 2003 はクライアントモジュールの追加(ダウンロード提供)によって対応可能です。また、設定はグループポリシーの基盤を利用して適用されますので、Active Directory ドメイン環境が必要です。
さて。
今回はこのグループポリシー基本設定を使って、こんなシナリオを実現する方法をご紹介します。
真っ先に思いつくのは、
・ブラウザのスタートページを社内のポータルサイトに変えてしまう ・ログオンスクリプトでブラウザを立ち上げ、サイトを開く
などの方法ですが、それぞれ問題があり、グループポリシーで一括適用するのは難しいです。いずれも、一度だけという要件に引っ掛かります。元々スタートページにポータルサイトを設定しているならいざ知らず、勝手にスタートページを書き換えたとあってはユーザーから非難轟々です。
一方、ログオンスクリプトなら、ごにょごにょプログラムを書いて、一度実行したらフラグ代わりに適当なファイルを作って、次回起動時はそのファイルが存在していたら起動しない、などといった仕掛けを作ることもできそうですが、一度でいいのに毎回無駄にログオンスクリプトは走りますし、クライアントに余計なゴミは残したくないですね。そもそもファイルを作成するための実行権限の問題などもあります。こんな方法ですと、運用開始後にそこかしこの PC でトラブルが発生し、メッセージを読んでもらえずにカンカンの社長の顔が目に見えるようです。スマートではありませんね。
そこで登場するのが、グループポリシー基本設定と、RunOnce レジストリキーの仕組みを使う方法です。
以下にその手順をご紹介します(Active Directory ドメイン環境と、グループポリシー基本設定が使用可能な Windows Server 2008 サーバーが存在することが前提になります)。
※ スクリーンショットは全て 2008 R2 のものですが、2008 でも同様です。
まず、管理コンソール「グループポリシーの管理」を開き、編集対象のグループポリシーを選択して右クリックし、[編集] をクリックします。
「グループ ポリシー管理エディター」が起動しますので、左側ペインのツリーを [ユーザーの構成] - [基本設定] - [Windows の設定] - [レジストリ] と展開します。
右側のペインで右クリックし、[新規作成] - [レジストリ項目] を選択します。
「新しいレジストリのプロパティ」ダイアログの [全般] タブで、以下のように入力します。
[共通] タブをクリックし、[1 度だけ適用し、再適用しない] のチェックを入れ(ここがミソです)、[OK] をクリックします。
ちなみにここで、[項目レベルで対象化する] にチェックを入れ、[対象化] ボタンをクリックすると、この設定を適用するユーザーや端末の条件を詳細に定義することができます。
これで、グループポリシー適用対象の端末に対して、1 回だけ RunOnce レジストリキーに値が登録される設定が一つ作成されました。
設定はここまでです。あとはドメインに参加しているクライアントから、ドメインユーザーでデスクトップにログオンしてみると、Windows が RunOnce レジストリキーに登録されているエントリを読み込み、IE が立ち上がって指定されたページが表示されます。そしてもう一度ログオンし直してみると、今度は IE は起動しません。
これで社長もニンマリです。OS 以外にソフトウェアを追加導入することなく、これを実現した貴方の評価も急上昇です。
RunOnce レジストリキーは、通常はプログラムのセットアップ時に用いられる仕組みで、OS 起動時やユーザーのログオン時に、一度だけ実行したい処理を登録することができます。OS は RunOnce レジストリキーに登録されている値をコマンドとして実行して、その値を自動的に削除します(ですので実行は 1 度きり = RunOnce です)。
プログラムをインストールすると、自動的に PC が再起動して、再起動後インストールの続きが始まることがありますよね。あの仕組みを実現しているのが RunOnce です。
RunOnce キーに登録する値は、名前を変えることにより複数定義することができますので(このシナリオ例では「LaunchIE」と設定しました)、インストールプログラム等とバッティングしないような名前で値を作成すれば、他の RunOnce を利用するプログラムに干渉することなく、安全に IE を起動できます。
今回はグループポリシー基本設定の機能を利用して、1 度だけ RunOnce レジストリにコマンドを登録することで、1 度だけの IE 起動を実現しました。ちなみに、端末に対する一括した任意のレジストリ操作は、グループポリシー基本設定で容易にできるようになりました。
地味ですが、確実に端末の運用管理を楽にして、管理コストを削減できる機能だと思いませんか?「Windows Server は 2000 や 2003 で十分。新機能なんて使わないよ!」と思っている方もいらっしゃるかもしれませんが、2008 / 2008 R2 では、今まで大変な思いをして実現していた機能や、そもそもできなかった機能なども含め、サーバーの基本的な機能も着実にレベルアップしています。是非一度ご評価いただければと思います。
◇ グループポリシー基本設定に関する情報
グループ ポリシーを使用した基本設定の展開(TechNet) 【Management】グループポリシー基本設定 の「適用できなくなった場合はこの項目を削除する」って? (フィールド SE あがりの安納です)
◇ RunOnce に関する情報
レジストリの RunOnce キーの定義(サポート技術情報) [INFO] Run、RunOnce、RunServices、RunServicesOnce レジストリ キーと [スタートアップ] フォルダの関係(サポート技術情報) Windows 秘話: RunOnce 待ち(TechNet Magazine)
マイクロソフト株式会社 山崎 淳一