そもそもPowerShellのプロファイルとは
PowerShellやWindows PowerShell(以下、PowerShellと総称)で、いつも同じオブジェクトを使うことがある。こうしたとき、Profile(プロファイル)と呼ばれる機能を使うことで、起動時に変数や関数などを登録できる。
Profileは、テキスト形式のスクリプトファイルであり、起動時に読み込まれて、その内容に従って、変数や関数、エイリアスなどの定義をする。
プロファイルには、ユーザー、ホストにより4種類の組み合わせがある。
ユーザーの種別は、すべてのユーザー用と現在のユーザー用の2つがある。またホストは、すべてのホスト用と現在のホスト用の2つがある。ホストの種別は、リモートシェル操作をするときに利用される。ローカルホストでは「すべてのホスト」と「現在のホスト」用が順に適用される。
リモートシェルの場合には、リモート側ホストにある「現在のホスト」用のプロファイルが使われる。まずは「すべて」のユーザー、「すべて」のホストのプロファイルが適用され、表の上から下の順に適用されていく。
企業などの組織内での利用では、これらを使い分ける必要があるが、個人利用では、「現在」のユーザー用、「現在」のホスト用だけを使えばよい。プロファイルのパスは、変数$PROFILEに登録されている。これは、PSCustomObjectであり、以下の表のような方法ですべてのプロファイルのパスを取得できる。
このとき、現在のユーザー、現在のホストの場合だけ、プロパティ名を省略して「$PROFILE」とすることができる。このため、このプロファイルを編集するような場合、
notepad.exe $PROFILE
などと指定することが可能だ。なお、プロファイルは標準状態ではファイルが作られていない。もしプロファイル内で日本語を使う場合、日本語版Windows上のWindows PowerShellではシフトJIS、PowerShellではUTF-8エンコードにする必要がある。日本語がコメントだけであれば、どちらもUTF-8エンコードでかまわないが、PowerShellの文字列として扱う場合には、ファイルのエンコードに注意する必要がある。
正しいパスにプロファイル(のファイル)が作成されると、PowerShellは起動時にこれを読み込む。ただし、「-noprofile」オプションが指定されているとプロファイルの読み込みはされない。
プロファイルから実行されるコマンドは、通常のスクリプトコマンドと違い、PowerShell自体の状態を変更する。このため、プロファイルを再読込したいときには、ピリオド1文字の「ドットソーシング演算子」(Dot Sourcing operator)を使い、以下のように実行する。
. $PROFILE
先頭にあるピリオドと「$PROFILE」の間にはスペースが必要である。これは、Unixのシェルにあるsourceコマンドが由来である。かつては、このコマンドは、ピリオド1文字のshの組み込みコマンドだった。WSLなどで使われているbashでは、sourceという別名がある。
PowerShellでは、スクリプトファイルは、子プロセスで実行されるため、実行が終了すると、実行環境に対する変更がすべて破棄されてしまう。しかし、ドットソーシング演算子を使うと、スクリプトファイルは、子プロセスではなく現在のプロセス内で実行される。これにより、変数やエイリアス、カレントディレクトリなどのコマンドの効果がスクリプトの終了後にも残った状態となる。

この連載の記事
-
第508回
PC
Scalable Vector Graphics(SVG)そもそも何なのか? -
第507回
PC
Windows 11の「開発者モード」とは何か? -
第506回
PC
Windows 11は早くも来秋登場の26H2プレビューの準備が始まる -
第505回
PC
結構変化しているWindows 11のエクスプローラーの基本設定を見直す -
第504回
PC
新しいOutlookとOutlook Classic、そろそろ古いOutlookとExchangeの組み合わせは引退の頃合いか -
第503回
PC
機能が増えたこともあり、寄せ集めから統合化に進むWindowsの便利ツール「PowerToys」 -
第502回
PC
Windows 11でBluetoothのオーディオ新規格「Bluetooth LE Audio」を試す -
第501回
PC
Windows 11 Ver.25H2での変更点、新機能を整理する -
第500回
PC
Windows 11 Ver.25H2が完成した -
第499回
PC
Windowsでの致命的だが回復可能なエラーに備える手段を2つ紹介 -
第498回
PC
Windows Terminalの安定版V1.23が公開 設定UIが改良される - この連載の一覧へ













