Windowsで、インターネットからダウンロードしたファイルを実行しようとすると「保護されました」と警告画面が表示されて、明示的に実行ボタンをクリックしないと実行できないときがあります。
これは、Windowsのセキュリティ機能「Windows Defender SmartScreen」によるもので、インターネットからダウンロードしたファイルによっては、この機能が原因で正常に実行できないこともあります。
そこでここでは、インターネットからダウンロードしたファイルを実行したときに、警告画面が出ないように設定する方法を紹介します。
目次
なぜ、警告画面が出るのか?
Windowsでは、セキュリティ機能によりインターネットからダウンロードしたファイルには「ゾーン識別子(Zone Identifier)」と呼ばれる情報が付加されます。
これにより、ファイルを実行しようとするとWindows Defender SmartScreenによる警告画面が表示されます。
これは、インターネットからダウンロードしたファイルには、マルウェアなどの危険なプログラムが含まれている可能性があるため、警告画面を表示することで注意を促してくれています。
Windowsでは、次のような画面が表示され、ユーザーがこの画面で明示的に許可しない限り、ファイルは実行できません。
警告画面が出ないようにするには
ゾーン識別子情報の付加は、Windowsを安全に利用するために必要な機能ですが、インターネットからダウンロードしたファイルを実行したときに、この機能がジャマをして正常に動作しないことがあります。
そのようなときは、ダウンロードしたファイルに危険性がなければ、ゾーン識別子情報を削除することで警告画面が出ないようにできます。
ファイルのプロパティ画面でゾーン識別子情報を削除
マウス操作でゾーン識別子情報を削除するには、対象となるファイルのプロパティ画面を表示して、画面下部の「セキュリティ」の欄にある「許可する」のチェックボックスをオンにして「OK」をクリックします。
ダウンロードしたファイルがZIP形式の場合は、ゾーン識別子情報を削除せずに解凍してしまうと、解凍したファイルすべてにゾーン識別子情報が付加されてしまうため、ゾーン識別子情報を削除してから解凍しましょう。
コマンド操作でゾーン識別子情報を削除
上のプロパティ画面からの操作では、1ファイルずつプロパティ画面を開いて削除する必要があり、複数のファイルに対して一括でゾーン識別子情報を削除したい場合には面倒です。
そのようなときは、PowershellのUnblock-Fileコマンドレットを使うことで、複数のファイルに対して一括でゾーン識別子情報を削除することもできます。
たとえば「F:\Download\test.exe」というファイルのゾーン識別子情報を削除したいときは、以下のようにコマンドを実行します。
PS > Unblock-File -Path F:\Download\test.exe
複数のファイルに対して一括でゾーン識別子情報を削除したいときは、ワイルドカードを使って以下のようにコマンドを実行します。
たとえば「F:\Download\」というフォルダー配下の拡張子が「.exe」のファイルに対して一括でゾーン識別子情報を削除したいときは、以下のようにコマンドを実行します。
PS > Get-ChildItem F:\Download\*.exe | Unblock-File
ゾーン識別子情報が付加されないようにするには
グループポリシーやレジストリ設定で、インターネットなどからダウンロードしたファイルにゾーン識別子情報が付加されないようにすることもできます。(なお、セキュリティは若干低下します。)
簡単に手順を紹介すると、グループポリシーでゾーン識別子情報が付加されないようにするときは、以下のポリシーを有効化します。
「ユーザーの構成」>「管理用テンプレート」>「Windowsコンポーネント」>「添付ファイル マネージャー」>「ゾーン情報を添付ファイルに保存しない」
レジストリ設定でゾーン識別子情報が付加されないようにするときは、以下のコマンドを実行します。
> reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Attachments" /v SaveZoneInformation /t REG_DWORD /d 1 /f
あとがき
ZIP形式ファイルを解凍して利用するタイプのアプリでは、そのまま解凍して実行すると、ゾーン識別子の付加されることでアプリが正常に動作しなかったり、異常終了することがあります。
そんな時は、ZIP形式ファイルを解凍する前にゾーン識別子情報を削除してから解凍することで回避できますよ。試してみてください。