web-dev-qa-db-ja.com

プロセスが管理者権限で実行されているかどうかを確認するにはどうすればよいですか?

UACが有効になっているWindows Vistaを使用しています。アプリケーションをインストールしましたが、インストーラーには管理者権限が必要です。次に、インストーラーがアプリケーションを起動しました。アプリケーションが引き続き管理者権限で実行されているかどうかを知りたい。

Windowsタスクマネージャとプロセスエクスプローラを試しましたが、どちらもこの情報を表示していないようです。

44
Tim

Process Explorer で、プロセスをダブルクリックしてプロパティを開きます。 Securityタブに移動します。グループリストでBUILTIN\Administratorsを見つけて、Flags列。

拒否=昇格しない(管理者ではない)

alt text

所有者=昇格(管理者)

alt text

43
Ryan Bolger

Process Explorerでは、表示される列を変更し、[Process Image]タブから[Integrity level]列を追加できます。

enter image description here

これは明らかに、管理者特権でプロセスを実行したときに変更されるものの専門用語です。管理者としてProcess Explorerを実行すると、通常のプロセスは「中」の整合性レベルとして表示され、上位のプロセスは「高」として表示されます。

通常のユーザーとしてプロセスエクスプローラーを実行すると、整合性レベルの列に空白のエントリがある管理者特権を持つプロセスが表示されます。

42
Tim

OSで更新:Windows 7およびWindows 10に含まれていると思われるリソースモニター(Vistaについては不明)は、CPUタブのプロセスセクションのリストにオプションの「昇格」列があり、かなり正確に見えます。

3
stackuser83

コマンドラインツールを使用する場合は、 MS Sysinternals SuiteAccesschk ユーティリティを使用して、プロセスが管理者権限で実行されているかどうかを確認できます。

次のフラグは、この目的に役立ちます。

  • -p(プロセス)オプションは、実行中のプロセスの名前またはPIDを受け入れます。

  • -v(冗長)オプションは Windows Integrity Level を出力します

  • -q(クワイエット)オプションは、バージョン情報が印刷されないようにします。

  • -f(フル)オプションを使用して、プロセスに関する詳細情報(ユーザー、グループ、特権のセキュリティトークンの詳細)を提供することもできますが、このレベルの追加の詳細は、昇格された特権を確認する必要はありません。

実行中のすべてのcmdプロセスの特権を一覧表示します。

> accesschk.exe -vqp cmd

[5576] cmd.exe
  Medium Mandatory Level [No-Write-Up, No-Read-Up]
  RW ICS\Anthony
        PROCESS_ALL_ACCESS
  RW NT AUTHORITY\SYSTEM
        PROCESS_ALL_ACCESS
[8224] cmd.exe
  Medium Mandatory Level [No-Write-Up, No-Read-Up]
  RW ICS\Anthony
        PROCESS_ALL_ACCESS
  RW NT AUTHORITY\SYSTEM
        PROCESS_ALL_ACCESS
Error opening [6636] cmd.exe:
Access is denied.

ここでは、開始したcmdプロセスが3つあることがわかります。最初の2つにはMedium必須(整合性)レベルがあり、私のドメインアカウントで実行されているように表示され、これらのプロセスが管理者権限なしで開始されたことを示します。

ただし、最後のプロセス(PID 6636)は昇格された権限で開始されたため、非特権コマンドはそのプロセスに関する情報を読み取ることができません。昇格されたアクセス許可accesschkで実行し、そのPIDを明示的に指定すると、次の情報が出力されます。

> accesschk.exe -vqp 6636

[6636] cmd.exe
  High Mandatory Level [No-Write-Up, No-Read-Up]
  RW BUILTIN\Administrators
        PROCESS_ALL_ACCESS
  RW NT AUTHORITY\SYSTEM
        PROCESS_ALL_ACCESS

これで、整合性レベルがHighであり、このプロセスがAdministrators組み込みセキュリティグループの下で実行されていることがわかります。

0