Windows で PowerShell スクリプトを実行する方法

この記事の内容

  • インターネットからダウンロードした PowerShell スクリプトが実行できない原因を解説します
  • PowerShell の実行ポリシーの確認・変更手順を紹介します
  • ダウンロードファイルのブロック解除手順を紹介します
  • 上記2つの対処を組み合わせることで、スクリプトをスムーズに実行できるようになります

はじめに

インターネット上で公開されている PowerShell スクリプトをダウンロードしたものの、実行しようとするとエラーが出てしまう——そんな経験をされた方は多いのではないでしょうか。この記事では、その原因と対処方法をわかりやすく解説します。


なぜ PowerShell スクリプトが実行できないのか

Windows では、インターネットからダウンロードしたスクリプトは「信頼できないファイル」として扱われます。そのため、次の2つの制限がかかっています。

  1. ファイルのブロック:Windows がファイル自体にブロックフラグを付け、アクセスを制限します
  2. 実行ポリシーの制限:PowerShell の実行ポリシーがスクリプトの実行を制限しています

この2つを順番に解除することで、スクリプトを実行できるようになります。


対処方法1:PowerShell の実行ポリシーを変更する

現在の実行ポリシーを確認する

まず、PowerShell を管理者として実行してください。スタートメニューで「PowerShell」を検索し、右クリックから「管理者として実行」を選択します。

管理者の PowerShell で次のコマンドレットを実行し、現在の実行ポリシーを確認します。

Get-ExecutionPolicy

実行ポリシーが Restricted(制限)になっている場合、スクリプトの実行が禁止されています。

実行ポリシーを RemoteSigned に変更する

次のコマンドで実行ポリシーを変更します。

Set-ExecutionPolicy RemoteSigned

確認を求めるプロンプトが表示されたら、Y と入力して Enter を押してください。

RemoteSigned に設定すると、次のような動作になります。

  • ローカルで作成したスクリプトはそのまま実行できる
  • インターネットからダウンロードしたスクリプトは署名付きのものだけ実行できる

設定が完了したら、一度 PowerShell を閉じてください


対処方法2:ダウンロードファイルのブロックを解除する

実行ポリシーを変更しても、ファイル自体にブロックがかかっている場合は実行ポリシーの変更確認ダイアログが表示され続けます。これはインターネットからダウンロードしたことを Windows が記録しているためです。

ファイルのブロックを解除するには、次の手順を行います。

  1. ダウンロードした .ps1 ファイルを右クリックし、**「プロパティ」**を開きます
  2. 「全般」タブの下部に「このファイルは他のコンピューターから取得したものです。このコンピューターを保護するため、このファイルへのアクセスはブロックされる可能性があります。」というメッセージが表示されています
  3. その横にある 「許可する」 にチェックを入れ、「OK」または「適用」をクリックします

これにより、Windows はそのファイルをインターネットから取得したものとして扱わなくなります。


スクリプトを実行する

上記2つの対処が完了したら、改めて PowerShell を起動してスクリプトを実行してください。

.\スクリプト名.ps1

今度はスムーズに実行されるはずです。


まとめ

インターネットからダウンロードした PowerShell スクリプトが実行できない場合は、次の2点を確認・対処してください。

  1. ファイルのブロックを解除する:ファイルのプロパティを開き、「許可する」にチェックを入れる
  2. 実行ポリシーを変更する:管理者として PowerShell を起動し、Set-ExecutionPolicy RemoteSigned を実行する

この2つを行うことで、インターネットからダウンロードしたスクリプトを含め、PowerShell スクリプトを安全に実行できるようになります。ぜひ活用してみてください。