1. ホーム
  2. powershell

[解決済み】PowerShell Aliasesを永久に作成する方法

2022-04-04 03:49:44

質問

を作成したいのですが aliascmdlet このエイリアスは、Powershellの現在のセッションを閉じても有効期限が切れないもので、例えば次のようにします。

C:\Users\Aymen> New-Alias Goto Set-Location

これで完璧に Goto しかし、私は現在のセッションを閉じた後でもそのエイリアスを使用したいのですが、どのようにすればそれを実現できますか?

PowerShellのヘルプを見ると、作成したエイリアスをエクスポートして、次に新しいセッションを開いたときにインポートできるようですが、実はこれは私が探しているものではありません。

解決方法は?

UPDATED - 2021年1月

に格納することが可能です。 profile.ps1 ファイルに、PowerShell の起動時に毎回実行される PowerShell コードが含まれています。少なくとも 6種類のパス どのユーザーがコードを実行するかによって、コードを格納する場所が異なります。ここでは、そのうちの2つだけを考えます:"すべてのユーザーと"あなたのユーザーのみのパスです(さらなるオプションについては、前のリンクを参照してください)。

ご質問の答えですが、単に profile.ps1 ファイルには、実行させたいコードが含まれている、ということです。

New-Alias Goto Set-Location

を作成し、適切なパスに保存してください。

  • "$Home\Documents" (通常 C:\Users\<yourname>\Documents ): あなたのユーザーのみがコードを実行します。これは推奨される場所です を実行することで、プロファイルの場所をすぐに見つけることができます。 echo $profile PowerShellで
  • $PsHome ( C:\Windows\System32\WindowsPowerShell\v1.0 ): すべてのユーザーがこのコードを実行します

重要なこと 変更を適用するには、PowerShell インスタンスを再起動する必要があることを忘れないでください。

TIPS

  • 両方のパスに profile.ps1 ファイルでは、全ユーザーのものが最初に実行され、次にユーザー固有のものが実行されます。つまり、重複や衝突があった場合、ユーザー固有のコマンドが変数を上書きします。

  • すべてのユーザーに実行を拡張する必要がない場合は、常にユーザー固有のプロファイルにコードを配置します。これは、他のユーザーのスペースを汚染しないので安全です(通常、そんなことはしたくありません)。

    また、ユーザースペースにファイルを追加する際に管理者権限が必要ないのも利点です(C:⾳WindowsSystem32にあるものは管理者権限が必要)。

  • 本当にすべてのユーザーに対してプロファイルコードを実行する必要がある場合は $PsHome のパスは、PowerShell の 32bit インスタンスと 64bit インスタンスで異なります。という場合は、両方の環境を考慮する必要があります。 常に プロファイルコードを実行します。

    パスは

    • C:\Windows\System32\WindowsPowerShell\v1.0 64bit環境用
    • C:\Windows\SysWow64\WindowsPowerShell\v1.0 を 32bit 用に変更しました。(フォルダ名が直感的でないことは承知ですが 正しい ).