Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Moduł binarny może być dowolnym zestawem (.dll), który zawiera klasy poleceń cmdlet. Domyślnie wszystkie polecenia cmdlet w zestawie są importowane po zaimportowaniu modułu binarnego. Można jednak ograniczyć polecenia cmdlet importowane przez utworzenie manifestu modułu, którego moduł główny jest zestawem. (Na przykład klucz cmdletsToExport manifestu może służyć do eksportowania tylko tych poleceń cmdlet, które są potrzebne). Ponadto moduł binarny może zawierać dodatkowe pliki, strukturę katalogów i inne przydatne informacje o zarządzaniu, których nie może zawierać pojedyncze polecenie cmdlet.
Poniższa procedura opisuje sposób tworzenia i instalowania modułu binarnego programu PowerShell.
Jak utworzyć i zainstalować moduł binarny programu PowerShell
Utwórz binarne rozwiązanie programu PowerShell (takie jak polecenie cmdlet napisane w języku C#), z potrzebnymi możliwościami i upewnij się, że działa prawidłowo.
Z perspektywy kodu rdzeniem modułu binarnego jest zestaw poleceń cmdlet. W rzeczywistości program PowerShell traktuje pojedynczy zestaw poleceń cmdlet jako moduł do ładowania i zwalniania, bez dodatkowego nakładu pracy ze strony dewelopera. Aby uzyskać więcej informacji na temat pisania polecenia cmdlet, zobacz Pisanie polecenia cmdlet programu Windows PowerShell.
W razie potrzeby utwórz resztę rozwiązania: (dodatkowe polecenia cmdlet, pliki XML itd.) i opisz je za pomocą manifestu modułu.
Oprócz opisywania zestawów poleceń cmdlet w rozwiązaniu manifest modułu może opisać, jak chcesz wyeksportować i zaimportować moduł, jakie polecenia cmdlet zostaną ujawnione i jakie dodatkowe pliki zostaną wprowadzone do modułu. Jak wspomniano wcześniej, program PowerShell może traktować polecenie cmdlet binarne, takie jak moduł, bez dodatkowego nakładu pracy. W związku z tym manifest modułu jest przydatny głównie w przypadku łączenia wielu plików w jeden pakiet lub jawnego kontrolowania publikacji dla danego zestawu. Aby uzyskać więcej informacji, zobacz Jak napisać manifest modułu programu PowerShell.
Poniższy kod jest uproszczonym przykładem języka C#, który zawiera trzy polecenia cmdlet w tym samym pliku, którego można użyć jako modułu.
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."); } } }Spakuj rozwiązanie i zapisz pakiet w miejscu w ścieżce modułu programu PowerShell.
Globalna zmienna
$env:PSModulePathśrodowiskowa opisuje domyślne ścieżki używane przez program PowerShell do zlokalizowania modułu. Na przykład typową ścieżką do zapisania modułu w systemie będzie%SystemRoot%\Users\<user>\Documents\WindowsPowerShell\Modules\<moduleName>. Jeśli nie używasz ścieżek domyślnych, musisz jawnie ustawić lokalizację modułu podczas instalacji. Pamiętaj, aby utworzyć folder do zapisania modułu, ponieważ może być potrzebny folder do przechowywania wielu zestawów i plików dla rozwiązania.Technicznie nie musisz instalować modułu w dowolnym miejscu na stronie
$env:PSModulePath— są to po prostu domyślne lokalizacje, które program PowerShell będzie szukać w module. Jednak jest to uważane za najlepsze rozwiązanie, chyba że masz dobry powód przechowywania modułu w innym miejscu. Aby uzyskać więcej informacji, zobacz Instalowanie modułu programu PowerShell i about_PSModulePath.Zaimportuj moduł do programu PowerShell za pomocą wywołania polecenia Import-Module.
Wywołanie polecenia Import-Module powoduje załadowanie modułu do aktywnej pamięci. Jeśli używasz programu PowerShell 3.0 lub nowszego, wywołanie polecenia z modułu w kodzie spowoduje również zaimportowanie go. Aby uzyskać więcej informacji, zobacz Importowanie modułu programu PowerShell.
Inicjowanie modułu i oczyszczanie kodu
Jeśli moduł musi wykonać czynności po zaimportowaniu lub usunięciu, takim jak zadanie odnajdywania lub inicjowanie, możesz zaimplementować IModuleAssemblyInitializer interfejsy i IModuleAssemblyCleanup .
Uwaga / Notatka
Ten wzorzec jest odradzany, chyba że jest to absolutnie konieczne. Aby zachować możliwość działania programu PowerShell, należy z opóźnieniem załadować elementy w momencie, w którym polecenia są wywoływane, a nie podczas importowania.
Importowanie zestawów przystawki jako modułów
Polecenia cmdlet i dostawcy, którzy istnieją w zestawach przystawki, mogą być ładowane jako moduły binarne. Gdy zestawy przystawki są ładowane jako moduły binarne, polecenia cmdlet i dostawcy w przystawce są dostępne dla użytkownika, ale przystawka w zestawie jest ignorowana, a przystawka nie jest zarejestrowana. W związku z tym polecenia cmdlet przystawki udostępniane przez program Windows PowerShell nie mogą wykryć przystawki, mimo że polecenia cmdlet i dostawcy są dostępne dla sesji.
Ponadto nie można zaimportować żadnych plików formatowania lub typów, do których odwołuje się przystawka, jako części modułu binarnego. Aby zaimportować pliki formatowania i typów, należy utworzyć manifest modułu. Zobacz Jak napisać manifest modułu programu PowerShell.