PowerShell profilok

Ebben a bemutatóban a PowerShell profilokról és azok használatáról lesz szó. A PowerShell profilok segítségével testre szabhatjuk a környezetünket, és minden egyes PowerShell munkamenethez, amelyet elindítunk, elemeket adhatunk hozzá. A PowerShell profil egy olyan szkript, amely minden alkalommal lefut, amikor elindítjuk a PowerShellt. A PowerShell-profilt bejelentkezési szkriptként használhatjuk a környezet testreszabásához. A PowerShell profil használatával parancsokat, aliasokat, függvényeket, változókat, beépülő modulokat, modulokat, PSDrive-okat és bármilyen más munkamenet-specifikus elemet adhatunk hozzá az evnironmethez. Ezeket nem kell minden alkalommal importálnia vagy újra létrehoznia, amikor a PowerShellt futtatja. Automatikusan betöltődnek majd. A PowerShell számos profilt támogat a felhasználók és a gazdaprogramok számára. A PowerShell nem hoz létre profilokat az Ön számára.

Ha munkamenet-specifikus parancsokat, változókat, preferenciaváltozókat, aliasokat, függvényeket, parancsokat (a Set-ExecutionPolicy kivételével) és gyakran használt PowerShell modulokat szeretne, akkor a profilok segítségével minden jövőbeli munkamenetben betöltheti azokat.

Profilfájlok

A PowerShell konzol a következő profilokat támogatja:

  • $Home\Documents\PowerShell\Microsoft.PowerShell_profile.ps1 – Aktuális felhasználó, aktuális állomás
  • $Home\Documents\PowerShell\Profile.ps1 – Aktuális felhasználó, összes állomás
  • $PsHome\Microsoft.PowerShell_profile.ps1 – Minden felhasználó, aktuális állomás
  • $PsHome\Profile.ps1 – Minden felhasználó, összes állomás

A fenti profilok elsőbbségi sorrendben szerepelnek. A listában az első profil rendelkezik a legmagasabb prioritási sorrenddel. Amint a fenti profilokban látható, két változóval rendelkezünk. A $PSHome és $Home változók a következő értékeket jelenítik meg.

  • $PSHome – A PowerShell telepítési könyvtárát tárolja
  • $Home – Az aktuális felhasználó otthoni könyvtárát tárolja

A PowerShell-t befogadó egyéb programok saját profilokat támogathatnak. A PowerShell Integrated Scripting Environment (ISE) a következő hoszt-specifikus profilokat támogatja:

  • $Home\Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1 – Current user, Current Host
  • $PsHome\Microsoft.PowerShellISE_profile.ps1 – All users, Current Host

A Microsoft szerint a PowerShell súgóban a “CurrentUser, Current Host” profil az a profil, amelyet leggyakrabban “a PowerShell profiljaként” emlegetnek.

Profilváltozó

A PowerShellben van egy automatikus változó, melynek neve $Profile. Az aktuális munkamenetben elérhető összes PowerShell-profil elérési útvonalát a $Profile változó tárolja. A $Profile változót megtekintve láthatjuk a profil elérési útvonalát.

A $Profile változó a “Current User, Current Host” profil elérési útvonalát tárolja. A többi profil a $Profile változó jegyzett tulajdonságaiban van elmentve.

A változó tulajdonságai segítségével adhat meg egy profilt. A Windows PowerShell konzolban a $Profile változóban a következő értékekkel rendelkezünk.

  • $Profile – Current User, Current Host
  • $Profile.CurrentUserCurrentHost – Current User, Current Host
  • $Profile.CurrentUserAllHosts – Current User, All Hosts
  • $Profile.AllUsersCurrentHost – All Users, Current Host
  • $Profile.AllUsersAllHosts – All Users, All Hosts

A parancsokban használhatja a $Profile változót.

Kód:

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

Kimenet:

A fenti parancsok tesztelik, hogy a megadott profil létre lett-e hozva. Mint látható, mindegyikre hamis a válasz. Mint már említettük, a profilok alapértelmezés szerint nem jönnek létre. Önnek kell létrehoznia őket.

Profil létrehozása

A profil létrehozásához a következő parancsot kell használnia.

Code:

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

A fenti parancs létrehoz egy profilt az “Aktuális felhasználó, aktuális állomás” számára.

Megjegyzendő, hogy a fenti parancs minden meglévő profil helyébe lép. Ha biztosítani szeretné, hogy ne cserélje le a már létező profilokat, és ne veszítse el a már elvégzett módosításokat, akkor próbálja ki az alábbi parancsot.

Code:

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

A fenti parancs ellenőrzi, hogy létezik-e profil az “All Users, All Hosts” számára, és ha nem létezik, akkor létrehozza a profilt.

A profil létrehozásához a PowerShell konzolt rendszergazdaként kell futtatnia. Ez a Windows Vista és későbbi verzióktól kezdve érvényes.

Profil szerkesztése

Ha létezik egy profil, és néhány módosítást vagy kiegészítést kell alkalmazni, akkor egy szövegszerkesztővel kell szerkeszteni a profilt. A notepad használatával könnyen szerkeszthető a profil.

Kód:

notepad $profile

Amint alább látható, a jelenlegi profilom úgy van beállítva, hogy a konzol megnyitásakor egy üdvözlő üzenetet adjon.

Most a fenti paranccsal néhány módosítást fogok alkalmazni a profilomra.

Az alábbiakban az általam alkalmazott módosítások láthatók.

Majd amikor újraindítottam a PowerShell konzolt, mint látható, a módosítások alkalmazásra kerültek.

Profil irányelvek

Az alábbiakban a Microsoft által megadott néhány iránymutatást adok a profilok beállításához.

Ha több hosztalkalmazást használ, az összes hosztalkalmazásban használt elemeket tegye a $Profile.CurrentUserAllHostsprofiljába. Azokat az elemeket, amelyek egy gazdaalkalmazásra jellemzőek, például egy parancsot, amely beállítja egy gazdaalkalmazás háttérszínét, az adott gazdaalkalmazásra jellemző profilba tegye.

Ha olyan rendszergazda, aki sok felhasználó számára testre szabja a PowerShellt, kövesse az alábbi irányelveket:

  • A közös elemeket a $profile.AllUsersAllHosts profilban tárolja
  • A gazdaalkalmazásra jellemző elemeket a gazdaalkalmazásra jellemző $profile.AllUsersCurrentHost profilokban tárolja
  • A konkrét felhasználóknak szánt elemeket a felhasználó-specifikus profilokban tárolja

A PowerShell profilok speciális megvalósításáról mindenképpen tájékozódjon a gazdaalkalmazás dokumentációjában.

Nincs profil

Még ha a konzol minden egyes megnyitásakor betöltendő profilokat hozott is létre, a PowerShell futtatása a betöltendő profilok nélkül is engedélyezett. Ezt úgy teheti meg, hogy a PowerShellt -NoProfile paraméterrel futtatja. Ezt megteheti a cmd.exe programból, a Futtatás párbeszédpanelből vagy magából a PowerShellből.

Code:

PowerShell -NoProfile

Futtatási házirend

A PowerShell futtatási házirendje határozza meg, hogy futtathat-e szkripteket és tölthet-e be konfigurációs fájlokat, beleértve a profilokat is. A “Korlátozott” végrehajtási házirend az alapértelmezett. A PowerShell futtatási házirenddel kapcsolatos további információkat itt talál. Ha a “Korlátozott” házirendet használja, az megakadályozza az összes parancsfájl futtatását, beleértve a profilokat is. A profilok tartalma nem kerül alkalmazásra. A Set-ExecutionPolicy parancs minden PowerShell munkamenetben beállítja és megváltoztatja a végrehajtási házirendet, mivel az értéket a rendszerleíró adatbázisban tárolja. Nem kell beállítani a konzol megnyitásakor, illetve nem kell a Set-ExecutionPolicy parancsot a profilban tárolni.

Profil a távoli munkamenetben

A PowerShell profilok nem futnak automatikusan a távoli munkamenetekben, így a profilok által hozzáadott parancsok nem lesznek jelen a távoli munkamenetben. Ezenkívül a $Profile automatikus változó nem töltődik fel a távoli munkamenetekben.

Ha a profilt a helyi számítógépünkről, egy távoli munkamenetbe szeretnénk futtatni, akkor a Invoke-Command cmdletet kell használnunk.

Az alábbi példában a helyi profilt egy távoli munkamenetbe futtatjuk.

Code:

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

Output:

Mivel a távoli munkamenetben a profil nem lesz feltöltve, a távoli profilt is betölthetjük a munkamenetbe. Nézze meg az alábbi példát.

Code:

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

Output:

Remélem, a PowerShell profilokról szóló bemutató hasznos lesz.

Kérem, ossza meg velem észrevételeit és gondolatait.

A visszajelzéseit nagyra értékelem.

Kapcsolódó linkek

  • PowerShell oktatóanyagok
  • PowerShell szkriptek
  • about_Profiles | Microsoft Docs
  • PowerShell automatikus változók
  • PowerShell logikai operátorok
  • PowerShell végrehajtási politika
  • Test-Path – Microsoft Docs
  • New-Item – Microsoft Docs
  • Write-Output – Microsoft Docs
  • Set-ExecutionPolicy – Microsoft Docs
  • Invoke-Command – Microsoft Docs
Summary
Article Name
PowerShell Profiles
Description
PowerShell Profiles. Ebben a bemutatóban a PowerShell profilokról és azok használatáról találsz információkat. Stephanos Constantinou Blog
Author
Stephanos
Publisher Name
Stephanos Constantinou Blog
Publisher Logo

.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.