PowerShellでスクリプトを実行する際、初期設定ではセキュリティ上の理由から制限されています。
ここでは、Set-ExecutionPolicy RemoteSigned
を使ってスクリプト実行を許可する理由と設定方法をまとめます。
1. なぜスクリプト実行を許可する必要があるのか?
PowerShellは強力な自動化ツールであるため、悪意のあるスクリプトが実行されるリスクがあります。
初期状態では、未署名のスクリプトやインターネットから取得したスクリプトは実行できないようになっています。
- 制限される理由:システムの安全性を守るため
- 制限の例:
.\example.ps1
上記を実行すると、次のようなエラーが出ることがあります。File C:\Temp\example.ps1 cannot be loaded because running scripts is disabled on this system.
このため、スクリプトを安全に実行するために 実行ポリシー を変更する必要があります。
2. 実行ポリシーの種類
代表的な実行ポリシーは以下の通りです。
実行ポリシー | 説明 |
---|---|
Restricted | デフォルト。スクリプトの実行を禁止 |
RemoteSigned | ローカル作成のスクリプトは実行可能。インターネットから取得したスクリプトは署名が必要 |
Unrestricted | すべてのスクリプトを実行可能。警告は出る |
AllSigned | 署名されたスクリプトのみ実行可能 |
安全性と利便性のバランスを取るなら RemoteSigned
が推奨です。
3. RemoteSigned の設定方法
- 管理者として PowerShell を起動
- 「スタート」→「PowerShell」→右クリック→「管理者として実行」
- 実行ポリシーを RemoteSigned に変更
Set-ExecutionPolicy RemoteSigned
- 確認メッセージが出る
実行ポリシーの変更はシステムに影響します。変更してもよろしいですか? [Y/N]
→Y
を入力して Enter - 変更を確認
Get-ExecutionPolicy
→RemoteSigned
と表示されれば設定完了
4. 注意点
- 管理者権限が必要です
- インターネットから取得したスクリプトは署名が必要になる場合があります
- 作業終了後、必要に応じて元のポリシーに戻すことも可能です
Set-ExecutionPolicy Restricted
5. まとめ
- 初期状態ではセキュリティ上の理由でスクリプト実行が制限されている
- ローカルスクリプトを安全に実行するには
RemoteSigned
を設定する - 設定は管理者として PowerShell を開き、
Set-ExecutionPolicy RemoteSigned
を実行
PowerShellで自動化やスクリプト運用を始める前に、まず 実行ポリシーの設定 を確認しましょう。
コメント