10秒でできる解決策
巨大な青いバナーが表示されて困っていますか?ダウンロードしたファイルを信頼できる場合は、2回クリックするだけでセキュリティチェックをスキップできます。
- メインの警告テキストの下にある「詳細情報」リンクをクリックします。
- 下部に表示される「実行」ボタンを選択します。
開発者やシステム管理者で、ブロックされたスクリプトが大量にあるフォルダを扱っている場合は、一つずつクリックする必要はありません。PowerShellを開き、次のコマンドを実行してディレクトリ内のすべてのファイルのブロックを解除してください。
dir -Path "C:\Downloads\MyApp" -Recurse | Unblock-File
原因:Mark of the Web (MotW)
Windowsは、Mark of the Web (MotW) という機能を使用してファイルの出所を追跡します。Chromeでツールをダウンロードしたり、メールの添付ファイルを保存したりすると、Windowsは「代替データストリーム(Alternate Data Stream: ADS)」と呼ばれる隠しメタデータを付加します。具体的には、ファイルに「ZoneId=3」(インターネット)というラベルを付ける Zone.Identifier ストリームを作成します。
アプリが署名されていないか、十分な評価(レピュテーション)がない場合、このタグが付いたファイルを起動すると SmartScreen が作動します。Microsoftの基準では、「十分な評価」とは通常、そのバイナリが他の数千人のユーザーによって安全に実行されていることを意味します。そのしきい値に達するまで、Windowsはそのアプリを潜在的な脅威として扱います。
ファイルのブロックを解除する方法
方法1:ファイルのプロパティ(単一のインストーラーに最適)
これは .exe または .msi ファイルに対する標準的な手動の解決策です。5秒ほどで完了します。
- ブロックされたファイルを右クリックし、「プロパティ」を選択します。
- 「全般」タブの最下部を確認します。
- セキュリティ警告の横にある「許可する」チェックボックスをオンにします。
- 「適用」をクリックします。
青い警告はすぐに消えます。ZIPファイルを解凍する前にブロックを解除すると、Windowsはその中のすべてのファイルのブロックを自動的に解除します。先に解凍してしまった場合は、各ファイルのブロックを個別に解除する必要があります。
方法2:PowerShell(一括解除に最適)
50個もの異なるDLLのプロパティを一つずつクリックするのは時間の無駄です。PowerShellを使えば、プロジェクトフォルダ全体の Mark of the Web を数秒で削除できます。
単一のファイルのブロックを解除する場合:
Unblock-File -Path ".\setup.exe"
ディレクトリ全体(500MBのSDKやベンダーのツールセットなど)を再帰的に解除する場合:
Get-ChildItem -Path "C:\dev\tools" -Recurse | Unblock-File
方法3:レジストリによる SmartScreen の無効化(開発・ラボ環境のみ)
署名のないバイナリを頻繁にビルドする専用のラボ環境で作業している場合、これらのポップアップは生産性を著しく低下させます。システム全体で無効にすることも可能ですが、重要な防御層を失うことになるため、メインのPCでは行わないでください。
管理者として PowerShell を実行します:
# Windows シェルの SmartScreen を無効にする
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer" -Name "SmartScreenEnabled" -Value "Off"
# Edge の SmartScreen を無効にする
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Edge\SmartScreenEnabled" -Name "Enabled" -Value 0
方法4:グループポリシー(IT管理者向け)
多数の端末を管理する管理者は、グループポリシーエディター(gpedit.msc)を介してこの動作を制御できます。これは、保護を完全に無効にすることなく、ユーザーが警告をバイパスできるようにしたい場合に便利です。
- コンピューターの構成 > 管理用テンプレート > Windows コンポーネント > Microsoft Defender SmartScreen > エクスプローラー に移動します。
- 「Windows Defender SmartScreen を構成する」を開きます。
- 「有効」に設定します。
- オプションペインで「警告」を選択します。これにより、バナーは表示されますが「実行」ボタンが使用可能になります(「警告してバイパスを禁止する」を選択すると、ファイルの実行が完全にロックされます)。
ブロックが解除されたことを確認する方法
ファイルが「クリーン」であることを確認したいですか?PowerShellを使用して隠しデータストリームを確認します:
Get-Item -Path ".\app.exe" -Stream *
リストに Zone.Identifier が表示されている場合、そのファイルはまだブロックされています。$DATA のみが表示されていれば準備完了です。
開発者向け:「死の青い箱」を回避する方法
ソフトウェアを配布する場合、ユーザーにこのエラーを見せたくないはずです。これはコンバージョン率を低下させ、プロフェッショナルではない印象を与えます。ソース側で解決する方法は以下の通りです:
- EVコード署名証明書を取得する: 標準の証明書は、SmartScreen が信頼するまでに数百回のダウンロードという「ウォーミングアップ」期間が必要です。年間約300ドル〜500ドルかかるEV(Extended Validation)証明書を使用すると、**即座に評価(レピュテーション)**が得られます。
- Microsoftに提出する: Microsoft Security Intelligence ポータルを使用して、バイナリを分析用に提出します。これにより、アプリを手動でホワイトリストに登録し、評価の構築プロセスを早めることができます。
- すべてに署名する: パッケージ内のすべての実行ファイルとDLLが同じ証明書で署名されていることを確認し、一貫したアイデンティティを維持します。

