はじめに
Windows でインターネットからファイルをダウンロードしてくると、以下のようにファイルにブロックがかかってしまい、ファイルのプロパティを表示して手作業でブロックを解除しなければならず、かなり面倒です。
インターネットでソフトウェアなどを公開していると、ファイルのブロックが邪魔をすることもあり困っていたのですが、コマンドでダウンロードファイルのブロックを簡単に解除する方法を見つけましたのでご紹介です。
- はじめに
- コマンドでのファイルのブロック解除方法
- コマンドプロンプトからファイルのブロック解除を行う方法
- VBScript でファイルのブロック解除を行う方法
- ダウンロードフォルダにある全てのファイルのブロックを解除する方法
- おわりに
コマンドでのファイルのブロック解除方法
Windows でコマンドを利用してファイルのブロックを解除するには、PowerShell を起動してUnblock-File
コマンドを実行します。
PowerShell のカレントにファイルがあるのであれば、以下のように実行します。
PS C:\ > Unblock-File <ファイル名>
ファイルがカレントにない場合は、以下のようにファイルのパスを指定して実行します。
PS C:\ > Unblock-File -Path <ファイルのパス>
「なんだ、PowerShellか」と思った方、まだ早いです。
コマンドプロンプトからファイルのブロック解除をする方法もご紹介します。
コマンドプロンプトからファイルのブロック解除を行う方法
PowerShell のコマンドはコマンドプロンプトからも呼び出すことができます。
ですので、コマンドプロンプトで以下のように実行すればファイルのブロックを解除できます。
C:\> powershell -ExecutionPolicy RemoteSigned -Command Unblock-File <ファイル名>
これで、バッチファイルからもファイルのブロックを解除することができますね。
VBScript でファイルのブロック解除を行う方法
バッチファイルを VBScript で作成される方も多いと思います。
VBScript では以下のように実行します。
Dim wsh Set wsh = CreateObject("wscript.shell") wsh.Run "powershell -ExecutionPolicy RemoteSigned -Command Unblock-File SampleFile.xlam" Set wsh = Nothing
ダウンロードフォルダにある全てのファイルのブロックを解除する方法
最後に、ダウンロードフォルダにある全てのファイルのブロックを解除するコマンドをご紹介します。
PowerShell の画面で以下のようにコマンドを実行するだけです。
PS C:\> dir (New-Object -ComObject Shell.Application).NameSpace('shell:Downloads').Self.Path -Recurse| Unblock-File
これを先程のようにバッチで以下のように作成すると、ダウンロードが終わったらバッチを実行するだけで全てのファイルのブロックを解除することができるようになります。
powershell -ExecutionPolicy RemoteSigned -Command "dir (New-Object -ComObject Shell.Application).NameSpace('shell:Downloads').Self.Path -Recurse| Unblock-File"
おわりに
たまたま発見した方法ではありますが、かなり便利なTipsだと思います。
ぜひ色々とご活用ください。
参考までに公式ドキュメントも載せておきます。