PowerShellプロファイルとは?使い方を解説
PowerShell プロファイルは、 PowerShell の起動時に自動的に実行されるスクリプトファイル(.ps1)です。プロファイルに関数やエイリアスを定義しておくことで、起動時にそれらを自動的に利用できるようになります。ここでは PowerShell プロファイルの使い方について解説します。
PowerShellプロファイルの保存場所とファイル名
PowerShell プロファイルは、 PowerShell の起動時に自動的に実行されるスクリプトファイルです。テキストファイルなので、、普段利用しているテキストエディタで閲覧や編集することができます。
PowerShell プロファイルは対象となるホストやユーザーによって、最大 4 種類のプロファイルを作成できます。
・AllUsersAllHosts : すべてのユーザー、すべてのホスト ・AllUsersCurrentHost : すべてのユーザー、現在のホスト ・CurrentUserAllHosts : 現在のユーザー、すべてのホスト ・CurrentUserCurrentHost : 現在のユーザー、現在のホスト
※ ユーザーとは、Windows にサインインしているユーザーのことです。「現在のユーザー」は、自分がサインインしているときにのみ使用されるプロファイルを指し、「すべてのユーザー」は、その PC にサインインするすべてのユーザーで共通して使用されるプロファイルを指します。
※ ホストとは、PowerShell を実行しているアプリケーションのことです。例えば、PowerShell コンソールや VS Code の統合ターミナルなどが該当します。「現在のホスト」は特定のアプリで PowerShell を利用する場合に使用されるプロファイルであり、「すべてのホスト」はどのアプリから PowerShell を実行した場合でも共通して使用されるプロファイルを指します。
すべてのユーザーとすべてのホストで利用されるプロファイルや、現在のユーザーと現在のホストで利用されるプロファイルなどを作成できます。複数のプロファイルが存在する場合は上から順にファイルに記述されているスクリプトが実行され、後に実行されるプロファイルの内容が優先されます。
プロファイルの保存場所とファイル名
それぞれのプロファイルの保存場所とファイル名は次の通りです。(PowerShell 7 、 Windows 環境の場合です)。
・AllUsersAllHosts : $PSHOME\Profile.ps1 ・AllUsersCurrentHost : $PSHOME\Microsoft.PowerShell_profile.ps1 ・CurrentUserAllHosts : $HOME\Documents\PowerShell\Profile.ps1 ・CurrentUserCurrentHost : $HOME\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
※ 変数 $PSHOME には PowerShell がインストールされているディレクトリが保存されています。変数 $HOME には現在のユーザーのホームディレクトリが保存されています。
「現在のユーザー、現在のホスト」用のプロファイルの保存場所とファイル名は、変数 $PROFILE にも格納されています。
$PROFILE
実際に PowerShell 上で $PROFILE の値を確認してみると、次のように表示されます。
PS C:\code\powershell> $PROFILE C:\Users\xxxx\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
他のプロファイルの保存場所とファイル名についても、 変数 $PROFILE を使って次のように参照することができます。
・AllUsersAllHosts : $PROFILE.AllUsersAllHosts ・AllUsersCurrentHost : $PROFILE.AllUsersCurrentHost ・CurrentUserAllHosts : $PROFILE.CurrentUserAllHosts ・CurrentUserCurrentHost : $PROFILE.CurrentUserCurrentHost
すべてのプロファイルの保存場所とファイル名を確認するには、次のように実行してください。
$PROFILE | Select-Object *
それぞれのプロファイルの保存場所とファイル名が表示されます。
PS C:\code\powershell> $PROFILE | Select-Object *
AllUsersAllHosts : C:\Program Files\PowerShell\7\profile.ps1
AllUsersCurrentHost : C:\Program Files\PowerShell\7\Microsoft.PowerShell_
profile.ps1
CurrentUserAllHosts : C:\Users\xxxx\Documents\PowerShell\profile.ps1
CurrentUserCurrentHost : C:\Users\xxxx\Documents\PowerShell\Microsoft.Power
Shell_profile.ps1
Length : 68
プロファイルの作成と編集
PowerShell プロファイルはテキストファイルなので、テキストエディタで作成したあとで、先ほど確認した保存場所に、指定されたファイル名で保存してください。(すべてのユーザー向けのプロファイルを作成する場合は、管理者権限が必要となります)。
PowerShell からプロファイルを作成する場合は、 PowerShell を起動したあとで次のように実行してください。(「現在のユーザー、現在のホスト」用のプロファイルです)。
if (!(Test-Path -Path $PROFILE)) {
New-Item -ItemType File -Path $PROFILE -Force
}
※ Test-Path は、指定したパスにファイルが存在するかどうかを確認するコマンドレットです。
変数 $PROFILE が示すファイルが存在しない場合、 New-Item コマンドレットを使って、新規にファイルを作成します。
新しいプロファイルのファイルが作成されました。
次に VS Code やメモ帳など普段使用されているテキストエディタを使って PowerShell プロファイルを編集します。今回はメモ帳を使用します。次のように実行してください。
notepad $PROFILE
メモ帳が起動し、 PowerShell プロファイルの編集画面が表示されました。
PowerShell プロファイルではエイリアスを定義したり、関数を定義することができます。エイリアスはコマンドの別名を定義する機能で、関数は複数の処理をまとめて実行するための仕組みです。(詳しい解説は、それぞれのコマンドレットの解説記事を参照してください)。今回は例として次のようにエイリアスと関数を定義しました。
Set-Alias n1 notepad
function l1 {
Get-ChildItem -Force $args
}
編集が終わりましたら保存してください。文字コードは UTF-8 を使用してください。
プロファイルの読み込みと利用
PowerShell プロファイルは起動時に読み込まれます。開いている PowerShell コンソールがあれば一度閉じていただき、再度 PowerShell コンソールを起動してください。
なお PowerShell を再起動しなくても、次のコマンドを実行することでプロファイルを再読み込みできます。
. $PROFILE
PowerShell プロファイルに定義した関数を実行します。 l1 と入力して実行してください。関数が実行されて次のように表示されます。
今度は定義したエイリアスを実行します。 n1 と入力して実行してください。メモ帳が起動します。
このように PowerShell プロファイルにあらかじめエイリアスや関数を定義しておくことで、 PowerShell を起動するとすぐに利用できるようになり、 PowerShell の操作を効率化することができます。
-- --
PowerShell プロファイルの使い方について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。