1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PowerShellの$profileと.ps1ファイルの始め方

Posted at

PowerShell の $profile を読み込む方法と ゲストログインで .ps1 ファイルを読み込む方法

PowerShell の勉強を始めて、

ファンクションの作成だったり、Oh-My-Posh などで PowerShell をいい感じにしたいなって時、

profile 作成がまず初めの一歩ですよね。

便利なファンクションを記述したprofileを github や USBメモリなどに入れておけば、

どの Computer でも、 "強くてニューゲーム" のように、CLIでの作業がかなり楽になります。

もちろん筆者もvimrc などと一緒に保管してありますが、

時間をかけて少しずつ育てているので、ペットみたいに可愛く思えてきました。

以前から PowerShell のファンクション作成日記を数件書いているのですが、そもそものプロファイル作成方法については触れておらず、

記事を見て???となった人がいるかも知れないので投稿しておきます。

profile の作成

1. 通常の方法

まずここからですが、プロファイルがあるかどうかを検索します。

PowerShell
$profile

# 結果(ある場合はPATHが表示されます)
C:\Users\ユーザー名\Documents\PowerShell\Microsoft.PowerShell_profile.ps1

ここでプロファイルが無かった場合は、

一旦PowerShellを閉じて管理者として実行でPowerShellを開き、次のコマンドを実行します。(念のため存在するか確認しています)

PowerShell
if (!(Test-Path -Path $PROFILE)) {
  New-Item -ItemType File -Path $PROFILE -Force
}

プロファイルが作成されました。

これを開くには、

PowerShell
ii $profile

# VScode や vim などで開く場合
code $profile
vim $profile

これで profile が開くので、

プロファイル上に好きな設定やファンクションを作って保存しておくと、

PowerShellを開いた時、ファイルに記述した内容を読み込む事が出来る様になります。

追加で必要な設定は、以下です。

① 実行ポリシーの変更

PowerShell
# 実行ポリシー RemoteSigned(ローカル作成されたスクリプトは実行可能)に変更
Set-ExecutionPolicy RemoteSigned -Force

# 現在の実行ポリシーを確認
Get-ExecutionPolicy

# 結果
RemoteSigned

② PowerShell 起動時の設定

設定 → スタートアップ → ターミナルの起動時 → 既定のプロファイルでタブを開く に変更 → 保存 でOKです。

スタートアップ.png

では、試しに超簡単な(でも使う) function を作ってみます。

Microsoft.PowerShell_profile.ps1
function desk{
	Set-Location C:\Users\ユーザー名\Desktop\
    # ユーザー名 は個々のユーザー名
}

保存して再読み込みします。

PowerShell
. $profile

desk と入力すると、どのフォルダからでもデスクトップに移動出来る様になりました。

便利だ!と感じた人は、下の記事みたいなファンクションが作りたくなってくると思います。

2. 管理者権限の無いユーザーの場合

この様な場合は PowerShell 起動時にプロファイルの読み込む事は出来ませんが、

起動後にコマンドで読み込む事は出来ます。

ログインユーザーのみの一時設定なので、

PowerShell を起動する度に毎回コマンドの入力が必要になるのですが、

ファンクションを使用すると作業効率が上がるのでやる価値は大いにあります。

では方法、

プロファイルは通常のものではなく、別の ps1 ファイルを作成します。

(拡張子が .ps1 であればファイル名は何でもいいです)

PowerShell
# 例えばユーザーフォルダ(C:\Users\ユーザー名\)に作成
cd C:\Users\ユーザー名\
notepad func.ps1

開いたファイルを、エンコード:UTF-8(BOM付き)で保存します。

これで、PowerShellで読み込めるスクリプトファイルが作成出来ました。

あとはファイルにファンクションなどを記述して読み込みなのですが、

PowerShell 起動時に読み込めないので、コマンドで読み込みます。

ここが毎回必要なターンです。
面倒とは言いましたが、実はたったの2行です。

PowerShell
# 実行ポリシーを一時的に RemoteSigned へ変更する
Set-ExecutionPolicy RemoteSigned -Scope Process

# ps1 ファイルを読み込む
# . + スペース + ファイルパス
. C:\Users\ユーザー名\func.ps1

これで、プロファイルが使用出来る様になりましたね。

良いPowerShellライフを。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?