whoami - 現在のユーザーを確認する
whoamiコマンドは、いま操作しているユーザーの情報を表示するコマンドです。ユーザー名のほか、所属グループ、付与されている特権、SID(セキュリティ識別子)も確認できます。
「このコマンドプロンプトは管理者として実行されているのか」「どのユーザーで動いているのか」を確かめたいときに便利です。
whoamiコマンドの基本構文
whoami [/upn | /fqdn | /logonid]
whoami [/user] [/groups] [/priv] [/fo <形式>] [/nh]
whoami /all [/fo <形式>] [/nh]
引数なしで実行すると、ドメイン名\ユーザー名の形式で現在のユーザーを表示します。
現在のユーザー名を確認する
whoami
\の左側はコンピューター名(ドメインアカウントでサインインしている場合はドメイン名)、右側がユーザー名です。
オプション早見表
| オプション | 表示される内容 |
|---|---|
| なし | ドメイン名\ユーザー名 |
/user | ユーザー名と SID |
/groups | 所属しているグループと SID |
/priv | 付与されている特権と、その状態(有効/無効) |
/all | 上記すべて(ユーザー・グループ・特権) |
/upn | user@example.com 形式のユーザー名(ドメイン環境) |
/fqdn | ユーザーの識別名(CN=...,DC=... 形式。ドメイン環境) |
/logonid | ログオン セッション ID |
/fo | 出力形式を TABLE・LIST・CSV から指定 |
/nh | 列見出しを表示しない(TABLE・CSV のとき) |
/upnと/fqdnは、Active Directory などのドメインアカウントでサインインしているときに使うオプションです。ローカルアカウントや Microsoft アカウントでは「ドメイン ユーザーではない」という趣旨のエラーになります。
ユーザーの SID を確認する
/userを付けると、ユーザー名と SID を表示します。
whoami /user

中小企業経営者のためのRPA入門 RPA導入を成功させる方法

60分でわかる! AIエージェント 超入門

コマンドラインの黒い画面が怖いんです。

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門
SID はユーザーごとに割り当てられる一意の ID で、レジストリやファイルのアクセス許可を調べるときに登場します。
所属グループを確認する
whoami /groups
Administratorsなどの所属グループが一覧で表示されます。見出しや属性の説明は Windows の表示言語によって変わります(グループ名は英語のまま表示されることが多いです)。
付与されている特権を確認する
whoami /priv
特権の名前(SeShutdownPrivilegeなど)、説明、状態が表示されます。状態が「無効」でも、その特権が付与されていないわけではありません。必要なときにプログラムが有効化できる状態を意味します。
通常のコマンドプロンプトと管理者として実行したコマンドプロンプトでwhoami /privを実行して比べると、管理者のほうが表示される特権の数が多くなります。違いを確かめたいときに試してみてください。
出力形式を変えて加工する
/foで形式を指定すると、結果を他のコマンドで扱いやすくなります。
whoami /groups /fo csv /nh
whoami /user /fo list
管理者として実行しているか確認する
管理者として実行されているコマンドプロンプトでは、whoami /groupsの結果にMandatory Label\High Mandatory Level(整合性レベルが「高」)のグループが含まれます。このグループの SID S-1-16-12288 を探すと、表示言語に依存せず判定できます。
whoami /groups | find "S-1-16-12288"
一致する行があれば管理者として実行中、何も表示されなければ通常の権限で実行中です。
バッチファイルで判定する
findは一致する行があると終了コード 0、なければ 1 を返すため、if errorlevel 1で分岐できます。
@echo off
whoami /groups | find "S-1-16-12288" >nul
if errorlevel 1 (
echo 管理者として実行してください。
pause
exit /b 1
)
echo 管理者として実行されています。
管理者権限への自動昇格については、関連記事を参照してください。
ユーザー名をバッチファイルで使う
whoamiの出力を変数に格納するには、for /fを使います。
@echo off
for /f "delims=" %%u in ('whoami') do set CURRENT_USER=%%u
echo 実行ユーザー: %CURRENT_USER%
ユーザー名だけでよければ、環境変数%USERNAME%でも取得できます。
| 取得方法 | 結果の例 | 特徴 |
|---|---|---|
whoami | desktop-abc123\taro | ドメイン名(またはコンピューター名)付き |
%USERNAME% | taro | ユーザー名のみ。環境変数なので書き換えも可能 |
%USERNAME%は環境変数なので、set USERNAME=別の名前で書き換えられてしまいます。実際に実行しているユーザーを正確に知りたいときは、whoamiを使いましょう。
runasで別ユーザーとして実行したとき
runasで別のユーザーとしてコマンドプロンプトを起動した場合、そのウィンドウでwhoamiを実行すると、runasで指定したユーザーが表示されます。複数のユーザーを使い分けていて、いま開いているウィンドウがどのユーザーのものか迷ったときに確認できます。ただし/netonlyを付けた場合はネットワーク接続時の資格情報だけが変わり、ローカルのユーザーは変わらないため、whoamiは元のユーザーを表示します。
まとめ
| やりたいこと | コマンド |
|---|---|
| 現在のユーザー名を確認する | whoami |
| SID を確認する | whoami /user |
| 所属グループを確認する | whoami /groups |
| 特権を確認する | whoami /priv |
| すべての情報を表示する | whoami /all |
| 管理者として実行中か判定する | whoami /groups | find "S-1-16-12288" |
| ユーザー名を変数に格納する | for /f "delims=" %%u in ('whoami') do ... |