alias
Powershell の現在のセッションを閉じた後も期限切れにならないを作成したいのですcmdlet
が、次のエイリアスがあるとします。
C:\Users\Aymen> New-Alias Goto Set-Location
これによりGoto
エイリアスは完璧に作成されますが、現在のセッションを閉じた後もそれを使用したいのですが、どうすれば実現できますか。
注記:
PowerShell ヘルプ システムでは、作成したエイリアスをエクスポートして、次回新しいセッションを開いたときにインポートできると示されていますが、実際にはそれは私が探しているものではありません。異なるセッションでエイリアスを作成した後、それを保持するための直接的で明確な方法はありますか。
ベストアンサー1
更新日 - 2021年1月
PowerShellを起動するたびに実行されるPowerShellコードをファイルに保存することができますprofile.ps1
。少なくとも6つの異なるパスどのユーザーが実行する必要があるかに応じて、コードを保存する場所。ここでは、「すべてのユーザー」パスと「自分のユーザーのみ」パスの 2 つだけを検討します (その他のオプションについては、前のリンクを参照してください)。
質問に答えるには、profile.ps1
実行したいコードを含むファイルを作成するだけです。つまり、次のようになります。
New-Alias Goto Set-Location
適切なパスに保存します。
"$Home\Documents"
(通常はC:\Users\<yourname>\Documents
): ユーザーのみがコードを実行します。これが推奨される場所です。PowerShellで実行すると、プロファイルの場所をすばやく見つけることができます。echo $profile
$PsHome
(C:\Windows\System32\WindowsPowerShell\v1.0
):すべてのユーザーがこのコードを実行します
重要: 変更を適用するには、PowerShell インスタンスを再起動する必要があることに注意してください。
チップ
両方のパスに
profile.ps1
ファイルが含まれている場合、すべてのユーザーのファイルが最初に実行され、次にユーザー固有のファイルが実行されました。つまり、重複または競合が発生した場合、ユーザー固有のコマンドによって変数が上書きされます。すべてのユーザーに実行を拡張する必要がない場合は、常にユーザー固有のプロファイルにコードを配置します。他のユーザーのスペースを汚染しないため、この方が安全です (通常、これは望ましくありません)。
もう 1 つの利点は、ユーザー スペースにファイルを追加するのに管理者権限が必要ないことです (C:\Windows\System32 内のファイルの場合は必要です)。すべてのユーザーに対してプロファイル コードを実行する必要がある場合は、PowerShell の 32 ビット インスタンスと 64 ビット インスタンスではパスが異なることに注意してください。プロファイル コードを常に
$PsHome
実行する場合は、両方の環境を考慮する必要があります。パスは次のとおりです。
C:\Windows\System32\WindowsPowerShell\v1.0
64ビット環境用C:\Windows\SysWow64\WindowsPowerShell\v1.0
32ビット版の場合(フォルダの命名は直感に反しますが、あたりです)。