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


Windows PowerShell-modul ismertetése

A modul a Kapcsolódó Windows PowerShell-funkciók halmaza, amely kényelmes egységként van csoportosítva (általában egyetlen könyvtárban mentve). A kapcsolódó szkriptfájlok, szerelvények és kapcsolódó erőforrások modulként való definiálásával a kód hivatkozása, betöltése, megőrzése és megosztása sokkal egyszerűbb, mint egyébként.

A modul fő célja a Windows PowerShell-kód modularizálásának (azaz újrafelhasználásának és absztrakciójának) engedélyezése. A modul létrehozásának legalapvetőbb módja például egy Windows PowerShell-szkript mentése .psm1 fájlként. Ez lehetővé teszi a szkriptben található függvények és változók szabályozását (azaz nyilvános vagy privátsá tétele). A szkript .psm1 fájlként való mentése lehetővé teszi bizonyos változók hatókörének szabályozását is. Végül olyan parancsmagokat is használhat, mint például a Install-Module a szkript rendszerezésére, telepítésére és építőelemként való használatára a nagyobb megoldásokhoz.

Modulösszetevők és -típusok

A modul négy alapvető összetevőből áll:

  1. Valamilyen kódfájl – általában PowerShell-szkript vagy felügyelt parancsmag-szerelvény.

  2. Bármi másra, amire a fenti kódfájlnak szüksége lehet, például további szerelvényekre, súgófájlokra vagy szkriptekre.

  3. A fenti fájlokat leíró jegyzékfájl, valamint metaadatok, például szerzői és verziószámozási információk tárolására szolgál.

  4. Egy könyvtár, amely tartalmazza a fenti tartalmakat, és ahol a PowerShell ésszerűen megtalálhatja azt.

    Megjegyzés

    Ezek az összetevők önmagukban nem szükségesek. Egy modul például technikailag csak egy .psm1 fájlban tárolt szkript lehet. Olyan modult is használhat, amely nem más, mint egy jegyzékfájl, amelyet főként szervezeti célokra használnak. Olyan szkriptet is írhat, amely dinamikusan létrehoz egy modult, és így valójában nincs szükség könyvtárra ahhoz, hogy bármit is tároljon benne. A következő szakaszok a modul különböző részeinek összekeverésével és egymással való egyeztetésével ismertetik a modulok típusait.

Szkriptmodulok

Ahogy a neve is mutatja, a szkriptmodul egy olyan fájl (.psm1), amely bármilyen érvényes Windows PowerShell-kódot tartalmaz. A szkriptfejlesztők és a rendszergazdák az ilyen típusú modulokkal olyan modulokat hozhatnak létre, amelyek tagjai függvényeket, változókat és egyebeket tartalmaznak. A szkriptmodulok lényege, hogy egyszerűen egy másik kiterjesztésű Windows PowerShell-szkript, amely lehetővé teszi a rendszergazdák számára, hogy importáló, exportálási és felügyeleti funkciókat használjanak rajta.

Emellett jegyzékfájlokkal más erőforrásokat is felvehet a modulba, például adatfájlokat, más függő modulokat vagy futtatókörnyezeti szkripteket. A jegyzékfájlok a metaadatok, például a szerzői és verziószámozási információk nyomon követéséhez is hasznosak.

Végül egy szkriptmodult, mint bármely más, nem dinamikusan létrehozott modult, egy olyan mappába kell menteni, amelyet a PowerShell ésszerűen felderíthet. Ez általában a PowerShell-modul elérési útján történik; de szükség esetén explicit módon leírhatja, hogy hol van telepítve a modul. További információ: PowerShell-szkriptmodul írása.

Bináris modulok

A bináris modul egy .NET-keretrendszer-szerelvény (.dll), amely lefordított kódot, például C#-ot tartalmaz. A parancsmagok fejlesztői ilyen típusú modulokkal oszthatnak meg parancsmagokat, szolgáltatókat és egyebeket. (A meglévő beépülő modulok bináris modulként is használhatók.) Egy szkriptmodulhoz képest a bináris modul lehetővé teszi olyan parancsmagok létrehozását, amelyek gyorsabbak, vagy olyan funkciókat (például többszálú szolgáltatásokat) használnak, amelyek nem olyan egyszerűek a Windows PowerShell-szkriptekben.

A szkriptmodulokhoz hasonlóan a modul által használt további erőforrások leírására és a modul metaadatainak nyomon követésére is használhat jegyzékfájlt. Hasonlóképpen, a bináris modult valószínűleg egy mappába kell telepítenie valahol a PowerShell-modul elérési útja mentén. További információ: Hogyan PowerShell bináris modul írása.

Jegyzékmodulok

A jegyzékmodul olyan modul, amely jegyzékfájlt használ az összes összetevő leírásához, de nem rendelkezik alapvető szerelvénysel vagy szkripttel. (Formálisan egy jegyzékmodul üresen hagyja a jegyzékfájl ModuleToProcess vagy RootModule elemét.) Azonban továbbra is használhatja a modul egyéb funkcióit, például a függő szerelvények betöltését vagy bizonyos előfeldolgozási szkriptek automatikus futtatását. A jegyzékmodulokkal kényelmesen csomagolhatja össze a más modulok által használt erőforrásokat, például beágyazott modulokat, szerelvényeket, típusokat vagy formátumokat. További információ: PowerShell-moduljegyzékírása.

Dinamikus modulok

A dinamikus modul olyan modul, amely nem töltődik be fájlból, és nem menthető fájlba. Ehelyett egy szkript dinamikusan hozza létre őket a New-Module parancsmag használatával. Ez a modultípus lehetővé teszi, hogy a szkriptek igény szerint olyan modult hozzanak létre, amelyet nem kell betölteni vagy tartós tárolóba menteni. A dinamikus modul természeténél fogva rövid élettartamú, ezért a Get-Module parancsmag nem érhető el. Hasonlóképpen általában nincs szükségük moduljegyzékekre, és nem valószínű, hogy állandó mappákra van szükségük a kapcsolódó szerelvények tárolásához.

Moduljegyzékek

A moduljegyzék- egy kivonattáblát tartalmazó .psd1 fájl. A kivonattáblában szereplő kulcsok és értékek a következő műveleteket hajtják végre:

  • Írja le a modul tartalmát és attribútumait.

  • Határozza meg az előfeltételeket.

  • Határozza meg az összetevők feldolgozásának módját.

    A modulhoz nem szükséges jegyzékfájl. A modulok hivatkozhatnak szkriptfájlokra (.ps1), szkriptmodulfájlokra (.psm1), jegyzékfájlokra (.psd1), formázási és típusfájlokra (.ps1xml), parancsmagokra és szolgáltatói szerelvényekre (.dll), erőforrásfájlokra, súgófájlokra, honosítási fájlokra vagy a modul részeként csomagolt bármely más fájlra vagy erőforrásra. Nemzetközi szkript esetén a modulmappa üzenetkatalógus-fájlokat is tartalmaz. Ha jegyzékfájlt ad hozzá a modulmappához, a jegyzékre való hivatkozással egyetlen egységként hivatkozhat a több fájlra.

    Maga a jegyzék a következő információkategóriákat írja le:

  • A modul metaadatai, például a modul verziószáma, a szerző és a leírás.

  • A modul importálásához szükséges előfeltételek, például a Windows PowerShell-verzió, a közös nyelvi futtatókörnyezet (CLR) és a szükséges modulok.

  • Irányelvek, például szkriptek, formátumok és feldolgozandó típusok feldolgozása.

  • Az exportálandó modul tagjainak korlátozásai, például az exportálandó aliasok, függvények, változók és parancsmagok.

    További információ: PowerShell-moduljegyzékírása.

Modul tárolása és telepítése

Miután létrehozott egy szkriptet, bináris vagy jegyzékmodult, mentheti a munkáját olyan helyre, ahová mások hozzáférhetnek. A modul például abban a rendszermappában tárolható, amelyben a Windows PowerShell telepítve van, vagy egy felhasználói mappában is tárolható.

Általánosságban elmondható, hogy a modul telepítésének helyét a $Env:PSModulePath változóban tárolt útvonalak egyikével határozhatja meg. Ezen útvonalak egyikének használata azt jelenti, hogy a PowerShell automatikusan megkeresi és betölti a modult, amikor egy felhasználó hívást kezdeményez a kódjában. Ha a modult valahol máshol tárolja, explicit módon tudathatja a PowerShell-lel, ha paraméterként adja meg a modul helyét, amikor meghívja Install-Module.

Ettől függetlenül a mappa elérési útját a modul (ModuleBase) alap nevezik, és a szkript, bináris vagy jegyzékmodul-fájl nevének meg kell egyeznie a modulmappa nevével, az alábbi kivételekkel:

  • A New-Module parancsmag által létrehozott dinamikus modulok a parancsmag Name paraméterével nevezhetők el.

  • A Import-Module -Assembly parancs által szerelvényobjektumokból importált modulok neve a következő szintaxis szerint van elnevezve: "dynamic_code_module_" + assembly.GetName().

    További információ: PowerShell-modul telepítése és about_PSModulePath.

Modulparancsmagok és változók

A modulok létrehozásához és kezeléséhez a Windows PowerShell a következő parancsmagokat és változókat biztosítja.

New-Module parancsmag Ez a parancsmag létrehoz egy új dinamikus modult, amely csak a memóriában létezik. A modul egy szkriptblokkból jön létre, és az exportált tagjai, például a funkciói és változói azonnal elérhetők a munkamenetben, és a munkamenet bezárásáig elérhetők maradnak.

New-ModuleManifest parancsmag Ez a parancsmag létrehoz egy új moduljegyzékfájlt (.psd1) fájlt, feltölti az értékeit, és menti a jegyzékfájlt a megadott elérési útra. Ez a parancsmag egy manuálisan kitölthető moduljegyzék-sablon létrehozásához is használható.

Importálási modul parancsmag Ez a parancsmag egy vagy több modult ad hozzá az aktuális munkamenethez.

Get-Module parancsmag Ez a parancsmag beolvassa az aktuális munkamenetbe importálható vagy importálható modulokra vonatkozó információkat.

Export-ModuleMember parancsmag Ez a parancsmag határozza meg azokat a modultagokat (például parancsmagokat, függvényeket, változókat és aliasokat), amelyeket egy szkriptmodul (.psm1) fájlból vagy a New-Module parancsmag használatával létrehozott dinamikus modulból exportálnak.

Remove-Module parancsmag Ez a parancsmag eltávolítja a modulokat az aktuális munkamenetből.

Test-ModuleManifest parancsmag Ez a parancsmag ellenőrzi, hogy a moduljegyzék pontosan leírja-e a modul összetevőit, és ellenőrzi, hogy a modul jegyzékfájljában (.psd1) szereplő fájlok valóban léteznek-e a megadott elérési utakon.

$PSScriptRoot Ez a változó azt a könyvtárat tartalmazza, amelyből a szkriptmodul végrehajtása folyamatban van. Lehetővé teszi, hogy a szkriptek a modul elérési útját használják más erőforrások eléréséhez.

$Env:PSModulePath Ez a környezeti változó tartalmazza azoknak a könyvtáraknak a listáját, amelyekben a Windows PowerShell-modulok vannak tárolva. A Windows PowerShell ennek a változónak az értékét használja a modulok automatikus importálása és a modulok súgótémaköreinek frissítésekor.

Lásd még:

Windows PowerShell-modul írása