PowerShellでスクリプト(.ps1)を実行しようとすると、
. : このシステムではスクリプトの実行が無効になっているため、ファイル C:\Users\vw8u\Documents\WindowsPowerShell\Microsof t.PowerShell_profile.ps1 を読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft. com/fwlink/?LinkID=135170) を参照してください。 発生場所 行:1 文字:3 + . 'C:\Users\vw8u\Documents\WindowsPowerShell\Microsoft.PowerShell_pro ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess
と表示されて実行できないことがあります。
スクリプトが実行できない理由
実は、PowerShellではセキュリティ上の理由でデフォルトでスクリプトが実行できないようになってるんです。
スクリプトを実行できるようにするには、でスクリプトの実行を有効化する必要があります。
有効化はスクリプトに署名があるかないか、ローカルで作成したスクリプトかインターネットから取得したスクリプトか、という条件によって4種類の設定があります(実際は、これにすべてのスクリプト実行禁止を加えた5種類あります)。
今回は『ローカルで作成したスクリプトは署名が無くても実行可能、インターネットから取得したスクリプトは署名があるもののみ実行可能』という設定をしてみます。
PowerShellを管理者権限で起動する
まず、PowerShellを管理者権限で起動しましょう。
[ファイル]メニューから[Windows PowerShellを開く]-[Power Shellを管理者権限で開く]をクリックします。
実行ポリシーを設定する
> Set-ExecutionPolicy RemoteSigned
を実行します。
確認が表示されますので、Aもしくは全てYを入力します。
これでスクリプトを実行できるようになります。