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.AllUsersAllHostsprofilban tárolja- A gazdaalkalmazásra jellemző elemeket a gazdaalkalmazásra jellemző
$profile.AllUsersCurrentHostprofilokban 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
.
