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.CurrentUserAllHosts
profiljá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
.