- 30.11.2017
- 7 minut čtení
-
- S
- . s
- x
- q
- Krátký popis
- Dlouhý popis
- The Profile Files
- Proměnná $PROFILE
- Jak vytvořit profil
- Jak upravit profil
- Jak vybrat profil
- Jak používat profil
- Jak spustit profil
- Přidejte příkazy, které usnadní otevření profilu
- Přidejte funkci, která vypíše aliasy pro libovolnou rutinu
- Přizpůsobte si konzolu
- Přidejte vlastní výzvu prostředí PowerShell
- Parametr NoProfile
- Profily a zásady provádění
- Profily a vzdálené relace
- Viz také
Krátký popis
Popisuje, jak vytvořit a používat profil PowerShell.
Dlouhý popis
Profil prostředí PowerShell můžete vytvořit, abyste si mohli přizpůsobit prostředí a přidat prvky specifické pro relaci do každé relace prostředí PowerShell, kterou spustíte.
Profil prostředí PowerShell je skript, který se spustí při spuštění prostředí PowerShell. Profil můžete použít jako přihlašovací skript k přizpůsobení prostředí. Můžete přidávatpříkazy, aliasy, funkce, proměnné, snap-iny, moduly a jednotky PowerShelldrive. Do profilu můžete také přidat další prvky specifické pro relaci, takže budou k dispozici v každé relaci, aniž byste je museli importovat nebo znovu vytvářet.
PowerShell podporuje několik profilů pro uživatele a hostitelské programy. Profily však nevytváří za vás. Toto téma popisuje profily a popisuje, jak vytvářet a udržovat profily v počítači.
Vysvětluje, jak použít parametr NoProfile konzoly PowerShell(PowerShell.exe) pro spuštění prostředí PowerShell bez profilů. And, it explainsthe effect of the PowerShell execution policy on profiles.
The Profile Files
PowerShell podporuje několik profilových souborů. Také hostitelské programy prostředí PowerShell mohou podporovat své vlastní profily specifické pro hostitele.
Například konzola prostředí PowerShell podporuje následující základníprofilové soubory. Profily jsou uvedeny v pořadí podle důležitosti. Prvníprofil má nejvyšší prioritu.
Popis | Cesta |
---|---|
Všichni uživatelé, všichni hostitelé | $PSHOME\Profil.ps1 |
Všichni uživatelé, aktuální hostitel | $PSHOME\Microsoft.PowerShell_profile.ps1 |
Aktuální uživatel, všichni hostitelé | $Home\Documents\PowerShell\Profile.ps1 |
Aktuální uživatel, Aktuální hostitel | $Home\Documents\PowerShell\ Microsoft.PowerShell_profile.ps1 |
Cesta k profilu obsahuje následující proměnné:
- Proměnná
$PSHOME
, která uchovává instalační adresář proPowerShell - Proměnná
$Home
, která uchovává domovský adresář aktuálního uživatele
Další programy, které hostují PowerShell, mohou navíc podporovat vlastníprofily. Například Visual Studio Code podporuje následující profily specifické pro hostitele.
Popis | Cesta |
---|---|
Všichni uživatelé, Aktuální hostitel | $PSHOME\Microsoft.VSCode_profile.ps1 |
Aktuální uživatel, Aktuální hostitel | $Home\Documents\PowerShell\ Microsoft.VSCode_profile.ps1 |
V nápovědě prostředí PowerShell je profil „CurrentUser, Current Host“ nejčastěji označován jako „váš profil prostředí PowerShell“.
Proměnná $PROFILE
Automatická proměnná $PROFILE
uchovává cesty k profilům prostředí PowerShell, které jsou k dispozici v aktuální relaci.
Pro zobrazení cesty k profilu zobrazte hodnotu proměnné $PROFILE
. Proměnnou $PROFILE
můžete také použít v příkazu, aby reprezentovala cestu.
Proměnná $PROFILE
uchovává cestu k profilu „Current User, Current Host“. Ostatní profily jsou uloženy ve vlastnostech poznámky proměnné $PROFILE
.
Proměnná $PROFILE
má například v konzole WindowsPowerShell následující hodnoty.
Popis | Jméno |
---|---|
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é, Current Host | $PROFILE.AllUsersCurrentHost |
All Users, All Hosts | $PROFILE.AllUsersAllHosts |
Protože se hodnoty proměnné $PROFILE
mění pro každého uživatele a v každé hostitelské aplikaci, zajistěte zobrazení hodnot profilových proměnnýchv každé používané hostitelské aplikaci PowerShell.
Chcete-li zobrazit aktuální hodnoty proměnné $PROFILE
, 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 zjistí, zda byl na místním počítači vytvořen profil „Všichni uživatelé, všichni hostitelé“:
Test-Path -Path $PROFILE.AllUsersAllHosts
Jak vytvořit profil
Pro vytvoření profilu v prostředí PowerShell použijte následující formát příkazu:
if (!(Test-Path -Path <profile-name>)) { New-Item -ItemType File -Path <profile-name> -Force}
Pro vytvoření profilu pro aktuálního uživatele v aktuální hostitelské aplikaciPowerShell použijte například následující příkaz:
if (!(Test-Path -Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force}
V tomto příkazu příkaz If
zabraňuje přepsání existujícíhoprofilu. Nahraďte hodnotu zástupného příkazu <profile-path> cestou k souboru profilu, který chcete vytvořit.
Poznámka
Pro vytvoření profilů „All Users“ ve Windows Vista a novějších verzíchWindows spusťte prostředí PowerShell s volbou Spustit jako správce.
Jak upravit profil
Kterýkoli profil prostředí PowerShell můžete otevřít v textovém editoru, například v Poznámkovém bloku.
Pro otevření profilu aktuálního uživatele v aktuální hostitelské aplikaci PowerShell v Poznámkovém bloku zadejte:
notepad $PROFILE
Pro otevření jiných profilů zadejte název profilu. Chcete-li například otevřít profil pro všechny uživatele všech hostitelských aplikací, zadejte:
notepad $PROFILE.AllUsersAllHosts
Chcete-li změny použít, uložte soubor s profilem a restartujte prostředí PowerShell.
Jak vybrat profil
Používáte-li více hostitelských aplikací, vložte položky, které používáte ve všech hostitelských aplikacích, do profilu $PROFILE.CurrentUserAllHosts
. Položky, které jsou specifické pro hostitelskou aplikaci, například příkaz, který nastavuje barvu pozadí hostitelské aplikace, vložte do profilu, který je specifický pro tuto hostitelskou aplikaci.
Jste-li správce, který přizpůsobuje prostředí PowerShell pro mnohouživatelů, postupujte podle těchto pokynů:
- Běžné položky ukládejte do profilu
$PROFILE.AllUsersAllHosts
- Položky, které jsou specifické pro hostitelskou aplikaci, ukládejte do profilů
$PROFILE.AllUsersCurrentHost
, které jsou specifické pro hostitelskou aplikaci - Položky pro konkrétní uživatele ukládejte do profilů specifických pro uživatele
Nezapomeňte se podívat do dokumentace hostitelské aplikace na všechny speciálníimplementace profilů PowerShell.
Jak používat profil
Mnoho položek vytvořených v prostředí PowerShell a většina spuštěných příkazů ovlivňuje pouze aktuální relaci. Po ukončení relace se tyto položky odstraní.
Mezi příkazy a položky specifické pro relaci patří proměnné, předvolby, aliasy, funkce, příkazy (kroměSet-ExecutionPolicy) a moduly prostředí PowerShell, které přidáte do relace.
Chcete-li tyto položky uložit a zpřístupnit je ve všech budoucích relacích, přidejte je do profilu prostředí PowerShell.
Dalším častým použitím profilů je uložení často používaných funkcí, aliasů a proměnných. Když položky uložíte do profilu, můžete je použít v každé použitelné relaci, aniž byste je museli znovu vytvářet.
Jak spustit profil
Při otevření souboru profilu je prázdný. Můžete jej však naplnitproměnnými, aliasy a příkazy, které často používáte.
Tady je několik návrhů, které vám pomohou začít.
Přidejte příkazy, které usnadní otevření profilu
To je zvláště užitečné, pokud 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řidejte funkci, 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ůsobte si konzolu
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řidejte vlastní výzvu prostředí PowerShell
function Prompt{$env:COMPUTERNAME + "\" + (Get-Location) + "> "}
Další informace o výzvě prostředí PowerShell najdete v částiO_Výzvách.
Parametr NoProfile
Chcete-li spustit PowerShell bez profilů, použijte parametr NoProfile programuPowerShell.exe, který spouští PowerShell.
Pro zahájení otevřete program, který může spustit PowerShell, například Cmd.exe nebo samotnýPowerShell. Můžete také použít dialogové okno Spustit v systému Windows.
Typ:
PowerShell -NoProfile
Pro úplný seznam parametrů PowerShell.exe zadejte:
PowerShell -?
Profily a zásady provádění
Zásady provádění prostředí PowerShell částečně určují, zda můžete spouštět skripty a načítat konfigurační soubory včetně profilů. Ve výchozím nastavení je nastavena zásada omezeného provádění. Zabraňuje spuštění všech skriptů,včetně profilů. Pokud použijete politiku „Restricted“, profil se nespustí a jeho obsah se nepoužije.
Příkaz Set-ExecutionPolicy
nastavuje a mění politiku provádění. Je to jeden z mála příkazů, který se uplatňuje ve všech relacích prostředí PowerShell, protože hodnota je uložena v registru. Nemusíte jej nastavovat při otevřeníkonzole a příkaz Set-ExecutionPolicy
nemusíte ukládat do svéhoprofilu.
Profily a vzdálené relace
Profily prostředí PowerShell nejsou ve vzdálených relacích spouštěny automaticky, takže příkazy, které profily přidávají, nejsou ve vzdálené relaci přítomny. Kromě toho není ve vzdálených relacích vyplněna automatická proměnná $PROFILE
.
Pro spuštění profilu v relaci použijte příkaz Invoke-Commandcmdlet.
Například následující příkaz spustí profil „Current user, Current Host „z místního počítače v relaci v $s
.
Invoke-Command -Session $s -FilePath $PROFILE
Následující příkaz spustí profil „Current user, Current Host“ ze vzdáleného počítače v relaci v $s
. Protože proměnná $PROFILE
není vyplněna, příkaz použije explicitní cestu k profilu. Operátor dotsourcing používáme proto, 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ává do relace, dostupné v $s
.
Viz také
o_automatických_proměnných
o_funkcích
o_předvolbách
o_politikách_vykonávání
o_podpisování
o_vzdálených
o_oblastech
o_rozsahu
Nastavit_politiku_vykonávání
.