Bináris PowerShell-modul írása
A bináris modul bármilyen olyan szerelvény (.dll) lehet, amely parancsmagosztályokat tartalmaz. Alapértelmezés szerint a bináris modul importálja a szerelvény összes parancsmagját. Az importált parancsmagokat azonban korlátozhatja egy olyan moduljegyzék létrehozásával, amelynek gyökérmodulja a szerelvény. (Például a jegyzékfájl CmdletsToExport kulcsa csak a szükséges parancsmagok exportálására használható.) A bináris modulok emellett további fájlokat, könyvtárstruktúrát és más hasznos felügyeleti információkat is tartalmazhatnak, amelyek egyetlen parancsmagban nem lehetnek használhatók.
Az alábbi eljárás egy bináris PowerShell-modul létrehozásához és telepítéséhez szükséges lépéseket ismerteti.
Bináris PowerShell-modul létrehozása és telepítése
Hozzon létre egy bináris PowerShell-megoldást (például egy C#-ban írt parancsmagot) a szükséges képességekkel, és ellenőrizze, hogy megfelelően fut-e.
A kód szempontjából a bináris modulok magja egyszerűen egy parancsmag-szerelvény. A PowerShell egyetlen parancsmag-szerelvényt fog modulként kezelni a betöltés és a eltávolítása szempontjából, a fejlesztő részéről azonban nem kell további munkát igényelni. További információ a parancsmagok írásról: Writing a Windows PowerShell Cmdlet.
Ha szükséges, hozza létre a megoldás többi részét: (további parancsmagokat, XML-fájlokat stb.), és írja le őket egy moduljegyzékben.
A megoldásban található parancsmag-szerelvények leírása mellett egy moduljegyzék leírhatja, hogyan szeretné exportálni és importálni a modult, milyen parancsmagokat fog elérhetővé téve, és milyen további fájlokat fog tartalmazni a modul. Ahogy korábban már említettük, a PowerShell a bináris parancsmagokat modulként kezeli, további erőfeszítés nélkül. Ezért a moduljegyzék főleg több fájl egyetlen csomagban való kombinálására, vagy egy adott szerelvény közzétételének explicit szabályozására hasznos. További információ: PowerShell-moduljegyzék írása.
Az alábbi kód egy rendkívül egyszerű C#-kódblokk, amely három parancsmagot tartalmaz ugyanabban a fájlban, amely modulként használható.
using System.Management.Automation; // Windows PowerShell namespace. namespace ModuleCmdlets { [Cmdlet(VerbsDiagnostic.Test,"BinaryModuleCmdlet1")] public class TestBinaryModuleCmdlet1Command : Cmdlet { protected override void BeginProcessing() { WriteObject("BinaryModuleCmdlet1 exported by the ModuleCmdlets module."); } } [Cmdlet(VerbsDiagnostic.Test, "BinaryModuleCmdlet2")] public class TestBinaryModuleCmdlet2Command : Cmdlet { protected override void BeginProcessing() { WriteObject("BinaryModuleCmdlet2 exported by the ModuleCmdlets module."); } } [Cmdlet(VerbsDiagnostic.Test, "BinaryModuleCmdlet3")] public class TestBinaryModuleCmdlet3Command : Cmdlet { protected override void BeginProcessing() { WriteObject("BinaryModuleCmdlet3 exported by the ModuleCmdlets module."); } } }
Csomagolja be a megoldást, és mentse a csomagot a PowerShell-modul elérési útján található helyre.
A globális környezeti változó azokat az alapértelmezett elérési utakat írja le, amelyek használatával a
PSModulePath
PowerShell megkeresi a modult. Egy modul rendszeren való mentésének gyakori elérési útja például a%SystemRoot%\users\<user>\Documents\WindowsPowerShell\Modules\<moduleName>
következő lenne: . Ha nem az alapértelmezett elérési utakat használja, a telepítés során explicit módon meg kell határoznia a modul helyét. Mindenképpen hozzon létre egy mappát a modul mentéséhez, mivel szükség lehet arra, hogy a mappában több szerelvényt és fájlt tároljon a megoldáshoz.Vegye figyelembe, hogy technikailag nem kell a helyen telepítenie a modult – ezek egyszerűen azok az alapértelmezett helyek, ahol a
PSModulePath
PowerShell keresni fogja a modult. Ez azonban ajánlott eljárás, hacsak nincs jó oka arra, hogy máshol tárolja a modult. További információ: PowerShell-modul telepítése és about_PSModulePath.Importálja a modult a PowerShellbe az Import-Module hívásával.
Az Import-Module hívása betölti a modult az aktív memóriába. Ha a PowerShell 3.0-s vagy újabb rendszerét használja, a modul nevének a kódban való meghívása szintén importálni fogja; További információ: PowerShell-modul importálása.
Beépülő modul szerelvények importálása modulokként
A beépülő modulokban található parancsmagok és szolgáltatók bináris modulként tölthetők be. Ha a beépülő modul szerelvényei bináris modulként töltődnek be, a beépülő modul parancsmagjai és szolgáltatói elérhetők a felhasználó számára, de a beépülő modul osztálya figyelmen kívül lesz hagyva, és a beépülő modul nincs regisztrálva. Ennek eredményeképpen a Windows PowerShell által biztosított beépülő modul parancsmagok nem észlelik a beépülő modult, annak ellenére, hogy a parancsmagok és szolgáltatók elérhetők a munkamenet számára.
Emellett a beépülő modul által hivatkozott formázási és típusfájlokat nem lehet bináris modul részeként importálni. A formázási és típusfájlok importálásához létre kell hoznia egy moduljegyzéket. Lásd: PowerShell-moduljegyzék írása.
Lásd még:
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: