本文へスキップ

「Windows によって PC が保護されました」:SmartScreen 警告の意味と消し方

新しいインストーラーで Windows が「発行元不明」の警告を表示する理由、ユーザーが押せるボタン、そしてコード署名と評価によって警告が消える仕組みを解説します。

更新日 2026年10月31日 · 読了 6 分

Setup.exe を公開し、顧客がダウンロードすると、Windows が青い画面を表示します。「Windows によって PC が保護されました。Microsoft Defender SmartScreen は認識されないアプリの起動を停止しました。」 アプリに問題はありません。インストーラーにも問題はありません。何が起きたのか、どう対処できるのでしょうか。

SmartScreen が確認していること

SmartScreen は評価(レピュテーション)サービスです。インターネットからダウンロードしたファイルを実行すると、Windows は Microsoft に対して、そのファイル、またはそれに署名している証明書が既知で信頼できるものかを問い合わせます。答えを決めるのは次の 3 点です。

  1. コード署名。 Windows が信頼する証明機関の証明書でファイルが署名されているか、そしてその証明書(「発行元」)に実績があるか。
  2. ダウンロードの評価。 まったく同じファイルを何人がダウンロードして実行したか、そしてそれについて悪い報告がなかったか。
  3. 既知の脅威。 ファイルがマルウェアと一致するか。一致する場合は、青ではなく赤い画面で完全にブロックされます。

小規模な発行元の新しいインストーラーは、新しいというだけで最初の 2 つの確認に通りません。警告には「認識されない」とあり、文字どおりその通りです。ユーザーは 詳細情報 → 実行 をクリックできますが、多くの人はそうしません。

警告を消すもの

評価は時間とともに積み上がる

署名のないインストーラーは、より多くの人が問題なくダウンロードして実行するにつれて評価を獲得します。人気のあるダウンロードなら数日から数週間、ニッチなツールでは長い時間がかかることがあり、しかもファイルが変わるため、新しいバージョンのたびにゼロからやり直しです。

コード署名、そしてそれが状況を変える理由

コード署名証明書でインストーラーに署名すると、あなたの身元がインストーラーに結び付きます。評価は各ファイルではなく証明書に蓄積されるため、新しいバージョンは以前のバージョンが得た信頼を引き継ぎます。これが標準的な解決策です。

選択肢は次のとおりです。

  • 公的 CA(DigiCert、Sectigo、GlobalSign とその販売代理店)が発行する標準(OV)コード署名証明書。 2023 年以降、これらはハードウェアトークンまたはクラウド HSM 上で発行されます。費用は年に数百ドル程度を見込んでください。評価は依然として低い状態から始まりダウンロードとともに成長しますが、バージョン間で引き継がれます。
  • EV コード署名証明書。 本人確認がより厳格で、価格も高くなります。かつては SmartScreen で良い評価をより早く得られました。Microsoft はその優位性を徐々に縮小してきたため、EV は「より厳密な本人確認」と捉え、即時に通過できる保証とは考えないでください。
  • Azure Trusted Signing。 Microsoft 自身の署名サービスで、月額課金、対応地域の個人や小規模企業向けに設計されています。確認済みの身元に紐付いた短期有効の証明書で署名し、SmartScreen からの扱いも良好です。

どれを選ぶ場合でも、証明書の期限切れ後も署名が有効であり続けるように、署名にタイムスタンプを付けてください。

ExeTup のインストーラーに署名する

ExeTup はインストーラーをビルドします。署名はあなたの作業です。証明書はあなたのものだからです。Setup.exe をダウンロードしたら、次のようにします。

Windows では、Windows SDK を使って:

signtool sign /fd SHA256 /tr http://timestamp.digicert.com /td SHA256 /a Setup.exe

macOS または Linux では、osslsigncode を使って:

osslsigncode sign -pkcs12 cert.pfx -pass "..." -t http://timestamp.digicert.com -h sha256 -in Setup.exe -out Setup-signed.exe

NSIS インストーラーは、特別な処理なしで Authenticode 署名を受け付けます。ユーザーが起動するプログラム自体にも署名が付くように、zip に固める前にアプリ本体の .exe にも署名してください。署名済みファイルを右クリック → プロパティ → デジタル署名で確認できます。

それまでの間、ユーザーに伝えること

まだ署名していないなら、ダウンロードページに短い注意書きを載せると効果があります。小規模な発行元の新しいソフトウェアではこの警告が表示されること、インストーラーは安全であること、そして 詳細情報 → 実行 をクリックすればインストールされることです。慎重なユーザーがダウンロードを検証できるように、ファイルの SHA-256 ハッシュを公開してください。ExeTup はすべてのビルドのハッシュをダウンロードの横に表示します。

また、ダウンロードは自分のドメインで HTTPS 経由で配布し、同じバージョンには同じファイルを使い続けてください。変更したファイルを再アップロードすると、ダウンロードの評価はリセットされます。

効果のないこと

  • ファイル名の変更、zip 化、アイコンの変更。評価はファイルのハッシュと証明書ごとに付きます。
  • 自己署名証明書。Windows はこれを信頼しないため警告は消えず、署名なしよりも印象が悪くなります。
  • ユーザーに SmartScreen を無効にするよう求めること。無効にすべきではありませんし、ほとんどの人はそうしません。

よくある質問

自分のインストーラーはウイルスとして検出されているのですか?

いいえ。青い「Windows によって PC が保護されました」の画面は「不明」という意味で、「悪意がある」という意味ではありません。赤い画面で「このアプリは保護のためにブロックされました」と表示されるのがマルウェアの判定で、これは別の問題です。

新しいバージョンを出すたびに警告がまた表示されますか?

署名のないインストーラーでは、各バージョンが新しいファイルになるため、はい、表示されます。署名済みのインストーラーでは評価が証明書に紐付くため、以降のバージョンは以前のバージョンが得た信頼を持った状態で始まります。

ExeTup はインストーラーに署名してくれますか?

現時点ではしていません。ダウンロードした Setup.exe に、signtool または osslsigncode を使ってご自身の証明書で署名してください。インストーラーは他の Windows 実行ファイルと同じように署名を受け付けます。

アンインストーラーでも警告は表示されますか?

アンインストーラーはダウンロードされるのではなくローカルディスクから実行されるため、SmartScreen の検査対象になりません。すべてのユーザー向けのインストールでは、代わりに標準のユーザーアカウント制御のプロンプトが表示されることがあります。

関連ガイド