共用方式為


about_Profiles

簡短描述

描述如何建立和使用 PowerShell 配置檔。

完整描述

您可以建立 PowerShell 設定檔來自訂您的環境,並將工作階段特定項目新增至您啟動的每一個 PowerShell 工作階段。

PowerShell 設定檔是在 PowerShell 啟動時執行的指令碼。 您可以使用設定檔作為登入文稿來自定義環境。 您可以新增命令、別名、函式、變數、嵌入式管理單元、模組和 PowerShell 磁碟驅動器。 您也可以將其他會話特定元素新增至配置檔,以便在每個會話中使用它們,而不需要匯入或重新建立它們。

PowerShell 支援數個使用者和主機程式的配置檔。 不過,它不會為您建立配置檔。 本主題描述配置檔,並說明如何在您的計算機上建立和維護配置檔。

它說明如何使用PowerShell控制台的 NoProfile 參數 (PowerShell.exe) 來啟動 PowerShell,而不需要任何設定檔。 而且,它會說明 PowerShell 執行原則對配置文件的影響。

配置檔案

PowerShell 支援數個設定檔。 此外,PowerShell 主機程式也可以支援自己的主機特定配置檔。

例如,PowerShell 控制台支援下列基本配置檔。 配置檔會依優先順序列出。 第一個配置檔的優先順序最高。

描述 路徑
所有使用者、所有主機 Windows - $PSHOME\Profile.ps1
Linux - /usr/local/microsoft/powershell/7/profile.ps1
macOS - /usr/local/microsoft/powershell/7/profile.ps1
所有使用者、目前主機 Windows - $PSHOME\Microsoft.PowerShell_profile.ps1
Linux - /usr/local/microsoft/powershell/7/Microsoft.Powershell_profile.ps1
macOS - /usr/local/microsoft/powershell/7/Microsoft.Powershell_profile.ps1
目前使用者、所有主機 Windows - $Home\[我的 ]Documents\PowerShell\Profile.ps1
Linux - ~/.config/powershell/profile.ps1
macOS - ~/.config/powershell/profile.ps1
目前使用者、目前主機 Windows - $Home\[我的 ]Documents\PowerShell\Microsoft.PowerShell_profile.ps1
Linux - ~/.config/powershell/Microsoft.Powershell_profile.ps1
macOS - ~/.config/powershell/Microsoft.Powershell_profile.ps1

設定檔案路徑包含下列變數:

  • 變數 $PSHOME ,它會儲存 PowerShell 的安裝目錄
  • 變數 $Home ,儲存目前使用者的主目錄

此外,裝載 PowerShell 的其他程式可以支援自己的配置檔。 例如,Visual Studio Code 支援下列主機特定配置檔。

描述 路徑
所有使用者、目前主機 $PSHOME\Microsoft.VSCode_profile.ps1
目前使用者、目前主機 $Home\[我的 ]Documents\PowerShell\
Microsoft.VSCode_profile.ps1

在 PowerShell 說明中,“CurrentUser, Current Host” 配置檔是最常稱為「PowerShell 配置檔」的配置檔。

注意

在 Windows 中,[檔] 資料夾的位置可以透過資料夾重新導向或 OneDrive 來變更。 不建議將 Documents 資料夾重新導向至網路共用,或將其包含在 OneDrive 中。 重新導向資料夾可能會導致配置檔文本失敗,而且模組無法載入。

$PROFILE變數

自動 $PROFILE 變數會儲存目前會話中可用的PowerShell配置檔路徑。

若要檢視配置檔路徑,請顯示變數的值 $PROFILE 。 您也可以在命令中使用 $PROFILE 變數來表示路徑。

變數 $PROFILE 會儲存「目前使用者」、「目前主機」配置檔的路徑。 其他配置檔會儲存在變數的 $PROFILE 附註屬性中。

例如,變數$PROFILE在 Windows PowerShell 控制台中有下列值。

Description 名稱
目前使用者、目前主機 $PROFILE
目前使用者、目前主機 $PROFILE.CurrentUserCurrentHost
目前使用者、所有主機 $PROFILE.CurrentUserAllHosts
所有使用者、目前主機 $PROFILE.AllUsersCurrentHost
所有使用者、所有主機 $PROFILE.AllUsersAllHosts

因為每個使用者和每個主應用程式中的 $PROFILE 變數值都會變更,所以請確定您在您使用的每個 PowerShell 主機應用程式中顯示設定檔變數的值。

若要查看變數的 $PROFILE 目前值,請輸入:

$PROFILE | Get-Member -Type NoteProperty

您可以在許多命令中使用 $PROFILE 變數。 例如,下列命令會在 [記事本] 中開啟「目前使用者」、「目前主機」配置檔:

notepad $PROFILE

下列命令會決定是否已在本機電腦上建立「所有使用者、所有主機」配置檔:

Test-Path -Path $PROFILE.AllUsersAllHosts

如何建立配置檔

若要建立 PowerShell 設定檔,請使用下列命令格式:

if (!(Test-Path -Path <profile-name>)) {
  New-Item -ItemType File -Path <profile-name> -Force
}

例如,若要在目前的 PowerShell 主應用程式中建立目前使用者的設定檔,請使用下列命令:

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

在此命令中 If ,語句會防止您覆寫現有的配置檔。 將配置檔路徑>佔位元的值<取代為您想要建立之配置檔案的路徑。

注意

若要在 Windows Vista 和更新版本的 Windows 中建立「所有使用者」配置檔,請使用 [ 以系統管理員身分執行 ] 選項啟動 PowerShell。

如何編輯配置檔

您可以在文字編輯器中開啟任何 PowerShell 配置檔,例如 [記事本]。

若要在記事本的目前 PowerShell 主應用程式中開啟目前使用者的設定檔,請輸入:

notepad $PROFILE

若要開啟其他設定檔,請指定設定檔名稱。 例如,若要開啟所有主應用程式所有使用者的設定檔,請輸入:

notepad $PROFILE.AllUsersAllHosts

若要套用變更,請儲存配置檔案,然後重新啟動PowerShell。

如何選擇配置檔

如果您使用多個主應用程式,請將您在所有主應用程式中使用的專案放入設定檔 $PROFILE.CurrentUserAllHosts 中。 將特定專案放在主應用程式的特定配置檔中,例如設定主應用程式背景色彩的命令,放在該主應用程式的配置檔中。

如果您是為許多使用者自定義 PowerShell 的系統管理員,請遵循下列指導方針:

  • 將一般專案儲存在配置檔中$PROFILE.AllUsersAllHosts
  • 將專屬於主應用程式的專案儲存在主機應用程式專屬的配置檔中$PROFILE.AllUsersCurrentHost
  • 將特定使用者的專案儲存在使用者特定配置檔中

請務必檢查主機應用程式檔,以瞭解PowerShell配置檔的任何特殊實作。

如何使用配置檔

您在 PowerShell 中建立的許多專案,以及您執行的大部分命令只會影響目前的作業階段。 當您結束工作階段時,會刪除專案。

會話特定的命令和專案包括變數、喜好設定變數、別名、函式、命令 (,但 Set-ExecutionPolicy) ,以及您新增至會話的 PowerShell 模組除外。

若要儲存這些專案,並使其可在所有未來的會話中使用,請將這些專案新增至 PowerShell 配置檔。

配置檔的另一個常見用途是儲存常用函式、別名和變數。 當您將專案儲存在配置檔中時,可以在任何適用的會話中使用這些專案,而不需重新建立這些專案。

如何啟動配置檔

當您開啟配置檔時,檔案會是空白的。 不過,您可以使用您經常使用的變數、別名和命令來填入它。

以下是協助您開始使用的一些建議。

新增可讓您輕鬆地開啟配置檔的命令

如果您使用「目前使用者、目前主機」配置檔以外的配置檔,這特別有用。 例如,新增下列命令:

function Pro {notepad $PROFILE.CurrentUserAllHosts}

新增會列出任何 Cmdlet 別名的函式

function Get-CmdletAlias ($cmdletname) {
  Get-Alias |
    Where-Object -FilterScript {$_.Definition -like "$cmdletname"} |
      Format-Table -Property Definition, Name -AutoSize
}

自訂您的主控台

function Color-Console {
  $Host.ui.rawui.backgroundcolor = "white"
  $Host.ui.rawui.foregroundcolor = "black"
  $hosttime = (Get-ChildItem -Path $PSHOME\PowerShell.exe).CreationTime
  $hostversion="$($Host.Version.Major)`.$($Host.Version.Minor)"
  $Host.UI.RawUI.WindowTitle = "PowerShell $hostversion ($hosttime)"
  Clear-Host
}
Color-Console

新增自定義的 PowerShell 提示字元

function Prompt
{
$env:COMPUTERNAME + "\" + (Get-Location) + "> "
}

如需 PowerShell 提示字元的詳細資訊,請參閱 about_Prompts

NoProfile 參數

若要在沒有配置文件的情況下啟動 PowerShell,請使用 PowerShell.exeNoProfile 參數,這是啟動 PowerShell 的程式。

若要開始,請開啟可啟動PowerShell的程式,例如 Cmd.exe 或PowerShell本身。 您也可以在 Windows 中使用 [執行] 對話框。

輸入:

PowerShell -NoProfile

如需 PowerShell.exe 參數的完整清單,請輸入:

PowerShell -?

配置檔和執行原則

PowerShell 執行原則會決定您是否可以執行腳本和載入組態檔,包括配置檔。 [限制] 執行原則是預設值。 它可防止所有腳本執行,包括配置檔。 如果您使用「受限制」原則,則不會執行配置檔,而且不會套用其內容。

命令 Set-ExecutionPolicy 會設定並變更您的執行原則。 這是所有 PowerShell 工作階段中套用的幾個命令之一,因為值會儲存在登錄中。 您不需要在開啟主控台時加以設定,而且您不需要將命令儲存 Set-ExecutionPolicy 在設定檔中。

配置檔和遠端會話

PowerShell 設定檔不會在遠端工作階段中自動執行,因此設定檔新增的命令不會出現在遠端工作階段中。 此外, $PROFILE 不會在遠端會話中填入自動變數。

若要在會話中執行配置檔,請使用 Invoke-Command Cmdlet。

例如,下列命令會從中會話 $s中的本機計算機執行「目前使用者、目前主機」配置檔。

Invoke-Command -Session $s -FilePath $PROFILE

下列命令會從中會話 $s中的遠端電腦執行「目前使用者,目前主機」配置檔。 $PROFILE因為變數未填入,所以命令會使用配置檔的明確路徑。 我們使用點來源運算符,讓配置檔在遠端電腦上的目前範圍內執行,而不是在其本身的範圍內執行。

Invoke-Command -Session $s -ScriptBlock {
  . "$HOME\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"
}

執行此命令之後,配置檔新增至會話的命令可在 中使用 $s

另請參閱