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 $s
ná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 $s
ná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
.