Weboldal keresés

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-ExecutionPolicy beírása importálja a Microsoft.PowerShell.Security modult, amely tartalmazza a Get-ExecutionPolicy parancsmagot.

  • A parancs lekéréséhez használja a Get-Command parancsmagot. Például a Get-Command Get-JobTrigger beírása importálja a PSScheduledJob modult, amely tartalmazza a Get-JobTrigger parancsmagot. A helyettesítő karaktereket tartalmazó Get-Command parancs 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-WinEvent beírása importálja a Microsoft.PowerShell.Diagnostics modult, amely tartalmazza a Get-WinEvent parancsmagot.

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

Kapcsolódó cikkek