PowerShellスクリプトが実行できない時の直し方4ステップ
こんにちは、時短ギア管理人の清光です。
コードは書けない現役の営業ですが、AIと一緒に、現場が毎日使う業務システムを1年以上つくり続けてきました。
「PowerShellでスクリプトを実行したら、いきなり赤い文字のエラーで止まった」——そんな経験はありませんか。
原因の多くは「実行ポリシー」という設定のせいで、スクリプトが実行できない状態になっています。
この記事では、その仕組みと、安全に動かせるようにする設定手順を最後まで解説します。

なぜPowerShellはスクリプトを止めるのか
Windows標準のPowerShellには、初期状態でスクリプトの実行そのものを止める設定が入っています。
これは「実行ポリシー」と呼ばれる仕組みで、多くの環境で既定値は「Restricted(制限)」です。
知らない場所から拾ったスクリプトが、勝手にPCを操作してしまう事故を防ぐためのブレーキです。
自分で書いた、あるいはAIに書いてもらった.ps1ファイルでも、この区別なく一律に止められます。
実はこの「時短ギア」自体も、毎朝の記事を投稿する仕組みをPowerShellのスクリプトで動かしています。
導入した当初、私も同じエラーで数十分手が止まった一人です。
実行ポリシーを確認して変更する3ステップ
- スタートメニューで「PowerShell」と検索し、右クリックして「管理者として実行」を選ぶ。
- 開いた画面に次のコマンドを入力してEnterを押し、今の設定を確認する。
- 制限がかかっていたら、自分のアカウントだけ緩める設定に変更する。
Get-ExecutionPolicy「Restricted」と表示されたら、それが原因で確定です。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser確認を求められたら「Y」を入力してEnterを押してください。
これで、自分のアカウントで書いたスクリプトだけが実行できるようになります。

設定値ごとの違い
| 設定値 | できること | おすすめ度 |
|---|---|---|
| Restricted | スクリプトを一切実行しない(初期値) | 変更前提 |
| RemoteSigned | 自分で書いた物は実行可、ネット経由は署名が必要 | ◎ 通常はこれで十分 |
| Unrestricted | 署名なしでも全部実行できる | △ 緩めすぎ |
| Bypass | 確認なしでその場限り実行 | 一時的な用途のみ |
基本は「RemoteSigned」を選んでおけば、自分の作業を止めずに最低限のブレーキは残せます。
それでもよくある疑問
Q. 制限を緩めるのはセキュリティ的に危なくないですか?
「Unrestricted」まで緩めると危険度は上がります。
「RemoteSigned」なら、ネットからのスクリプトには署名を求めるので、初期設定よりは安全側に倒せます。
Q. 会社のPCでも同じ手順で直りますか?
組織のPCはグループポリシーで管理者権限ごと変更が禁止されていることがあります。
その場合は無理に回避しようとせず、情報システム部門に確認するのが安全です。
Q. 毎回「Bypass」を付けて実行すればいいのでは?
その場しのぎにはなりますが、ブレーキが常に効かない状態が普通になってしまいます。
自分の環境の既定値そのものを一段階だけ緩める方が、事故を防ぎながら長く使えます。
ハマりどころ:エラー文をよく読まずに検索すると遠回りする
このエラーで検索すると、管理者権限そのものの話や、別の原因の記事も一緒に出てきます。
まずはGet-ExecutionPolicyで今の値を自分の目で確認するのが最短ルートです。
スクリプトが自動実行される仕組みを組んでいる場合は、タスクスケジューラが実行されない原因と直し方もあわせて確認しておくと安心です。
まとめ
- PowerShellでスクリプトが止まる原因の多くは「実行ポリシー」という初期設定のブレーキ
Get-ExecutionPolicyで確認し、RemoteSignedに変更すれば大半は解決する- 緩めすぎず、自分のアカウントの範囲だけ変更するのが安全と手間のちょうど良いバランス
これで、AIに書いてもらった自動化スクリプトも自分のPCで動かせるようになります。
今日はここまで。この記事が、あなたの時間を少しでも価値に変えるお手伝いになれば嬉しいです。
それでは、また次の時短ハックでお会いしましょう。
自作している業務システムのことや、お仕事のご依頼はお問い合わせからどうぞ。