UAC: User Account Control | ユーザーアカウント制御
悪意のあるアプリケーションからWindowsを守るための防波堤
悪意のあるアプリケーションからWindowsを守るための防波堤
UACはWindows Vista以降のWindows OSに実装されたセキュリティの基盤となる技術です。
これにより、マルウェアなどの悪意のあるアプリケーションがWindowsシステムを安易に変更できないようになりました。
Windowsは次の動作をします。
[既定の動作]
- 管理者権限のあるユーザーアカウントでWindowsにログインしても、アプリはユーザーモードで動作する(標準ユーザー権限)
- アプリが管理者権限を要求した時は、UACダイアログを表示してユーザーへ通知する(ユーザーアカウント制御)
- はいを選択した時のみ、アプリは管理者権限で動作することができる
UACダイアログ
「この不明な発行元からのアプリがデバイスに変更を加えることを許可しますか?」RUNAS.exe
Windowsに実装されている [runas.exe(runasコマンド)] は、UACダイアログをスキップするオプションがあります。
スタートアップフォルダに登録したプログラムの中に管理者権限を要求するものがある場合、UACダイアログが表示され処理が中断しますが、runas を利用するとはいをクリックする手間を省くことができます。
コマンドプロンプトはちょっと~...?
という場合は、runasコマンドショートカットを作成することができるElevatedShortcutがあります。
UAC の弊害
例えば、
スタートアップフォルダーに登録されたプログラム(ショートカット)は、Windows OS のロードが終わると自動的に実行されますが、管理者権限を要求するプログラムの順番になるとUACが反応して処理が中断します。
ユーザーは「はい|いいえ」を選択するまで先に進めません。
[Windows起動処理]
- PC電源ON
- Windowsシステムファイルがロードされる
- レジストリ、タスクスケジューラー、スタートアップフォルダーに登録されたプログラムがロードされる(スタートアップ処理)
- 管理者権限を要求するプログラムがあるとUACが反応して処理が中断する
- [はい|いいえ] を選択する ← ボトルネック
- スタートアップ処理終了
- Windows起動処理終了
安全性が確認されているプログラムでも「はい」を選択するまで先に進めないので煩わしいです。
スタートアップフォルダー
※Windows 10の例
自動起動させるプログラムのショートカットが配置されています。
Startup Folder
xxx: Login account NameC:\Users\xxx\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
すべてのユーザーに有効
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
UACをスキップする方法
[PLAN]
- runasコマンドのショートカットを作成する。 ← この記事
- ElevatedShortcut(Winaero Tweaker) を利用する。(関連記事)
- ユーザーアカウント制御の設定を「通知しない」に変更する。
この記事はPLAN-Aの手順を記述しています。
PLAN-Bは関連記事をお読みください。
PLAN-Cはセキュリティが甘くなるのでお勧めできませんが、あとがきに設定画面を掲載しました。
runasチェック
runas.exeが実行可能か否かを確認することができます。
通常起動したコマンドプロンプトを使用します。
実行するコマンド。
>runas /?
"RUNAS 使用法:" と表示されたら runas コマンドが利用できます。併せてヘルプが表示されるので参考にしてください。
c:\_ | 管理者:コマンド プロンプト | ー □ × |
C:\Windows\System32>runas /? RUNAS 使用法: RUNAS [ [/noprofile | /profile] [/env] [/savecred | /netonly] ] /user:<ユーザー名> プログラム RUNAS [ [/noprofile | /profile] [/env] [/savecred] ] /smartcard [/user:<ユーザー名>] プログラム |
ヘルプが表示されない?
ヘルプが表示されない時は、runas.exeを利用することはできません。以下の場所にrunas.exeが存在することを確認しましょう。
runas.exe の場所
C:\Windows\System32\runas.exe
C:\Windows\System32\runas.exe
管理者権限でコマンドプロンプトを起動してもヘルプが表示されない時は、お使いのPCはrunas.exeは使用できません。
レアケースですね...
たぶんシステムがおかしい...かも?
コマンドプロンプトから実行する
コマンドプロンプトで正しく動作したら、入力したコマンド一式をショートカットとして保存する方法がお勧めです。
[/savecred] オプションは初回に限りダイアログが表示されます。2回目以降は表示されません。
書式は次の通りです。
>runas /savecred /user:administrator "<プログラムのパス>"
<プログラムのパス>はフルパスを指定します。
以下は、通知領域の時計を改造することができるソフトウェア「TClock」を管理者として起動するための設定例です。
c:\_ | 管理者:コマンド プロンプト | ー □ × |
C:\>runas /savecred /user:administrator "c:\tclock\tclock.exe" |
ショートカットを作成する
前項の手順を踏んでいると、このステップはコピペするだけです。
1. 新規作成ウィザードを起動する
エクスプローラー > ホーム > 新しいアイテム > ショートカット
2. 場所を入力する
※参照ボタンは使いません[手順]
- 「項目の場所を入力してください」の下に runas ... コマンドを入力する
- 次へを選択する
runas /savecred /user:administrator "<UACを回避させたいプログラムのパス>
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に搭載されたこのセキュリティの仕組みにより、ウイルスや...
まとめ
[UACをスキップする方法]
- runas.exe ショートカットを作成すると、UACをスキップすることができる。
- コマンド:> runas /savecred /user:administrator c:\program_pass
- runas.exe の引数に Administrator を使用するため、Administratorがアクティブ化されている必要がある。
- ElevatedShortcut(フリーソフト)を利用する方法もある。
External link