Windows 8 での Microsoft の SmartScreen フィルターは、小さな開発者にとって最悪の悪夢です。
エンド ユーザーにとってのメリットと、悪意のあるプログラムがエンド ユーザーのコンピューターにインストールされるのを阻止する有効性は理解していますが、私や他の多くの開発者は、コード署名証明書や、さらに悪いことに、EV の年次更新の料金を支払いたくありません。コード署名証明書。また、社内で使用するために開発された製品が、信頼できる発行元ストアに保存されている内部 CA からの信頼できる証明書で署名されている場合でも、フィルタの熱心すぎる動作の餌食になります。
開発者と管理者は、信頼できる発行元ストアに発行元のコード署名証明書をインストールすることで、警告とプロンプトを無効にすることができました。創造的な開発者は、有料の Authenticode コード署名証明書で署名およびタイムスタンプが付けられた前提条件をインストールするときに、そこに自己署名コード署名証明書をインストールできます。その後、発行者によって署名されたプログラムは信頼され、SmartScreen フィルター アラームは作動しません。基本的に、いったん信頼されると、発行者は定期的な料金から解放されます。
SmartScreen フィルターに対する最近の変更 (および Windows 8 の OS の "機能" としてのその組み込み) により、Microsoft が作成した問題を創造的に回避するのではなく、コード署名証明書を購入することを Microsoft が望んでいることは明らかです。デフォルトで自己署名コード署名証明書を使用する (つまり、プロンプトを表示しない) 発行者を信頼する新しい方法を発見した人はいますか? フィルターを完全にオフにする以外に、SmartScreen フィルターが常に自己署名証明書を信頼することをエンド ユーザーに知らせるにはどうすればよいでしょうか?
コードサイニング証明書を購入しても、この質問に対する答えにはならないことに注意してください。外部ソースから証明書を購入せず、組織内で使用するために独自に発行する発行元を信頼するように SmartScreen フィルターに指示する方法を探しています。
更新: 回避策を見つけたかもしれないと思います! MSDN から、Windows 8 および Internet Explorer 10 で、信頼済みサイトとしてリストされているサイトの SmartScreen フィルターを無効にすることができます。Windows 8 の信頼済みサイトからダウンロードして実行するセットアップ プログラムでこの方法が機能することを誰かが確認できれば、多くの ISV や社内開発チームの助けになるでしょう。これは、この質問に答えるために必要な回避策でもあります。信頼済みサイトはグループ ポリシーで設定できるので、そこからは簡単です。
プログラムで、信頼済みサイト ゾーンの SmartScreen フィルターを無効にするには、マシンに HKLM\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2!2301 を設定するか、HKCU\Software\Policies\Microsoft\Windows を設定します。ユーザーの \CurrentVersion\Internet Settings\Zones\2!2301 を 0 に変更し、信頼するサイトを信頼済みサイト ゾーンに追加するには、この質問に示すように実行できます。
私が提案した回避策が、信頼済みサイトからダウンロードされた署名なしまたは自己署名付きの実行可能ファイルに対して Windows 8 で機能することを確認してもらえますか? 私自身は Windows 8 を使用していません。OS アップグレードの予算を証明書の料金に費やしたからです。