デスクネッツなどのネットワーク上のファイルサーバーからプログラムをダウンロードして実行しようとした場合,以下のようなメッセージが表示されることがあります。
また,開くボタンで実行する場合,一部のセキュリティ・アプリのバグのため正常に実行できない場合もある。
さらにCHMのヘルプファイルの場合は,中身が表示されない状態になる。
正常に実行できるようにするには,ファイルをダウンロード後に必ず以下の対策を行います。
この対策後は,正常にプログラムを実行出来るようになる。
WindowsではXP SP3の頃からか,ネットワーク上のファイルサーバーからダウンロードした場合,ファイルシステムの特別な場所にゾーン情報というセキュリティ情報を保存するようになった。
これは,ネットワークからダウンロードしたファイルを直接実行できないようにするためのセキュリティとして,Windowsで利用している。
実行ファイルだけでなくデータファイルのような全てのファイルに対して,アクセス制限がかかるようになります。
上記の操作は,このゾーン情報を削除しています。
例えば,vbスクリプトのaddress_import.vbsというファイルをダウンロードした場合を例にしてみます。
コマンドプロンプトを起動し,以下のようにコマンドを実行してみると,
E:\mail> dir address_import.vbs /r ドライブ E のボリューム ラベルは ext です ボリューム シリアル番号は 6A48-56A8 です E:\mail のディレクトリ 2020/02/14 14:52 4,720 address_import.vbs 220 address_import.vbs:Zone.Identifier:$DATA 1 個のファイル 4,720 バイト 0 個のディレクトリ 73,244,450,816 バイトの空き領域
のように表示される。
220 address_import.vbs:Zone.Identifier:$DATAと表示されているのでゾーン情報が保存されていることがわかる。
実際にどのようなゾーン情報が保存されているか調べてみると,
E:\mail> more < address_import.vbs:Zone.Identifier [ZoneTransfer] ZoneId=3 ReferrerUrl=http://192.168.xxx.yyy/scripts/dneo/zdoc.exe?cmd=docindex HostUrl=http://192.168.xxx.yyy/scripts/dneo/zdoc.exe?cmd=docdispattach&id=3241&folder=1288&fno=2&filename=address_import_revB.vbs
このように表示され,ネットワークからダウンロードされたファイルで,どこからダウンロードしたかが保存されている。テキストエディタでも確認出来ますし,また全ての行を削除すれば解除することも出来ます。
レジストリを変更するか,グループローカルポリシーで変更することで,デフォルトでゾーン情報を保存するのをしないように出来る。
レジストリを編集する場合は,
項目 | 内容 |
キー | HKEY_CURRENT_USERの\Software\Microsoft\Windows\CurrentVersion\Policies\Attachments Attachmentsキーが無い場合は新規に作成する。 |
値の名前 | SaveZoneInformation |
型 | REG_DWORD |
値 | 1(ゾーン情報を保存しない) 値を削除または2(ゾーン情報を保存する) |
このように設定する。
グループローカルポリシー(gpedit.msc)で設定する場合は,
のように設定を変更します。
新しくコメントをつける