.NET TIPS 管理者としてほかのアプリケーションを実行するには?デジタルアドバンテージ 一色 政彦2009/12/10 |
![]() |
「TIPS:ほかのアプリケーションを実行するには?」や「TIPS:ほかのアプリケーションを実行してその終了を待つには?」では、Processクラス(System.Diagnostics名前空間)のStartメソッドを利用して、プログラム内からほかのアプリケーションを実行する方法を説明した。
ところで、Windows VistaやWindows Server 2008 R2、Windows 7など最新のWindows OSでは、UAC(ユーザー・アカウント制御)というセキュリティ機構が採用されている。その環境下で、これらのTIPSの方法を用いてほかのアプリケーションを実行する場合、そのアプリケーションは一般ユーザーとして実行されるため、管理者権限が必要な処理(例えば、%ProgramFiles%の配下にあるファイルを書き換える処理など)ではUnauthorizedAccessException例外が発生して処理が失敗する。失敗しないようにするには、管理者として実行する必要がある。
これを実現するには、ProcessStartInfoクラスのオブジェクト(System.Diagnostics名前空間)が持つVerbプロパティに「RunAs」を設定すればよい。Verbプロパティは、プロセス実行時のアクション(例えば、ドキュメントを印刷する動詞は「Print」。ほかに「Edit」「Open」「OpenAsReadOnly」「Printto」など)が指定できる。UAC環境下で「RunAs」を実行すると、管理者モードでプロセスを実行しようとする。
なお、ProcessStartInfoオブジェクトは、Processクラス(System.Diagnostics名前空間)のオブジェクトのStartInfoプロパティから得られる。ProcessクラスとProcessStartInfoクラスの使い方は、「TIPS:ほかのアプリケーションを実行してその終了を待つには?」を参考にしてほしい。本稿での説明は割愛する。
管理者としてほかのアプリケーションを実行するサンプル・コード次のサンプル・コードは、Cドライブの直下に配置したCheckRole.exeファイルを管理者として実行するコンソール・アプリケーションである。
CheckRole.exeは、「TIPS:ユーザーのセキュリティ権限を簡単に確認するには?(応用編)」で示したサンプル・プログラムで、現在実行されているアプリケーションが管理者権限を持つかどうかを表示できるコンソール・アプリケーションである。
|
||
| 管理者としてほかのアプリケーションを実行するサンプル・コード(上:C#、下:VB) |
このプログラムを実行すると、次の画面のような、UACによる権限昇格の確認ダイアログが表示される。
![]() |
| 権限昇格の確認ダイアログ |
このダイアログで[はい]を選択すると、次の画面のように、ほかのコンソール・アプリケーション(CheckRole.exe)が実行される。
![]() |
| 実行されたほかのコンソール・アプリケーション(CheckRole.exe) |
上の画面の赤枠部分を見ると、管理者(Administrators)権限が有効(True)であることが確認できる。![]()
| カテゴリ:クラス・ライブラリ 処理対象:Windows環境 カテゴリ:クラス・ライブラリ 処理対象:UAC 使用ライブラリ:Processクラス(System.Diagnostics名前空間) 使用ライブラリ:ProcessStartInfoクラス(System.Diagnostics名前空間) 使用ライブラリ:UnauthorizedAccessExceptionクラス(System名前空間) 関連TIPS:ほかのアプリケーションを実行するには? 関連TIPS:ほかのアプリケーションを実行してその終了を待つには? 関連TIPS:ほかのアプリケーションを実行してその終了を待つには? |
|
||||||||||||||||||||||||||||
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -




