👻
Windowsでファイル実行時に警告が表示されたときの対応まとめ
発生事象
Windows Server 2019 にて管理者ユーザでファイル実行時に以下のような SmartScreen の警告画面が表示されることがありました。
バッチ処理等で自動化している場合はこの警告が影響して正常に実行されません。
実行対象のファイルを右クリック > 管理者として実行をすると正常に実行されます。
原因
直接原因
ファイルにゾーン識別子(Zone.Identifier)というメタデータが付与されていたためです。
根本原因
ファイルを外部ネットワーク経由でダウンロードしたためです。
ここでいう外部ネットワークとは、例えば以下のような状況で付与されます。
- インターネット経由でファイルをダウンロードしたとき
- プライベート接続含むネットワークドライブ経由でファイルをダウンロードしたとき
- WSL 環境にファイルを配置したとき
対応
暫定対応
-
付与されているゾーン識別子を削除する
以下手順の参考となります。
-
ゾーン識別子の有無を確認する
- ファイルが1つの場合
コマンドプロンプトで以下を実行し、「Zone.Identifier:$DATA」があればゾーン識別子あり
コマンドプロンプトdir <ファイルが存在するディレクトリのパス> /r 2024/11/20 16:45 4 test.txt 63 test.txt:Zone.Identifier:$DATA
- ファイルが複数ある場合
PowerShellで削除したいファイルがあるディレクトリに移動し、以下のコマンドで「Zone.Identifier」があることを確認する
PowerShellcd <ファイルが存在するディレクトリのパス> Get-ChildItem -Recurse -File | Get-Item -Stream Zone.Identifier -ErrorAction SilentlyContinue
- ファイルが1つの場合
-
ゾーン識別子を削除する
-
ファイルが1つの場合
対象のファイルを右クリック > プロパティ からセキュリティのチェックを入れる
-
ファイルが複数ある場合
PowerShellで削除したいファイルがあるディレクトリに移動し、以下のコマンドを実行する
PowerShellGet-ChildItem -Recurse -File | Unblock-File
-
恒久対応
- インターネットオプションで取得元を信頼済みサイトとして設定する
インターネットオプションの [セキュリティ] タブ内にある [ローカルイントラネット] あるいは [信頼済みサイト] にて、取得元の FQDN または IP アドレスを設定する
まとめ
このような対応をすることで事象は回避することができました。
Microsoft 社公式の手順ではないのであくまで参考程度にしていただければと思います。
こちらの情報がどなたかのお役に立てることを願っております。
Discussion