Sdílet prostřednictvím


O profilech

Krátký popis

Popisuje, jak vytvořit a používat profil PowerShellu.

Dlouhý popis

Můžete vytvořit profil PowerShellu pro přizpůsobení prostředí a přidání prvků specifických pro relaci do každé relace PowerShellu, kterou spustíte.

Profil PowerShellu je skript, který se spustí při spuštění PowerShellu. Profil můžete použít jako přihlašovací skript k přizpůsobení prostředí. Můžete přidávat příkazy, aliasy, funkce, proměnné, moduly, moduly a jednotky PowerShellu. Do svého profilu můžete také přidat další prvky specifické pro relaci, aby byly dostupné v každé relaci, aniž byste je museli importovat nebo znovu vytvářet.

PowerShell podporuje několik profilů pro uživatele a hostitelské programy. Nevytvoří však profily za vás. Toto téma popisuje profily a popisuje, jak vytvářet a udržovat profily v počítači.

Vysvětluje, jak pomocí parametru NoProfile konzoly PowerShellu (PowerShell.exe) spustit PowerShell bez profilů. A vysvětluje vliv zásad spouštění PowerShellu na profily.

Soubory profilu

PowerShell podporuje několik souborů profilu. Hostitelské programy PowerShellu také můžou podporovat vlastní profily specifické pro hostitele.

Například konzola PowerShellu podporuje následující základní soubory profilu. Profily jsou uvedeny v pořadí podle priority. První profil má nejvyšší prioritu.

Description Cesta
Všichni uživatelé, všichni hostitelé $PSHOME\Profile.ps1
Všichni uživatelé, aktuální hostitel $PSHOME\Microsoft.PowerShell_profile.ps1
Aktuální uživatel, všichni hostitelé $Home\[Můj ]Documents\WindowsPowerShell\Profile.ps1
Aktuální uživatel, Aktuální hostitel $Home\[My ]Documents\WindowsPowerShell\
Microsoft.PowerShell_profile.ps1

Cesty k profilu zahrnují následující proměnné:

  • Proměnná $PSHOME , která ukládá instalační adresář pro PowerShell.
  • Proměnná $Home , která ukládá domovský adresář aktuálního uživatele.

Kromě toho můžou své vlastní profily podporovat i jiné programy, které hostují PowerShell. Například integrované skriptovací prostředí PowerShellu (ISE) podporuje následující profily specifické pro hostitele.

Description Cesta
Všichni uživatelé, Aktuální hostitel $PSHOME\Microsoft.PowerShellISE_profile.ps1
Aktuální uživatel, Aktuální hostitel $Home\[My ]Documents\WindowsPowerShell\
Microsoft.PowerShellISE_profile.ps1

V nápovědě PowerShellu je profil CurrentUser, Current Host nejčastěji označovaný jako váš profil PowerShellu.

Proměnná $PROFILE

Automatická $PROFILE proměnná ukládá cesty k profilům PowerShellu, které jsou k dispozici v aktuální relaci.

Pokud chcete zobrazit cestu k profilu, zobrazte hodnotu $PROFILE proměnné. Proměnnou $PROFILE v příkazu můžete také použít k reprezentaci cesty.

Proměnná $PROFILE ukládá cestu k profilu Aktuální uživatel, aktuální hostitel. Ostatní profily jsou uloženy ve vlastnostech poznámky $PROFILE proměnné.

Proměnná $PROFILE má například následující hodnoty v konzole Windows PowerShell.

Popis Název
Aktuální uživatel, aktuální hostitel $PROFILE
Aktuální uživatel, aktuální hostitel $PROFILE.CurrentUserCurrentHost
Aktuální uživatel, všichni hostitelé $PROFILE.CurrentUserAllHosts
Všichni uživatelé, aktuální hostitel $PROFILE.AllUsersCurrentHost
Všichni uživatelé, všichni hostitelé $PROFILE.AllUsersAllHosts

Vzhledem k tomu, že se hodnoty $PROFILE proměnné mění pro každého uživatele a v každé hostitelské aplikaci, ujistěte se, že jste v každé hostitelské aplikaci PowerShellu, kterou používáte, zobrazili hodnoty proměnných profilu.

Pokud chcete zobrazit aktuální hodnoty $PROFILE proměnné, zadejte:

$PROFILE | Get-Member -Type NoteProperty

Proměnnou $PROFILE můžete použít v mnoha příkazech. Například následující příkaz otevře profil Aktuální uživatel, aktuální hostitel v Poznámkovém bloku:

notepad $PROFILE

Následující příkaz určuje, jestli byl v místním počítači vytvořen profil Všichni uživatelé, všichni hostitelé:

Test-Path -Path $PROFILE.AllUsersAllHosts

Vytvoření profilu

Pokud chcete vytvořit profil PowerShellu, použijte následující formát příkazu:

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

Pokud například chcete vytvořit profil pro aktuálního uživatele v aktuální hostitelské aplikaci PowerShellu, použijte následující příkaz:

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

V tomto příkazu příkaz If zabrání přepsání existujícího profilu. Nahraďte hodnotu zástupného symbolu <cesta k> profilu cestou k souboru profilu, který chcete vytvořit.

Poznámka

Pokud chcete vytvořit profily Všichni uživatelé ve Windows Vista a novějších verzích Windows, spusťte PowerShell s možností Spustit jako správce .

Jak upravit profil

Libovolný profil PowerShellu můžete otevřít v textovém editoru, například v Poznámkovém bloku.

Pokud chcete otevřít profil aktuálního uživatele v aktuální hostitelské aplikaci PowerShellu v Poznámkovém bloku, zadejte:

notepad $PROFILE

Pokud chcete otevřít jiné profily, zadejte název profilu. Pokud chcete například otevřít profil pro všechny uživatele všech hostitelských aplikací, zadejte:

notepad $PROFILE.AllUsersAllHosts

Pokud chcete změny použít, uložte soubor profilu a restartujte PowerShell.

Jak zvolit profil

Pokud používáte více hostitelských aplikací, vložte položky, které používáte ve všech hostitelských aplikacích, do svého $PROFILE.CurrentUserAllHosts profilu. Umístěte položky, které jsou specifické pro hostitelskou aplikaci, například příkaz, který nastavuje barvu pozadí pro hostitelskou aplikaci, do profilu, který je specifický pro danou hostitelskou aplikaci.

Pokud jste správce, který upravuje PowerShell pro mnoho uživatelů, postupujte podle těchto pokynů:

  • Uložení běžných položek v $PROFILE.AllUsersAllHosts profilu
  • Ukládání položek specifických pro hostitelskou aplikaci v $PROFILE.AllUsersCurrentHost profilech specifických pro danou hostitelskou aplikaci
  • Ukládání položek pro konkrétní uživatele v profilech specifických pro uživatele

Nezapomeňte si prohlédnout dokumentaci k hostitelské aplikaci, kde najdete speciální implementaci profilů PowerShellu.

Jak používat profil

Mnoho položek, které vytvoříte v PowerShellu, a většina příkazů, které spustíte, ovlivňuje jenom aktuální relaci. Po ukončení relace se položky odstraní.

Mezi příkazy a položky specifické pro relaci patří proměnné, proměnné předvoleb, aliasy, funkce, příkazy (s výjimkou Set-ExecutionPolicy) a moduly PowerShellu, které přidáte do relace.

Pokud chcete tyto položky uložit a zpřístupnit je ve všech budoucích relacích, přidejte je do profilu PowerShellu.

Dalším běžným způsobem použití profilů je ukládání často používaných funkcí, aliasů a proměnných. Když uložíte položky v profilu, můžete je použít v libovolné příslušné relaci, aniž byste je znovu vytvořili.

Jak vytvořit profil

Když otevřete soubor profilu, je prázdný. Můžete ho ale vyplnit proměnnými, aliasy a příkazy, které často používáte.

Tady je několik návrhů, které vám pomůžou začít.

Přidání příkazů, které usnadňují otevření profilu

To je užitečné zejména v případě, že používáte jiný profil než profil Aktuální uživatel, aktuální hostitel. Přidejte například následující příkaz:

function Pro {notepad $PROFILE.CurrentUserAllHosts}

Přidání funkce, která vypíše aliasy pro libovolnou rutinu

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

Přizpůsobení konzole

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

Přidání přizpůsobeného příkazového řádku PowerShellu

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

Další informace o příkazovém řádku PowerShellu najdete v tématu about_Prompts.

Parametr NoProfile

Pokud chcete spustit PowerShell bez profilů, použijte parametr NoProfilePowerShell.exe, program, který spouští PowerShell.

Začněte tím, že otevřete program, který může spustit PowerShell, například Cmd.exe nebo samotný PowerShell. Můžete také použít dialogové okno Spustit ve Windows.

Zadejte:

PowerShell -NoProfile

Úplný seznam parametrů PowerShell.exe zobrazíte zadáním:

PowerShell -?

Profily a zásady spouštění

Zásady spouštění PowerShellu částečně určují, jestli můžete spouštět skripty a načítat konfigurační soubory, včetně profilů. Výchozí je zásada omezeného spouštění. Zabrání spuštění všech skriptů, včetně profilů. Pokud použijete zásadu s omezeným přístupem, profil se nespustí a jeho obsah se nepoužije.

Příkaz Set-ExecutionPolicy nastaví a změní zásady spouštění. Je to jeden z mála příkazů, který se používá ve všech relacích PowerShellu, protože hodnota je uložená v registru. Nemusíte ho nastavovat při otevření konzoly a nemusíte ukládat Set-ExecutionPolicy příkaz do svého profilu.

Profily a vzdálené relace

Profily PowerShellu se ve vzdálených relacích nespouštějí automaticky, takže příkazy, které profily přidají, se ve vzdálené relaci nenachází. Kromě toho $PROFILE se automatická proměnná ve vzdálených relacích nenaplní.

Pokud chcete spustit profil v relaci, použijte rutinu Invoke-Command .

Například následující příkaz spustí profil Aktuální uživatel, aktuální hostitel z místního počítače v relaci v $snástroji .

Invoke-Command -Session $s -FilePath $PROFILE

Následující příkaz spustí profil Aktuální uživatel, aktuální hostitel ze vzdáleného počítače v relaci v $snástroji . Vzhledem k tomu, že $PROFILE proměnná není naplněna, použije příkaz explicitní cestu k profilu. Operátor dot sourcing používáme k tomu, aby se profil spustil v aktuálním oboru na vzdáleném počítači, a ne ve vlastním oboru.

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

Po spuštění tohoto příkazu jsou příkazy, které profil přidá do relace, k dispozici v nástroji $s.

Viz také

about_Automatic_Variables

about_Functions

about_Prompts

about_Execution_Policies

about_Signing

about_Remote

about_Scopes

Set-ExecutionPolicy