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


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

  1. 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.

  2. 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.");
          }
      }
    
    }
    
  3. 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.

  4. 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:

Windows PowerShell-modul írása