schedule2021-11-14

PowerShellでglobalでインストールしたyarnを実行する方法と、スクリプトの実行が無効になっているってエラーの解決方法

PowerShellでglobalでインストールしたyarnを実行する方法です。

Windows 11 (Windows 10も同様)のPowerShellでnpm install -g yarnを実行すると このシステムではスクリプトの実行が無効になっているため、ファイルC:\Users\81905\AppData\Roaming\npm\yarn.ps1 を読み込むことができません。とでる。

環境

  • Windows 11
  • Node v16.13.0
  • npm 8.1.0
  • インストールできた yarn : 1.22.17

yarnのインストール方法

https://yarnpkg.com/getting-started/install

公式の手順通り進める。

posershellでnpmのglobalにインストールする。

> npm install -g yarn

yarnを実行すると次のエラーが出る。

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

picture 3

解決方法

こちらの記事を参考にスクリプトの実行ポリシーを変更する。

参考: https://labor.ewigleere.net/2020/06/04/yarn-powershell/

ポリシーを確認する。

PS C:\Users\81905> Get-ExecutionPolicy
Restricted

制限されてました。

スクリプトを実行できるRemoteSignedのポリシーに変更します。

# 管理者権限でPowerShellを実行する
PS C:\Users\81905> Set-ExecutionPolicy RemoteSigned
PS C:\Users\81905> Get-ExecutionPolicy
RemoteSigned

ポリシーを変えてから実行する。

PS C:\Users\81905> yarn -v
1.22.17
# OK!!

PowerShell の実行ポリシー についてはこちらを見てください。

PowerShell - 実行ポリシーについて - Microsoft Docs

RemoteSigned

  • Windows server コンピューターの既定の実行ポリシー。
  • スクリプトを実行できます。
  • では、電子メールやインスタントメッセージングプログラムを含む、インターネットからダウンロードされるスクリプトと構成ファイルに対する信頼された発行元からのデジタル署名が必要です。
  • では、ローカルコンピューター上に記述され、インターネットからダウンロードされないスクリプトに対してデジタル署名は必要ありません。
  • コマンドレットなどを使用して、スクリプトのブロックが解除された場合に、インターネットからダウンロードされ、署名されていないスクリプトを実行し Unblock-File ます。
  • インターネット以外のソースからの署名されていないスクリプトや、悪意のあると考えられる署名済みスクリプトを実行するリスク。

Restricted

  • Windows クライアントコンピューターの既定の実行ポリシー。
  • 個々のコマンドを許可しますが、スクリプトは許可しません。
  • 書式設定ファイル、構成ファイル () .ps1xml 、モジュールスクリプトファイル ()、PowerShell プロファイル () など、すべてのスクリプトファイルの実行を禁止 .psm1 .ps1 します。