PowerShell-modul importálása
Miután telepített egy modult a rendszerre, valószínűleg importálni szeretné a modult. Az importálás az a folyamat, amely betölti a modult az aktív memóriába, így a felhasználó hozzáférhet a modulhoz a PowerShell-munkamenetben. A PowerShell 2.0-ban importálhat egy újonnan telepített PowerShell-modult az Import-Module parancsmag meghívásával. A PowerShell 3.0-ban a PowerShell implicit módon tud modult importálni, ha a modulban lévő függvények vagy parancsmagok egyikét a felhasználó meghívja. Vegye figyelembe, hogy mindkét verzió feltételezi, hogy a modult olyan helyre telepíti, ahol a PowerShell megtalálja azt; További információért lásd: PowerShell-modul telepítése. Használhat egy moduljegyzéket annak korlátozására, hogy a modul mely részei kerüljenek exportálásra, az Import-Module hívás paramétereivel pedig korlátozhatja, hogy mely részek importálhatók.
Beépülő modul importálása (PowerShell 1.0)
A PowerShell 1.0-ban nem léteztek modulok: ehelyett regisztrálnia kellett és beépülő modulokat kellett használnia. Jelenleg azonban nem ajánlott ezt a technológiát használni, mivel a modulok általában könnyebben telepíthetők és importálhatók. További információért lásd: Windows PowerShell beépülő modul létrehozása.
Modul importálása import modullal (PowerShell 2.0)
A PowerShell 2.0 a megfelelő nevű Import-Module parancsmagot használja a modulok importálásához. Amikor ez a parancsmag fut, a Windows PowerShell megkeresi a megadott modult a PSModulePath változóban megadott könyvtárakban. Ha megtalálja a megadott könyvtárat, a Windows PowerShell a következő sorrendben keresi a fájlokat: modul-jegyzékfájlok (.psd1), parancsfájl-modul fájlok (.psm1), bináris modulfájlok (.dll). A könyvtárak kereséshez való hozzáadásával kapcsolatos további információkért lásd: about_PSModulePath. A következő kód a modul importálását írja le:
Import-Module myModule
Feltéve, hogy a myModule a PSModulePath útvonalon található, a PowerShell betölti a myModule-t az aktív memóriába. Ha a myModule nem a PSModulePath útvonalon található, akkor is egyértelműen megmondhatja a PowerShellnek, hogy hol találja meg:
Import-Module -Name C:\myRandomDirectory\myModule -Verbose
Használhatja a -Verbose paramétert is annak meghatározására, hogy mi kerül exportálásra a modulból, és mit importál az aktív memóriába. Mind az export, mind az import korlátozza a felhasználó számára elérhető tartalmat: a különbség az, hogy ki szabályozza a láthatóságot. Az exportálást lényegében a modulon belüli kód vezérli. Ezzel szemben az importálást az Import-Module hívás vezérli. További információért tekintse meg az alábbi Az importált tagok korlátozása című részt.
Modul implicit importálása (PowerShell 3.0)
A Windows PowerShell 3.0-tól kezdődően a modulok automatikusan importálódnak, amikor a modulban lévő bármely parancsmagot vagy függvényt használnak egy parancsban. Ez a szolgáltatás a PSModulePath környezeti változó értékében szereplő könyvtár bármely modulján működik. Ha azonban nem menti el a modult egy érvényes elérési útra, akkor is betöltheti azokat a fent leírt explicit Import-Module opcióval.
A következő műveletek egy modul automatikus importálását váltják ki, más néven "modul automatikus betöltése".
Parancsmag használata parancsban. Például a
Get-ExecutionPolicybeírása importálja a Microsoft.PowerShell.Security modult, amely tartalmazza aGet-ExecutionPolicyparancsmagot.A parancs lekéréséhez használja a Get-Command parancsmagot. Például a
Get-Command Get-JobTriggerbeírása importálja a PSScheduledJob modult, amely tartalmazza aGet-JobTriggerparancsmagot. A helyettesítő karaktereket tartalmazóGet-Commandparancs felderítésnek minősül, és nem váltja ki a modul importálását.A Get-Help parancsmag használata a parancsmaghoz súgó kéréséhez. Például a
Get-Help Get-WinEventbeírása importálja a Microsoft.PowerShell.Diagnostics modult, amely tartalmazza aGet-WinEventparancsmagot.
A modulok automatikus importálásának támogatása érdekében a Get-Command parancsmag megkapja az összes telepített modulban található összes parancsmagot és funkciót, még akkor is, ha a modul nincs importálva a munkamenetbe. További információért tekintse meg a Get-Command parancsmag súgótémakörét.
Az importálási folyamat
A modul importálásakor új szekcióállapot jön létre a modul számára, és egy System.Management.Automation.PSModuleInfo objektum jön létre a memóriában. Minden importált modulhoz létrejön egy munkamenet-állapot (ez magában foglalja a gyökérmodult és az összes beágyazott modult is). A gyökérmodulból exportált tagok, beleértve azokat a tagokat is, amelyeket a beágyazott modulok exportáltak a gyökérmodulba, ezután importálódnak a hívó munkamenet-állapotába.
A modulból exportált tagok metaadatai ModuleName tulajdonsággal rendelkeznek. Ez a tulajdonság az azokat exportáló modul nevével van feltöltve.
Figyelmeztetés
Ha egy exportált tag neve nem jóváhagyott igét használ, vagy ha a tag neve korlátozott karaktereket tartalmaz, figyelmeztetés jelenik meg az Import-Module parancsmag futtatásakor.
Alapértelmezés szerint az Import-Module parancsmag nem ad vissza objektumokat a folyamathoz. A parancsmag azonban támogat egy PassThru paramétert, amely egy System.Management.Automation.PSModuleInfo objektum visszaadására használható minden egyes importált modulhoz. A kimenetnek a gazdagépnek való elküldéséhez a felhasználóknak a Write-Host parancsmagot kell futtatniuk.
Az importált tagok korlátozása
Ha egy modult az Import-Module parancsmag használatával importál, alapértelmezés szerint az összes exportált modultag importálódik a munkamenetbe, beleértve a beágyazott modul által a modulba exportált parancsokat is. Alapértelmezés szerint a változók és az álnevek nem kerülnek exportálásra. Az exportált tagok korlátozásához használjon moduljegyzéket. Az importált tagok korlátozásához használja az Import-Module parancsmag következő paramétereit.
Funkció: Ez a paraméter korlátozza az exportált függvényeket. (Ha moduljegyzéket használ, lásd a FunctionsToExport kulcsot.)
`Cmdlet: Ez a paraméter korlátozza az exportált parancsmagokat (ha moduljegyzéket használ, lásd a CmdletsToExport kulcsot.)
Változó: Ez a paraméter korlátozza az exportált változókat (ha moduljegyzéket használ, lásd a VariablesToExport kulcsot.)
Alias: Ez a paraméter korlátozza az exportált álneveket (ha moduljegyzéket használ, lásd az AliasesToExport kulcsot.)
Lásd még
Windows PowerShell-modul írása