Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Profil PowerShellu je skript, který se spustí při spuštění PowerShellu. Profil můžete použít k přizpůsobení prostředí. Můžete:
- Přidání aliasů, funkcí a proměnných
- Načtení modulů
- Vytvoření diskových jednotek PowerShell
- Spuštění libovolných příkazů
- Změna nastavení předvoleb
Umístěním těchto nastavení do profilu zajistíte, že budou k dispozici při každém spuštění PowerShellu ve vašem systému.
Poznámka:
Aby bylo možné spouštět skripty ve Windows, musí být zásady spouštění PowerShellu nastaveny na RemoteSigned
minimálně. Zásady spouštění se nevztahují na macOS a Linux. Další informace najdete v části about_Execution_Policy.
Proměnná $PROFILE
Automatická proměnná $PROFILE
ukládá cesty k profilům PowerShellu, které jsou k dispozici v aktuální relaci.
K dispozici jsou čtyři možné profily pro podporu různých oborů uživatelů a různých hostitelů PowerShellu. Plně kvalifikované cesty pro každý skript profilu jsou uloženy v následujících vlastnostech členů $PROFILE
.
- AllUsersAllHosts
- AllUsersCurrentHost
- CurrentUserAllHosts
- AktuálníUživatelAktuálníHostitel
Můžete vytvořit skripty profilu, které běží pro všechny uživatele nebo pouze pro jednoho uživatele, CurrentUser. profily aktuálního uživatele jsou uloženy v domovské složce uživatele. Umístění se liší v závislosti na operačním systému a verzi PowerShellu, kterou používáte.
Ve výchozím nastavení odkazování na proměnnou $PROFILE
vrací cestu k profilu "Aktuální uživatel, Aktuální hostitel". Cesta k ostatním profilům je přístupná prostřednictvím vlastností proměnné $PROFILE
.
Následující příkaz zobrazí výchozí umístění profilu ve Windows.
PS> $PROFILE | Select-Object *
AllUsersAllHosts : C:\Program Files\PowerShell\7\profile.ps1
AllUsersCurrentHost : C:\Program Files\PowerShell\7\Microsoft.PowerShell_profile.ps1
CurrentUserAllHosts : C:\Users\username\Documents\PowerShell\profile.ps1
CurrentUserCurrentHost : C:\Users\username\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
Length : 69
Následující příkaz zobrazí výchozí umístění profilů v Ubuntu Linuxu.
$PROFILE | Select-Object *
AllUsersAllHosts : /opt/microsoft/powershell/7/profile.ps1
AllUsersCurrentHost : /opt/microsoft/powershell/7/Microsoft.PowerShell_profile.ps1
CurrentUserAllHosts : /home/username/.config/powershell/profile.ps1
CurrentUserCurrentHost : /home/username/.config/powershell/Microsoft.PowerShell_profile.ps1
Length : 67
Existují také profily, které se spouštějí pro všechny hostitele PowerShellu nebo konkrétní hostitele. Skript profilu pro každého hostitele PowerShellu má jedinečný název pro daného hostitele. Například název souboru standardního hostitele konzoly ve Windows nebo výchozí terminálová aplikace na jiných platformách je Microsoft.PowerShell_profile.ps1
. Pro Visual Studio Code (VS Code) je název souboru Microsoft.VSCode_profile.ps1
.
Další informace najdete v tématu about_Profiles.
Vytvoření osobního profilu
Při první instalaci PowerShellu na systém neexistují soubory skriptu profilu ani adresáře, ke kterým patří. Následující příkaz vytvoří soubor skriptu profilu "Aktuální uživatel, Aktuální hostitel", pokud neexistuje.
if (!(Test-Path -Path $PROFILE)) {
New-Item -ItemType File -Path $PROFILE -Force
}
Parametr Force cmdletu New-Item
vytvoří potřebné složky, pokud neexistují.
Po vytvoření souboru skriptu můžete pomocí svého oblíbeného editoru přizpůsobit své shellové prostředí.
Přidání vlastních nastavení do profilu
Předchozí články mluvily o použití dokončení tabulátoru , prediktorů příkazů a aliasů . Tyto články ukázaly příkazy používané k načtení požadovaných modulů, vytváření vlastních completerů, definování klíčových vazeb a dalších nastavení. Jedná se o druhy přizpůsobení, které chcete mít k dispozici v každé interaktivní relaci PowerShellu. Skript profilu je místem pro tato nastavení.
Nejjednodušší způsob, jak upravit váš profilový skript, je otevřít soubor v oblíbeném editoru kódu. Například následující příkaz otevře profil v VS Code.
code $PROFILE
Můžete také použít notepad.exe
ve Windows, vi
v Linuxu nebo jiném textovém editoru.
Následující skript profilu obsahuje příklady pro řadu přizpůsobení uvedených v předchozích článcích. V libovolném z těchto nastavení můžete použít vlastní profil.
## Map PSDrives to other registry hives
if (!(Test-Path HKCR:)) {
$null = New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT
$null = New-PSDrive -Name HKU -PSProvider Registry -Root HKEY_USERS
}
## Customize the prompt
function prompt {
$identity = [Security.Principal.WindowsIdentity]::GetCurrent()
$principal = [Security.Principal.WindowsPrincipal] $identity
$adminRole = [Security.Principal.WindowsBuiltInRole]::Administrator
$prefix = if (Test-Path Variable:/PSDebugContext) { '[DBG]: ' } else { '' }
if ($principal.IsInRole($adminRole)) {
$prefix = "[ADMIN]:$prefix"
}
$body = 'PS ' + $PWD.path
$suffix = $(if ($NestedPromptLevel -ge 1) { '>>' }) + '> '
"${prefix}${body}${suffix}"
}
## Create $PSStyle if running on a version older than 7.2
## - Add other ANSI color definitions as needed
if ($PSVersionTable.PSVersion.ToString() -lt '7.2.0') {
# define escape char since "`e" may not be supported
$esc = [char]0x1b
$PSStyle = [pscustomobject]@{
Foreground = @{
Magenta = "${esc}[35m"
BrightYellow = "${esc}[93m"
}
Background = @{
BrightBlack = "${esc}[100m"
}
}
}
## Set PSReadLine options and keybindings
$PSROptions = @{
ContinuationPrompt = ' '
Colors = @{
Operator = $PSStyle.Foreground.Magenta
Parameter = $PSStyle.Foreground.Magenta
Selection = $PSStyle.Background.BrightBlack
InLinePrediction = $PSStyle.Foreground.BrightYellow + $PSStyle.Background.BrightBlack
}
}
Set-PSReadLineOption @PSROptions
Set-PSReadLineKeyHandler -Chord 'Ctrl+f' -Function ForwardWord
Set-PSReadLineKeyHandler -Chord 'Enter' -Function ValidateAndAcceptLine
## Add argument completer for the dotnet CLI tool
$scriptblock = {
param($wordToComplete, $commandAst, $cursorPosition)
dotnet complete --position $cursorPosition $commandAst.ToString() |
ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_)
}
}
Register-ArgumentCompleter -Native -CommandName dotnet -ScriptBlock $scriptblock
Tento skript profilu obsahuje příklady pro následující přizpůsobení:
- Přidá dva nové PSDrives pro ostatní podregistry kořenového registru.
- Vytvoří přizpůsobenou výzvu, která se změní, pokud používáte relaci s rozšířenými oprávněními.
- Nakonfiguruje PSReadLine a přidá vazbu klíče. Nastavení barev používá funkci $PSStyle k definování nastavení barvy ANSI.
- Přidá dokončování tabulátoru pro nástroj rozhraní příkazového řádku dotnet. Nástroj poskytuje parametry, které vám pomůžou vyřešit argumenty příkazového řádku. Blok skriptu pro Register-ArgumentCompleter používá tuto funkci k zadání dokončování tabulátoru.