Profily prostředí PowerShell

V tomto kurzu se seznámíme s profily prostředí PowerShell a jejich použitím. Profily prostředí PowerShell vám pomohou přizpůsobit prostředí a přidat prvky pro každou relaci prostředí PowerShell, kterou spustíte. Profil prostředí PowerShell je skript, který se spustí pokaždé, když budeme spouštět prostředí PowerShell. Profil prostředí PowerShell můžete použít jako přihlašovací skript pro přizpůsobení prostředí. Pomocí profilu prostředí PowerShell můžete do evnironmetu přidávat příkazy, aliasy, funkce, proměnné, snap-iny, moduly, jednotky PSDrive a další prvky specifické pro danou relaci. Nebudete je muset importovat nebo znovu vytvářet při každém spuštění prostředí PowerShell. Budou načteny automaticky. Prostředí PowerShell podporuje několik profilů pro uživatele a hostitelské programy. Prostředí PowerShell za vás žádné profily nevytváří.

Pokud chcete mít příkazy, proměnné, proměnné předvoleb, aliasy, funkce, příkazy (kromě Set-ExecutionPolicy) a moduly prostředí PowerShell, které často používáte, specifické pro danou relaci, můžete pomocí profilů načíst všechny budoucí relace.

Soubory profilů

Konzola prostředí PowerShell podporuje následující profily:

  • $Home\Documents\PowerShell\Microsoft.PowerShell_profile.ps1 – Aktuální uživatel, aktuální hostitel
  • $Home\Documents\PowerShell\Profile.ps1 – Aktuální uživatel, všichni hostitelé
  • $PsHome\Microsoft.PowerShell_profile.ps1 – Všichni uživatelé, aktuální hostitel
  • $PsHome\Profile.ps1 – Všichni uživatelé, všichni hostitelé

Výše uvedené profily jsou uvedeny v pořadí důležitosti. První profil v seznamu má nejvyšší pořadí priority. Jak vidíte ve výše uvedených profilech, máme dvě proměnné. Proměnné $PSHome a $Home představují následující hodnoty:

  • $PSHome – Ukládá instalační adresář prostředí PowerShell
  • $Home – Ukládá domovský adresář aktuálního uživatele

Ostatní programy, které hostují prostředí PowerShell, mohou podporovat vlastní profily. Integrované skriptovací prostředí (ISE) prostředí PowerShell podporuje následující profily specifické pro hostitele:

  • $Home\Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1 – Aktuální uživatel, Aktuální hostitel
  • $PsHome\Microsoft.PowerShellISE_profile.ps1 – Všichni uživatelé, Aktuální hostitel

Podle společnosti Microsoft je v nápovědě prostředí PowerShell profil „CurrentUser, Current Host“ nejčastěji označován jako „váš profil prostředí PowerShell“.

Proměnná profilu

V prostředí PowerShell máme automatickou proměnnou s názvem $Profile. V proměnné $Profile jsou uloženy všechny cesty k profilům prostředí PowerShell, které jsou v aktuální relaci k dispozici. Zobrazením proměnné $Profile zjistíte cestu k profilu.

Proměnná $Profile uchovává cestu k profilu „Current User, Current Host“. Ostatní profily jsou uloženy v poznámce vlastnosti proměnné $Profile.

Pomocí vlastností proměnné můžete určit profil. V konzole prostředí Windows PowerShell máme v proměnné $Profile následující hodnoty.

  • $Profile – Aktuální uživatel, aktuální hostitel
  • $Profile.CurrentUserCurrentHost – Aktuální uživatel, aktuální hostitel
  • $Profile.CurrentUserAllHosts – Aktuální uživatel, všichni hostitelé
  • $Profile.AllUsersCurrentHost – Všichni uživatelé, aktuální hostitel
  • $Profile.AllUsersAllHosts – Všichni uživatelé, všichni hostitelé

Proměnnou $Profile můžete používat v příkazech.

Kód:

Test-Path -Path $PROFILETest-Path -Path $PROFILE.CurrentUserCurrentHostTest-Path -Path $PROFILE.CurrentUserAllHostsTest-Path -Path $PROFILE.AllUsersCurrentHostTest-Path -Path $PROFILE.AllUsersAllHosts

Výstup:

Výše uvedené příkazy testují, zda byl vytvořen zadaný profil. Jak vidíte, odpověď na všechny z nich je false. Jak jsme se již zmínili, profily se ve výchozím nastavení nevytvářejí. Budete je muset vytvořit.

Vytvořit profil

Pro vytvoření profilu musíte použít následující příkaz.

Kód:

New-Item -ItemType File -Path $profile -Force

Výše uvedený příkaz vytvoří profil pro „Aktuální uživatel, aktuální hostitel“.

Všimněte si, že výše uvedený příkaz nahradí jakýkoli existující profil. Pokud chcete mít jistotu, že nenahradíte žádný již existující profil a neztratíte již aplikované změny, můžete zkusit níže uvedený postup.

Kód:

if (-not (Test-Path -Path $profile.AllUsersAllHosts)){ New-Item -ItemType File -Path $profile.AllUsersAllHosts -Force}

Výše uvedený příkaz zkontroluje, zda existuje profil pro „All Users, All Hosts“, a pokud neexistuje, profil vytvoří.

Pro vytvoření profilu je třeba spustit konzolu PowerShell jako správce. To platí od verze systému Windows Vista a novějších verzí.

Úprava profilu

Pokud profil existuje a vy potřebujete použít nějaké změny nebo doplňky, musíte k úpravě profilu použít textový editor. Pomocí poznámkového bloku lze profil snadno upravit.

Kód:

notepad $profile

Jak vidíte níže, můj současný profil je nakonfigurován tak, aby při otevření konzoly poskytoval uvítací zprávu.

Nyní použiji výše uvedený příkaz k aplikaci některých změn v profilu.

Níže jsou uvedeny změny, které jsem aplikoval.

Když jsem znovu spustil konzolu PowerShell, jak vidíte, změny byly aplikovány.

Pokyny pro nastavení profilů

Níže uvedu několik pokynů pro nastavení profilů, jak je poskytuje společnost Microsoft.

Pokud používáte více hostitelských aplikací, vložte do svého $Profile.CurrentUserAllHostsprofilu položky, které používáte ve všech hostitelských aplikacích. 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 mnoho už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 danou 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 případné speciální implementace profilů PowerShell.

Žádný profil

I když máte vytvořeny profily, které se načítají při každém otevření konzoly, můžete spustit prostředí PowerShell bez načítání jakéhokoli profilu. To můžete provést spuštěním prostředí PowerShell s parametrem -NoProfile. To lze provést ze souboru cmd.exe, dialogového okna Spustit nebo samotného prostředí PowerShell.

Kód:

PowerShell -NoProfile

Zásady provádění

Zásady provádění prostředí PowerShell 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 provádění „Restricted“. Další informace o zásadách spouštění prostředí PowerShell najdete zde. Pokud použijete zásadu „Restricted“, zabrání to spuštění všech skriptů včetně profilů. Obsah profilu se neuplatní. Příkaz Set-ExecutionPolicy nastavuje a mění zásady spouštění ve všech relacích prostředí PowerShell, protože hodnota je uložena v registru. Nemusíte ji nastavovat při otevření konzoly ani ukládat příkaz Set-ExecutionPolicy do profilu.

Profil ve vzdálené relaci

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 se ve vzdálených relacích nevyplňuje automatická proměnná $Profile.

Pokud chceme spustit profil z našeho místního počítače, do vzdálené relace, musíme použít rutinu Invoke-Command.

Následující příklad spustí místní profil do vzdálené relace.

Kód:

$MySession = New-PSSession -ComputerName RemoteComputerInvoke-Command -Session $MySession -FilePath $profile

Výstup:

Jelikož profil nebude ve vzdálené relaci vyplněn, můžeme do relace načíst i vzdálený profil. Podívejte se na níže uvedený příklad.

Kód:

$MySession = New-PSSession -ComputerName RemoteComputerInvoke-Command -Session $MySession -ScriptBlock {. "$env:USERPROFILE\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"}

Výstup:

Doufám, že návod o profilech prostředí PowerShell je užitečný.

Prosím, sdělte mi své připomínky a názory.

Vaší zpětné vazby si vážím.

Související odkazy

  • Tutoriály k prostředí PowerShell
  • Skripty prostředí PowerShell
  • o_profilech | Dokumenty Microsoftu
  • Automatické proměnné prostředí PowerShell
  • Logické operátory prostředí PowerShell
  • Pravidla spouštění prostředí PowerShell
  • Test-Cesta – Dokumenty Microsoftu
  • Nový-Item – Microsoft Docs
  • Write-Output – Microsoft Docs
  • Set-ExecutionPolicy – Microsoft Docs
  • Invoke-Command – Microsoft Docs
Souhrn
Název článku
PowerShell Profiles
Popis
PowerShell Profiles. V tomto tutoriálu najdete informace o profilech prostředí PowerShell a jejich použití. Stephanos Constantinou Blog
Autor
Stephanos
Název vydavatele
Stephanos Constantinou Blog
Logo vydavatele

.

Napsat komentář

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