Zone忌まわしくも助かる機能です。 Winodws 8以降あたりで「インターネット上など信頼しないネットワークからダウンロードしたファイル」は、Secutiry Zone情報に操作がブロックされます。 ブロックされると、Windows上でファイルが正常に操作できなかったり、動作が妨げられるようになります。
セキュリティ上は素敵なのですが、ブロックを外すには「プロパティを開く」必要があり面倒です。簡単のため、コンテキストメニューにPowerShellスクリプトを組み込みましょう。 例のごとく、セキュリティやレジストリを触るため、ご利用はご自身の責任でお願いします。
そもそもブロックってどういうこと
プロパティを見るとこういった状態です。
これを解除するには、Unblockをクリックする必要があります。
PowerShellならCmdletがある
まぁ、さすがといったところです。 標準でコマンドレットが用意されています。
Unblock-File -Path C:\hoge.pptx
たったこれだけで解除できます。
右クリックのコンテキストメニューに追加したい
はい、ではやりましょう。
guitarrapc/PowerShellUtil - Set-UnblockFileContext | GitHub
以下のレジストリキーを操作します。
HKEY_CLASSES_ROOT\*\shell\ HKEY_CLASSES_ROOT\*\shell\PowerShell
ここにPowerShellとキーを作り、Unblock Filesとデータを作ります。
# Function to add Unblock context function Set-UnblockFileContext{ $key = "Registry::HKEY_CLASSES_ROOT\*\shell" $Command = "C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\powershell.exe Unblock-File -LiteralPath '%L'" if (-not(Test-Path -LiteralPath "$key\powershell" )) { cd -LiteralPath $key New-Item -Name "PowerShell" | Set-ItemProperty -Name "(default)" -Value "Unblock Files" -PassThru cd PowerShell New-Item -Name "Command" | Set-ItemProperty -Name "(default)" -Value $Command } }
実行はこれで
Set-UnblockFileContext
*
があるので、必ずLiteralPathで指定などNew-Itemで *を含まないようにする必要があります。
実行後
右クリックにUnblock Fileというメニューが増えているので実行すれば完了です。 これで、ブロックがどうこうで悩む人が減れば幸いですが、Unblockするファイルが安全であることを確認してからご利用されることを推奨します。