分散システムとポエム

Windowsで特定のプログラムだけ管理者権限で実行する

通常、一般ユーザから管理者権限が必要なアプリケーションを起動する場合、管理者権限での認証(UAC)が必要となる。アプリケーションで管理者権限が必要となるのはインストールやアンインストールをする時のみであるのが一般的。

しかし、アプリケーションの中には起動時に管理者権限が必要なものもある。今回は、この管理者権限が必要なアプリケーションを一般ユーザから起動する方法について書いてみる。

runasコマンドから実行する

調べてみたら公式フォーラムに書いてあった。GUI使わないでCUIでほとんどの処理は行えるので記事を参考にCUIメインでやってみる。

Windows7で設定した特定のプログラムのみUAC回避の方法を知りたい – マイクロソフト コミュニティ

1.「スタートメニュー」から「すべてのプログラム」>「アクセサリ」の順でクリックする。

2.「コマンドプロンプト」にカーソルを合わせて右クリック>「管理者として実行」の順にクリックする。

01_run_for_admin
コマンドプロンプトを管理者として実行

3.管理者のパスワードを入力すると管理者権限でコマンドプロンプトが起動する。

4.次のコマンドを入力してユーザー「administrator」を有効化する。(初期では無効化されている)

net user administrator /active:yes

5.次のコマンドを入力してユーザー「administrator」のパスワードを変更する。今回はパスワードを「MyPassWord」に設定した。(administratorは全権限を持っているのでパスワードは推測されにくい強固なものを設定して特に厳重に管理する。)

net user administrator MyPassWord

 

administratorの有効化・パスワード変更
administratorの有効化・パスワード変更

6.administratorが有効化されているか次のコマンドを入力して確認する。

net user

 

03_list_users

7.管理者権限で実行したいアプリケーションのショートカットをデスクトップに作成する。
今回は「Network Miner」を例に実行してみる。

8.「Network Miner」のショートカット上で右クリック>「プロパティ」をクリックして開く。

04_open_property
プロパティを開く

9.プロパティのリンク先の先頭に以下の文字列を貼り付けて「OK」をクリックする。

%windir%System32runas.exe /savecred /user:administrator

 

リンク先の書き換え
リンク先の書き換え

10.デスクトップのアイコンをダブルクリックしてアプリケーションを起動する。
(デスクトップのアイコンが変化するが問題ない。)

11.起動するとadministratorのパスワード(今回はMyPassWord)入力を求められる。先ほど設定したパスワードを入力して「Enter」を押下する。

administratorのパスワードを入力
administratorのパスワードを入力

12.起動中のメッセージが表示され、しばらく待つとアプリケーションが管理者権限で起動する。以後はパスワード入力なくアプリケーションを起動できる。

アプリケーションの起動中
アプリケーションの起動中
アプリケーションの起動
アプリケーションの起動

同じ方法をAdministrator以外の管理者権限を持ったユーザで行ったところ正常に動作せず。おそらく管理者権限を持っているUsersグループに属したユーザだとUACが効いてしまうのだろう。。

この他に、「UACをOFFにする」や「タスクスケジューラの[最上位の特権で実行する]で起動する」などの方法があるがrunasで実行するのがベストではないかと思う。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です