• 30.11.2017
  • 7 minut čtení
    • S
    • . s
    • x
    • q

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í

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.