Visual Studio 2013:タスクバーから管理者権限でIDEを起動するには?.NET TIPS

タスクバーから、あるいはソリューションファイルをダブルクリックしたときに、常に管理者権限でVisual Studio 2013を起動する方法を解説する。

» 2014年08月26日 17時29分 公開
.NET TIPS
Insider.NET

 

「.NET TIPS」のインデックス

連載目次

 Visual StudioのWebアプリプロジェクトやWebサイトプロジェクトでローカルなIISを使用する場合など、Visual Studio 2013のIDEを管理者権限で起動する必要がある。本TIPSでは、常に管理者権限で起動する方法を紹介する。

Visual Studio 2013を管理者権限で起動する簡単な方法

 Windows 8.xでVisual Studio 2013(以下、VS 2013)を管理者権限で起動する方法はいくつかある。スタート画面では、タイルを右クリックしてショートカットメニューから[管理者として実行]を選択する。タスクバーでは、アイコンを右クリックしてジャンプリストを表示し、そこからさらにアプリ名を右クリックして[管理者として実行]を選択すればよい。ただし、後者の方法では、管理者権限でVS 2013を起動して、ジャンプリストに表示されているソリューションを読み込ませることはできない。

VS 2013を管理者権限で起動する一番簡単な方法
VS 2013を管理者権限で起動する一番簡単な方法 VS 2013を管理者権限で起動する一番簡単な方法
スタート画面から起動する場合は、タイルを右クリックして[管理者として実行]を選択する。
タスクバーから起動する場合は、ジャンプリストで[Visual Studio 2013]を右クリックして、ショートカットメニューの[管理者として実行]を選択する。なお、上の画像ではジャンプリストに[App4.sln]というソリューションファイルが表示されているが、これをクリックすると標準ユーザーとしてVS 2013が起動され、ソリューションが読み込まれる。

 右クリックして[管理者として実行]を選択するのではなく、タスクバーのアイコンまたはジャンプリストに表示されたVS 2013のアプリ名をクリックするだけで、あるいは[最近使ったもの]からソリューションファイルをクリックするだけで、さらにWindowsエクスプローラーでソリューションファイルをダブルクリックするだけで、VS 2013を管理者権限で起動できると便利だ。以下ではその手順を説明する。

タスクバーからVS 2013を管理者権限で起動できるようにする

 タスクバーからVS 2013を管理者権限で起動できるようにするには、以下の2種類のファイルに対して設定を行う必要がある。

  • VS 2013のIDEを起動するコマンド(devenv.exeファイルなど)
  • VSLauncher.exeファイル

 VS 2013では、ソリューションファイル(.slnファイル)をダブルクリックした際に、直接VS 2013が起動されるわけではない。ソリューションファイルはVSLauncher.exeファイルが処理をし、そこから適切なバージョン/エディションのVSが起動されるようになっている。そのため、VS 2013のプログラムファイル自体に加えて、VSLauncher.exeファイルについても設定を行う必要がある。

 さらにExpressエディションではIDEを起動するためのコマンド名が有償版のVS 2013(以下、devenv.exeファイルとする)とは異なっている。

  • VS Express 2013 for Windows(Windowsストアアプリ開発用):VSWinExpress.exeファイル(以下、「for Windows」とする)
  • VS Express 2013 for Windows Desktop(デスクトップアプリ開発用):WDExpress.exeファイル(以下、「for Desktop」とする)
  • VS Express 2013 for Web(Webアプリ開発用):VWDExpress.exeファイル(以下、「for Web」とする)

 ここではまずそのプロパティダイアログに[互換性]タブがあるものの設定方法を(「for Desktop」など)、次にそのプロパティダイアログに[互換性]タブがないものの設定方法を(devenv.exeファイルなど)を紹介しよう。これらは設定方法が微妙に異なるのだ。なお、いくつかの環境で試してみたが、「for Desktop」と「for Web」ではプロパティダイアログに[互換性]タブがあり、devenv.exeファイルと「for Windows」ではプロパティダイアログに[互換性]タブが表示されなかった(読者の環境ではそうはならないかもしれない)。その後、VSLauncher.exeファイルの設定方法を紹介する。

 いずれにしろ、スタート画面(あるいはその左下に[↓]ボタンを押すと表示されるアプリ画面)からタスクバーに、自分が使用しているVS 2013をピン留めしておこう。なお、「devenv.exeファイル」はインターネット検索でもよく見かけるなじみ深いファイル名だが、Expressエディションの個々の実行ファイル名を表記しても分かりにくい。そこで、以下では後者については「for 〜」とだけ表記することにする。

プロパティダイアログに[互換性]タブがあるものの場合

 前述の通り、筆者が試した限りは「for Desktop」と「for Web」がこちらに分類される。ここでは「for Desktop」を例とする。タスクバーでアイコンを右クリックし、ジャンプリストで[VS Express 2013 for Desktop]をもう一度右クリックして、ショートカットメニューから[プロパティ]を選択する。プロパティダイアログが表示されたら[互換性]タブで[管理者としてこのプログラムを実行する]チェックボックスにチェックを入れる。

ジャンプリストで[VS Express 2013 for Desktop]を右クリックし、ショートカットメニューの[プロパティ]選択

ジャンプリストで[VS Express 2013 for Desktop]を右クリックし、ショートカットメニューの[プロパティ]選択

プロパティダイアログの[互換性]タブで[管理者としてこのプログラムを実行する]チェックボックスにチェックを入れる

プロパティダイアログの[互換性]タブで[管理者としてこのプログラムを実行する]チェックボックスにチェックを入れる

「for Desktop」の場合
「for Web」も同様な方法で設定できる。


 「for Web」も同様な方法で設定が可能だ。次に、プロパティダイアログに[互換性]タブがない場合だ。

devenv.exeファイルの場合

 筆者が試したところでは、devenv.exeファイル(有償版のVS 2013)と「for Windows」がこちらだ。ここではdevenv.exeファイルを例とする。プロパティシートを出すまでは[互換性]タブがある場合と同じだが、その後が微妙に異なる。こちらではプロパティダイアログに[互換性]タブがないので[ショートカット]タブにある[詳細設定]ボタンをクリックする。[詳細プロパティ]ダイアログが表示されたら、[管理者として実行]チェックボックスにチェックを入れる。

devenv.exeファイルの場合 devenv.exeファイルの場合
「for Windows」も同様な方法で設定できる。

 devenv.exeファイルと「for Windows」では、この後で、レジストリエントリに手作業で設定を行う必要もあるが、これについては後述する。

VSLauncher.exeファイルの設定

 VSLauncher.exeファイルの設定は、「for Desktop」と同様にプロパティダイアログの[互換性]タブで行える。VS 2013をデフォルト設定でインストールした場合、このファイルは「C:\Program Files (x86)\Common Files\Microsoft Shared\MSEnv」ディレクトリにあるので、Windowsエクスプローラーでディレクトリをブラウズして、このファイルを見つけて設定すればよい。が、これが面倒だという場合には、手近にあるソリューションファイルをタスクバーにドラッグ&ドロップしてみよう。これにより、VSLauncher.exeファイルがタスクバーにピン留めされる。

タスクバーにソリューションファイルをドラッグ&ドロップ

タスクバーにソリューションファイルをドラッグ&ドロップ

この後の設定方法は最初に紹介したものと同様

この後の設定方法は最初に紹介したものと同様

VSLauncherをタスクバーにピン留め
設定が終わったら、ピン留めを止めても構わない。


 ピン留めをした後は、VS Express 2013 for Windows Desktopと同様な方法で設定を行う。その後、ピン留めは外してしまっても構わない。

 以上の設定が終われば、タスクバーでアイコンをクリックするだけで(あるいはジャンプリストでVS 2013のプログラム名をクリックするだけで)、VS 2013が管理者権限で起動される。Windowsエクスプローラーでソリューションファイルをダブルクリックした場合も同様だ。ただし、ジャンプリストで最近使ったソリューションをクリックした場合には、devenv.exeファイルと「for Windows」では管理者権限でVS 2013が起動されない(「for Desktop」と「for Web」は管理者権限で起動される)。

 これはどうやら、devenv.exeファイルと「for Windows」では上記の作業だけでは、レジストリに必要なエントリが登録されないからのようだ。

手作業でレジストリにエントリを追加する

 「for Desktop」を例に紹介をした設定を行うと、レジストリの「HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers」キーに「そのプログラムファイルのフルパス」を名前とし、「~ RUNASADMIN」をデータとする文字列値が登録される。このエントリがないと、ジャンプリストで最近使用したソリューションをクリックしても、管理者権限でVS 2013が起動されないようだ。そして、[詳細プロパティ]ダイアログで[管理者として実行]チェックボックスにチェックを入れた場合(devenv.exeファイルと「for Windows」)、これらのエントリが登録されないのである。

追加されるレジストリのエントリ 追加されるレジストリのエントリ
「for Desktop」「for Web」「VSLauncher.exe」ファイルについてはレジストリにエントリが作成されている。

 そこで、これらを手作業で追加する必要がある。一番簡単なのは、先ほどの要領でタスクバーにピン留めしたアイコンからプロパティダイアログを表示し[ショートカット]タブの[ファイルの場所を開く]ボタンをクリックする方法だ。すると、そのファイルが選択された状態でWindowsエクスプローラーが開くので、[Shift]キーを押しながら、このファイルを右クリックする。ショートカットメニューに[パスのコピー]があるので、これをクリックしよう。

フルパスのコピー フルパスのコピー
プロパティダイアログの[ファイルの場所を開く]ボタンを使ってWindowsエクスプローラーを表示し、ショートカットメニューの[パスのコピー]でファイルのフルパスをコピーする。

 フルパスをコピーしたら、レジストリに文字列値を追加する。このとき、コピーしたフルパスはダブルクォートで囲まれているので、ダブルクォートを削除するのを忘れないようにしよう。そして、その文字列値のデータを「~ RUNASADMIN」にする。

手作業でのレジストリへの文字列値の追加(devenv.exeファイルの場合) 手作業でのレジストリへの文字列値の追加(devenv.exeファイルの場合)
文字列値を新規に作成し、その名前をフルパスにする(このとき、フルパスを囲むダブルクォートを削除すること)。そして、そのデータを「~ RUNASADMIN」にする。
「for Windows」についても同様に設定できる。

 以上の作業を行えば、devenv.exeファイルや「for Windows」でジャンプリストに表示されたソリューションファイルをクリックした場合でも、管理者権限でVS 2013が起動するようになる。実際には、プロパティダイアログに[互換性]タブがない場合は、手作業でレジストリへ文字列値を追加すれば、[詳細プロパティ]ダイアログで[管理者として実行]チェックボックスにチェックを入れる必要はない。逆に、このチェックを外しても、レジストリから文字列値が削除されないことには注意してほしい。

 なお、管理者権限が必要な状況についてはMSDNの「ユーザー アクセス許可と Visual Studio」や「管理者権限を持たないユーザーとしての Visual Studio の Web プロジェクトの使用」などを参考にされたい。また、前者のページでも言及されているように、最近では通常のユーザーとしてVS 2013を起動しても大半の作業は可能だ。どうしてもというとき以外は通常のユーザーとしてVS 2013を使用することをお勧めする。

利用可能バージョン:.NET Framework 4.5.x
カテゴリ:Visual Studio 2013 処理対象:IDE
関連TIPS:常に管理者としてアプリケーションを実行させるには?[C#、VB、VS 2008] − @IT


「.NET TIPS」のインデックス

.NET TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。