2

管理アプリケーションが起動時に管理者権限を要求することを保証するこの方法の安定性は次のとおりです。

<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>

これは Windows 7 では問題なく動作しますが、私は XP と Vista にアクセスできないため、わかりません。

4

3 に答える 3

2

Windows XPはrequestedPrivilegesノードを処理せず、UACメカニズムもありません。

UACとrequestedExecutionLevelを設定する機能は、どちらもWindowsVistaで導入されました。


Windows XPの標準アカウントは厳密にはそれであり、再度ログインする以外に管理タスクを実行するための昇格メカニズムはありませんでした。

したがって、XPでのアクセス許可の欠如に起因するエラーに対処するためのベストプラクティスは、意味のあるエラーメッセージを表示することだけでした。

于 2012-05-06T06:49:38.750 に答える
2

そのマニフェストを指定することにより、Windows(Vistaまたは7)に、標準ユーザー(UACが有効になっているadminも同様)がこのアプリを実行しようとすると、UACプロンプトが表示されることを通知します。標高がないと、このアプリは期待どおりに機能しません。

UACが設計されているのは、WindowsVistaとWindows7の両方でこれを適切に処理できるためです。

Windows XPの場合、標準ユーザーはrunasを手動で使用してアプリを管理者として実行する必要がありますが、管理者ユーザーはアプリを直接実行できます。Windows XPにはUACはなく、Windows開発者が長年慣れ親しんできた古い動作にフォールバックします。

Windows XPをテストするには、Windows XPモード(http://www.microsoft.com/windows/virtual-pc/download.aspx )を使用する必要があります。

于 2012-05-06T09:16:05.143 に答える
1

はい、そのマニフェストは、管理者グループに属するユーザーが、UAC プロンプトを受け入れると、Vista で適切に昇格されることを保証します。

それがしないのは、そのグループに属していないユーザーに特権を与えることです。XPで行われた方法と同様に、それ以降のリリースでも同様です。サイト管理者は、ユーザーに制限付きアカウントを与える場合があります。どちらでも構いません。彼らはあなたのプログラムを実行するはずがありません。管理者はそれを望んでいませんでした。合理的な診断を行っていることを確認してください。WindowsPrincipal.IsInRole(WindowsBuiltInRole.Administrator) を使用すると、.NET を確認できます。

于 2012-05-06T07:37:16.677 に答える