- 11/30/2017
- 7 perc olvasás
-
- S
- s
- x
- q
- Rövid leírás
- Hosszú leírás
- A profilfájlok
- A $PROFILE változó
- Profil létrehozása
- Profil szerkesztése
- A profil kiválasztása
- A profil használatának módja
- Hogyan indíthat el egy profilt
- Adjon hozzá olyan parancsokat, amelyek megkönnyítik a profil megnyitását
- Adjon hozzá egy olyan funkciót, amely bármelyik cmdlet aliasát felsorolja
- A konzol testreszabása
- Adjon hozzá egy testreszabott PowerShell promptot
- A NoProfile paraméter
- Profilok és végrehajtási házirend
- Profilok és távoli munkamenetek
- See Also
Rövid leírás
A PowerShell profil létrehozásának és használatának leírása.
Hosszú leírás
Elkészíthet egy PowerShell-profilt a környezet testreszabásához, és minden indított PowerShell-munkamenethez hozzáadhatja a munkamenet-specifikus elemeket.
A PowerShell-profil egy olyan szkript, amely a PowerShell indításakor fut. A profilt bejelentkezési szkriptként használhatja a környezet testreszabásához. Hozzáadhat parancsokat, aliasokat, függvényeket, változókat, beépülő modulokat, modulokat és PowerShell-meghajtókat. Más munkamenet-specifikus elemeket is hozzáadhat a profiljához, hogy azok minden munkamenetben rendelkezésre álljanak anélkül, hogy importálni vagy újra létrehozni kellene őket.
A PowerShell többféle profilt támogat a felhasználók és a gazdaprogramok számára. A profilokat azonban nem hozza létre Ön helyett. Ez a témakör ismerteti a profilokat, és ismerteti, hogyan hozhat létre és tarthat fenn profilokat a számítógépén.
Magyarázza, hogyan használhatja a PowerShell konzol(PowerShell.exe) NoProfile paraméterét a PowerShell profilok nélküli indításához. És elmagyarázza a PowerShell futtatási házirendjének hatását a profilokra.
A profilfájlok
A PowerShell több profilfájlt is támogat. Emellett a PowerShell gazdaprogramok is támogathatják saját gazdaspecifikus profiljaikat.
A PowerShell konzol például a következő alapprofilfájlokat támogatja. A profilok fontossági sorrendben vannak felsorolva. Az elsőprofil rendelkezik a legmagasabb prioritással.
Description | Path |
---|---|
All Users, All Hosts | $PSHOME\Profile.ps1 |
All Users, Current Host | $PSHOME\Microsoft.PowerShell_profile.ps1 |
Current User, All Hosts | $Home\Documents\PowerShell\Profile.ps1 |
Jelenlegi felhasználó, Jelenlegi állomás | $Home\Dokumentumok\PowerShell\ Microsoft.PowerShell_profil.ps1 |
A profil elérési útvonalai a következő változókat tartalmazzák:
- A
$PSHOME
változó, amely aPowerShell telepítési könyvtárát tárolja - A
$Home
változó, amely az aktuális felhasználó otthoni könyvtárát tárolja
A PowerShell-t fogadó egyéb programok ezen kívül saját profilokat is támogathatnak. A Visual Studio Code például a következőhost-specifikus profilokat támogatja.
Description | Path |
---|---|
All users, Current Host | $PSHOME\Microsoft.VSCode_profile.ps1 |
Az aktuális felhasználó, Jelenlegi állomás | $Home\Dokumentumok\PowerShell\ Microsoft.VSCode_profile.ps1 |
A PowerShell súgóban a “CurrentUser, Current Host” profil az a profil, amelyre leggyakrabban “az Ön PowerShell profiljaként” hivatkoznak.
A $PROFILE változó
A $PROFILE
automatikus változó tárolja az aktuális munkamenetben elérhető PowerShell profilok elérési útvonalát.
A profil elérési útvonalának megtekintéséhez jelenítse meg a $PROFILE
változó értékét. A $PROFILE
változót egy parancsban is használhatja az elérési útvonal megjelenítésére.
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 tárolódik.
A $PROFILE
változó például a WindowsPowerShell konzolban a következő értékekkel rendelkezik.
Description | Name |
---|---|
Current User, Current Host | $PROFILE |
Current User, Current Host | $PROFILE.CurrentUserCurrentHost |
Current User, All Hosts | $PROFILE.CurrentUserAllHosts |
All Users, Current Host | $PROFILE.AllUsersCurrentHost |
All Users, All Hosts | $PROFILE.AllUsersAllHosts |
Mivel a $PROFILE
változó értékei minden egyes felhasználó és minden egyes host alkalmazásban változnak, győződjön meg arról, hogy a profilváltozók értékeit minden használt PowerShell host alkalmazásban megjeleníti.
A $PROFILE
változó aktuális értékeinek megtekintéséhez írja be:
$PROFILE | Get-Member -Type NoteProperty
A $PROFILE
változót számos parancsban használhatja. Például az alábbi parancs megnyitja a “Current User, Current Host” profilt a Jegyzettömbben:
notepad $PROFILE
A következő parancs meghatározza, hogy a helyi számítógépen létrehoztak-e egy “All Users, All Hosts” profilt:
Test-Path -Path $PROFILE.AllUsersAllHosts
Profil létrehozása
A PowerShell profil létrehozásához használja a következő parancsformátumot:
if (!(Test-Path -Path <profile-name>)) { New-Item -ItemType File -Path <profile-name> -Force}
Ezzel a paranccsal hozhat létre például profilt az aktuális felhasználó számára az aktuálisPowerShell állomásalkalmazásban:
if (!(Test-Path -Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force}
Ebben a parancsban a If
utasítás megakadályozza egy meglévő profil felülírását. A <profile-path> helyőrző értékét helyettesítse a létrehozni kívánt profilfájl elérési útvonalával.
Megjegyzés
A Windows Vista és későbbi Windows-verziókban az “All Users” profilok létrehozásához indítsa el a PowerShellt a Futtatás rendszergazdaként opcióval.
Profil szerkesztése
Minden PowerShell-profilt megnyithat egy szövegszerkesztőben, például a Notepadben.
Az aktuális felhasználó profiljának megnyitásához az aktuális PowerShell hostalkalmazásban a Notepadben írja be:
notepad $PROFILE
Más profilok megnyitásához adja meg a profil nevét. Például az összes gazdaalkalmazás összes felhasználójának profiljának megnyitásához írja be:
notepad $PROFILE.AllUsersAllHosts
A módosítások alkalmazásához mentse el a profilfájlt, majd indítsa újra a PowerShellt.
A profil kiválasztása
Ha több gazdaalkalmazást használ, az összes gazdaalkalmazá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 a PowerShellt sok felhasználó számára testre szabja, 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 olvassa el a gazdaalkalmazás dokumentációját.
A profil használatának módja
A PowerShellben létrehozott elemek nagy része és a legtöbb végrehajtott parancs csak az aktuális munkamenetre hat. A munkamenet befejezésekor az elemek törlődnek.
A munkamenet-specifikus parancsok és elemek közé tartoznak a változók, preferencia-változók, aliasok, függvények, parancsok (a Set-ExecutionPolicy kivételével) és a munkamenethez hozzáadott PowerShell modulok.
Az elemek mentéséhez és minden jövőbeli munkamenetben való elérhetőségük biztosításához adja őket egy PowerShell profilhoz.
A profilok másik gyakori felhasználása a gyakran használt funkciók, aliasok és változók mentése. Ha az elemeket egy profilba menti, akkor azokat bármelyikalkalmazható munkamenetben használhatja anélkül, hogy újra létrehozná őket.
Hogyan indíthat el egy profilt
A profilfájl megnyitásakor az üres. Azonban kitöltheti a gyakran használt változókkal, aliasokkal és parancsokkal.
Itt van néhány javaslat a kezdéshez.
Adjon hozzá olyan parancsokat, amelyek megkönnyítik a profil megnyitását
Ez különösen akkor hasznos, ha a “Current User,Current Host” profiltól eltérő profilt használ. Adja hozzá például a következő parancsot:
function Pro {notepad $PROFILE.CurrentUserAllHosts}
Adjon hozzá egy olyan funkciót, amely bármelyik cmdlet aliasát felsorolja
function Get-CmdletAlias ($cmdletname) { Get-Alias | Where-Object -FilterScript {$_.Definition -like "$cmdletname"} | Format-Table -Property Definition, Name -AutoSize}
A konzol testreszabása
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
Adjon hozzá egy testreszabott PowerShell promptot
function Prompt{$env:COMPUTERNAME + "\" + (Get-Location) + "> "}
A PowerShell promptról további információkat aabout_Prompts című fejezetben talál.
A NoProfile paraméter
A PowerShell profilok nélküli indításához használja a PowerShell.exe, a PowerShellt indító program NoProfile paraméterét.
A kezdéshez nyisson meg egy olyan programot, amely képes elindítani a PowerShellt, például a Cmd.exe-t vagy magát a PowerShellt. Használhatja a Windows Futtatás párbeszédpanelét is.
Type:
PowerShell -NoProfile
A PowerShell.exe paramétereinek teljes listájához írja be:
PowerShell -?
Profilok és végrehajtási házirend
A PowerShell végrehajtási házirendje részben meghatározza, hogy futtathat-e szkripteket és betölthet-e konfigurációs fájlokat, beleértve a profilokat. A Restrictedexecution házirend az alapértelmezett. Ez megakadályozza az összes parancsfájl futtatását,beleértve a profilokat is. Ha a “Korlátozott” házirendet használja, a profil nem fut, és tartalma nem kerül alkalmazásra.
A Set-ExecutionPolicy
parancs beállítja és módosítja a végrehajtási házirendet. Ez azon kevés parancsok egyike, amely minden PowerShell munkamenetben érvényes, mivel az értéket a rendszerleíró adatbázisban tárolja. Nem kell beállítania a konzol megnyitásakor, és nem kell a Set-ExecutionPolicy
parancsot a profiljában tárolnia.
Profilok és távoli munkamenetek
A PowerShell profilok nem futnak automatikusan a távoli munkamenetekben, így a profilok által hozzáadott parancsok nincsenek jelen a távoli munkamenetben. Ezenkívül a $PROFILE
automatikus változó nem töltődik fel a távoli munkamenetekben.
A profil futtatásához egy munkamenetben használja az Invoke-Commandcmdletet.
A következő parancs például a “Current user, Current Host” profilt futtatja a $s
munkamenetben lévő helyi számítógépről.
Invoke-Command -Session $s -FilePath $PROFILE
A következő parancs a “Current user, Current Host” profilt futtatja a $s
munkamenetben lévő távoli számítógépről. Mivel a $PROFILE
változó nincs kitöltve, a parancs a profil explicit elérési útvonalát használja. A dotsourcing operátort használjuk, hogy a profil a távoli számítógép aktuális hatókörében fusson, és ne a saját hatókörében.
Invoke-Command -Session $s -ScriptBlock { . "$HOME\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"}
A parancs futtatása után a profil által a munkamenethez hozzáadott parancsok a $s
-ban állnak rendelkezésre.
See Also
az_Automatikus_Változókról
az_Funkciókról
az_Prompciókról
az_Futtatási irányelvekről
az Aláírásról
A Távolról
A Teljesítménykörökről
Set-ExecutionPolicy
.