1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PowerShell初心者がこっそり躓いた話

Posted at

はじめに

今月参画した開発PJにPS1ファイルがありました。ビルドのタイミングでPS1スクリプトを実行する必要があったんですが、とあるエラーに止められてしまいました。実体としては5分くらいの調査&解消だったんですが、備忘録として記事を書いておきます。

こっそり躓いた話

前提の話

WIndows10で開発していまして、VSCodeのターミナルで発生&解消できました。

遭遇したエラー

リポジトリ内のPS1スクリプトを実行すると下記エラーが発現しました。

PS (プロジェクトのパス)> .\sample.ps1 <...arguments>
.\sample.ps1 : ファイル(プロジェクトのパス)\sample.ps1 を読み込めません。
ファイル(プロジェクトのパス)\sample.ps1 はデジタル署名されていません。
このスクリプトは現在のシステムでは実行できません。
スクリプトの実行および実行ポリシーの設定の詳細については、「about_Execution_Policies」 を参照してください。

「デジタル署名」??「実行ポリシー」??

ぼんやりと「権限修正して解消しよー」と考えたんですが、chmodが実行できないことに少し思考停止しました。(もしここで冷静にcaclsコマンドを使用していた場合だともっと頭がこんがらがってしまっていたかもしれません苦)

少し冷静になって(諦めて)エラー本文を読んでみると、PowerShellポリシーに反してPS1ファイルを実行したことが原因のようです。

参考:about_Execution_Policiesについて

対処しました

エンジニア人生ここに来て初めてPowerShellボリシーの問題に遭遇しました。どうやら一時的にポリシーを変更するか該当ファイルに自己署名を付与するかのいずれかの解消方法があるとのことです。

参考:PowerShell 実行時の「デジタル署名されていません」エラーの対処法

都度実行する必要はありますが、今回はポリシーを変更する方針で解消しました。

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass 

Bypassと続けることでPowerShellを閉じればProcessの実行ポリシーは変更前に戻るそうです。自己署名を付与する場合、そのスクリプトを管理するのが手間だなと感じました。(セキュリティ的にもこちらの方が安全そうなので...)

お昼休憩では反省して下記のサイトで勉強しました。
Windows開発でしっかり一人前の働きができるように頑張ります。

参考:PowerShellの実行ポリシー変更

おわりに

「そりゃそうだよ(笑)」となる先輩方がほとんどかと思いますが、「デジタル署名」「実行ポリシー」などのキーワードに一瞬たじろいでしまうくらいのヒヨコエンジニアなのでご容赦ください。躓きが「こっそり」で解消できただけ幸いでした。これからまた躓く度に更新していけたらと思います。

ここまで読んでいただきありがとうございました。

1
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?