• 11/30/2017
  • 7 perc olvasás
    • S
    • s
    • x
    • q

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 $PROFILEvá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

.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.