about_Profiles
Rövid leírás
Bemutatja, hogyan hozhat létre és használhat PowerShell-profilokat.
Hosszú leírás
Létrehozhat egy PowerShell-profilt, amely testre szabja a környezetet, és minden megkezdett PowerShell-munkamenethez hozzáadja a munkamenet-specifikus elemeket.
A PowerShell-profilok olyan szkriptek, amelyek a PowerShell indításakor futnak. A profilt indítási szkriptként használhatja a környezet testreszabásához. Parancsokat, aliasokat, függvényeket, változókat, modulokat, PowerShell-meghajtókat és egyebeket is hozzáadhat. Más munkamenetspecifikus elemeket is hozzáadhat a profiljához, így azok minden munkamenetben elérhetők anélkül, hogy importálnia vagy újra létre kellene hoznia őket.
A PowerShell számos profilt támogat a felhasználók és a gazdagépprogramok számára. Azonban nem hozza létre a profilokat.
Profiltípusok és helyek
A PowerShell számos olyan profilfájlt támogat, amelyek hatóköre a felhasználókra és a PowerShell-gazdagépekre terjed ki. Ezeket a profilokat a számítógépen is használhatja.
A PowerShell-konzol az alábbi alapvető profilfájlokat támogatja. Ezek a fájlelérési utak az alapértelmezett helyek.
- Minden felhasználó, minden gazdagép –
$PSHOME\Profile.ps1
- Minden felhasználó, aktuális gazdagép –
$PSHOME\Microsoft.PowerShell_profile.ps1
- Jelenlegi felhasználó, minden gazdagép –
$HOME\Documents\WindowsPowerShell\Profile.ps1
- Aktuális felhasználó, aktuális gazdagép –
$HOME\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Feljegyzés
Windows rendszerben a Documents
mappa helye mappaátirányítással vagy OneDrive-tal módosítható. Nem javasoljuk, hogy átirányítsa a Documents
mappát egy hálózati megosztásra, és ne foglalja bele a OneDrive-ba. A mappa átirányításával a modulok betöltése meghiúsulhat, és hibák keletkezhetnek a profilszkriptekben.
A mappa OneDrive-kezelésből való eltávolításával Documents
kapcsolatos információkért tekintse meg a OneDrive dokumentációját.
A profilszkripteket a rendszer a felsorolt sorrendben hajtja végre. Ez azt jelenti, hogy az AllUsersAllHosts-profilban végrehajtott módosításokat felülbírálódhat bármely más profilszkript. A CurrentUserCurrentHost profil mindig utoljára fut. A PowerShell súgójában a CurrentUserCurrentHost profil az a profil, amelyet leggyakrabban PowerShell-profilnak neveznek.
A PowerShellt futtató egyéb programok támogathatják saját profiljaikat. A Visual Studio Code (VS Code) például a következő gazdagépspecifikus profilokat támogatja.
- Minden felhasználó, aktuális gazdagép –
$PSHOME\Microsoft.VSCode_profile.ps1
- Aktuális felhasználó, aktuális gazdagép –
$HOME\Documents\PowerShell\Microsoft.VSCode_profile.ps1
A profil elérési útjai a következő változókat tartalmazzák:
- A
$PSHOME
változó a PowerShell telepítési könyvtárát tárolja - A
$HOME
változó az aktuális felhasználó kezdőkönyvtárát tárolja
A $PROFILE változó
Az $PROFILE
automatikus változó tárolja az aktuális munkamenetben elérhető PowerShell-profilok elérési útját.
A profil elérési útjának megtekintéséhez jelenítse meg a $PROFILE
változó értékét. A parancsban lévő változóval $PROFILE
is jelölheti az elérési utat.
A $PROFILE
változó az "Aktuális felhasználó, aktuális gazdagép" profil elérési útját tárolja. A többi profil a változó jegyzettulajdonságaiban $PROFILE
lesz mentve.
A változó például $PROFILE
a következő értékekkel rendelkezik a Windows PowerShell-konzolon.
- Aktuális felhasználó, aktuális gazdagép –
$PROFILE
- Aktuális felhasználó, aktuális gazdagép –
$PROFILE.CurrentUserCurrentHost
- Jelenlegi felhasználó, minden gazdagép –
$PROFILE.CurrentUserAllHosts
- Minden felhasználó, aktuális gazdagép –
$PROFILE.AllUsersCurrentHost
- Minden felhasználó, minden gazdagép –
$PROFILE.AllUsersAllHosts
Mivel a $PROFILE
változó értékei az egyes felhasználók és az egyes gazdagépalkalmazások esetében változnak, győződjön meg arról, hogy az egyes PowerShell-gazdagépalkalmazásokban megjeleníti a profilváltozók értékeit.
A változó aktuális értékeinek megtekintéséhez írja be a $PROFILE
következőt:
$PROFILE | Select-Object *
A változót számos parancsban használhatja $PROFILE
. A következő parancs például megnyitja az "Aktuális felhasználó, aktuális gazdagép" profilt a Jegyzettömbben:
notepad $PROFILE
A következő parancs határozza meg, hogy a helyi számítógépen létrejött-e a "Minden felhasználó, minden gazdagép" profil:
Test-Path -Path $PROFILE.AllUsersAllHosts
Profil létrehozása
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
}
Ha például profilt szeretne létrehozni az aktuális felhasználó számára az aktuális PowerShell-gazdagépalkalmazásban, használja a következő parancsot:
if (!(Test-Path -Path $PROFILE)) {
New-Item -ItemType File -Path $PROFILE -Force
}
Ebben a parancsban az if
utasítás megakadályozza egy meglévő profil felülírását. Cserélje le a $PROFILE
változó értékét a létrehozni kívánt profilfájl elérési útjára.
Feljegyzés
Ha "Minden felhasználó" profilt szeretne létrehozni a Windows Vista és a Windows újabb verzióiban, indítsa el a PowerShellt a Futtatás rendszergazdaként lehetőséggel.
Profil szerkesztése
Bármely PowerShell-profilt megnyithat egy szövegszerkesztőben, például a Jegyzettömbben.
Ha meg szeretné nyitni az aktuális felhasználó profilját az aktuális PowerShell-gazdagépalkalmazásban a Jegyzettömbben, írja be a következőt:
notepad $PROFILE
Más profilok megnyitásához adja meg a profil nevét. Ha például meg szeretné nyitni a profilt az összes gazdaalkalmazás összes felhasználója számára, írja be a következőt:
notepad $PROFILE.AllUsersAllHosts
A módosítások alkalmazásához mentse a profilfájlt, majd indítsa újra a PowerShellt.
Profil kiválasztása
Ha több gazdagépalkalmazást használ, helyezze az összes gazdagépalkalmazásban használt elemeket a $PROFILE.CurrentUserAllHosts
profiljába. Helyezze a gazdagépalkalmazásra jellemző elemeket, például egy gazdaalkalmazás háttérszínét meghatározó parancsot egy adott gazdagépalkalmazásra jellemző profilba.
Ha Ön rendszergazda, aki számos felhasználóhoz testre szabja a PowerShellt, kövesse az alábbi irányelveket:
- A profilban található
$PROFILE.AllUsersAllHosts
gyakori elemek tárolása - A gazdagépalkalmazásra jellemző elemek tárolása a gazdaalkalmazásra jellemző profilokban
$PROFILE.AllUsersCurrentHost
- Elemek tárolása adott felhasználók számára a felhasználóspecifikus profilokban
Ellenőrizze a gazdaalkalmazás dokumentációját a PowerShell-profilok speciális implementációiról.
Profil használata
A PowerShellben létrehozott elemek és a legtöbb futtatott parancs csak az aktuális munkamenetre van hatással. A munkamenet befejezésekor a rendszer törli az elemeket.
A munkamenet-specifikus parancsok és elemek közé tartoznak a munkamenethez hozzáadott PowerShell-változók, környezeti változók, aliasok, függvények, parancsok és PowerShell-modulok.
Ha menteni szeretné ezeket az elemeket, és elérhetővé szeretné tenni őket az összes jövőbeli munkamenetben, vegye fel őket egy PowerShell-profilba.
A profilok másik gyakori használata a gyakran használt függvények, aliasok és változók mentése. Amikor egy profilba menti az elemeket, azokat bármely vonatkozó munkamenetben használhatja anélkül, hogy újra létrejönnek.
Profil indítása
Amikor megnyitja a profilfájlt, az üres lesz. A gyakran használt változókkal, aliasokkal és parancsokkal azonban kitöltheti.
Íme néhány javaslat az első lépésekhez.
Olyan függvény hozzáadása, amely felsorolja a parancsmagok aliasát
function Get-CmdletAlias ($cmdletname) {
Get-Alias |
Where-Object -FilterScript {$_.Definition -like "$cmdletname"} |
Format-Table -Property Definition, Name -AutoSize
}
A konzol testreszabása
function CustomizeConsole {
$hosttime = (Get-ChildItem -Path $PSHOME\PowerShell.exe).CreationTime
$hostversion="$($Host.Version.Major)`.$($Host.Version.Minor)"
$Host.UI.RawUI.WindowTitle = "PowerShell $hostversion ($hosttime)"
Clear-Host
}
CustomizeConsole
Testreszabott PowerShell-üzenet hozzáadása
function Prompt {
$env:COMPUTERNAME + "\" + (Get-Location) + "> "
}
A PowerShell-parancssorról további információt a about_Prompts talál.
További példákat a rendszerhéj-környezet testreszabása című témakörben talál.
A NoProfile paraméter
Ha profilok nélkül szeretné elindítani a PowerShellt, használja a PowerShellt indító program NoProfile paraméterétpowershell.exe
.
Először nyisson meg egy programot, amely elindíthatja a PowerShellt, például Cmd.exe vagy magát a PowerShellt. A Futtatás párbeszédpanelt a Windowsban is használhatja.
Típus:
powershell -NoProfile
A powershell.exe paramétereinek teljes listájához írja be a következőt:
powershell -?
Profilok és végrehajtási szabályzat
A PowerShell végrehajtási szabályzata részben meghatározza, hogy futtathat-e szkripteket, és betölthet-e konfigurációs fájlokat, beleértve a profilokat is. A korlátozott végrehajtási szabályzat az alapértelmezett. Megakadályozza az összes szkript futtatását, beleértve a profilokat is. Ha a "Korlátozott" szabályzatot használja, a profil nem fut, és a tartalma nem lesz alkalmazva.
Egy Set-ExecutionPolicy
parancs beállítja és módosítja a végrehajtási szabályzatot. ez azon kevés parancsok egyike, amelyek az összes PowerShell-munkamenetben érvényesek, mert az érték a beállításjegyzékben van mentve. A konzol megnyitásakor nem kell beállítania, és nem kell parancsot Set-ExecutionPolicy
tárolnia a profiljában.
Profilok és távoli munkamenetek
A PowerShell-profilok nem futnak automatikusan a távoli munkamenetekben, így a profilok által hozzáadott parancsok nem jelennek meg a távoli munkamenetben. Emellett az $PROFILE
automatikus változó nem töltődik fel távoli munkamenetekben.
Profil munkamenetben való futtatásához használja az Invoke-Command parancsmagot.
A következő parancs például az "Aktuális felhasználó, Aktuális gazdagép" profilt futtatja a helyi számítógépről a munkamenetben $s
.
Invoke-Command -Session $s -FilePath $PROFILE
A következő parancs az "Aktuális felhasználó, Aktuális gazdagép" profilt futtatja a munkamenet távoli számítógépéről a következőben $s
: Mivel a $PROFILE
változó nincs feltöltve, a parancs a profil explicit elérési útját használja. Pont-beszerzési operátort használunk, hogy a profil a távoli számítógépen az aktuális hatókörben futjon, é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 következő helyen $s
érhetők el: