Powershellの一時的な許可

WindowsではデフォルトではPowershellは動作できないかと思います。
また、常時実行可能ですとセキュリティリスクが拡大するため推奨できません。
そこで一時的に許可する方法が下記の手順になります。

1.PowerShellを管理者で起動して以下のコマンドを実行します。
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Unrestricted -Force

2.権限を確認します。
Get-ExecutionPolicy -list
以下のようになっていれば、今起動しているPowershellウィンドウでは.ps1ファイルが実行可能です。
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Unrestricted
CurrentUser Undefined
LocalMachine Undefined

3.必要なスクリプトを実行して、Powershellウィンドウを閉じます。

4.再度Powershellウィンドウを起動して権限を確認します。
Get-ExecutionPolicy -list

以下のように禁止になっているかと思います。
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser Undefined
LocalMachine Undefined

一時的にPowershellファイルを実行させる方法です。

スコープの種類

Scope意味
MachinePolicyコンピュータ GPO で制御されます
UserPolicyユーザー GPO で制御されます
Process現在の PowerShell セッションにのみに適用します
CurrentUser現在のユーザーにのみ適用します
LocalMachineコンピュータのすべてのユーザーに適用します(default)

ポリシーの種類
Policy意味
AllSignedすべてのスクリプトに、信頼された発行元によって署名されている必要があります
Bypass何もブロックされず、警告やプロンプトもありません
Default既定の実行ポリシーを設定します
RemoteSignedインターネットからダウンロードされたすべてのスクリプトと構成ファイルが、信頼できる発行元によって署名されている必要があります。
(Windows Server の default)

スクリプトには「ZoneID」と呼ばれる入手元のゾーンを表す情報が付加されており、インターネット等からダウンロードしたスクリプトを識別してます。

ZoneID をリセットするには、Unblock-File コマンドレットを使用します。
Restrictedスクリプトの実行を許可しません
(Windows Client の default)
Undefined実行ポリシーが設定されていない状態です
default ポリシーが適用されます
Unrestricted全てのスクリプトが実行可能ですが、インターネットからダウンロードしたスクリプトは、実行するかどうかが確認されます

ご参考まで

関連記事

TOP