1. トップ
  2. 新着ニュース
  3. IT
  4. パソコン

窓辺の小石 第175回 Stream form Outer Network

マイナビニュース / 2024年7月19日 17時43分

画像提供:マイナビニュース

Webブラウザでインターネットからダウンロードしたファイルには、Zone.Identifierという、代替データストリーム(Alternate Data Stream。ADS)が付く。Windows XP SP2で搭載されたWindows SmartScreenがこの情報を使って、ファイルを開こうとしたときに警告などを表示していた。

しかし、Windows 11では、この機能はMicrosoft Defender SmartScreenに引き継がれている。これは、Microsoftが作成したデータベースを元に、サイトやファイル名などから危険性を判断するもの。なので、Windows 11では、この代替データストリーム自体は利用されていない。しかし、これを付けるのは、ブラウザ(ダウンロードするプログラム)である。調べたところChrome、Edge、Firefoxは、例外はあるもののダウンロードしたファイルに、Zone.Identifierを付けるようだ(後述)。

代替データストリームとは、NTFSが持つ機能の1つ。1つのファイルに独立した複数の「内容」(ストリーム)を追加するもの。メタ情報の格納や、このZone.Identifierのようにセキュリティなどに利用する。代替データストリームはファイルの一部なので、コピーやリネームなどの操作でもそのまま残る。ただし、エクスプローラーは、代替データストリームを扱うことができないため、コマンドラインを使う必要がある。

ファイルに代替データストリームが付いているかどうかは、cmd.exeの内部コマンドdirの/rオプションを使って表示できる。PowerShellからなら“cmd.exe /c dir /r”とする(写真01)。

PowerShellのコマンドだけを使うなら、

Get-Item * -Stream * | ? stream -ne ':$DATA' | select PSchildname

とすることで、カレントディレクトリにあるファイルのうち、代替データストリームを持つファイルを出力できる。ファイル名の後ろのコロン“:”以降が代替データストリーム名である。Windowsではコロンをファイル名に使えないため、この表記が可能になる。

ファイルに対して特定の名前の代替データストリームが「ない」ことを調べる直接のコマンドはないが、エラーメッセージを使う方法がある。

この記事に関連するニュース

トピックスRSS

ランキング

複数ページをまたぐ記事です

記事の最終ページでミッション達成してください