none
Vistaの管理者権限が付いてしまう問題 RRS feed

  • 質問

  • 度々お世話になります

    Visual Stdio 2005 MFC, Vista/XP で開発しています。

     

    XPのPCが有る部屋とVistaの有る部屋2箇所で開発しているのですが、ある日を境に

    VistaでReleaseビルドすると管理者権限が無いと動かないバイナリになってしまう様に

    なってしまいました。

     

    特に管理者権限を必要としないので、元に戻したいのですが今までマニフェストも特別

    いじらずとも管理者権限が取れていたのですが、どうして付いてしまったのか分かりません。

     

    状況は、

     

    1)デバッグビルドの結果では管理者権限は要求されない

    2)VisualStdioのプロジェクトフォルダ以外(たとえばデスクトップ等)にプロジェクトファイルを

        コピーしてビルドすると管理者権限は要求されない

     

    取り合えず、規定のプロジェクトフォルダ以外の場所でビルドして凌いで居るのですが

    普通にプロジェクトフォルダで作業したいので、どこかのファイルを消す必要が有るのか

    はたまた設定が変になってしまったのか、お知恵をお借りしたく。

     

    宜しくお願いいたします m(_ _)m

    2008年6月18日 16:06

回答

  • >管理者権限が無いと動かないバイナリ

    という表現がいまいちわかりづらいのですが、

    要はsetup.exeみたいに昇格が必要な状態になってしまったということでしょうか?

     

    その場合でしたら、Vistaは一度昇格が必要だとおもったマニフェストが付いていないEXEを覚えているようです。

     

    素直に昇格の必要のないマニフェストを付けるほうがよいと思います。

    levelはasInvokerで。

     

    2008年6月18日 18:12
  • 出来上がったexeのファイル名を変更してみてもダメでしょうか ?

     

    マニフェストで制御していない場合、

    setup とか、updateとか、installとか言う文字列が入ったファイル名のexeは

    管理者権限が必要だと思われて、その様に動いてしまいます。

     

    出来上がったexeのファイル名を変更するだけで回避されるのであれば

    その仕組みが動いていると思われます。

    2008年6月19日 0:41
  • Exeを右クリック→「プロパティ」→「互換性」タブ→「管理者としてこのプログラムを実行する」にチェックが入っていないか確認してみてください。

    2008年6月19日 12:27
  • 前とほとんど同じですが、以下の設定も確認してみてください。

    Releaseビルドのフォルダ内のExeを右クリック→「プロパティ」→「互換性」タブ→「すべてのユーザーの設定を表示」→「管理者としてこのプログラムを実行する」にチェックが入っていないか確認してみてください。

    2008年6月20日 13:51

すべての返信

  • >管理者権限が無いと動かないバイナリ

    という表現がいまいちわかりづらいのですが、

    要はsetup.exeみたいに昇格が必要な状態になってしまったということでしょうか?

     

    その場合でしたら、Vistaは一度昇格が必要だとおもったマニフェストが付いていないEXEを覚えているようです。

     

    素直に昇格の必要のないマニフェストを付けるほうがよいと思います。

    levelはasInvokerで。

     

    2008年6月18日 18:12
  • 出来上がったexeのファイル名を変更してみてもダメでしょうか ?

     

    マニフェストで制御していない場合、

    setup とか、updateとか、installとか言う文字列が入ったファイル名のexeは

    管理者権限が必要だと思われて、その様に動いてしまいます。

     

    出来上がったexeのファイル名を変更するだけで回避されるのであれば

    その仕組みが動いていると思われます。

    2008年6月19日 0:41
  • iversionjp様、FC-Shiro様、

     

    返信有難うございます。

     

    管理者権限が無いと動かないバイナリ、という意味は、Releaseフォルダに

    出来上がるExeファイルに盾アイコンが自動的に付与されてしまう状態です。

     

    VisualStudioも管理者で実行、で実行しておかないと実行時にエラーとなる

    状態になります。また、そのExeをダブルクリックで動作させる際にも同様に

    管理者権限で動かすUAC(?)のダイアログが出てしまう状態です。

     

    更に、名前の問題では無さそうです。

    元々昨日まで同じターゲット名でビルドしていましたが、盾アイコンは付与

    されてなかったのですが、昨日から突如ビルド結果のExeに盾アイコンが

    付与され始めてしまいました。

     

    一度、プロジェクトファイルを全削除して、昔の盾アイコンが付与されてなかった

    頃にバックアップしたプロジェクトファイルをコピーして、ビルドしてもやはり盾

    アイコンが付与されてしまいます。(呪われた!?)

     

    また最初に書いたように、VisualStudioのデフォルトプロジェクトパス外でビルド

    するとReleaseビルドでも通常の盾の無い状態のExeが出来上がります。

     

    どうした物でしょうか・・・。やっぱりマニフェストを自分で作って付与するしか

    無いのでしょうか(気持ち悪いのは元々そんな事しないでも良かった点ですね・・・)

    2008年6月19日 3:49
  • Exeを右クリック→「プロパティ」→「互換性」タブ→「管理者としてこのプログラムを実行する」にチェックが入っていないか確認してみてください。

    2008年6月19日 12:27
  • C.John様、

     

    度々お世話になっております

     

     C.John さんからの引用

    Exeを右クリック→「プロパティ」→「互換性」タブ→「管理者としてこのプログラムを実行する」にチェックが入っていないか確認してみてください。

     

    チェックは入って居ませんでした。

    で、プロジェクトフォルダ内だと盾アイコンが付くのですが、出来上がったExeを別のフォルダ

    (たとえばデスクトップ等)にコピーするとコピー先では盾が取れます。

     

    ということはプロジェクトフォルダに何らかの属性が付いてしまっているのでしょうか....

    2008年6月19日 14:46
  • 前とほとんど同じですが、以下の設定も確認してみてください。

    Releaseビルドのフォルダ内のExeを右クリック→「プロパティ」→「互換性」タブ→「すべてのユーザーの設定を表示」→「管理者としてこのプログラムを実行する」にチェックが入っていないか確認してみてください。

    2008年6月20日 13:51
  • C.John 様、

     

     C.John さんからの引用

    前とほとんど同じですが、以下の設定も確認してみてください。

    Releaseビルドのフォルダ内のExeを右クリック→「プロパティ」→「互換性」タブ→「すべてのユーザーの設定を表示」→「管理者としてこのプログラムを実行する」にチェックが入っていないか確認してみてください。

     

    ご指摘の点を確認したら、チェックが付いていました。

    このチェックを外した後は、ビルドしても盾アイコンが付与されない状態に戻りました。

     

    感謝感謝です!

     

    # しかし、なぜここのチェックが入ってしまったのだろうか...

    2008年6月20日 16:02