なぜ?
NTFSの代替ストリームZone.Identifierによる。 IEやOutlookでダウンロードしたファイルに付加される。 Chromeでも同じ。確認方法
- ファイルのプロパティにブロックメッセージが表示されている。
- cmdによる確認
C:\Download>more < gdidettool.exe:Zone.Identifier [ZoneTransfer] ZoneId=3
ZoneId=3 → インターネットから取得された
- cmdによる確認2
dirコマンドに/rオプションをつけるとファイル名に「:Zone.Identifier:$DATA」が付いているものが該当するファイル。
C:\Download>dir /r 2016/09/14 17:43 63,444,448 SlackSetup.exe 29 SlackSetup.exe:Zone.Identifier:$DATA 2016/07/27 13:27 3,225,792 SQLServer2016-SSEI-Expr.exe 29 SQLServer2016-SSEI-Expr.exe:Zone.Identifier:$DATA 2016/07/11 10:23 1,434,880 SslvpnClient.exe 29 SslvpnClient.exe:Zone.Identifier:$DATA 2016/08/05 11:54 809,358,856 SSMS-Setup-ENU.exe 29 SSMS-Setup-ENU.exe:Zone.Identifier:$DATA
解除方法
- ファイルのプロパティから「ブロックの解除」する。
- 圧縮ファイルであればLhaplusなどZone.Identifierに対応していない解凍ソフトで解凍する。 解凍結果からZone.Identifierが剥がれる。 Windows標準の「すべて展開」だと解凍結果すべてにZone.Identifierが付加される。
- FAT32フォーマットのUSBやHDDにコピペして戻す。 代替ストリームはNTFSの機能らしいので一旦FAT32に貼り付けるとZone.Identifierが剥がれる。
-
MS製のstream.exeを使用して解除する。
streams.exe -d filename.txt
-
PowerShellで削除する。
Remove-Item -stream Zone.Identifier finename.txt
- Win32ApiのDeleteFileでfilename.txt:Zone.Identifierを削除すれば剥がれる。
-
cygwinのコマンドを通す。encodeしてdecodeしたり、catしてリダイレクトでもOK。
例えば
base64 ./file.zip | base64 -d > hoge.zip