1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PowerShellの実行ポリシーの問題を解決する

Posted at

はじめに

ひとこと

アクセスしていただきありがとうございます。
Pythonをメインとしていない筆者が、Pythonで簡単なアプリを開発したときにPowerShellの実行ポリシーでつまずき、また偶然にも同じ問題に遭遇している人から質問されたので、記事にまとめます。

目的

  • PowerShellの実行ポリシーについて知る
  • PowerShellの実行ポリシーの問題を解決する

検証済みの環境

  • Windows11 Home x64
  • PowerShell 7.5
  • Python 3.13.5

ご注意

  • この記事の情報は 2025/11/18現在 のものです
  • この記事ではWindowsのレジストリを変更するコマンドを扱います。レジストリに対して誤った操作を実行すると、システムが起動しなくなるなどの可能性があります。実行する場合は自己責任でお願いします

1.問題の整理

例えば .venv という名前のPythonの仮想環境を有効化しようとしているとします

.venv\Scripts\Activate.ps1

すると次のようなエラーが表示される場合があります

.venv\Scripts\Activate.ps1 : このシステムではスクリプトの実行が無効になっているため、ファイル C:~\.venv\Scripts\Activate.ps1 を読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。
発生場所 行:1 文字:1
+ .venv\Scripts\Activate.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : セキュリティエラー: (: ) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

2.問題の解説

PowerShell

PowerShell とは コマンドプロンプト に代わる次世代のシェルです。
例えば新しくフォルダを作成するなどの単一のコマンドレット(コマンド)はもちろん、一般的なプログラミング言語のように、そのコマンドを組み合わせて スクリプト としてファイルにまとめて実行することもできます。

仮想環境の起動

仮想環境を構築した後、実際に開発するときには仮想環境を起動する必要があります。そのためには仮想環境を構築するときに自動で生成される Activate.ps1 というファイルをPowerShellから実行します。

実行ポリシー

PowerShellには 実行ポリシー という設定があります。これは悪意のある攻撃でPowerShellを使われないようにするためです。
デフォルトでは、コマンドは実行できるが、(前述の)スクリプト、この問題におけるActivate.ps1は実行できないような実行ポリシー(Restricted)に設定されています。

3.問題の解決

「ご注意」にも書きましたが、Windowsのレジストリを変更するコマンドを扱います。レジストリに対して誤った操作を実行すると、システムが起動しなくなるなどの可能性があります。実行する場合は自己責任でお願いします。

概要

実行ポリシーを Restricted から RemoteSigned に変更します。この実行ポリシーでは、 Restricted でできることに加えて、 ローカルで作成されたスクリプトならば実行できる ようになります。
また、すべてのユーザーに対して変更することもできますが、ここでは現在のユーザーの実行ポリシーを変更する方法を紹介します。

実行ポリシーを変更する

PowerShellで次のコマンドレットを実行します。

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

もう一度、仮想環境の有効化を実行する

PowerShellで次のスクリプトを実行します(.venvという名前の仮想環境を想定しています)。

.venv\Scripts\Activate.ps1

それでも仮想環境を有効化できない場合

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

PowerShellで次のコマンドレットを実行してください。

Get-ExecutionPolicy -List

次のように、 CurrentUserRemoteSigned に設定されているかを確認してください。
そうでない場合は、もう一度実行ポリシーを変更してください。

        Scope ExecutionPolicy
        ----- ---------------
  CurrentUser    RemoteSigned

Windowsを再起動する

Windowsを再起動してみてください。

おわりに

最後までお読みいただきありがとうございます。
初心者向けの「実行環境とは何か」という記事も執筆中ですので、今しばらくお待ちください。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?