0

.NET 3.5 を対象とする 32 ビット アプリケーションを開発中です。VS2010 は私の開発ツールです。私のアプリでは、さまざまなことに昇格された特権が必要なので、次の行を含むアプリケーション マニフェストがあります。

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

これは正しいことなので、マニフェストには、アプリケーションが Windows 7 および Windows Vista と互換性があることを示す次の行もあります。

<!--The ID below indicates application support for Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!--The ID below indicates application support for Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>

このアプリは、Windows 7 と Windows Vista で問題なく動作します。すぐに UAC プロンプトがポップアップ表示され、レジストリの仮想化などの影響を受けません。マニフェストはそこで明らかに機能しています。

ただし、2008 R2 では、これらのどれも当てはまりません。UAC プロンプトが表示されません。レジストリの仮想化が発生します (私の主な問題)。アプリケーション マニフェストを完全に無視しているようです。どこを見ればいいのか、何を確認すればいいのかわかりません。7、Vista、および 2008 R2 でまったく同じビットを実行したところ、毎回まったく同じ結果が得られました。私の 2008 R2 インストールは、テスト用に新しくインストールされた VM であるため、完全にバニラです。

また、Server 2008 は基本的にマニフェストを無視して、2008 R2 と同じように動作していると確信しています。どんな助けでも大歓迎です!

4

2 に答える 2

0

私は自分の質問に対する奇妙な答えを見つけましたが、それは2つの部分に分かれています。

  • 何らかの理由で、2008または2008 R2のどちらでもUACプロンプトが表示されませんが、どちらの場合も、アプリは適切に昇格され、アプリケーションの仮想化は正しく無効になっています。

  • 私のアプリは32ビットで、Wow6432Nodeレジストリキーに書き込んでいたため、変更が表示されなかったために仮想化が行われていると思いました。私がテストしていなかった2008x86でテストした場合、変更はそこに表示されていましたが、x64OSには表示されていなかったでしょう。

于 2010-11-19T20:09:46.007 に答える
0

Server 2008 R2 では、デフォルトで UAC がオフになっています。オフになっている場合、管理者グループのユーザーは完全な管理者権限を持ち、管理者以外のユーザーは管理者権限を持たず、管理者アカウントに昇格できません。

于 2011-03-04T12:17:26.057 に答える