見出し画像

PowerShell 独自コマンドを登録する

PowerShellに独自コマンドを登録する

PowerShellでは独自のコマンドを登録することができます。
よく使うコマンドを登録しておくと便利です。
例えばメモをターミナルからSlackやNotionへ投稿する、
 ターミナルからコマンドでBGMを鳴らすなど


登録方法はMicrosoft.PowerShell_profile.ps1に関数型で記述することで実現できます。



独自コマンド登録方法

1. Microsoft.PowerShell_profile.ps1の場所


 Microsoft.PowerShell_profile.ps1の場所を確認します。
以下のコマンドを実行

$PROFILE

上のスクショはWindows11で実行した結果。
ドキュメントの中のWindowsPowerShellフォルダにMicrosoft.PowerShell_profile.ps1があります。


2. Microsoft.PowerShell_profile.ps1の編集


 Microsoft.PowerShell_profile.ps1をテキストエディタで開いて編集します。 (このファイルが無い場合は新しく作成します)
簡単な例としてファイルの中身を下のように書いて保存します。
文字コードはSJIS

Function test1 {
  write-host 'こんにちわコルタナです'
} 



3. Microsoft.PowerShell_profile.ps1の再読み込み


 Microsoft.PowerShell_profile.ps1を保存した後、以下のコマンドを実行してOSに再読み込みさせます。

  .$PROFILE


「.$PROFILE」を実行したときに
下のようなエラーが出る場合 

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


↑このエラーが出る場合、ポリシーを変更してスクリプトを実行できるようにします。

Set-ExecutionPolicy RemoteSigned -Force


これは「ローカルのスクリプトファイルを実行できるようにする」という意味です。
そして再度.$PROFILEを実行すると独自コマンドが実行できるようになります。


4.独自コマンドの実行


 test1と入力して実行すると

 上手く実行できたら上のようになります。上手く行かないとき、一度PowerShellのターミナルを閉じて再度開きなおしてtest1を実行してみてください

**注意点**

 Microsoft.PowerShell_profile.ps1はユーザー毎に異なります。システム全体で共通の設定を行いたい場合は、「$PROFILE」を「$PROFILE.AllUsersCurrentHost」に読み返して試してください。
$PROFILE → $PROFILE.AllUsersCurrentHost



#PowerShell #独自コマンド #コマンドレット #プログラミング学習 #プロファイル #$PROFILE


この記事が気に入ったらサポートをしてみませんか?