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
$PSHOME
A $PSHOME értéke általában C:\Windows\System32\WindowsPowerShell\v1.0
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
Usually, value for $PSHOME is C:\Program Files\PowerShell\6
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).
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
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
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
Step 6: A Windows PowerShell ISE-ben megnyitottuk az üres profilfájlt
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
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
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
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)
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'}
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…
…erre változtak.
A Get-PSReadLineOption CmdLet segítségével megtekintheti az érvényes színargumentumokat és az aktuális argumentumértékeket (színeket).
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
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 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
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)
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
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.
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
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
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.
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:
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
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.
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:
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
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
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
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
Hasznos PowerShell profilcikkek
.