Informacje o module programu Windows PowerShell

Moduł to zestaw powiązanych funkcji Windows PowerShell zgrupowanych razem jako wygodna jednostka (zwykle zapisywana w jednym katalogu). Definiując zestaw powiązanych plików skryptów, zestawów i powiązanych zasobów jako moduł, można odwoływać się do kodu, ładować go, utrwalać i udostępniać go znacznie łatwiej niż w innym przypadku.

Głównym celem modułu jest umożliwienie modułyzacji (tj. ponownego użycia i abstrakcji) Windows PowerShell kodu. Na przykład najbardziej podstawowym sposobem tworzenia modułu jest po prostu zapisanie skryptu Windows PowerShell jako pliku psm1. Dzięki temu można kontrolować (tj. publicznie lub prywatnie) funkcje i zmienne zawarte w skrypcie. Zapisanie skryptu jako pliku psm1 umożliwia również kontrolowanie zakresu niektórych zmiennych. Na koniec można również użyć polecenia cmdlet, takiego jak Install-Module, do organizowania, instalowania i używania skryptu jako bloków konstrukcyjnych dla większych rozwiązań.

Składniki i typy modułów

Moduł składa się z czterech podstawowych składników:

  1. Jakiś plik kodu — zazwyczaj skrypt programu PowerShell lub zarządzany zestaw poleceń cmdlet.

  2. Wszystkie inne dane, których może potrzebować powyższy plik kodu, takie jak dodatkowe zestawy, pliki pomocy lub skrypty.

  3. Plik manifestu, który opisuje powyższe pliki, a także przechowuje metadane, takie jak informacje o autorze i wersji.

  4. Katalog, który zawiera całą zawartość powyżej i znajduje się tam, gdzie program PowerShell może ją względnie znaleźć.

    Uwaga

    Żaden z tych składników samodzielnie nie jest konieczny. Na przykład moduł może być technicznie tylko skryptem przechowywanym w pliku psm1. Możesz również mieć moduł, który jest niczym innym, jak plikiem manifestu, który jest używany głównie do celów organizacyjnych. Możesz również napisać skrypt, który dynamicznie tworzy moduł i w związku z tym w rzeczywistości nie potrzebuje katalogu do przechowywania czegokolwiek. W poniższych sekcjach opisano typy modułów, które można uzyskać, łącząc i dopasowując różne możliwe części modułu.

Moduły skryptów

Jak sama nazwa wskazuje, moduł skryptu jest plikiem ( .psm1 ), który zawiera dowolny prawidłowy Windows PowerShell kodu. Deweloperzy skryptów i administratorzy mogą używać tego typu modułu do tworzenia modułów, których składowe obejmują funkcje, zmienne i nie tylko. W centrum modułu skryptu jest po prostu Windows PowerShell skrypt z innym rozszerzeniem, co umożliwia administratorom korzystanie z funkcji importowania, eksportowania i zarządzania.

Ponadto możesz użyć pliku manifestu, aby uwzględnić w module inne zasoby, takie jak pliki danych, inne moduły zależne lub skrypty środowiska uruchomieniowego. Pliki manifestu są również przydatne do śledzenia metadanych, takich jak informacje o autorach i wersjach.

Na koniec moduł skryptu, podobnie jak każdy inny moduł, który nie jest tworzony dynamicznie, musi zostać zapisany w folderze, który program PowerShell może względnie wykryć. Zwykle znajduje się on w ścieżce modułu programu PowerShell. Ale w razie potrzeby możesz jawnie opisać miejsce instalacji modułu. Aby uzyskać więcej informacji, zobacz How to Write a PowerShell Script Module (Jak napisać moduł skryptu programu PowerShell).

Moduły binarne

Moduł binarny to zestaw .NET Framework ( ), który zawiera .dll skompilowany kod, taki jak C#. Deweloperzy polecenia cmdlet mogą używać tego typu modułu do udostępniania polecenia cmdlet, dostawców i nie tylko. (Istniejące przystawki mogą być również używane jako moduły binarne). W porównaniu z modułem skryptu moduł binarny pozwala tworzyć polecenia cmdlet, które są szybsze lub używają funkcji (takich jak wielowątkowanie), które nie są tak łatwe do zakodowania w skryptach Windows PowerShell skryptów.

Podobnie jak w przypadku modułów skryptów, możesz dołączyć plik manifestu, aby opisać dodatkowe zasoby używane przez moduł oraz śledzić metadane dotyczące modułu. Podobnie prawdopodobnie należy zainstalować moduł binarny w folderze gdzieś wzdłuż ścieżki modułu programu PowerShell. Aby uzyskać więcej informacji, zobacz How to Write a PowerShell Binary Module (Jak napisać moduł binarny programu PowerShell).

Moduły manifestu

Moduł manifestu to moduł, który używa pliku manifestu do opisywania wszystkich jego składników, ale nie ma żadnego podstawowego zestawu ani skryptu. (Formalnie moduł manifestu pozostawia ModuleToProcess pusty RootModule element manifestu lub ). Można jednak nadal używać innych funkcji modułu, takich jak możliwość ładowania zestawów zależnych lub automatycznego uruchamiania niektórych skryptów przetwarzania wstępnego. Możesz również użyć modułu manifestu jako wygodnego sposobu pakowania zasobów, których będą używać inne moduły, takich jak moduły zagnieżdżone, zestawy, typy lub formaty. Aby uzyskać więcej informacji, zobacz How to Write a PowerShell Module Manifest (Jak napisać manifest modułu programu PowerShell).

Moduły dynamiczne

Moduł dynamiczny to moduł, który nie jest ładowany z pliku ani w pliku nie jest zapisywany. Zamiast tego są one tworzone dynamicznie za pomocą skryptu przy użyciu polecenia cmdlet New-Module. Ten typ modułu umożliwia skryptowi utworzenie modułu na żądanie, który nie musi być ładowany ani zapisywany w magazynie trwałym. Z natury moduł dynamiczny ma być krótkotrwały i dlatego nie można uzyskać do niego dostępu za pomocą Get-Module polecenia cmdlet . Podobnie zazwyczaj nie potrzebują manifestów modułów ani prawdopodobnie nie potrzebują folderów trwałych do przechowywania powiązanych zestawów.

Manifesty modułów

Manifest modułu to .psd1 plik, który zawiera tabelę skrótów. Klucze i wartości w tabeli skrótów wykonaj następujące czynności:

  • Opis zawartości i atrybutów modułu.

  • Zdefiniuj wymagania wstępne.

  • Określ sposób przetwarzania składników.

    Manifesty nie są wymagane dla modułu. Moduły mogą odwoływać się do plików skryptów ( ), plików modułu skryptu (), plików manifestu ( ), plików formatowania i typów ( ), zestawów .ps1 .psm1 .psd1 .ps1xml cmdlet i dostawców ( ), plików zasobów, plików .dll pomocy, plików lokalizacji lub dowolnego innego typu pliku lub zasobu, które są powiązane w ramach modułu. W przypadku międzynarodowych skryptów folder module zawiera również zestaw plików katalogu komunikatów. Jeśli dodasz plik manifestu do folderu modułu, możesz odwoływać się do wielu plików jako pojedynczej jednostki, odwołując się do manifestu.

    Sam manifest opisuje następujące kategorie informacji:

  • Metadane dotyczące modułu, takie jak numer wersji modułu, autor i opis.

  • Wymagania wstępne wymagane do zaimportowania modułu, takie jak Windows PowerShell, wersja środowiska uruchomieniowego języka wspólnego (CLR) i wymagane moduły.

  • Dyrektywy przetwarzania, takie jak skrypty, formaty i typy do przetworzenia.

  • Ograniczenia dotyczące elementów członkowskich modułu do wyeksportowania, takie jak aliasy, funkcje, zmienne i polecenia cmdlet do wyeksportowania.

    Aby uzyskać więcej informacji, zobacz How to Write a PowerShell Module Manifest (Jak napisać manifest modułu programu PowerShell).

Przechowywanie i instalowanie modułu

Po utworzeniu skryptu, pliku binarnego lub modułu manifestu możesz zapisać swoją pracę w lokalizacji, do których inne osoby mogą uzyskać do niego dostęp. Na przykład moduł może być przechowywany w folderze systemowym, Windows PowerShell zainstalowany lub w folderze użytkownika.

Ogólnie rzecz biorąc, można określić, gdzie należy zainstalować moduł, używając jednej ze ścieżek przechowywanych w $ENV:PSModulePath zmiennej . Użycie jednej z tych ścieżek oznacza, że program PowerShell może automatycznie znaleźć i załadować moduł, gdy użytkownik wywoła go w kodzie. Jeśli przechowujesz moduł w innym miejscu, możesz jawnie poindać programowi PowerShell, przekazując lokalizację modułu jako parametr podczas wywołania polecenia Install-Module .

Niezależnie od tego ścieżka folderu jest określana jako podstawa modułu (ModuleBase), a nazwa skryptu, pliku binarnego lub pliku modułu manifestu powinna być taka sama jak nazwa folderu modułu z następującymi wyjątkami:

  • Moduły dynamiczne tworzone za pomocą polecenia New-Module cmdlet można nazwać przy użyciu Name parametru polecenia cmdlet .

  • Moduły zaimportowane z obiektów zestawu przez polecenie mają nazwy Import-Module -Assembly zgodne z następującą składnią: "dynamic_code_module_" + assembly.GetName() .

    Aby uzyskać więcej informacji, zobacz Instalowanie modułu programu PowerShell i about_PSModulePath.

Polecenia cmdlet modułu i zmienne

Następujące polecenia cmdlet i zmienne są udostępniane przez Windows PowerShell tworzenia modułów i zarządzania nimi.

Polecenie cmdlet New-Module To polecenie cmdlet tworzy nowy moduł dynamiczny, który istnieje tylko w pamięci. Moduł jest tworzony na podstawie bloku skryptu, a jego wyeksportowane elementy członkowskie, takie jak funkcje i zmienne, są natychmiast dostępne w sesji i pozostają dostępne do momentu zamknięcia sesji.

Polecenie cmdlet New-ModuleManifest To polecenie cmdlet tworzy nowy plik manifestu modułu (psd1), wypełnia jego wartości i zapisuje plik manifestu w określonej ścieżce. Tego polecenia cmdlet można również użyć do utworzenia szablonu manifestu modułu, który można wypełnić ręcznie.

Polecenie cmdlet Import-Module To polecenie cmdlet dodaje co najmniej jeden moduł do bieżącej sesji.

Get-Module polecenia cmdlet to polecenie cmdlet pobiera informacje o modułach, które zostały lub które można zaimportować do bieżącej sesji.

Polecenie cmdlet Export-ModuleMember To polecenie cmdlet określa elementy członkowskie modułu (takie jak polecenia cmdlet, funkcje, zmienne i aliasy), które są eksportowane z pliku modułu skryptu (psm1) lub z modułu dynamicznego utworzonego za pomocą New-Module polecenia cmdlet .

Polecenie cmdlet Remove-Module To polecenie cmdlet usuwa moduły z bieżącej sesji.

Polecenie cmdlet Test-ModuleManifest To polecenie cmdlet sprawdza, czy manifest modułu dokładnie opisuje składniki modułu, weryfikując, czy pliki wymienione w pliku manifestu modułu (psd1) faktycznie istnieją w określonych ścieżkach.

$PSScriptRoot ta zmienna zawiera katalog, z którego jest wykonywany moduł skryptu. Umożliwia skryptom używanie ścieżki modułu do uzyskiwania dostępu do innych zasobów.

$env:PSModulePath Ta zmienna środowiskowa zawiera listę katalogów, w których są Windows PowerShell moduły. Windows PowerShell używa wartości tej zmiennej podczas automatycznego importowania modułów i aktualizowania tematów pomocy dla modułów.

Zobacz też

Pisanie modułu programu Windows PowerShell