職業訓練校の初めの頃にだけ使用していたWindowsの中古ノートPCで、久しぶりにvue createしてみたら見たことがないエラーに遭遇したので、その対処の備忘録です。
エラー文を読むしかない
vue : このシステムではスクリプトの実行が無効になっているため、ファイル C:\Users\u ser\AppData\Roaming\npm\vue.ps1 を読み込むことができません。詳細については、「abo ut_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照し てください。発生場所 行:1 文字:1+ vue create 230901_privacy_policy+ ~~~ + CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess
めっちゃ赤字で少し焦りましたが、リンクを参照して下さいとあるので参照してみます。
about Execution Policies - PowerShell
Describes the PowerShell execution policies and explains how to manage them.
まぁまぁ長めの解説で一瞬心が折れかけましたが、、、、
実行ポリシーを確認する
「次のコマンドは、有効な実行ポリシーを取得します。」
Get-ExecutionPolicy
上記を実行してみると、「Restricted」と表示されました。
なんかさっき見たような気がするぞと、先程のリンク先の少し上の方を見ると、
Restricted
- Windows クライアント コンピューターの既定の実行ポリシー。
- 個々のコマンドを許可しますが、スクリプトは許可しません。
- 書式設定ファイルと構成ファイル ()、モジュール スクリプト ファイル ()、PowerShell プロファイル
.ps1
(.ps1xml
.psm1
) など、すべてのスクリプト ファイルの実行を禁止します。
なるほど、エラー文に書いてあった、スクリプトは許可しませんとの説明があります。
ひとつ上の項目の「RemoteSigned」はスクリプトを実行できますと書いてありました。
RemoteSigned
- Windows サーバー コンピューターの既定の実行ポリシー。
- スクリプトを実行できます。
実行ポリシーを変更する(管理者権限が必要)
実行ポリシーを変更するには、というところの例に、
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
というのがあって、これが使えそうだなと、そのままVS Codeのターミナルのところで実行したところ、
rShell\1\ShellIds\Microsoft.PowerShell' へのアクセスが拒否されました。 既定 (Loca
lMachine) のスコープの実行ポリシーを変更するには、[管理者として実行] オプションを
使用して Windows PowerShell を起動してください。現在のユーザーの実行ポリシーを変
更するには、"Set-ExecutionPolicy -Scope CurrentUser" を実行してください。
発生場所 行:1 文字:1
+ Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (:) [Set-ExecutionPolicy], Unaut
horizedAccessException
+ FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.Power
Shell.Commands.SetExecutionPolicyCommand
とのエラー文。
書いてある通りに、Windows PowerShellを右クリックして、管理者として実行して、
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
再度これを実行すると、
実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies
のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"):
yでエンターを押下後、再度Get-ExecutionPolicyを実行すると、無事に「RemoteSigned」と表示されました。
エラー解消
VS Codeに戻って、vue createしてみると、無事に処理が進みましたー!!!
どうしてこう、うまくいかない時に限って次々とエラーが連発するのでしょうか、、泣