【PowerShell】Webから落としてきたps1ファイルを実行する(ゾーン識別子によるセキュリティ警告を解除する)

クラウド(Web)からダウンロードしたps1ファイル(hoge.ps1)のショートカットを作成し、プロパティのショートカットタブにあるリンク先に下記のように書いて実行しました。

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Unrestricted -File C:\tool\hoge.ps1

すると、下記のセキュリティ警告が出ました。

セキュリティ警告
信頼するスクリプトのみを実行してください。インターネットから入手したスクリプトは便利ですが、コンピューターに危害を及ぼ
す可能性があります。このスクリプトを信頼する場合は、この警告メッセージが表示されないように、Unblock-File
コマンドレットを使用して、スクリプトの実行を許可してください。C:\tool\hoge.ps1
を実行しますか?

[D] 実行しない(D) [R] 一度だけ実行する(R) [S] 中断(S) [?] ヘルプ (既定値は "D"):

このps1ファイルはコンテキストメニューの「送る」で使用する予定だったため、このようにセキュリティ警告が出ると動作しませんでした。

この警告は、ps1ファイルのプロパティを開いてセキュリティの「許可する」にチェックを入れれば解消できます。

Webからダウンロードしてきたファイルには「ゾーン識別子」という属性が付与されるらしく、これが付いているとプロパティにセキュリティ項目(↑の項目)が表示されるようです。「ゾーン識別子」はコマンドプロンプトで「dir /r」というコマンドを実行すると確認できます。

C:\tool>dir /r
ドライブ C のボリューム ラベルは Windows です
ボリューム シリアル番号は EC9A-8084 です

C:\tool のディレクトリ

2022/05/12 23:27    <DIR>                  .
2022/05/12 23:27    <DIR>                  ..
2022/05/12 22:22                            66 hoge.ps1
                                                          1,534 hoge.ps1:Zone.Identifier:$DATA
               1 個のファイル                   66 バイト
               2 個のディレクトリ  153,419,661,312 バイトの空き領域

この「ゾーン識別子」は下記のPowershellのコマンドで削除できます。

Remove-Item ファイル名 -Stream Zone.Identifier;

参考

タイトルとURLをコピーしました