Windows 2000/XPにはユーザー管理機能があり、管理者権限のない通常のユーザーは、システム構成を変更するなど、システムに重大な影響を及ぼす操作が禁止されている。しかしプログラムの中には、例えばWindows Updateなど、実行には管理者権限が必要とするものもある。管理者でログオンしなおせばよいのだが、それが面倒なら、特定のプログラムだけ、別のユーザー権限で実行する方法が用意されている。
対象OS:Windows 2000 Professional/Windows XP Professional/Windows XP Home Edition/Windows 2000 Server/Windows 2000 Advanced Server
システムのセキュリティ機能が強化されたWindows 2000/XPでは、ユーザーに一定の権限を割り当て、この権限に応じて、操作可能なことと、操作不可能なことを区別することができる。例えば自分が所有するコンピュータであっても、管理者権限を持たないユーザー(Administrator以外のユーザー、またはAdministratorsグループに含まれていないユーザー)としてログオンしているときには、システム設定を変更するなどはできない(Administratorに関する詳細はTIPS「Windows OSの『Administrator』とは?」を参照)。
例えば、Windowsのセキュリティ・ホールを修正する最新のhotfixなどを配信する機能としてWindows Updateがあるが、これを利用してhotfixを適用するには、システムの管理者権限が必要である。通常のユーザー権限ではWindows Updateは実行できない。
一般に、個人が所有するPCでは、日常的にAdministratorでログオンして使ったり、日常的に使用するユーザー・アカウントをAdministratorsグループに追加して、管理者権限を持ったユーザーのままで使ったりする場合もあるが、このような使い方では、うっかりシステムの重要な設定を変更してしまう危険性などがあることから、日常業務は管理者権限を持たない通常ユーザーで行うようにし、必要なときだけ管理者権限を持つユーザーになることが推奨されている。
これには、現在ログオンしているユーザー(管理者権限を持たないユーザー)をいったんログオフし、管理者権限を持ったユーザーでログオンし直す。そして管理者としての処理を完了したら、再度ログオフし、元のユーザーでログオンし直せばよい。しかしログオフするには、現在開いているアプリケーションをすべて閉じなければならないし、管理者としての処理を終えて、通常ユーザーとしてログオンし直したら、アプリケーションをまたぞろ立ち上げ直さなければならない。複数のアプリケーションを同時に実行して、それらを切り替えながら作業を進めることが当たり前になっているパワー・ユーザーにとっては、何とも面倒な話である。
このような場合でも、現在のユーザー(管理者権限を持たないユーザー)としてログオンしたまま、一時的に別のユーザー(管理者権限を持つユーザーなど)になってプログラムを起動することが可能である。
Windows環境では、エクスプローラで表示されるファイルやフォルダ、コントロール・パネル・アプレットを始め、アプリケーションなどで表示されるさまざまなオブジェクトをマウスで右クリックすることで、そのオブジェクトに関する操作を行うためのポップアップ・メニュー(ショートカット・メニュー、あるいは文脈によって表示されるメニュー項目が変化することから、「コンテキスト・メニュー」と呼ばれることもある)が表示されることはご存じだろう。例えば、エクスプローラで実行ファイル(.exe)のアイコンを選択し、マウスの右ボタンをクリックすると、次のようなショートカット・メニューが表示される。
こうして表示されるポップアップ・メニュー項目は、オブジェクトを制御しているアプリケーションや、場面によって変化することになる。例えばこの例では、[開く]を選択すればmmc.exeを実行することができ、あるいは[削除]でmmc.exeファイルを削除したり、[名前の変更]でmmc.exeのファイル名を変更したりできる。
それでは今度は、キーボードの[Shift]キーを押しながら、同様にエクスプローラ上でmmc.exeを右クリックしてみる。すると今度は、次のようなメニューが表示されるはずだ。
このように、[Shift]キーを押しながらマウスの右ボタンをクリックすると、[別のユーザーとして実行]という項目が追加されている。ただし、このような挙動を示すのはWindows 2000のみで、Windows XPでは、[Shift]キーなど押さなくても、このメニュー項目が表示されるようになった。
Windows 2000で[別のユーザーとして実行]を実行すると、次のダイアログが表示される。
[A]
Windows XPでで[別のユーザーとして実行]を実行すると、次のダイアログが表示される。
ダイアログのデザインはWindows 2000の場合とは少々異なっているが、基本的には同じである。ただし画面から分かるとおり、Windows XPのダイアログでは、ドメイン名(コンピュータ名)を指定するフィールドが独立しておらず、ユーザー名の部分で指定するようになっている。
管理者権限を持つユーザーなど、別ユーザーとしてプログラムを実行するには、ここで[次のユーザーとしてプログラムを実行する]を選択し、以下のエディット・コントロールに、それぞれユーザー名と対応するパスワード、そのユーザーがドメインに登録されている場合にはそのドメイン名を指定する(このエディット・コントロールには、デフォルトでローカル・コンピュータ名が表示される)。指定した管理者がローカル・コンピュータのそれなら、そのままでよい。こうして[OK]ボタンをクリックすれば、指定した別ユーザーの権限でプログラムが実行される。
今回はエクスプローラを例にとったが、同様の操作は、コントロール・パネルのアプレットや、MMC管理コンソールのツールに対しても行うことができる。基本的にこの機能は、管理権限のないユーザーが、一時的に管理権限を持つ別ユーザーとしてプログラムを実行可能にするためのものだが、管理者でなくとも、正しいユーザー名とパスワードの組を指定すれば、そのユーザー権限でのプログラム実行が可能である。
なおこの機能は、Windows 2000では「RunAs」というサービス、Windows XPでは「Secondary Logon」というサービスを使って実現されている。Windows 2000/XPでは、デフォルトでこのサービスが組み込まれ、システム起動時に自動的に起動されるようになっているが、何らかの理由からこのサービスが起動されていないと、[別ユーザーとして実行]は利用できない。この場合には、コントロール・パネルの[管理ツール]フォルダ−[サービス]アプレットを実行して、RunAs Service(Windows 2000の場合)またはSecondary Logonサービス(Windows XPの場合)を開始する必要がある。
なお、実行プログラムやMMCコンソールなどのショートカットを作成し、このプロパティとして[別ユーザーとして実行]属性を指定することも可能である(詳細はTIPS「一時的にほかのユーザー権限でプログラムを実行する方法(ショートカットのプロパティを利用する方法)」を参照)。またコマンド・ラインから同様の処理を行うrunasコマンドも用意されている。
■更新履歴
【2002/10/19】Windows XPに関する情報を一部加筆・修正しました。
【2000/04/06】初版公開。
■この記事と関連性の高い別の記事
Copyright© Digital Advantage Corp. All Rights Reserved.