配布された .cmd や .bat ファイルを実行しようとすると
「Windows によって PC が保護されました」
「Windows Defender SmartScreen は認識されないアプリの起動を停止しました」
という警告が出てしまい、困ったことはありませんか?
これはウイルスではなく、Windowsのセキュリティ機能が働いた結果です。
先日リリースした『win-cmd-toolbox』でもこの事象は発生します。
本記事ではその仕組みと、安全に使うための回避方法をわかりやすく解説します。
SmartScreenとは?
Windows Defender SmartScreen は Microsoft が提供する「実行ファイルの安全性をチェックするセキュリティ機能」です。
.exeや.bat,.cmd,.ps1のような実行形式のファイル- インターネットから取得したもの
- 使用実績の少ないもの
これらを対象に、「安全かどうか」を Microsoft の基準で自動判定して、怪しいと判断されたら実行をブロックします。
たとえば、自分で作った .cmd ファイルを ZIP にして配布しただけでも、SmartScreen の対象になります。
「発行元:不明な発行元」ってどういうこと?
SmartScreen の警告画面でこう表示されることがあります:
発行元:不明な発行元
これは「このファイルにデジタル署名が付いていないため、誰が作ったかわからない」という意味です。
では署名ってなに?
商用ソフトなどは、開発者や企業が「コード署名証明書(有料)」を使って、ファイルに電子署名を付けています。
これによって、Windows 側も「この人が作った正式なファイルだ」と認識できるのです。
しかし、個人でそこまでやるのは大変ですし、GitHub などで配布する .cmd や .bat に署名するケースはまれです。
安全に使うための対策
✅ 対策①:ZIPのプロパティでアクセスを許可する
最も簡単かつ安全な方法です。
- ダウンロードした
.zipファイルを右クリック - 「プロパティ」を開く
- 下の方に「セキュリティ:このファイルは他のコンピューターから取得したものです…」という欄がある場合、「許可する」にチェックを入れて「OK」
- その後に展開(解凍)する

これで、SmartScreen による警告を防ぐことができます。
✅ 対策②:警告画面で「詳細情報」→「実行」を選ぶ
警告が表示された場合でも、「詳細情報」ボタンをクリックすると「実行」ボタンが現れます。
それを押すことで、ファイルを実行できます。


対策前に中身を自身で確認する
可能ならファイルの中身を自身で確認してから使用するのが理想です。
.cmd や .bat ファイルは、中身がすべてテキストで記述されており、メモ帳などで開いて何をしているか確認できます。
ツール提供者が GitHub でソースコードを公開していれば、実際にレジストリを変更する内容や処理の中身を自分で確認できるため、透明性が高いとも言えます。
透明性が高いものならツール提供者が悪意のあるコードを潜ませにくいので(極稀に例外もありますが)、利用者は比較的安心して利用できると思います。
「コード署名で回避できる」は本当。でも現実的ではない
もちろん、SmartScreen の警告を完全に回避するにはツール提供者が「コード署名を行う」のがベストです。
ですが…
- 年額数万円以上の証明書が必要
- 法人登録が前提(個人での取得は難しい)
.cmdや.batに署名する人はほとんどいない
という現実もあるため、配布者も利用者もある程度の手間を理解しあうのが現実的な落としどころです。
まとめ
- SmartScreen は、Windows の正当なセキュリティ機能
- 署名されていない
.cmd,.batは「発行元不明」となり、実行時に警告される - 信頼できるソース(GitHub など)から取得したものであれば、プロパティでアクセスを許可すれば安全に使える
.cmdや.batは中身が見えるので、怪しい操作をしていないか確認もしやすい
安心して使えるはずの自作ツールがセキュリティ機能のせいで使いにくくなるのはもったいない!
本記事が、正しく使うための参考になれば幸いです。

