PowerShellにはセキュリティのためのスクリプト実行ポリシーがあります。安全にスクリプトを実行するための設定方法とモジュール管理を解説します。
実行ポリシーの設定
| ポリシー名 | 説明 |
|---|---|
| Restricted | スクリプト実行を完全に禁止(Windowsデフォルト) |
| AllSigned | 信頼できる発行元の署名があるスクリプトのみ実行可 |
| RemoteSigned | ローカルのスクリプトはOK、ダウンロードしたものは署名が必要 |
| Unrestricted | すべて実行可能(非推奨) |
| Bypass | すべてのポリシーを無効化(自動化環境での使用) |
Get-ExecutionPolicy -List # スコープ別に一覧表示
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser # 現在のユーザーのみ変更モジュールの管理(PowerShell Gallery)
# モジュールの検索・インストール
Find-Module -Name "Az" # Azureモジュールを検索
Install-Module -Name "Az" -Scope CurrentUser
# インストール済みモジュール一覧
Get-Module -ListAvailable
# モジュールの読み込み
Import-Module Az
# モジュールのアップデート
Update-Module -Name "Az"スクリプトの署名
# 自己署名証明書の作成(テスト用)
$cert = New-SelfSignedCertificate -Type CodeSigningCert `
-Subject "CN=PowerShell Script Signing" `
-CertStoreLocation "Cert:\CurrentUser\My"
# スクリプトに署名
Set-AuthenticodeSignature -FilePath "myscript.ps1" -Certificate $certまとめ
- 個人利用にはRemoteSignedをCurrentUserスコープで設定するのが推奨
- PowerShell GalleryからInstall-Moduleでモジュールを簡単に追加できる
- 企業環境ではAllSignedポリシーで署名必須にするとセキュリティが向上する



コメント