Megosztás a következőn keresztül:


PowerShell-modul importálása

Miután telepített egy modult egy 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, hogy a felhasználó hozzáférhessen a modulhoz a PowerShell-munkamenetben. A PowerShell 2.0-ban importálhat egy újonnan telepített PowerShell-modult az importálási modul parancsmag meghívásával. A PowerShell 3.0-ban a PowerShell implicit módon importálhat egy modult, ha a modul egyik függvényét vagy parancsmagját egy felhasználó hívja meg. Vegye figyelembe, hogy mindkét verzió feltételezi, hogy olyan helyre telepíti a modult, ahol a PowerShell megtalálja; további információ: PowerShell-modul telepítése. A moduljegyzék használatával korlátozhatja a modul egyes részeinek exportálását, és a Import-Module hívás paramétereivel korlátozhatja, hogy mely részek legyenek importálva.

Snap-In importálása (PowerShell 1.0)

A Modulok nem léteztek a PowerShell 1.0-ban: ehelyett beépülő modulokat kellett regisztrálnia és használnia. Jelenleg azonban nem ajánlott ezt a technológiát használni, mivel a modulok telepítése és importálása általában egyszerűbb. További információ: Windows PowerShell beépülő modul létrehozása.

Modul importálása Import-Module (PowerShell 2.0)

A PowerShell 2.0 a megfelelően elnevezett Import-Module parancsmagot használja a modulok importálásához. A parancsmag futtatásakor a Windows PowerShell megkeresi a megadott modult a PSModulePath változóban megadott könyvtárakban. A megadott könyvtár megtalálásakor a Windows PowerShell a következő sorrendben keres fájlokat: moduljegyzékfájlok (.psd1), szkriptmodulfájlok (.psm1), bináris modulfájlok (.dll). További információ a címtárak kereséshez való hozzáadásáról: about_PSModulePath. A következő kód egy modul importálását ismerteti:

Import-Module myModule

Feltételezve, hogy a myModule a PSModulePathtalálható, a PowerShell betölti a Module-t az aktív memóriába. Ha a MyModule nem egy PSModulePath elérési úton található, akkor is explicit módon közölheti a PowerShell-lel, hogy hol található:

Import-Module -Name C:\myRandomDirectory\myModule -Verbose

A -Verbose paraméter használatával azt is azonosíthatja, hogy mit exportál a modulból, és mit importál az aktív memóriába. Az exportálás és az importálás egyaránt korlátozza a felhasználó számára elérhető adatokat: a különbség az, hogy ki szabályozza a láthatóságot. Az exportálásokat lényegében a modulon belüli kód szabályozza. Ezzel szemben az importálást a Import-Module hívás szabályozza. További információ: Importált tagok korlátozásaalább.

Modul implicit importálása (PowerShell 3.0)

A Windows PowerShell 3.0-tól kezdve a modulok automatikusan importálódnak, ha a modul bármely parancsmagja vagy függvénye egy parancsban szerepel. Ez a funkció a PSModulePath környezeti változó értékében szereplő könyvtár bármely modulján működik. Ha azonban nem érvényes útvonalon menti a modult, akkor is betöltheti őket a fent ismertetett explicit Import-Module lehetőséggel.

Az alábbi műveletek aktiválják egy modul automatikus importálását, más néven "modul automatikus betöltését".

  • Parancsmag használata egy parancsban. A Get-ExecutionPolicy beírásával például importálja a Get-ExecutionPolicy parancsmagot tartalmazó Microsoft.PowerShell.Security modult.

  • A parancs lekéréséhez használja a Get-Command parancsmagot. A Get-Command Get-JobTrigger beírásával például 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 indítja el a modul importálását.

  • A Get-Help parancsmaggal kérhet segítséget egy parancsmaghoz. A Get-Help Get-WinEvent beírásával például importálja a Get-WinEvent parancsmagot tartalmazó Microsoft.PowerShell.Diagnostics modult.

A modulok automatikus importálásának támogatásához a Get-Command parancsmag minden telepített modulban megkapja az összes parancsmagot és függvényt, még akkor is, ha a modult nem importálja a munkamenetbe. További információt a Get-Command parancsmag súgótémakörében talál.

Az importálási folyamat

Amikor importál egy modult, létrejön egy új munkamenet-állapot a modulhoz, és létrejön egy System.Management.Automation.PSModuleInfo objektum 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). A gyökérmodulból exportált tagokat , beleértve a beágyazott modulok által a gyökérmodulba exportált tagokat is, a rendszer ezután importálja a hívó munkamenet-állapotába.

A modulból exportált tagok metaadatainak ModuleName tulajdonsága van. Ez a tulajdonság az exportált 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 használ, figyelmeztetés jelenik meg az Import-Module parancsmag futtatásakor.

Alapértelmezés szerint a Import-Module parancsmag nem ad vissza objektumokat a folyamatnak. A parancsmag azonban támogat egy PassThru paramétert, amely System.Management.Automation.PSModuleInfo objektum visszaadására használható minden importált modulhoz. Ha kimenetet szeretne küldeni a gazdagépnek, a felhasználóknak futtatniuk kell a Write-Host parancsmagot.

Az importált tagok korlátozása

Ha egy modult a Import-Module parancsmaggal importál, a rendszer alapértelmezés szerint minden exportált modultagot importál a munkamenetbe, beleértve a beágyazott modul által a modulba exportált parancsokat is. Alapértelmezés szerint a változók és aliasok nem lesznek exportálva. Az exportált tagok korlátozásához használjon moduljegyzéket. Az importált tagok korlátozásához használja a Import-Module parancsmag alábbi paramétereit.

  • függvény: Ez a paraméter korlátozza az exportált függvényeket. (Ha moduljegyzéket használ, tekintse meg a FunctionsToExport kulcsot.)

  • ` parancsmag: Ez a paraméter korlátozza az exportált parancsmagokat (ha moduljegyzéket használ, tekintse meg a CmdletsToExport kulcsot.)

  • változó: Ez a paraméter korlátozza az exportált változókat (ha moduljegyzéket használ, tekintse meg a VariablesToExport kulcsot.)

  • Alias: Ez a paraméter korlátozza az exportált aliasokat (ha moduljegyzéket használ, tekintse meg az AliasesToExport kulcsot.)

Lásd még:

Windows PowerShell-modul írása