Udostępnij za pomocą


Omówienie modułu programu Windows PowerShell

Moduł jest zestawem powiązanych funkcji środowiska Windows PowerShell, pogrupowanych razem jako wygodnej jednostki (zwykle zapisywanej w jednym katalogu). Definiując zestaw powiązanych plików skryptów, zestawów i powiązanych zasobów jako modułu, możesz odwoływać się do, ładować, utrwalać i udostępniać kod znacznie łatwiej niż w przeciwnym razie.

Głównym celem modułu jest umożliwienie modułyzacji (tj. ponownego użycia i abstrakcji) kodu programu Windows PowerShell. Na przykład najbardziej podstawowym sposobem tworzenia modułu jest po prostu zapisanie skryptu programu Windows PowerShell jako pliku .psm1. Dzięki temu można kontrolować (tj. upublicznić lub prywatnie) funkcje i zmienne zawarte w skrycie. Zapisanie skryptu jako pliku .psm1 umożliwia również kontrolowanie zakresu określonych zmiennych. Na koniec możesz również użyć poleceń cmdlet, takich 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 elementy, 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 tworzeniu i przechowywania wersji.

  4. Katalog zawierający całą powyższą zawartość i znajduje się tam, gdzie program PowerShell może go znaleźć w rozsądny sposób.

    Uwaga

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

Moduły skryptów

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

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

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 rozsądnie odnaleźć. Zazwyczaj znajduje się to na ścieżce modułu programu PowerShell; ale w razie potrzeby możesz jawnie opisać miejsce instalacji modułu. Aby uzyskać więcej informacji, zobacz Jak napisać moduł skryptu programu PowerShell.

Moduły binarne

Moduł binarny to zestaw .NET Framework (.dll), który zawiera skompilowany kod, taki jak C#. Deweloperzy poleceń cmdlet mogą używać tego typu modułu do udostępniania poleceń 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 umożliwia tworzenie poleceń cmdlet, które są szybsze lub korzystają z funkcji (takich jak wielowątkowe), które nie są tak łatwe do kodowania w skryptach programu Windows PowerShell.

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 How to Write a PowerShell Binary Module.

Moduły manifestu

Moduł manifestu to moduł, który używa pliku manifestu do opisania wszystkich jego składników, ale nie ma żadnego podstawowego zestawu ani skryptu. (Formalnie moduł manifestu pozostawia element ModuleToProcess lub RootModule manifestu pusty). 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 spakowania zasobów, które będą używane przez inne moduły, takie jak zagnieżdżone moduły, zestawy, typy lub formaty. Aby uzyskać więcej informacji, zobacz Jak napisać manifest modułu programu PowerShell.

Moduły dynamiczne

Moduł dynamiczny to moduł, który nie jest ładowany z pliku lub zapisywany w pliku. Zamiast tego są one tworzone dynamicznie przez skrypt 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. Ze względu na jego charakter moduł dynamiczny ma być krótkotrwały i dlatego nie można uzyskać do tego dostępu za pomocą polecenia cmdlet Get-Module. Podobnie zwykle nie potrzebują manifestów modułów ani prawdopodobnie nie potrzebują stałych folderów do przechowywania powiązanych zestawów.

Manifesty modułów

Manifest modułu to plik .psd1 zawierający tabelę skrótów. Klucze i wartości w tabeli skrótów wykonują następujące czynności:

  • Opisz zawartość i atrybuty modułu.

  • Zdefiniuj wymagania wstępne.

  • Określanie sposobu przetwarzania składników.

    Manifesty nie są wymagane dla modułu. Moduły mogą odwoływać się do plików skryptów (.ps1), plików modułów skryptu (.psm1), plików manifestu (.psd1), formatowania i typów plików (.ps1xml), zestawów poleceń cmdlet i dostawców (.dll), plików zasobów, plików Pomocy, plików lokalizacji lub dowolnego innego typu pliku lub zasobu, który jest powiązany z modułem. W przypadku skryptu międzynarodowego folder modułu zawiera również zestaw plików wykazu komunikatów. Jeśli dodasz plik manifestu do folderu modułu, możesz odwołać się do wielu plików jako jedną jednostkę, 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 wersja środowiska Windows PowerShell, wersja środowiska uruchomieniowego języka wspólnego (CLR) i wymagane moduły.

  • Przetwarzanie dyrektyw, takich jak skrypty, formaty i typy do przetworzenia.

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

    Aby uzyskać więcej informacji, zobacz 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órej inni mogą uzyskiwać dostęp. Na przykład moduł może być przechowywany w folderze systemowym, w którym jest zainstalowany program Windows PowerShell, lub może być przechowywany w folderze użytkownika.

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

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

  • Moduły dynamiczne tworzone przez polecenie cmdlet New-Module mogą mieć nazwę przy użyciu parametru Name polecenia cmdlet.

  • Moduły importowane z obiektów zestawu za pomocą polecenia Import-Module -Assembly są nazwane zgodnie 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 i zmienne modułu

Następujące polecenia cmdlet i zmienne są udostępniane przez program Windows PowerShell na potrzeby 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 jego 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. To polecenie 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 jeden lub więcej modułów do bieżącej sesji.

get-module cmdlet To polecenie cmdlet pobiera informacje o modułach, które zostały lub które można zaimportować do bieżącej sesji.

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

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, sprawdzając, czy pliki wymienione w pliku manifestu modułu (.psd1) rzeczywiście istnieją w określonych ścieżkach.

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

$Env:PSModulePath Ta zmienna środowiskowa zawiera listę katalogów, w których są przechowywane moduły programu Windows PowerShell. Program 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