about_Profiles

Rövid leírás

A PowerShell-profilok létrehozásáról és használatról ad útmutatót.

Hosszú leírás

Létrehozhat egy PowerShell-profilt a környezet testreszabásához és munkamenet-specifikus elemek hozzáadásához minden elindított PowerShell-munkamenethez.

A PowerShell-profil egy parancsfájl, amely a PowerShell indításakor fut. A profilt használhatja bejelentkezési szkriptként 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. A profilhoz további munkamenet-specifikus elemeket is hozzáadhat, így azok minden munkamenetben elérhetők anélkül, hogy importálni vagy újra létre kell hozni őket.

A PowerShell számos profilt támogat a felhasználók és a gazdaprogramok számára. Azonban nem hozza létre a profilokat. Ez a témakör ismerteti a profilokat, valamint azt, hogyan lehet profilokat létrehozni és fenntartani a számítógépen.

Ismerteti, hogyan indítja el a PowerShellt profilok nélkül a PowerShell-konzol (PowerShell.exe) NoProfile paraméterének használatával. Ismerteti a PowerShell végrehajtási szabályzatának a profilokra gyakorolt hatását.

A profilfájlok

A PowerShell számos profilfájlt támogat. A PowerShell-gazdaprogramok saját gazdagépspecifikus profilokat is támogatnak.

A PowerShell-konzol például a következő alapszintű profilfájlokat támogatja. A profilok prioritási sorrendben vannak felsorolva. Az első profil élvez elsőbbséget.

Description Elérési út
Minden felhasználó, Minden gazdagép $PSHOME \Profile.ps1
Minden felhasználó, aktuális gazdagép $PSHOME \Microsoft.PowerShell_profile.ps1
Aktuális felhasználó, Minden gazdagép $Home \ [Saját ]Dokumentumok \ PowerShell-Profile.ps1 \
Aktuális felhasználó, Aktuális gazdagép $Home \ [Saját ]Dokumentumok \ PowerShell\
Microsoft.PowerShell_profile.ps1

A profil elérési útjai a következő változókat tartalmazzák:

  • A $PSHOME PowerShell telepítési könyvtárát tároló változó
  • Az $Home aktuális felhasználó kezdőkönyvtárát tároló változó

Emellett a PowerShellt szolgáltató egyéb programok is támogathatja a saját profiljukat. Például a Visual Studio Code a következő gazdagépspecifikus profilokat támogatja.

Description Elérési út
Minden felhasználó, aktuális gazdagép $PSHOME \Microsoft.VSCode_profile.ps1
Aktuális felhasználó, Aktuális gazdagép $Home \ [Saját ]Dokumentumok \ PowerShell\
Microsoft.VSCode_profile.ps1

A PowerShell-súgóban a "CurrentUser, Current Host" profil a leggyakrabban "Saját PowerShell-profil" néven hivatkozik rá.

A $PROFILE változó

Az automatikus változó az aktuális munkamenetben elérhető PowerShell-profilok elérési $PROFILE útjait tárolja.

A profil elérési útjának megtekintéséhez jelenítse meg a változó $PROFILE értékét. A változót $PROFILE egy parancsban is használhatja elérési útként.

A változó az "Aktuális felhasználó, Aktuális gazdagép" profil $PROFILE elérési útját tárolja. A többi profil a változó megjegyzéstulajdonságában lesz $PROFILE mentve.

A változó például a következő értékeket tartalmazza a $PROFILE Windows PowerShell konzolján.

Leírás Név
Aktuális felhasználó, aktuális gazdagép $PROFILE
Aktuális felhasználó, aktuális gazdagép $PROFILE.CurrentUserCurrentHost
Aktuális 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 változó értékei minden felhasználónál és minden gazdaalkalmazásban változnak, győződjön meg arról, hogy a profilváltozók értékei megjelennek az egyes $PROFILE használt PowerShell-gazdaalkalmazásban.

A változó aktuális értékeinek a következőt $PROFILE kell begépelni:

$PROFILE | Get-Member -Type NoteProperty

A változó $PROFILE számos parancsban használható. 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 létrejött-e "Minden felhasználó, minden gazdagép" profil a helyi számítógépen:

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 az aktuális felhasználó számára létre kell hoznia egy profilt az aktuális PowerShell-gazdaalkalmazásban, használja a következő parancsot:

if (!(Test-Path -Path $PROFILE)) {
  New-Item -ItemType File -Path $PROFILE -Force
}

Ebben a parancsban a utasítás megakadályozza, hogy felülírja If a meglévő profilt. Cserélje le a helyőrző értékét a létrehozni kívánt profilfájl elérési <profile-path> útjára.

Megjegyzés

A "Minden felhasználó" profilok Windows Vista és a Windows újabb verzióiban való létrehozásához indítsa el a PowerShellt a Futtatás rendszergazdaként beállítással.

Profil szerkesztése

Bármilyen PowerShell-profilt megnyithat egy szövegszerkesztőben, például a Jegyzettömbben.

Az aktuális felhasználó profiljának a Jegyzettömbben az aktuális PowerShell-gazdaalkalmazásban való megnyitásához írja be a következőt:

notepad $PROFILE

Más profilok megnyitásához adja meg a profil nevét. Ha például az összes gazdaalkalmazás összes felhasználója számára meg kell nyitnia a profilt, í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 gazdaalkalmazást használ, helyezze az összes gazdaalkalmazásban használt elemeket a $PROFILE.CurrentUserAllHosts profiljába. A gazdaalkalmazásra jellemző elemeket, például egy gazdaalkalmazás háttérszínét beező parancsot helyezze el az adott gazdaalkalmazásra jellemző profilba.

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

  • A profil gyakori elemeinek $PROFILE.AllUsersAllHosts tárolása
  • A gazdagépalkalmazásra jellemző elemek tárolása a gazdagépalkalmazásra jellemző $PROFILE.AllUsersCurrentHost profilokban
  • Adott felhasználók elemeinek tárolása a felhasználóspecifikus profilokban

Ellenőrizze a gazdaalkalmazás dokumentációjában a PowerShell-profilok speciális implementációját.

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 az elemek törlődnek.

A munkamenet-specifikus parancsok és elemek változókat, beállításváltozókat, aliasokat, függvényeket, parancsokat (a Set-ExecutionPolicykivételével) és a munkamenethez adott PowerShell-modulokat tartalmaznak.

Ezeknek az elemeknek a mentéshez és az összes későbbi munkamenetben való elérhetővé tételükhöz adja hozzá őket egy PowerShell-profilhoz.

A profilok egy másik gyakori használata a gyakran használt függvények, aliasok és változók mentése. Amikor menti az elemeket egy profilban, azokat bármely megfelelő munkamenetben használhatja anélkül, hogy újra létre lenne ásva.

Profil létrehozása

Amikor megnyitja a profilfájlt, az üres lesz. Azonban feltöltheti a gyakran használt változókat, aliasokat és parancsokat.

Íme néhány javaslat az első lépésekhez.

Adjon hozzá olyan parancsokat, amelyek megkönnyítik a profil megnyitását

Ez különösen akkor hasznos, ha az "Aktuális felhasználó, Aktuális gazdagép" profiltól más profilt használ. Adja hozzá például a következő parancsot:

function Pro {notepad $PROFILE.CurrentUserAllHosts}

Olyan függvény hozzáadása, amely felsorolja bármely parancsmag 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 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

Testreszabott PowerShell-parancssor hozzáadása

function Prompt
{
$env:COMPUTERNAME + "\" + (Get-Location) + "> "
}

További információ a PowerShell-parancssorról: about_Prompts.

A NoProfile paraméter

Ha a PowerShellt profilok nélkül is **** elindítani, használja aPowerShell.exeParancsprogram NoProfile paraméterét a PowerShellt indításakor.

Először nyisson meg egy programot, amely képes elindítani a PowerShellt, például Cmd.exe PowerShellt. A Windows Futtatás párbeszédpanelét is használhatja.

Típus:

PowerShell -NoProfile

A paraméterparaméterek teljes listájához írja be PowerShell.exe 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. Az alapértelmezett beállítás a Korlátozott végrehajtási szabályzat. Ez 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 annak tartalma nem lesz alkalmazva.

A Set-ExecutionPolicy parancs beállítja és módosítja a végrehajtási szabályzatot. Ez azon néhány parancs egyike, amely minden PowerShell-munkamenetre vonatkozik, mert az érték a beállításjegyzékbe van mentve. Nem kell beállítania a konzol megnyitásakor, és nem kell parancsot tárolnia a Set-ExecutionPolicy 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 jelen vannak a távoli munkamenetben. Emellett az automatikus $PROFILE változó nem lesz kitöltve a távoli munkamenetekben.

Egy 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 $s munkamenetében.

Invoke-Command -Session $s -FilePath $PROFILE

A következő parancs az "Aktuális felhasználó, Aktuális gazdagép" profilt futtatja a távoli számítógépről a $s munkamenetében. Mivel a változó nincs feltöltve, a parancs a $PROFILE profil explicit elérési útját használja. Azért használjuk a dot sourcing operátort, hogy a profil a távoli számítógépen az aktuális hatókörben, és ne a saját hatókörében hajtható végre.

Invoke-Command -Session $s -ScriptBlock {
  . "$HOME\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"
}

A parancs futtatása után a profil által a munkamenethez hozzáadandó parancsok a következőben érhetők el: $s .

Lásd még:

about_Automatic_Variables

about_Functions

about_Prompts

about_Execution_Policies

about_Signing

about_Remote

about_Scopes

Set-ExecutionPolicy