
悪意のあるアプリケーションからWindowsを守るための防波堤
runas (runas.exe)
runasコマンドは、Windowsに実装されたコマンドラインツールで、他のユーザーの権限でプログラムやコマンドを実行する機能を持っています。
runasコマンドを使用することで、現在ログインしているユーザーとは別のユーザーアカウントでプログラムを実行することができます。
例えば、管理者特権でプログラムを実行したい場合、runasコマンドを使って、管理者アカウントでプログラムを実行することができます。
UAC (User Account Control)
ユーザーアカウント制御(UAC)は、Windowsのセキュリティ機能の一つで、管理者特権で実行される悪意のあるコードを制限することで、マルウェアのリスクを軽減するために設計されています。
UACは、各アプリケーションで管理者アクセストークンを必要とし、エンドユーザーに同意を求める必要があります。ただし、親プロセスと子プロセスの間に存在するリレーションシップでは、子プロセスは親プロセスからユーザーのアクセストークンを継承します。
UACは、Windows Vista以降のWindowsに実装されたセキュリティの基盤となる技術のためデフォルトで有効になっており、アプリケーションのインストールやシステム設定を変更する場合など、Windowsシステムに重要な変更を加える際に、実行を許可するかどうかを事前に確認する機能です。
これにより、マルウェアなどの悪意のあるアプリケーションがWindowsシステムを安易に変更できないようになりました。
Windowsは次の動作をします。
- 管理者特権のあるユーザーアカウントでWindowsにログインしても、アプリはユーザーモードで動作する(標準ユーザー権限)
- アプリが管理者特権を要求した時は、UACダイアログを表示してユーザーへ通知する(ユーザーアカウント制御)
- はいを選択した時のみ、アプリは管理者特権で動作することができる
UACが反応した時のWindows
「この不明な発行元からのアプリがデバイスに変更を加えることを許可しますか?」

RUNAS.exe

スタートアップフォルダに登録したプログラムの中に管理者特権を要求するものがある場合、UACダイアログが表示され処理が中断しますが、runas を利用するとはいをクリックする手間を省くことができます。
具体的には、runas のオプションスイッチ /savecred を使います。
コマンドプロンプトはちょっと~...?
という場合は、runasコマンドショートカットを作成することができる ElevatedShortcut を利用する方法があります。
ElevatedShortcut は Winaero Tweakerに統合されましたが、Internet Archive からダウンロードすることができます。
特にこだわりがなければ、WinaeroTweaker を利用しましょう。

UACダイアログをパスしてプログラムを実行させる方法
ElevatedShortcut は特定プログラムの UACダイアログを回避するために、タスクスケジューラ経由でアプリケーションを起動するショートカットを作成するソフトウェアです。
UAC の弊害

例えば、
スタートアップフォルダーに登録されたプログラム(またはショートカット)は、Windows OS のロードが終わると自動的に実行されますが、管理者特権を要求するプログラムの順番になるとUACが反応して処理が中断します。
ユーザーは「はい|いいえ」を選択するまで先に進めないので、安全性が確認されているプログラムでも「はい」を選択するまで先に進めないのは煩わしいです。
- PC電源ON
- Windowsシステムファイルがロードされる
- レジストリ、タスクスケジューラー、スタートアップフォルダーに登録されたプログラムがロードされる(スタートアップ処理)
- 管理者特権を要求するプログラムがあるとUACが反応して処理が中断する
- [はい|いいえ] を選択する ← ボトルネック
- スタートアップ処理終了
- Windows起動処理終了
スタートアップフォルダー
※Windows 10の例スタートアップフォルダーは自動起動させたいプログラムのショートカットを登録するためのWindowsの特殊なフォルダーです。
*ABC: Login account Name
すべてのユーザーに有効
UACをスキップする方法

PLAN-Bは関連記事をお読みください。PLAN-Cはセキュリティが甘くなるのでお勧めできませんが設定画面を掲載したので参考にしてください。
- runasコマンドのショートカットを作成する。 ← この記事
- ElevatedShortcut(Winaero Tweaker) を利用する。(関連記事)
- ユーザーアカウント制御の設定を「通知しない」に変更する。
runasチェック
runas.exeが実行可能か否かを確認することができます。
通常起動したコマンドプロンプトを使用します。
実行するコマンド。
"RUNAS 使用法:" と表示されたら runas コマンドが利用できます。併せてヘルプが表示されるので参考にしてください。
c:\_
| 管理者:コマンド プロンプト | ー □ × |
C:\Windows\System32>runas /? RUNAS 使用法: RUNAS [ [/noprofile | /profile] [/env] [/savecred | /netonly] ] /user:<ユーザー名> プログラム RUNAS [ [/noprofile | /profile] [/env] [/savecred] ] /smartcard [/user:<ユーザー名>] プログラム |
以下の場所にrunas.exeが存在することを確認しましょう。
C:\Windows\System32\runas.exe
管理者特権でコマンドプロンプトを起動してもヘルプが表示されない時は、お使いのPCはrunas.exeは使用できません。
レアケースですね...
たぶんシステムがおかしい...かも?
コマンドプロンプトから実行する

[/savecred] オプションは初回に限りダイアログが表示されます。2回目以降は表示されません。
書式は次の通りです。
<プログラムのパス>はフルパスを指定します。
以下は、通知領域の時計を改造することができるソフトウェア「TClock」を管理者として起動するための設定例です。
c:\_
| 管理者:コマンド プロンプト | ー □ × |
C:\>runas /savecred /user:administrator "c:\tclock\tclock.exe" |
ショートカットを作成する

1. 新規作成ウィザードを起動する

2. 場所を入力する
※参照ボタンは使いません[手順]
- 「項目の場所を入力してください」の下に runas ... コマンドを入力する
- 次へを選択する

3. 名前をつける
[手順]- 「このショートカットの名前を入力してください」の下に任意の文字列を入力する
- 完了をクリックする
入力例:runas TClock

パスワードを要求される?
ショートカットを実行した時にadministratorのパスワードを要求された時は、adminstratorのパスワードを入力してください。2回目からは [/savecred] オプションが機能するのでパスワードは要求されません。
runas パラメーター
出典:Runas - Microsoftパラメーター | 説明 |
/profile | ユーザーのプロファイルを読み込みます。既定値です。このパラメーターは/netonlyパラメーターと併用できません。 |
/no profile | ユーザー プロファイルを読み込まないように指定します。これはアプリケーションをより迅速にロードすることができますが、アプリケーションによっては誤動作を引き起こします。 |
/env | ユーザーのローカル環境ではなく、現在のネットワーク環境を使用することを指定します。 |
/netonly | 指定したユーザー情報がリモート アクセスのみであることを示します。このパラメーターは、/profileパラメーターと併用できません。 |
/savecred | このユーザーが資格情報を以前保存したかどうかを示します。Windows Vista Home または Windows Vista Starter エディションでは、このパラメーターは利用可能ではないため、無視されます。このパラメーターは/smartcardパラメーターと併用できません。 |
/smartcard | 資格情報が、スマート カードから供給されるかどうかを示します。このパラメーターは/savecredパラメーターと併用できません。 |
/showtrustlevels | /trustlevelへの引数として使用できる、信頼レベルが表示されます。 |
/trustlevel | アプリケーションを実行する、承認のレベルを指定します。/showtrustlevelsを使用し、利用できる信頼レベルを参照してください。 |
/user:<UserAccountName> "<ProgramName> <PathToProgramFile>" | プログラムを実行するユーザーアカウントの名前、プログラム名、およびプログラムファイルへのパスを指定します。 ユーザーアカウント名の形式は、<ユーザー>@<ドメイン>または<ドメイン>\<ユーザーアカウント名>である必要があります。 |
/? | コマンド プロンプトでヘルプを表示します。 |
参考:UACをOFFにする
ユーザーアカウント制御を「通知しない」に設定すると、UACダイアログをスキップすることができますが、セキュリティ上好ましくないのでお勧めできません。

Administrator
Administrator はWindowsの特別なアカウントです。
runas.exe を使用する時は、Administrator が使える状態になっている必要があります。
ElevatedShortcut
ElevatedShortcutは、runasショートカットを作成することができるソフトウェアです。
ElevatedShortcutはWindowsチューニングソフトウェア「Winaero」に統合されたので単体の公開は終わってますが、Internet Archiveから入手することができます。
入手方法↓
UACダイアログをパスしてプログラムを実行させる方法|Elevated Shortcut
起動しようとしているプログラムが管理者特権を要求する場合、UACダイアログが表示され起動処理が中断します。 Windows 7に搭載されたこのセキュリティの仕組みにより、ウイルスや...
まとめ


- runas.exe ショートカットを作成すると、UACをスキップすることができる。
- コマンド: > runas /savecred /user:administrator c:\program_pass
- runas.exe の引数に Administrator を使用するため、Administratorがアクティブ化されている必要がある。
- ElevatedShortcut(フリーソフト)を利用する方法もある。
- startup | SC2
Elevated Shortcut は、UACをバイパスするショートカットを作成するツールです。

Elevated ShortcutでUACをバイパスする方法
UACは、Windowsセキュリティの重要な機能の一つです。スタートアップに登録した信頼するプログラムであってもUACが反応するため、処理が中断するというデメリットがあります。緩和手段としてElevated Shortcutを利用することができます。
このサイトを検索 | Search this site