whoamiコマンドを使うと、ユーザーや所属するグループのSIDを表示できる。whoamiでは、ユーザーに割り当てられている権利を表示できる。
対象OS:Windows XP/Windows Server 2003/Windows Vista/Windows Server 2008/Windows 7/Windows Server 2008 R2
Windows OSでは、ユーザーがログオンすると、そのログオン・アカウントに対して、さまざまな「権利」が与えられる。例えば、「システムをシャットダウンする権利」「ファイルにアクセスする権利」「ターミナル・サービスにログオンする権利」など、数多くある。この権利は、例えば[管理ツール]の[ローカル セキュリティ ポリシー]ツールなどで確認できる。Usersグループに属するユーザーが、Administratorsグループのユーザーよりも可能な操作が限定されているのは、利用できる権利が少ないからである。Windows OSのセキュリティ機構がどのようになっているかについては、以下の記事を参照していただきたい。管理者権限のあるアカウントで使用することが一般化してしまったWindows OSにおいて、管理者アカウントを有効にしながらも、不正な操作からシステムを保護するために導入されたUACについても解説している。
権限の不足などでプログラムが実行できない場合、その原因を探るためには、今ログオンしているユーザーに対して実際にどのような権利が与えられているかを調査する必要がある。この調査に利用できるのがwhoami.exeというコマンドである。本TIPSではこのコマンドの基本的な使い方について解説する。
whoami.exeはWindows Server 2003/Windows Vista以降に標準でインストールされているコマンドである。Windows XPの場合はサポート・ツールに含まれているが、一部機能が不足しているので(詳細は上の基礎解説記事を参照)、可能ならWindows Server 2003に含まれるものを利用するとよいだろう。
whoamiでは、次の3つの情報を表示できる。1つ目は現在ログオンしているユーザー名(正確に言うと、whoamiのプロセスに対して割り当てられている「トークン」の所有者。トークンについても前出の記事参照)、2つ目はそれに関連付けられているグループ名、そしてログオンしているアカウントに対して割り当てられている権限である。それぞれ「/user」「/groups」「/priv」オプションで表示できるが、「/all」で3つすべてをまとめて表示できる。
C:\>whoami /? ……ヘルプの表示(これはWindows 7の例)
WhoAmI の使用法は 3 とおりあります:
構文 1:
WHOAMI [/UPN | /FQDN | /LOGONID]
構文 2:
WHOAMI { [/USER] [/GROUPS] [/PRIV] } [/FO 形式] [/NH]
構文 3:
WHOAMI /ALL [/FO 形式] [/NH]
説明:
このユーティリティを使用して、ユーザー名とグループの情報、および
それぞれのセキュリティ ID (SID)、特権、ローカル システム上で現在
ログオンしている現在のユーザー (アクセス トークン) のログオン ID
(たとえば、現在ログオンしているユーザー) を取得できます。
…(以下省略)…
パラメータを付けずに実行すると、現在ログオンしているユーザー・アカウント名が表示されるが、「whoami /user」とすると、ユーザー名とSIDが表示される(SIDについてはTIPS「オブジェクトを識別するSIDとは?」参照)。
「/group」を付けると、現在のユーザーのグループ情報、SID、アカウントの種類、セキュリティ・グループ属性などが表示される。
「/priv」を付けると、現在のユーザーに対して割り当てられている権限(特権)の一覧が表示される。以下はWindows 7における表示例である。管理者権限のあるユーザーでログオンしているが、5つの権利しか割り当てられていない。これはUACによる保護メカニズムのおかげであり、ユーザーが知らないうちに特権を使用したり、(ウイルスなどによって)システムが不正に変更されたりするのを防いでいる。
同じコマンドを管理者として実行したコマンド・プロンプト上で実行してみると(つまりUACによるプロンプトに対して明示的に許可してから実行すると)、次のようになる。利用可能な権利の種類が増えていることが分かるだろう。これは従来のUACのないWindows OSにおいて、管理者権限のあるアカウントでログオンしている場合と同じ状況である。
■この記事と関連性の高い別の記事
Copyright© Digital Advantage Corp. All Rights Reserved.