2016-02-17 9 views
8

私たちはx86 Win32デスクトップアプリケーションを持っています。インストーラが標準(管理者以外の)ユーザーによって実行されている場合は、昇格やUACプロンプトの表示を避けて、Program Filesディレクトリの代わりにC:\Users\username\AppData\Roaming\...の下にインストールします。標準Windows 10ユーザーのアンインストーラ昇格を防止するにはどうすればよいですか?

Windows 10では、アンインストーラをControl Panel -> Programs -> Programs and Featuresから起動すると、UACプロンプトが表示されず、アンインストーラが昇格せずに実行されます。これが望ましい動作です。 Start -> Settings -> System -> Apps & featuresから同じアンインストーラを起動すると、UACプロンプトが表示されます。

(同じ動作がオペラブラウザのインス​​トーラ/アンインストーラで見ることができます。私はv35.0.2066.37をテストしました。)Programs and FeaturesApps & featuresから起動したときに

なぜ同じアンインストーラの動作が異なるのでしょうか?

Apps &の機能からアンインストーラを起動すると、UACプロンプトはどのようにして回避できますか?

私たちのアンインストーラのマニフェストには、これを含まれています:

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> 
    <security> 
     <requestedPrivileges> 
     <requestedExecutionLevel level="asInvoker" /> 
     </requestedPrivileges> 
    </security> 
</trustInfo> 

私はrequestedExecutionLevelを変更しようとした、とも完全にtrustInfoを削除しようとしたが、行動のいずれかの方法には変化がなかったです。

Windows 10バージョン1511ビルド10586.104でテスト済みです。

編集:だけ明確にするユーザーは、標準のアカウントを持っており、管理者アカウントのパスワードを知らない場合、私が処理しようとしているケースがあります。アンインストールを試みるときにUACプロンプトが表示された場合、アンインストールをキャンセルするしかありません。アンインストーラは実行されません。

+0

私は今朝、この「機能」を扱っていました。私たちのために働いた唯一のアプローチは、アンインストーラを現在のユーザーとして再起動させることでした。エクスプローラを使用して実行可能ファイルを再起動する方法の説明は次のとおりです。 http://brandonlive.com/2008/04/27/getting-the-shell-to-run-an-application-for-you -part-2-方法/ 私たちは、NSISを使用するので、私たちは最初のリンクに基づいていますShellExecAsUserプラグイン、利用することができました: http://nsis.sourceforge.net/ShellExecAsUser_plug-in –

+0

Iをこれが主な問題に対処していないとしますが、HKCUとLocalAppDataにアクセスする必要があるため、アンインストールが失敗した場合、アンインストールが失敗する懸念があります。これは高度の防止の問題には対処していませんが、ChromeのCurrentUserインストール(Operaの注意したように)でもAppsと機能からアンインストールしたときにWindows 10で同じ高さの問題が発生するため、現在のユーザーとして昇格したかどうかにかかわらず実行されます。 –

答えて

3

これは私が知る限り、「Apps &の機能」のバグです。 WiXの人々はWindowsのバグとしてclosed this issueを持っていて、彼らは正しい人物@ Microsoftに通知したと思います。 Insiderビルド15042では動作は変わりませんが、クリエイターアップデートでは時間通りに修正されない可能性があります。

標準ユーザーが昇格できない場合は、回避策はありません。

昇格可能な場合は、コメントに投稿されたre-spawn workaroundを使用するか、手動でユーザープロファイルを読み込んでRegOverridePredefKeyに電話することができますが、どちらも醜いハッキング(IMHO)です。

+0

あなたはちょうど私にデバッグのばかげた量を救った、ありがとう。 – johnwbyrd

関連する問題