PowerShellスクリプトを実行できるようにポリシーを変更する
PowerShellのスクリプトはデフォルトの状態では実行できません。実行ポリシーを変更する必要があります。
デフォルト状態では実行できない
初めてPowerShellスクリプトを作成して、さて実行しようとすると以下のようなエラーが発生し、実行することができません。
このシステムではスクリプトの実行が無効になっているため、ファイル C:\Users\hoge\Desktop\test.ps1 を読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.c
om/fwlink/?LinkID=135170) を参照してください。
+ CategoryInfo : セキュリティ エラー: (: ) []、ParentContainsErrorRecordExc
eption
+ FullyQualifiedErrorId : UnauthorizedAccess
PowerShellもプログラムの一種です。悪意あるPowerShellスクリプトを実行した場合、システムを破壊されかねません。知識のある人のみ、安全なスクリプトのみ実行できるように、実行ポリシー
という設定でPowerShellスクリプトの実行を制限しています。
この実行ポリシー
のデフォルトは一切のPowerShellスクリプトを実行できないようになっているのです。
実行ポリシーの種類
実行ポリシーはデフォルトではRestricted
になっています。
実行ポリシー | 署名あり | 署名なし (ローカル) |
署名なし (リモート) |
解説 |
---|---|---|---|---|
Restricted | × | × | × | すべてのスクリプトが実行できない。 |
AllSigned | 〇 | × | × | 署名ありスクリプトのみ実行可能。 |
RemoteSigned | 〇 | 〇 | × | 署名ありスクリプトおよびローカルのスクリプトは実行可能。※リモートのスクリプトは署名ありのみ実行可能。 |
Unrestricted | 〇 | 〇 | △ | 署名ありスクリプトおよびローカルのスクリプトは実行可能。※リモートのスクリプトはユーザーが許可した場合のみ実行可能。 |
Bypass | 〇 | 〇 | 〇 | すべてのスクリプトが実行可能。 |
実行ポリシーの変更
多くの場合、実行ポリシーはRemoteSigned
で十分です。RemoteSigned
であれば、ローカルのスクリプトは署名なしで実行できますし、リモートのスクリプトも署名ありであれば実行できます。
実行ポリシーをRemoteSigned
に変更するには、以下の手順で行います。
PowerShellを管理者権限で起動します。
以下のコマンドを実行します。
Set-ExecutionPolicy RemoteSigned
以下の確認がでるので、
y
を入力します。
実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies
のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): y
これで完了です。
最後まで読んでいただきありがとうございます。
また読んでくださいませ。
そんじゃーね。
関連記事
SPONSORED LINK
SPONSORED LINK