エイリアス、関数、および変数を追加しても、実際にはそれらを現在の Windows PowerShell セッションに追加しているだけです。セッションを終了するか、Windows PowerShell を閉じると、その変更は失われてしまいます。
これらの変更を保持するためには、Windows PowerShell プロファイルを作成し、エイリアス、関数、および変数をプロファイルに追加します。プロファイルは、Windows PowerShell を起動するたびに読み込まれます。
プロファイルが読み込まれるようにするには、Windows PowerShell 実行ポリシーで構成ファイルの読み込みが許可されている必要があります。実行ポリシーが適切に設定されていないと、プロファイルの読み込み処理が失敗し、Windows PowerShell はエラー メッセージを表示します。
プロファイルについて
Windows PowerShell では、4 つの異なるプロファイルを使用できます。以下に、読み込まれる順にプロファイルを示します。プロファイルは、該当箇所では具体性の高いものから順に優先されます。
-
%windir%\system32\WindowsPowerShell\v1.0\profile.ps1
このプロファイルは、すべてのユーザーおよびすべてのシェルに適用されます。
-
%windir%\system32\WindowsPowerShell\v1.0\ Microsoft.PowerShell_profile.ps1
このプロファイルは、すべてのユーザーに適用されますが、Microsoft.PowerShell シェルのみに適用されます。
-
%UserProfile%\My Documents\WindowsPowerShell\profile.ps1
このプロファイルは、現在のユーザーのみに適用されますが、すべてのシェルに作用します。
-
%UserProfile%\My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
このプロファイルは、現在のユーザーと Microsoft.PowerShell シェルのみに適用されます。
プロファイルの作成
変数、エイリアス、または関数を作成またはインポートしたり、Windows PowerShell スナップインを追加したりした場合、それらの要素は現在のセッションにのみ追加されます。セッションを終了するか、ウィンドウを閉じると、その変更は失われてしまいます。
いつも使用する変数、エイリアス、関数、およびコマンドを保存しておき、すべての Windows PowerShell セッションで使用可能にするには、それを Windows PowerShell プロファイルに追加します。
また、プロファイルを作成し、共有および配布することによって、大規模なエンタープライズ内で Windows PowerShell の表示に一貫性を持たせることができます。
Windows PowerShell プロファイルは自動的には作成されません。プロファイルを作成するには、指定された名前を持つテキスト ファイルを指定された場所に作成する必要があります。通常は、Windows PowerShell "ユーザー プロファイル" と呼ばれる、ユーザーとシェルに固有のプロファイルを使用します。このプロファイルの場所は、$profile 変数に格納されます。
Windows PowerShell プロファイルのパスを表示するには、次のように入力します。
$profile
システム上に Windows PowerShell プロファイルが作成されているかどうか判断するには、次のように入力します。
test-path $profile
プロファイルが存在する場合は True が返され、存在しない場合は False が返されます。
Windows PowerShell プロファイル ファイルを作成するには、次のように入力します。
new-item -path $profile -itemtype file -force
プロファイルをメモ帳で開くには、次のように入力します。
notepad $profile
他のプロファイル (たとえば、すべてのユーザーとすべてのシェルに適用されるプロファイル) を作成するには、次のように入力します。
new-item -path $env:windir\System32\WindowsPowerShell\v1.0\profile.ps1 -itemtype file -force
プロファイルが有効となるのは、正確なパスにファイルが置かれ、そのファイルに $profile 変数に格納されているファイル名が付けられている場合のみです。そのため、メモ帳でプロファイルを作成して保存する場合、またはシステムにプロファイルをコピーする場合は、$profile 変数で指定されているファイル名を使用して、正確なパスにファイルを保存してください。
メモ帳でプロファイルを作成する場合、PS1 ファイル名拡張子を保持するために、ファイル名を引用符で囲みます。次にその例を示します。
"Microsoft.PowerShell_profile.ps1"
引用符を付けないと、ファイル名拡張子 .txt がメモ帳によってファイルに追加されてしまい、その結果、Windows PowerShell がこのファイルを認識できなくなります。
プロファイルには、日常的に使用するエイリアス、関数、および変数を格納できます。常用しているテキスト エディターでユーザー プロファイルを開けるようにしておくと、非常に便利です。たとえば、メモ帳でユーザー プロファイルを開く pro という名前の関数を作成するには、次のコマンドを入力します。
function pro { notepad $profile }
正しく設計したプロファイルを使用すると、Windows PowerShell の操作やシステムの管理が容易になります。