連載
» 2006年01月31日 00時00分 公開

グループ・ポリシーのしくみ:第1回 システム設定とシステム・ポリシー (2/4)

[畑中哲,著]

 サーバ/クライアントを問わず、各コンピュータの設定を統一したいという要求はどんな組織にもある。ユーザーがより安全・便利にコンピュータを使えるようにしたり、あるいは、各ユーザーによる思い思いの設定ではなく組織のルールに従った設定をしたりする必要があるからだ。

“野放し”の場合

 そのような設定を統一的に行わなければ、ファイアウォールなしでインターネットに直接接続したり、不心得者がデスクトップの壁紙を非常に不適切な、セクハラまがいのものにしてしまったりということが横行しかねない。また、社内のポータル・サイトのアドレスをいちいち各ユーザーにURLで伝えたり、サーバを使用するための設定方法を伝授したりしなければならない。セキュリティやコストを考えただけでも、このような状態を放置できないことは明らかだろう。そこで何らかの解決策が必要となる。

解決策

 組織として統一的な設定を行う場合、具体的には、ある条件に従ってレジストリに値を設定する、ファイルを配布するなどが考えられる。それらを実現するための手段としては、例えば次のようなものが考えられるだろう。

統一的な設定を行うためのさまざまな手段の例
各コンピュータ・システムの設定を統一、管理するためには、大きく分けて2つの方法がある。1つは、あらかじめ統一した設定でコンピュータを展開、インストールする方法であり、もう1つは、展開されたコンピュータの設定を強制的に変更/修正して統一する方法である。

 各コンピュータ・システムの設定を統一、管理するためには、大きく分けて2つの方法がある。1つは、展開前に設定や条件などを統一しておき、そのイメージを使って同一の設定を各コンピュータにインストール/展開する方法である。もう1つは、展開されたコンピュータ各部の設定を、スクリプトやリモート管理機能などを使って、強制的に設定/修正して、統一する方法である。具体的には、以下のような手法が考えられる。

1.コンピュータの展開前に設定をあらかじめ統一しておく方法

 (a)セットアップ応答ファイル。Windowsインストール時の設定を自動的に選択したりカスタマイズしたりできる。

 (b)デフォルトのユーザー・プロファイル。各ユーザーのレジストリなどの初期状態をあらかじめ設定しておくことができる。

 (c)リモート・インストール・サービスなど。設定を済ませた「ひな型」のインストール・イメージを大量かつ高速に展開することができる。

2.コンピュータの展開後に設定を統一する方法

 (a)管理者による巡回。

 (b)ログオン・スクリプト。ユーザーがログオンするたびにスクリプトなどを実行させることができる。

 (c)管理共有。C$、Admin$などのファイル共有。管理者から接続してコンピュータ内のファイルを操作できる。

 (d)リモート・レジストリ。管理者から接続してレジストリを変更することができる。

 (e)スケジューラ・サービス。定期的にシステム権限で設定を実行する。

 コンピュータの展開前には、コンピュータの設定をセットアップ時の応答ファイルなどで行ったり、ユーザーの初期設定をデフォルトのユーザー・プロファイルであらかじめ決めておいたりできる。そのような準備を行ったひな型イメージをリモート・インストール・サービスで提供できれば、大量かつ高速に展開することも可能だ。

 コンピュータの展開後には、設定変更だけでなく維持も必要となる。管理者が各コンピュータを巡回する方法では限界があり、ログオン・スクリプトでユーザーにスクリプトを実行させたり、管理共有やリモート・レジストリで管理者がリモート接続したりといった手段を検討しなければならない。各コンピュータでの定期的な処理にはスケジューラ・サービスが使用できる。

コンピュータの展開前

 コンピュータを展開する前なら、そもそも後から設定を変更しなくてもいいように、あらかじめ設定を済ませておけばよい。

 コンピュータに対しては、変更処理をセットアップ時の応答ファイルなどで行うようにしておけば、Windowsシステムのインストール時の設定を自動的に選択したり、カスタマイズしたりできる。ユーザーに対してはデフォルトのユーザー・プロファイルをカスタマイズするなどしておけば、レジストリなどの初期状態をあらかじめ設定しておくことができる。このようにすれば、必要な設定の多くを最初から済ませた状態にすることができる。

 同じようなハードウェアに繰り返しインストールする場合は、このような設定変更を施したひな型となるイメージを作ってしまい、それをリモート・インストール・サービスなどで展開すれば、大量かつ高速に展開することも可能となり、統一的な設定はいっそう簡単になる。具体的な手法については、以下の情報などを参考にしていただきたい。

コンピュータの展開後の設定変更と維持

 しかし、いったんコンピュータを展開してしまった後はどうだろうか。展開前には想定していなかったような要求が新たに発生し、設定を変更しなければならなくなることは多々ある。むしろ必要な設定を展開前にすべて見通せることの方がまれだろう。

 また、ハードウェア環境がまちまちで、統一したインストールを行うための要員の確保が難しい場合は、展開後に設定を変更する効率的な手段がどうしても必要になってくる。

 展開後に設定を変更する最も原始的な解決策は、管理者がコンピュータを1つ1つ手で設定して回ることである。管理するコンピュータやユーザーが非常に少なければ、これでも問題はないだろう。だが、管理するコンピュータやユーザーが少しでも増えると、手間や確実性の点から、管理者が設定して回ることは難しくなってくる。となると、やはりリモート管理や自動化が必要となるだろう。

設定を変更し維持するためのカスタム・ソリューション

 Windows NTのごく初歩的な標準機能だけでも、次のような方法を使えば、このような管理の自動化はいちおう可能である。

  • ユーザーに対する設定は、ログオン・スクリプトを作成してそのスクリプト内で設定し、ログオンするたびに設定の変更や維持を行う。
  • ファイルは管理共有(C$、Admin$などの管理者がアクセスできる隠し共有)を使用して、コンピュータに対するレジストリはリモート・レジストリを使用して、リモートから管理者が各コンピュータを設定する。
  • スケジューラ・サービスを使用して、定期的にシステム・アカウントで管理スクリプトをプル実行(各コンピュータが能動的に設定情報を外部から取得し、自身に設定する方法)するだけでなく、必要に応じてプッシュ実行(外部から、リモートのコンピュータに対して設定情報を送信し、設定を行う方法)したりする。
  • スクリプトも、基本的なバッチ・ファイルに加えてWindows Scripting Host(WSH)やKiXtart()のようなスクリプト言語を併用したり、各種ユーティリティを使用したりする。

 このような工夫と組み合わせを駆使していけば、管理はかなり強力で自由なものになる。だが、強力で自由度が高いのは当然のことともいえる。このような管理形態を追求していくことは、組織が必要とする管理システムという枠組みを、かなり基本的な部分から自前で開発していくことにほかならないからだ。しかし自由度が高い半面、何もかも自分でやらなければならない。

KiXtart
ログオン・スクリプトでの使用を意識して開発された独自形式のスプリプト言語プロセッサ。システム環境に基づいて条件分岐させながら、レジストリやファイルの操作をはじめとしたさまざまな処理を行うことができる。Windows 9xにも対応している。
KiXtart ログイン プロセッサ ツールのインストールと使用(マイクロソフト サポート技術情報)
Kixtartホームページ[英語]


カスタム・ソリューションの欠点

 コンピュータの数が少なければこのような解決策だけでも問題はないかもしれないが、多くの欠点がある。

1.コストの問題
 スクリプトを使用する場合はスクリプトに対する知識や経験が必要である。作成したスクリプトは動作テストが必要になるし、高レベルで標準的なフレームワークがあるわけでもないので、ノウハウの蓄積が必要になる。

2.強制力の不足
 ユーザーの行動を制限するような設定を行う場合、せっかく設定してもまたユーザーが別の設定に変えてしまうかもしれない。例えば、壁紙を全社標準の壁紙にいったん変更したとしても、それだけでは、不心得者がコントロール・パネルを開いて不適切な壁紙に変更してしまうのを防ぐことはできない。これを防ぐには、デフォルトのアクセス権を変更や、設定を不断に上書きするような処理が必要になるが、互換性や確実性の面からは好ましい対策ではない。

3.セキュリティに対する不安
 例えばログオン・スクリプトを使用する場合、コンピュータ全体の設定を行うには、ユーザーが管理者であるか、もしくはスクリプトを管理者権限のある別のユーザーとして実行しなければならない。

 また、リモート管理を可能にするには、それをサポートするためのサービスやネットワーク・アクセスを開放しなければならない。

 どちらもセキュリティ上好ましいことではない。

4.継続的なメンテナンスの必要性
 管理システムが稼働し始めたら、メンテナンスが必要となる。
 例えば、上司や開発者が職務の必要上から自分だけを例外にするよう要求する場面などはよく見られるし、環境の変化に伴って新たな追加設定が必要になることも多々ある。マウス操作でそのような例外や追加を簡単に設けることができるだろうか?

 プログラミングやスクリプティングの経験がほとんどないまま配属された新人に、引き継ぐことはできるだろうか?

 前述のような自前で作り込んだ管理システムでは、どちらも困難か、ほとんど無理である。

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。