UACIMG

 ユーザー アカウント制御 (UAC) は、昇格された特権を必要とする特定のタスクとプロセスの管理者資格情報を必要とする追加のセキュリティ層です。レジストリエディタ(regedit)などの一部のWindowsプログラムは、昇格された特権でのみ実行できます。これを回避するために、ユーザーは多くの場合、UACを無効にするか、ユーザーアカウントに管理者権限を付与しますが、これはセキュリティ上の危険があるため、適正な方法ではありません。
 そうとはいっても実際にUACプロンプトは個人で使用している場合面倒な制御ですが、UACプロンプトをバイパスし、指定されたアプリまたはプログラムを標準特権で実行しているときに管理者資格情報を入力しない方法があります。これにより、ユーザーに管理者特権を付与する必要も、プログラムを実行するための昇格された権限も必要ありません。
 今回はその方法を3つご紹介します。
.RunAsInvoker を使用して標準ユーザーとして管理プログラムを実行する

 UACプロンプトをバイパスし、標準ユーザーとして管理者権限を必要とするプログラムを実行する最も効果的な方法の1つは、バッチファイルを使用することです。バッチファイルにはコードが含まれており、現在のユーザーアカウントの権限を使用して.EXEファイルを実行するために使用できます。

 このプロセスでは、バッチ ファイルを使用して、RunAsInvokerを含むコマンド プロンプト コマンドレットを実行します。RunAsInvoker は、特権昇格要求を無視し、プログラムを起動したコードと同じ特権でプログラムを実行するコマンド です。

RunAsInvoker を使用して特権の昇格なしでアプリまたはプログラムを実行するには、次の手順を使用します。

  1. デスクトップの空白スペースを右クリックし、[新規]を展開して、[テキストドキュメント]を選択します。
  2. テキストドキュメントを開き、その中に以下を貼り付けます。

    cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %1"

  3. CTRL + Shift + Sを押して、ファイルを「名前を付けて保存」します。
  4. [ファイルの種類]の前にあるドロップダウンメニューから[すべてのファイル]を選択し、「.bat」ファイル拡張子で終わるファイルのカスタム名を設定します。
  5. 「保存」をクリックします。
  6. 次に、昇格された特権なしで実行するアプリの.EXEファイルを、保存した.BATファイルにドラッグアンドドロップします。
  7. これで、選択したアプリ/プログラムがUACプロンプトなしで、また管理者権限なしで自動的に実行されます。

 これで、タスクマネージャーを使用して、選択プログラムが昇格された特権なしで実行されていることを確認できます。タスクマネージャ内の[詳細]タブで確認できます。ただし、「昇格」列を含める必要がある場合があります。

 バッチファイル内のアプリ/プログラムの.EXEファイルへの正確なパスを指定して、管理者権限なしで常に実行することもできます。これを行うには、バッチ ファイル内で次のコード構文を使用し、[PathToEXE] を実際の完全なパスに置き換える必要があります。

Set ApplicationPath="[PathToEXE].exe"
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %ApplicationPath%"

2.アクセス許可を付与して管理プログラムを標準ユーザーとして実行する

 プログラムは、管理者権限を要求するフラグを使用してプログラムされている場合、または現在のユーザーにアクセス許可が付与されていないシステムファイルまたはフォルダーにアクセスする必要がある場合、昇格された特権を必要とします。
 その場合、ユーザーに権限を付与することで修正できます。次の手順を使用して、現在のユーザー アカウント (またはユーザー グループ) を許可し、昇格された特権なしで関連付けられたプログラムを実行できるようにします。

  1. エクスプローラーを開き、プログラムに関連付けられているファイルディレクトリに移動します。
  2. フォルダを右クリックし、コンテキスト メニューから [プロパティ] をクリックします。
  3. 「セキュリティ」タブに切り替えて、[編集]をクリックします。
  4. ユーザー名またはグループを選択し、[ユーザーのアクセス許可]セクションの[フルコントロール]の前にあるチェックボックスをオンにします。
  5. [適用] と [OK] をクリックします。


3.コンテキストメニューに「UAC特権の昇格なしでユーザーとして実行」を含める

 コンテキストメニューから直接管理者権限なしですべての.EXEファイルを実行するオプションを含めるオプションを追加することもできます。このためには、.Windows レジストリに変更を加える REG ファイルを作成します。

手記: システムのレジストリ内の重要な値の設定ミスは、オペレーティングシステムにとって致命的となる可能性があります。したがって、プロセスを進める前に、システムの復元ポイントまたは完全なシステムイメージのバックアップを作成することをお勧めします。

コンテキストメニューから直接標準権限でアプリやプログラムを実行するには、次の手順に従います。

  1. デスクトップの空白スペースを右クリックし、[新規]を展開して、[テキストドキュメント]を選択します。
  2. テキストドキュメントを開き、その中に以下を貼り付けます。

    Windows Registry Editor Version 5.00
    [HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker]
    @="Run as user without UAC privilege elevation"
    [HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker\command]
    @="cmd /min /C \"set __COMPAT_LAYER=RUNASINVOKER && start \"\" \"%1\"\""

  3. CTRL + Shift + Sを押して、ファイルを「名前を付けて保存」します。
  4. [ファイルの種類]の前にあるドロップダウンメニューから[すべてのファイル]を選択し、「.reg」ファイル拡張子で終わるファイルのカスタム名を設定します。
  5. 「保存」をクリックします。
  6. 保存したREGファイルをダブルクリックし実行します。
    (この時点で、昇格された特権が必要になります。)
  7. 確認ダイアログ ボックスで [はい] をクリックします。
  8. アクションが実行されたら [OK] をクリックします。