Windows で PowerShell スクリプトを実行する方法
この記事の内容
- インターネットからダウンロードした PowerShell スクリプトが実行できない原因を解説します
- PowerShell の実行ポリシーの確認・変更手順を紹介します
- ダウンロードファイルのブロック解除手順を紹介します
- 上記2つの対処を組み合わせることで、スクリプトをスムーズに実行できるようになります
はじめに
インターネット上で公開されている PowerShell スクリプトをダウンロードしたものの、実行しようとするとエラーが出てしまう——そんな経験をされた方は多いのではないでしょうか。この記事では、その原因と対処方法をわかりやすく解説します。
なぜ PowerShell スクリプトが実行できないのか
Windows では、インターネットからダウンロードしたスクリプトは「信頼できないファイル」として扱われます。そのため、次の2つの制限がかかっています。
- ファイルのブロック:Windows がファイル自体にブロックフラグを付け、アクセスを制限します
- 実行ポリシーの制限:PowerShell の実行ポリシーがスクリプトの実行を制限しています
この2つを順番に解除することで、スクリプトを実行できるようになります。
対処方法1:PowerShell の実行ポリシーを変更する
現在の実行ポリシーを確認する
まず、PowerShell を管理者として実行してください。スタートメニューで「PowerShell」を検索し、右クリックから「管理者として実行」を選択します。
管理者の PowerShell で次のコマンドレットを実行し、現在の実行ポリシーを確認します。
Get-ExecutionPolicy
実行ポリシーが Restricted(制限)になっている場合、スクリプトの実行が禁止されています。
実行ポリシーを RemoteSigned に変更する
次のコマンドで実行ポリシーを変更します。
Set-ExecutionPolicy RemoteSigned
確認を求めるプロンプトが表示されたら、Y と入力して Enter を押してください。
RemoteSigned に設定すると、次のような動作になります。
- ローカルで作成したスクリプトはそのまま実行できる
- インターネットからダウンロードしたスクリプトは署名付きのものだけ実行できる
設定が完了したら、一度 PowerShell を閉じてください。
対処方法2:ダウンロードファイルのブロックを解除する
実行ポリシーを変更しても、ファイル自体にブロックがかかっている場合は実行ポリシーの変更確認ダイアログが表示され続けます。これはインターネットからダウンロードしたことを Windows が記録しているためです。
ファイルのブロックを解除するには、次の手順を行います。
- ダウンロードした
.ps1ファイルを右クリックし、**「プロパティ」**を開きます - 「全般」タブの下部に「このファイルは他のコンピューターから取得したものです。このコンピューターを保護するため、このファイルへのアクセスはブロックされる可能性があります。」というメッセージが表示されています
- その横にある 「許可する」 にチェックを入れ、「OK」または「適用」をクリックします
これにより、Windows はそのファイルをインターネットから取得したものとして扱わなくなります。
スクリプトを実行する
上記2つの対処が完了したら、改めて PowerShell を起動してスクリプトを実行してください。
.\スクリプト名.ps1
今度はスムーズに実行されるはずです。
まとめ
インターネットからダウンロードした PowerShell スクリプトが実行できない場合は、次の2点を確認・対処してください。
- ファイルのブロックを解除する:ファイルのプロパティを開き、「許可する」にチェックを入れる
- 実行ポリシーを変更する:管理者として PowerShell を起動し、
Set-ExecutionPolicy RemoteSignedを実行する
この2つを行うことで、インターネットからダウンロードしたスクリプトを含め、PowerShell スクリプトを安全に実行できるようになります。ぜひ活用してみてください。