Windowsはファイルがインターネットからダウンロードされたことをどう判断する?NTFS代替データストリームの仕組みを解説
はじめに
以前の記事で、インターネットからダウンロードした実行ファイル(.exeなど)を開こうとすると、Windowsが「潜在的に危険なコンテンツを実行しようとしています」といったセキュリティ警告を表示することに触れました。では、Windowsはどのようにしてそのファイルがインターネットからダウンロードされたものだと判断しているのでしょうか?本記事では、その仕組みを詳しく解説します。

ダウンロードファイルに付与される特別なマーク
ブラウザーでインターネットからダウンロードしたすべての実行ファイルには、特別なマーク(識別情報)が自動的に付けられます。このルールはInternet Explorerだけでなく、Mozilla FirefoxやGoogle Chromeなど、主要なブラウザーでも共通してサポートされています。さらに、ファイルをコピー・名前変更したり、別のNTFSパーティションへ移動したりしても、このマークは消えることなく残ります。
このマークの正体は、NTFSの代替データストリーム(Alternate Data Stream)です。
NTFS代替データストリームとは?
補足: NTFSの代替データストリーム(ADS)を使うと、1つのNTFSファイルに対して複数の追加データ(メタデータ)ストリームを作成できます。通常、ファイルの本体データはメインストリームに保存されますが、追加のストリームを1つ以上作成することも可能で、そのサイズがメインストリームを上回ることさえあります。ただし、ほとんどのアプリケーション(エクスプローラーを含む)は標準ストリームしか扱えず、代替ストリームの内容を読み取ることはできません。
Zone.Identifierストリームの確認方法
インターネットからダウンロードしたファイルに特別なマークが付いていることを確認するには、対象フォルダー内のファイル一覧を次のコマンドで表示します。
dir /r

実行結果を見ると、install_flash_player_16_active_x.exe:Zone.Identifier のように、実行ファイルに対して Zone.Identifier という代替ストリームが割り当てられていることがわかります。
この代替ストリームをメモ帳で開いて中身を確認してみましょう。
Notepad.exe install_flash_player_16_active_x.exe:Zone.Identifier

ストリームの中身は、[ZoneTransfer] セクションを含むテキストファイルになっており、そこに転送元ゾーンID(ZoneId)が記録されています。これはInternet Explorerの設定にある「セキュリティゾーン」に対応するもので、0から4までの5つの値のいずれかを取ります。
- ZoneId=0:ローカルマシン
- ZoneId=1:ローカルイントラネット
- ZoneId=2:信頼済みサイト
- ZoneId=3:インターネット
- ZoneId=4:制限付きサイト

ファイルをダウンロードする際、ブラウザーはその取得元のセキュリティゾーンに応じたZoneIdを割り当てます。ZoneIdが3または4のファイルを実行しようとすると、WindowsはこのIDをもとに「インターネットまたは信頼できないソースからダウンロードされたファイル」であると判断し、警告を表示するのです。なお、Windowsがこのマークをチェックするようになったのは、Windows XP SP2以降からです。
マーク(ブロック)を解除する方法
このマーク(代替ストリーム)を手動で削除するのは簡単です。ファイルを右クリックして「プロパティ」を開き、「許可する(Unblock)」ボタンをクリックするだけです。

解除後にもう一度 dir /r コマンドを実行すれば、代替ストリームが削除されていることを確認できます。

ヒント: ダウンロードしたファイルにマークを付けられたくない場合は、FATやexFATなどNTFS以外のファイルシステムにファイルを保存するという方法もあります。代替データストリームはNTFS固有の機能だからです。
streamsツールで一括削除する
実は、Windows標準の機能だけでは代替データストリームを柔軟に扱うことができません。たとえば、多数のファイルからまとめてストリームを削除したい場合は、Mark Russinovich氏が公開しているサードパーティ製のコマンドラインツール streams を利用するのが便利です。
たとえば、c:\Download\ 内のすべての実行ファイルから代替ストリームを再帰的に削除するには、次のコマンドを実行します。
c:\TOOLS\streams.exe -s -d c:\Download\*.exe
コマンドプロンプトには「Deleted :Zone.Identifier:$DATA」と表示され、ストリームが正常に削除されたことが確認できます。
重要な注意点: streamsツールは指定したファイルのすべての代替ストリームを削除する仕様で、特定のストリームだけを選んで削除することはできません。そのため、streams.exe -s -d c:\*.exe のようにシステムドライブ全体へ安易に実行してはいけません。代替NTFSストリームに格納されていた重要な情報が失われ、システム不具合の原因になる恐れがあります。
PowerShellでの操作方法

PowerShell 3.0では、次のコマンドでディレクトリ内のZone.Identifierストリームを持つファイルの一覧を表示できます。
Get-ChildItem -Recurse | Get-Item -Stream Zone.Identifier -ErrorAction SilentlyContinue | Select-Object FileName
属性を削除するには、次のように実行します。
Remove-Item .\install-file.exe -Stream Zone.Identifier
さらに、Windows PowerShell 4.0以降では、専用のコマンドレットを使ってより簡単にブロックを解除できます。
Unblock-File install-file.exe
手動でマークを付ける方法
逆に、任意のファイルに意図的にマークを付けることも可能です。次のコマンドを実行してみましょう。
notepad.exe install_flash_player_16_active_x.exe:Zone.Identifier
該当するストリームが存在しないため、「新しいファイルを作成しますか?」というダイアログが表示されます。「はい」を選択し、メモ帳に以下のテキストを入力してください。
[ZoneTransfer]
ZoneId=3

変更を保存した後、dir /r コマンドなどで確認すると、このファイルに代替ストリームが正しく割り当てられていることがわかります。

-
【Windows 10/11対応】エクスプローラーからOneDriveを完全に削除・無効化する方法
OneDriveは、データをクラウド上に手軽に保存できる利便性から、Windows OSに標準でプリインストールされています。しかし、便利な反面デメリットもあります。バックアップを促す通知が何度も表示されたり、使っていないのにPCのメモリやシステムリソースを消費したりと、利用しない人にとっては煩わしい存在になりがちです。 もしPCからOneDriveをなくしたいと考えているなら、削除を検討しましょう。ただし注意点があります。OneDriveアプリをアンインストールしても、そのフォルダーはエクスプローラー上に残ったままになるのです。本記事では、エクスプローラーからも含めてOneDriveをきれい
-
Windows ストアからテーマを入手して Windows 10 にインストールする方法
Windows 10 Creators Update(クリエイターズアップデート)では、デスクトップテーマの体験が大きく一新されました。厳選されたテーマをWindowsストアから直接ダウンロードしてインストールできるようになり、PCの見た目や雰囲気をこれまで以上に手軽にリフレッシュできるようになっています。 デスクトップの背景、アクセントカラー、サウンド、マウスカーソルなどをまとめて変更できるテーマ機能は、Windowsに昔から備わっている定番機能です。Creators UpdateにおいてMicrosoftはテーマのインターフェースを刷新し、設定アプリへと統合しました。また、従来のテーマ共有