Share this post:

A PowerShell profil egy szkript, amely a PowerShell indításakor fut, és egy adott névvel rendelkezik.

A PowerShell számos profilt támogat a felhasználók és az állomásprogramok számára. Amikor azt mondjuk, hogy gazdaprogramok, akkor elsősorban a Windows PowerShell Console-ra és a Windows PowerShell ISE-re gondolunk. A profilokat azonban nem hozza létre helyettünk, ezért olvassuk tovább ezt a cikket, és fantasztikus példákon keresztül megmutatom, hogyan hozhatunk létre és szabhatjuk testre a profilokat.

A rendszerben lévő minden egyes felhasználóhoz, minden egyes hosztprogramhoz (Windows PowerShell konzol és ISE) és az összes hosztprogramhoz 3 profilfájlt hozhatunk létre.

Ezeken kívül lehetőségünk van 3 profilfájlt létrehozni az összes felhasználó számára, ha valamilyen, az összes felhasználóra alkalmazható testreszabást szeretnénk alkalmazni.

FONTOS: Ha külön telepítettük a PowerShell 6-os verzióját, akkor további 4 profilt hozhatunk létre. Felhasználónként két profilfájlt és két profilfájlt az összes felhasználó számára.

Tartalomjegyzék

PowerShell profilparancsok, hosztok, profilnevek, profilok helye

Itt van egy táblázat, amely mutatja a profiltípusokat, a parancsot, amellyel ellenőrizhetjük, hogy létezik-e profil, és ha akarjuk, létrehozhatjuk őket, melyik hostra vonatkozik ez a profil, a profilfájl neve és a profilfájl helye.

# Profil típusa Parancs Host Profil fájl neve Profil fájl helye
1* A jelenlegi felhasználó, Current Host $profile Console Microsoft.PowerShell_profile.ps1 $HOME\ Documents\WindowsPowerShell\
2 All Users, Current Host $profile.AllUsersCurrentHost Console Microsoft.PowerShell_profile.ps1 $PSHOME\
3 Current User, All Hosts $profile.CurrentUserAllHosts Console, ISE Profile.ps1 $HOME\ Documents\WindowsPowerShell\
4 All Users, All Hosts $profile.AllUsersAllHosts Konzol, ISE Profile.ps1 $PSHOME\
5** Jelenlegi felhasználó, Jelenlegi állomás $profile ISE Microsoft.PowerShellISE_profile.ps1 $HOME\ Documents\WindowsPowerShell\
6** All users, Current Host $profile.AllUsersCurrentHost ISE Microsoft.PowerShellISE_profile.ps1 $PSHOME\

1. táblázat – PowerShell profiltípusok, parancsok, hosztok, fájlnevek, fájlhelyek

* A $profile helyett használhatjuk a $profile-t is.CurrentUserCurrentHost parancsot.

** A parancs futtatása a Windows PowerShell ISE konzolról.

A PowerShell telepítésénél a $HOME és $PSHOME változók helyes értékeinek megtalálása érdekében futtassa a következő parancsokat:

$HOME

A $HOME értéke általában C:\Users\user_name

$HOME value
$PSHOME

A $PSHOME értéke általában C:\Windows\System32\WindowsPowerShell\v1.0

$PSHOME értéke

MEGEMLÉKEZÉS: Ha külön telepítettük a PowerShell 6-os verzióját, akkor további profilokat hozhatunk létre. Kettőt az aktuális felhasználóhoz és kettőt az összes felhasználóhoz.

# Profil típusa Parancs Host Profil fájlnév Profil. Fájl helye
1 CurrentUserCurrentHost $profile Console Microsoft.PowerShell_profile.ps1 $HOME\ Documents\PowerShell\
2 CurrentUserAllHosts $profile.CurrentUserAllHosts profile.ps1 $HOME\ Documents\PowerShell\
3 AllUsersCurrentHost $profile.AllUsersCurrentHost Console Microsoft.PowerShell_profile.ps1 $PSHOME\
4 AllUsersAllHosts $profile.AllUsersAllHosts profile.ps1 $PSHOME\

2. táblázat – PowerShell v6 profiltípusok, parancsok, hosztok, fájlnevek, fájlhelyek

A $HOME értéke általában C:\Users\user_name

$HOME értéke a PowerShell v6 számára

Usually, value for $PSHOME is C:\Program Files\PowerShell\6

$PSHOME értéke a PowerShell v6 esetében

Figyelem: A Dokumentumok mappanevek közötti különbség a PowerShell v6 mappa PowerShell és a korábbi PowerShell verziók mappaneve WindowsPowerShell.

PowerShell profil létrehozása lépésről lépésre

Itt megmutatom, hogyan kell pontosan létrehozni egy PowerShell profilt.

PowerShell profil létrehozása az aktuális felhasználóhoz és az aktuális állomáshoz

Ez az alapértelmezett Windows PowerShell profil.

A következő lépéseket követve hozhatunk létre PowerShell-profilt a konzolhoz mint Host és az aktuális felhasználó számára:

1. lépés: Nyissuk meg a Windows PowerShell konzolt (Current Host).

Window PowerShell Console

2. lépés: Először is teszteljük, hogy létezik-e profil a PowerShell telepítésünkben vagy sem. Írjuk be a következő parancsot a Window PowerShell konzolba, majd nyomjuk le az ENTER billentyűt.

Test-Path $PROFILE

MEGJEGYZÉS: A Test-Path Cmd paraméterértékét a 2. táblázat – Parancs oszlopából kapjuk meg. ($profile, $profile.CurrentUserAllHosts, stb)

3. lépés: Ha az előző parancs eredménye hamis, akkor a profil nem létezik, ezért lépjünk a 4. lépésre. Ha az eredmény igaz, a profilfájl létezik, tehát menjünk az 5. lépésre

Profilfájl nem létezik (hamis)

4. lépés: Mivel a profil nem létezik, létrehozunk egyet a következő paranccsal, amit beírunk és megnyomjuk az ENTER billentyűt.

New-Item -Type File -Force $PROFILE
Profil fájl létrehozásra került
Microsoft.PowerShell_profile.ps1 – Profile for the current user and Console as host

Step 5: A profil létrehozásra került, és a következő paranccsal megnyithatjuk a Profil fájlt a PowerShell ISE-ben, és megnyomjuk az ENTER billentyűt.

ise $PROFILE
Open Windows PowerShell ISE with Profile file

Step 6: A Windows PowerShell ISE-ben megnyitottuk az üres profilfájlt

A Windows PowerShell ISE megnyitott egy üres profilfájlt Microsoft.PowerShell_profile.ps1

7. lépés: Folytassa az 1. példával a profil testreszabásának megtekintéséhez.

PowerShell profil létrehozása az aktuális felhasználó és az összes hoszt számára

A PowerShell profil létrehozásához kövesse az alábbi lépéseket:

1. lépés: Nyissa meg a Windows PowerShell konzolt (Ez csak egy szabadon választott hoszt a parancsok futtatásához, és ezeket a lépéseket a Windows PowerShell ISE-ből is elvégezhetjük).

2. lépés: Először is teszteljük, hogy létezik-e profil a PowerShell telepítésünkben vagy sem. Írjuk be a következő parancsot a Window PowerShell konzolba, majd nyomjuk le az ENTER billentyűt.

Test-Path $PROFILE.CurrentUserAllHosts

FELSZÓLÍTÁS: A Test-Path Cmd paraméterértékét a 2. táblázat – Parancs oszlopából kapjuk meg. ($profile, $profile.CurrentUserAllHosts, stb)

3. lépés: Ha az előző parancs eredménye hamis, akkor a profil nem létezik, ezért lépjünk a 4. lépésre. Ha az eredmény igaz, a profilfájl létezik, tehát menjünk az 5. lépésre

Profilfájl nem létezik (hamis)

4. lépés: Mivel a profil nem létezik, létrehozunk egyet a következő paranccsal, amit beírunk és megnyomjuk az ENTER billentyűt.

New-Item -Type File -Force $PROFILE.CurrentUserAllHosts
A profilfájl létrehozása megtörtént
File profile.ps1 – Profile for the current user and all hosts

5. lépés: A profil elkészült, és a következő paranccsal megnyithatjuk a Profil fájlt a PowerShell ISE-ben, majd megnyomjuk az ENTER billentyűt.

ise $PROFILE.CurrentUserAllHosts

6. lépés: Üres profilfájlt nyitottunk meg a Windows PowerShell ISE-ben

A Windows PowerShell ISE megnyitott egy üres profilfájlt profile.ps1

7. lépés: A 2. példával folytatjuk a profil testreszabását.

Megismételjük a folyamatot más profiltípusok esetében is, az egyetlen dolog, hogy a Command oszlopban a megfelelő változó értékét használjuk az 1. táblázatból – PowerShell profiltípusok, parancsok, hosztok, fájlnevek, fájlhelyszínek.

  • $profile.AllUsersCurrentHost
  • $profile.AllUsersAllHosts

REMEMBER: Ha a Windows PowerShell ISE számára gazdaként szeretne profilt létrehozni, meg kell nyitnia a Windows PowerShell ISE-t, és követnie kell a Windows PowerShell ISE konzolról a parancsok futtatásának lépéseit (lásd az alábbi képernyőképet)

Windows PowerShell ISE konzol és a megfelelő profilfájl az ISE-hez gazdaként

A Windows PowerShell profil szerkesztése példákkal

1. példa – Profil a konzolhoz gazdaként és a jelenlegi felhasználóhoz (Jelenlegi felhasználó – Jelenlegi gazdaként)

Profil neve: Microsoft.PowerShell_profile.ps1
Profil helye: $Home\Documents\WindowsPowerShell\
Used for:

Itt van a Microsoft.PowerShell_profile.ps1 profilfájl kódja. Csak másolja a kódot a profilfájlba, és mentse el a változtatásokat, hogy ugyanaz a színséma legyen, vagy testre szabja a saját ízlése szerint.

Set-PSReadLineOption -colors @{ Operator = 'Cyan' Parameter = 'Cyan' String = 'White'}
Microsoft.PowerShell_profile.ps1 profilfájl kódja

Némely régebbi rendszeren a Set-PSReadLineOption CmdLet beállítása egy kicsit más volt, mint az alábbi példában.

Set-PSReadlineOption -TokenKind String -ForegroundColor MagentaSet-PSReadlineOption -TokenKind Operator -ForegroundColor CyanSet-PSReadlineOption -TokenKind Parameter -ForegroundColor Cyan 

A betűtípus színei erről…

PowerShell konzol betűtípus színei profil testreszabása nélkül.

…erre változtak.

PowerShell konzol betűtípus színei a profil testreszabása után.

A Get-PSReadLineOption CmdLet segítségével megtekintheti az érvényes színargumentumokat és az aktuális argumentumértékeket (színeket).

Get-PSReadLineOption CmdLet és az aktuális színek sémája

2. példa – Profil mind a Windows PowerShell konzolhoz, mind az ISE-hez gazdaként (Jelenlegi felhasználó – Minden gazda)

Profil neve: profile.ps1
Profil helye: $Home\Documents\WindowsPowerShell\
Használja:

Ebben a példában a saját PowerShell moduljaimat töltöm be néhány általam írt CmdLethez, amelyek a Efficiency Booster PowerShell projekt részei. Ez a projekt a saját CmdLets-jeim könyvtára több modulba rendezve, és nagyon ajánlom, hogy töltse le a projekt fájljait tartalmazó zip fájlt, és tesztelje a saját környezetében, és képes legyen követni engem a blog cikkeiben.

Itt vannak a modulok és a profilfájl tartalmának importálására szolgáló parancsok.

Import-Module 02utilsImport-Module 03commonImport-Module 04maintenance
Profil.ps1 profilfájl kódja

A PowerShell konzolt megnyitva a következő paranccsal gyorsan tesztelhetjük, hogy az importált modulok valóban betöltődnek-e:

Get-Module -ListAvailable
A profilfájlban lévő importált modulok betöltődnek a PowerShell konzol környezetében

A PowerShell profilok, modulok és CmdLetek összekapcsolásának jobb megértéséhez kérjük, olvassa el ennek a bejegyzésnek a következő alcímét Hogyan szervezzük a saját PowerShell CmdLeteket PowerShell modulokba és melyik profilt használjuk ennek a struktúrának a megszervezéséhez és hogyan kapcsoljuk össze a PowerShell profil, modul és CmdLetet.

3. példa – Profil az ISE-hez gazdaként (Jelenlegi felhasználó – Jelenlegi gazda)

Profil neve: Microsoft.PowerShellISE_profile.ps1
Profil helye: $Home\Documents\WindowsPowerShell\
Used for: Ebben a példában olyan modult importáltam, amely a CmdLets-t tartalmazza, amelyek a Windows PowerShell ISE kiegészítői lesznek.

Itt van a parancs, amelyet be kell másolni a profilfájlba.

Import-Module 09addons
Microsoft.PowerShellISE_profile.ps1 profilfájl kód

Az eredmény, hogy két kiegészítőnk lesz a Windows PowerShell ISE-ben. Kérjük, olvassa el ezt a két cikket, hogy többet tudjon meg a kódolásukról.

  • Hogyan írjunk speciális függvényeket vagy CmdLet-eket a PowerShell segítségével (gyorsan)
  • Hogyan írjunk PowerShell-funkciókat vagy CmdLet-segítséget (gyorsan)
Windows PowerShell ISE Add-okat.ons

A PowerShell konzolt megnyitva a következő paranccsal gyorsan tesztelhetjük, hogy az importált modulok valóban betöltődnek-e:

Get-Module -ListAvailable
Importált modul a profilfájlban betöltődik a PowerShell ISE környezetben

MEGJEGYZÉS: A Windows PowerShell ISE négy modult importál két profilfájlból ( profile.ps1 és Microsoft.PowerShellISE_profile.ps1 ).

4. példa – Profil mind a Windows PowerShell konzolhoz, mind az ISE-hez gazdaként (All Users – All Hosts)

Profil neve: profile.ps1
Profil helye: $PSHOME\
Felhasználva: Ebben a példában csak a Window PowerShell Console és az ISE címét változtattam meg mind a Current User, mind a Administrator esetében.

Itt van a kód a Profile fájlban:

$NTIdentity = ::GetCurrent()$NTPrincipal = new-object Security.Principal.WindowsPrincipal $NTIdentity$IsAdmin = $NTPrincipal.IsInRole(::Administrator)$hostversion="v$($Host.Version.Major).$($Host.Version.Minor)"$hostname = $host.NameIF ($IsAdmin){ if($hostname -eq "ConsoleHost") { $host.ui.RawUI.WindowTitle = "Your Text in Windows PowerShell $hostversion - Running as ADMINISTRATOR" } else { $host.ui.RawUI.WindowTitle = "Your Text in Windows PowerShell ISE $hostversion - Running as ADMINISTRATOR" }}Else{ if($hostname -eq "ConsoleHost") { $host.ui.RawUI.WindowTitle = "Your Text in Windows PowerShell $hostversion" } else { $host.ui.RawUI.WindowTitle = "Your Text in Windows PowerShell ISE $hostversion" }}

Láthatjuk, hogy mind a PowerShell Console, mind az ISE címében egyéni szöveg, a hoszt neve és a PowerShell verziója szerepel a címben.

A Konzol címének egyéni szövege
A Konzol címének egyéni szövege, ha rendszergazdaként fut
Az egyéni szöveg. for Windows PowerShell ISE Title

Hasznos PowerShell-parancsok a profilokkal kapcsolatban

Itt van néhány hasznos PowerShell-parancs, amelyek segítségével információkat kaphat a profilokról.

A profilparancsok bármelyikének futtatásának eredményeként megkapja a profilfájl helyét.

$profile$profile.AllUsersCurrentHost$profile.CurrentUserAllHosts$profile.AllUsersAllHosts
Profilparancsok

FONTOS: Ha a Windows PowerShell ISE gazdaként szeretné megtalálni a profilfájl helyét, meg kell nyitnia a Windows PowerShell ISE-t, és a Windows PowerShell ISE konzolról futtatnia kell a profilparancsokat

A Test-Path CmdLet parancs segítségével ellenőrizheti, hogy a profilfájl létezik-e a rendszerben vagy sem. Ha True eredményként a profil létezik, a false pedig azt jelenti, hogy a profilfájl nem létezik. Az 1. táblázat – PowerShell profiltípusok, parancsok, hosztok, fájlnevek, fájlhelyszínek parancsaival ellenőrizheti, hogy léteznek-e más profiltípusok, vagy sem.

Test-Path $PROFILE

Ez a kódsor létrehoz egy profilfájlt. Használja az 1. táblázat – PowerShell profiltípusok, parancsok, hosztok, fájlnevek, fájlhelyszínek parancsait más profiltípusok létrehozásához.

New-Item -Type File -Force $PROFILE.CurrentUserAllHosts

Ha a profilfájl tartalmát vagy a Notepadben vagy a Window PowerShell ISE-ben szeretné elolvasni, akkor használja ezt a két parancsot.

ise $PROFILEnotepad $PROFILE

Személyesen a Windows PowerShell ISE-t részesítem előnyben, mivel ez egy kényelmesebb környezet a PowerShell kód írásához.

Ezzel a kódsorral az összes profiltípus profilhelyét megkaphatja.

$profile | Get-Member -Type NoteProperty | Select-Object Definition
Profilfájlok helye

Ezt a két változót ellenőrizze, hogy megkapja a PowerShell telepítési és a home könyvtárának helyét.

$pshome$home 

Hogyan válasszuk ki, hogy melyik profilfájlt használjuk

Ha több hoszt alkalmazást használunk, például a Windows PowerShell konzolt és az ISE-t, az összes testreszabást a $PROFILE.CurrentUserAllHosts profilba tegyük az aktuálisan bejelentkezett felhasználóhoz. Én például létrehoztam a saját CmdLets modulokba rendezve, így a modulok betöltésére szolgáló parancsokat ebbe a profilba tettem, mivel azt akarom, hogy a modulok mind a PowerShell Console, mind az ISE megnyitásakor betöltődjenek. Nézze meg a 2. példát az illusztrációhoz.

Ha specifikus testreszabást szeretne végezni a gazdalkalmazáson, akkor az összes testreszabási kódot az adott gazdalkalmazásra jellemző profilba helyezze. Például megváltoztatom a PowerShell Console betűtípusainak háttérszínét, hogy jobban láthatóak legyenek, vagy olyan modulokat töltöttem be, amelyek az ISE kiegészítői. Ezt az 1. példában a PowerShell konzolra és a 3. példában a PowerShell ISE-re mutattam be.

Ha a PowerShellt sok felhasználó számára kell testreszabnia, és Ön rendszergazda, akkor kövesse az alábbi tippeket:

  • Tárolja a leggyakoribb testreszabást a $PROFILE-ban.AllUsersAllHosts profilba, mivel ez a legszélesebb körű
  • Ha a Windows PowerShellt az összes felhasználó számára szeretné testreszabni, de specifikusan egy host alkalmazáshoz. Például más testreszabás a Windows PowerShell konzolhoz és más testreszabás a Windows PowerShell ISE-hez, akkor a kódot a $PROFILE.AllUsersCurrentHost profilokba tegye
  • A kódot az egyes felhasználókhoz a felhasználó-specifikus profilokba írja. Alapvetően ez azt jelenti, hogy vagy a $PROFILE.CurrentUserAllHosts vagy a $PROFILE.CurrentUserCurrentHost profilt használja.

How To Run Console Or ISE Without Profiles Loaded

Nyissa meg a futtatás párbeszédpanelt Win + R és nyissa meg a PowerShellt a -NoProfile opcióval.

PowerShell.exe -NoProfile

Warning: PowerShell betöltési idő

Nagyobb és összetettebb profilok esetén ez már hatással lehet arra, hogy milyen gyorsan nyílik meg a PowerShell. Annak hibaelhárításához, hogy a profil felelős-e a gyenge PowerShell betöltési időért, nyissa meg a Win + R billentyűkombinációval a Futtatás párbeszédpanelt, és nyissa meg a PowerShellt a -NoProfile opcióval.

PowerShell.exe -NoProfile

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-Command CmdLet parancsot.

A következő parancs például a “Current user, Current Host” profilt futtatja a helyi számítógépről a $s munkamenetben.

Invoke-Command -Session $s -FilePath $PROFILE

Hogyan szervezzük a saját PowerShell CmdLet-jeinket PowerShell modulokba és profilokba

Azért, hogy megértsük a PowerShell profil, modul és CmdLet közötti kapcsolatot, létrehoztam egy Efficiency Booster PowerShell projektet sok saját CmdLet-emmel, amelyek egy csomó modulba vannak szervezve, amelyek minden PowerShell munkamenetben betöltődnek a PowerShell profillal, amikor megnyitom a Windows PowerShell konzolt vagy az ISE-t.

Kérem, töltse le bátran a zip fájlt, amely tartalmazza a projekt kódját, így könnyen követheti a projektet. A ReadMe.txt fájlban található a telepítési és testreszabási lépések magyarázata, ezért kérjük, olvassa el az abban a fájlban található utasításokat. Még jobb, ha elolvassa a telepítési és testreszabási utasításokat az alábbi How To Install And Configure PowerShell című cikket olvasva: CmdLets, Modules, Profiles.

A könyvesbolt, a könyvespolc és a könyvek analógiáját fogom használni a Powershell Profile, Module és a CmdLet közötti kapcsolat magyarázatára.

Képzeljük el például, hogy többet szeretne megtudni a PowerShell Scriptingről, és szeretne néhány könyvet vásárolni a témában a könyvesboltban.

Bementek a könyvesboltba, és sok polcot láttok, amelyeken különböző címkék vannak a könyvosztályok számára, például Művészet, Üzlet, Számítógépek, Irodalom, Utazás stb. Természetesen a Számítógépek feliratú polcokhoz sétálsz, és ott találod meg azt a könyvet, amely a PowerShell Scriptinget magyarázza, és amelyet meg akarsz vásárolni.

Visszatérjünk most a PowerShell világába, és kapcsoljuk össze az analóg történetet a PowerShell-lel:

  • A PowerShell-lel szállított CmdLet, amelyet használunk, vagy néhány saját írt CmdLet a könyv.
  • A CmdLet kódja a könyv tartalma.
  • A PowerShell modul valamilyen könyvesbolt részlegének könyvespolca, például a Számítógépek könyvesbolt részlegének polca, ahová a könyvünk kerül.
  • Végül a PowerShell profil maga a könyvesbolt.

Így minden alkalommal, amikor megnyitjuk a Windows PowerShell konzolt vagy az ISE-t, megnyitjuk a munkamenetünket, és ezzel a munkamenettel profilfájlok betöltése és testreszabása megtörtént, hogy a PowerShell környezetünket úgy állítsuk be, ahogyan szeretnénk.

A modulok és a CmdLets esetében. A profilfájl importálja a modulokat és a modul betölti az egyes CmdLet szkripteket, amelyek az adott modulhoz tartoznak.

Mivel én szeretem használni a saját CmdLetjeimet mind a Windows PowerShell konzolban, mind az ISE host alkalmazásokban, inkább létrehozok egy $profile.CurrentUserAllHosts profiltípust, amely nem más, mint a Profile.ps1 fájl, amelyet a:

  • $Home\ Documents\WindowsPowerShell\ mappában hoztam létre a PowerShell 5.1 és régebbi verziójához
  • $Home\ Documents\PowerShell\ mappában a PowerShell 6.0 verziójához.

Hogyan kapcsoljuk össze a PowerShell profil, modul, És CmdLet

Itt van egy rövid leírása ennek a PowerShellben végzett struktúrának

  • Elkészítünk egy PowerShell-profilt
  • Elkészítünk egy Modul mappát és fájlstruktúrát
  • A profil testreszabása a szükséges modulok importálásához
  • .

  • CmdLet PowerShell szkript létrehozása
  • A saját CmdLet funkció kódjának megírása
  • A Modul fájl testreszabása a CmdLet szkript importálásához

Ezt a folyamatot a Efficiency Booster PowerShell projekt profil példáival fogom illusztrálni, Modulok és CmdLetek példájával, hogy bárki számára könnyebb legyen megérteni az egész folyamatot. Ezért még egyszer nyomatékosan javaslom mindenkinek, hogy telepítse a mellékelt zip fájlt.

A PowerShell Profile, Module, CmdLet létrehozásához és összekapcsolásához kövesse az alábbi lépéseket:

1. lépés: Nyissa meg a Windows PowerShell konzolt

2. lépés: Először is teszteljük, hogy létezik-e Profile a PowerShell telepítésünkben vagy sem. Írjuk be a következő parancsot a Window PowerShell konzolon, majd nyomjuk le az ENTER billentyűt

Test-Path $PROFILE.CurrentUserAllHosts

3. lépés: Ha az előző parancs eredménye hamis, akkor a profil nem létezik, ezért folytassuk a 4. lépéssel. Ha az eredmény igaz, akkor a profil fájl létezik, tehát menjünk az 5. lépésre

4. lépés: Mivel a profil nem létezik, létrehozunk egyet a következő paranccsal, amit beírunk, és megnyomjuk az ENTER-t.

New-Item -Type File -Force $PROFILE.CurrentUserAllHosts

5. lépés: A profil létrejött, és megnyithatjuk a profil fájlt a PowerShell ISE-ben a következő paranccsal, és megnyomjuk az ENTER-t.

ise $PROFILE.CurrentUserAllHosts

6. lépés: A Profil fájl megnyílt a PowerShell ISE-ben.

7. lépés: Most létre kell hoznunk egy Modul mappastruktúrát és a szükséges fájlokat.

8. lépés: A mappában, ahol létrehoztuk a Profil fájlunkat, hozzunk létre egy Modul mappát, amelynek pontos neve Modules. Itt fogjuk tárolni az összes Modulunk mappaszerkezetét.

Modules mappa

9. lépés: A Modules mappában hozzuk létre az egyes modulokhoz tartozó mappákat, amelyeket szeretnénk. Én például a következő modulokat hoztam létre az Efficiency Booster PowerShell Projectben:

Modules of Efficiency Booster PowerShell Project

10. lépés: Minden egyes Modul mappában létrehozzuk a .psm1 kiterjesztésű és a Modul mappával pontosan megegyező nevű fájlt. Például a 03common mappában létrehozzuk a 03common.psm1 fájlt

PowerShell modul fájl psm1

11. lépés: Opcionálisan létrehozhatunk egy manifeszt fájlt (.psd1 kiterjesztés) minden egyes modulhoz, amely részletesebben leírja az adott mappát.

12. lépés: Ugyanebben a modul mappában létrehozzuk a .ps1 kiterjesztésű fájlt (Regular PowerShell script fájl), amelybe a saját CmdLet kódunkat írjuk. Például létrehozhatjuk a GetCPUInfo.ps1 fájlt, ahová a saját Get-CPUInfo CmdLet kódunkat fogjuk írni.

Get-CPUInfo CmdLet script fájl

13. lépés: Most már készen állunk a saját CmdLet kódunk megírására és szkriptelésére. Nyugodtan nézzük meg a Get-CPUInfo és más CmdLet példákat a Efficiency Booster PowerShell projektben. A jövőbeli bejegyzésekben részletesebben fogok írni a projektben található minden egyes CmdLet-ről. Egyelőre töltse le a projekt forráskódját innen:

Get-CPUInfo CmdLet forráskód

14. lépés: A CmdLet szkript összekapcsolása a megfelelő PowerShell modullal. Nyissa meg a modul .psm1 fájlját, és írja be ezt a kódsort:
. $psScriptRoot\NameOfCmdLetScriptFile.ps1
A Get-CPUInfo CmdLet esetében például ezt a kódsort írjuk a 03common.psm1 file:

. $psScriptRoot\GetCPUInfo.ps1 
A CmdLet script fájl és a modul közötti kapcsolat

15. lépés: A profil script fájlban importáljuk a CmdLet script fájlunkat tartalmazó modult, így ezt a parancsot írjuk a profil fájlba.
Import-Module ModuleName
A Get-CPUInfo CmdLetünk például a 03common modul része, így ezt a kódot írjuk a profilba:

Import-Module 03common
A profil és a modul közötti kapcsolat

16. lépés: A 9-15. lépést minden olyan modul és CmdLet esetében megismételjük, amelyet a profilunkban szeretnénk, és amelyet minden indított PowerShell munkamenetben be szeretnénk tölteni.

17. lépés: Leteszteljük, hogy az összes importált modul betöltődik-e, amikor megnyitunk egy adott hosztot. A modulokat a következő paranccsal listázhatjuk:

Get-Module -ListAvailable
Load modules in PowerShell Console Environment

18. lépés: Ellenőrizhetjük, hogy az egyes modulokon belüli összes CmdLet betöltődött-e a környezetbe. Íme a hasznos példaparancs:

Get-Command -Module 02utils
Letöltött CmdLets a PowerShell konzolkörnyezetben a 02utils modulhoz

Hasznos PowerShell profilcikkek

.

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

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