一時的にほかのユーザー権限でプログラムを実行する方法(ショートカット・メニューを利用する方法)Tech TIPS

Windows 2000/XPにはユーザー管理機能があり、管理者権限のない通常のユーザーは、システム構成を変更するなど、システムに重大な影響を及ぼす操作が禁止されている。しかしプログラムの中には、例えばWindows Updateなど、実行には管理者権限が必要とするものもある。管理者でログオンしなおせばよいのだが、それが面倒なら、特定のプログラムだけ、別のユーザー権限で実行する方法が用意されている。

» 2002年10月19日 05時00分 公開
「Tech TIPS」のインデックス

連載目次

対象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)のアイコンを選択し、マウスの右ボタンをクリックすると、次のようなショートカット・メニューが表示される。

エクスプローラでMicrosoft管理コンソール(mmc.exe)を選択し、マウスの右ボタンをクリックしたところ エクスプローラでMicrosoft管理コンソール(mmc.exe)を選択し、マウスの右ボタンをクリックしたところ
Windows環境では、エクスプローラによるファイル操作を始め、そのほかのアプリケーションにおいても、画面上に表示されたさまざまなオブジェクトを選択し、マウスの右ボタンをクリックすると、そのオブジェクトに対する操作項目を一覧したショートカット メニューが表示されるようになっている。
  (1)mmc.exeに対する操作可能項目。例えばこのうち[開く]を選択すると、MMCが起動される。

 こうして表示されるポップアップ・メニュー項目は、オブジェクトを制御しているアプリケーションや、場面によって変化することになる。例えばこの例では、[開く]を選択すればmmc.exeを実行することができ、あるいは[削除]でmmc.exeファイルを削除したり、[名前の変更]でmmc.exeのファイル名を変更したりできる。

 それでは今度は、キーボードの[Shift]キーを押しながら、同様にエクスプローラ上でmmc.exeを右クリックしてみる。すると今度は、次のようなメニューが表示されるはずだ。

[Shift]キーを押しながらmmc.exeアイコンを右クリックしたところ [Shift]キーを押しながらmmc.exeアイコンを右クリックしたところ
このように、[Shift]キーを押しながらアイコンを右クリックすると、[別のユーザーとして実行]という項目がメニューに追加される。これを選択すれば、一時的に別のユーザー権限で当該プログラムを実行することが可能である。なお、Windows XPでは、[Shift]キーを押さなくても、このメニュー項目が表示されるようになった。
  (1)[Shift]キーを押しながら右クリックすることによって追加表示された項目。この項目を選択すれば、一時的に別ユーザーの権限を使ってプログラムを起動できる。→[A]

 このように、[Shift]キーを押しながらマウスの右ボタンをクリックすると、[別のユーザーとして実行]という項目が追加されている。ただし、このような挙動を示すのはWindows 2000のみで、Windows XPでは、[Shift]キーなど押さなくても、このメニュー項目が表示されるようになった。

 Windows 2000で[別のユーザーとして実行]を実行すると、次のダイアログが表示される。

[A]

[別のユーザーとして実行]ダイアログ(Windows 2000の場合) [別のユーザーとして実行]ダイアログ(Windows 2000の場合)
管理者権限を持つユーザーなど、別ユーザーとしてプログラムを実行するには、ここで[次のユーザーとしてプログラムを実行する]を選択し、別ユーザーのユーザー名と、対応するパスワード、そのユーザーがドメインのユーザーなら、ドメイン名を指定する。
  (1)別のユーザーとしてプログラムを実行する場合にはこちらを選択する。すると以下のエディット・コントロールが入力可能状態になる。
  (2)別ユーザーのユーザー名を入力する。管理者として実行するには、「Administrator」か、Administratorsグループに追加されているユーザー名を指定する。
  (3)上の[ユーザー名]で指定したユーザーの正しいパスワードを指定する。
  (4)上のユーザーがドメインに登録されているなら、ここでそのドメイン名を指定する。

 Windows XPでで[別のユーザーとして実行]を実行すると、次のダイアログが表示される。

[別のユーザーとして実行]ダイアログ(Windows XP)の場合 [別のユーザーとして実行]ダイアログ(Windows XP)の場合
Windows XPで[別のユーザーとして実行]メニューを実行すると、このダイアログが表示される。多少デザインは異なっているが、基本的には同じである。
  (1)別のユーザーで実行するにはこれを選択する。
  (2)ドメイン名(マシン名)やユーザー名をここに指定する。
  (3)パスワードを指定する。

 ダイアログのデザインはWindows 2000の場合とは少々異なっているが、基本的には同じである。ただし画面から分かるとおり、Windows XPのダイアログでは、ドメイン名(コンピュータ名)を指定するフィールドが独立しておらず、ユーザー名の部分で指定するようになっている。

 管理者権限を持つユーザーなど、別ユーザーとしてプログラムを実行するには、ここで[次のユーザーとしてプログラムを実行する]を選択し、以下のエディット・コントロールに、それぞれユーザー名と対応するパスワード、そのユーザーがドメインに登録されている場合にはそのドメイン名を指定する(このエディット・コントロールには、デフォルトでローカル・コンピュータ名が表示される)。指定した管理者がローカル・コンピュータのそれなら、そのままでよい。こうして[OK]ボタンをクリックすれば、指定した別ユーザーの権限でプログラムが実行される。

●コントロール・パネル・アプレットや、MMCツールなどでも使用可能

 今回はエクスプローラを例にとったが、同様の操作は、コントロール・パネルのアプレットや、MMC管理コンソールのツールに対しても行うことができる。基本的にこの機能は、管理権限のないユーザーが、一時的に管理権限を持つ別ユーザーとしてプログラムを実行可能にするためのものだが、管理者でなくとも、正しいユーザー名とパスワードの組を指定すれば、そのユーザー権限でのプログラム実行が可能である。

 なおこの機能は、Windows 2000では「RunAs」というサービス、Windows XPでは「Secondary Logon」というサービスを使って実現されている。Windows 2000/XPでは、デフォルトでこのサービスが組み込まれ、システム起動時に自動的に起動されるようになっているが、何らかの理由からこのサービスが起動されていないと、[別ユーザーとして実行]は利用できない。この場合には、コントロール・パネルの[管理ツール]フォルダ−[サービス]アプレットを実行して、RunAs Service(Windows 2000の場合)またはSecondary Logonサービス(Windows XPの場合)を開始する必要がある。

コントロール・パネルの[サービス]アプレット コントロール・パネルの[サービス]アプレット
[別ユーザーとして実行]は、内部的には、RunAs Service(Windows 2000の場合)/Secondary Logonサービス(Windows XPの場合)という名前のサービスによって実現されている。通常このサービスはデフォルトで開始されているが、何らかの理由でサービスが開始されていないと、[別ユーザーとして実行]機能は利用できない。この場合には、[サービス]アプレットを起動し、サービスを開始する必要がある。画面はWindows 2000の場合。
  (1)[別ユーザーとして実行]の機能は、このサービスによって実現されている。これが[開始]状態でなければ、機能は利用できない。

 なお、実行プログラムやMMCコンソールなどのショートカットを作成し、このプロパティとして[別ユーザーとして実行]属性を指定することも可能である(詳細はTIPS「一時的にほかのユーザー権限でプログラムを実行する方法(ショートカットのプロパティを利用する方法)」を参照)。またコマンド・ラインから同様の処理を行うrunasコマンドも用意されている。

■更新履歴

【2002/10/19】Windows XPに関する情報を一部加筆・修正しました。

【2000/04/06】初版公開。


「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

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

メールマガジン登録

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