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.
Po zainstalowaniu modułu w systemie prawdopodobnie zechcesz zaimportować moduł. Importowanie to proces, który ładuje moduł do aktywnej pamięci, dzięki czemu użytkownik może uzyskać dostęp do tego modułu w sesji programu PowerShell. W programie PowerShell 2.0 można zaimportować nowo zainstalowany moduł programu PowerShell z wywołaniem polecenia cmdlet Import-Module. W programie PowerShell 3.0 program PowerShell może niejawnie zaimportować moduł, gdy jeden z funkcji lub poleceń cmdlet w module jest wywoływany przez użytkownika. Należy pamiętać, że obie wersje zakładają, że moduł jest instalowany w lokalizacji, w której program PowerShell jest w stanie go znaleźć; Aby uzyskać więcej informacji, zobacz Instalowanie modułu programu PowerShell. Możesz użyć manifestu modułu, aby ograniczyć, które części modułu są eksportowane, i można użyć parametrów wywołania Import-Module, aby ograniczyć importowane części.
Importowanie Snap-In (PowerShell 1.0)
Moduły nie istniały w programie PowerShell 1.0: zamiast tego trzeba było zarejestrować i użyć przystawek. Jednak nie zaleca się używania tej technologii w tym momencie, ponieważ moduły są ogólnie łatwiejsze do zainstalowania i zaimportowania. Aby uzyskać więcej informacji, zobacz How to Create a Windows PowerShell Snap-in.
Importowanie modułu z Import-Module (PowerShell 2.0)
Program PowerShell 2.0 używa odpowiednio nazwanego polecenia cmdlet Import-Module do importowania modułów. Po uruchomieniu tego polecenia cmdlet program Windows PowerShell wyszukuje określony moduł w katalogach określonych w zmiennej PSModulePath. Po znalezieniu określonego katalogu program Windows PowerShell wyszukuje pliki w następującej kolejności: pliki manifestu modułu (.psd1), pliki modułu skryptu (.psm1), pliki modułu binarnego (.dll). Aby uzyskać więcej informacji na temat dodawania katalogów do wyszukiwania, zobacz about_PSModulePath.
Poniższy kod opisuje sposób importowania modułu:
Import-Module myModule
Zakładając, że moduł myModule znajduje się w PSModulePath, program PowerShell załaduje moduł myModule do aktywnej pamięci. Jeśli moduł myModule nie znajduje się w ścieżce PSModulePath, nadal można jawnie poinformować program PowerShell, gdzie go znaleźć:
Import-Module -Name C:\myRandomDirectory\myModule -Verbose
Można również użyć parametru -Verbose, aby określić, co jest eksportowane z modułu i co jest importowane do aktywnej pamięci. Zarówno eksporty, jak i importy ograniczają dane widoczne dla użytkownika: różnica polega na tym, kto kontroluje widoczność. Zasadniczo eksporty są kontrolowane przez kod w module. Natomiast importy są kontrolowane przez wywołanie Import-Module. Aby uzyskać więcej informacji, zobacz Ograniczanie elementów członkowskich importowanychponiżej.
Niejawne importowanie modułu (PowerShell 3.0)
Począwszy od programu Windows PowerShell 3.0, moduły są importowane automatycznie, gdy w poleceniu jest używane dowolne polecenie cmdlet lub funkcja w module. Ta funkcja działa na dowolnym module w katalogu, który jest uwzględniony w wartości PSModulePath zmiennej środowiskowej. Jeśli jednak moduł nie zostanie zapisany na prawidłowej ścieżce, nadal można je załadować przy użyciu jawnej opcji Import-Module opisanej powyżej.
Następujące akcje wyzwalają automatyczne importowanie modułu, nazywane również "automatycznym ładowaniem modułu".
Używanie polecenia cmdlet w poleceniu . Na przykład wpisanie
Get-ExecutionPolicyimportuje moduł Microsoft.PowerShell.Security zawierający polecenie cmdletGet-ExecutionPolicy.Aby uzyskać polecenie, użyj polecenia cmdlet get-command. Na przykład wpisanie
Get-Command Get-JobTriggerimportuje moduł PSScheduledJob zawierający polecenie cmdletGet-JobTrigger. PolecenieGet-Commandzawierające symbole wieloznaczne jest uznawane za odnajdywanie i nie wyzwala importowania modułu.Za pomocą polecenia cmdlet Get-Help uzyskać pomoc dotyczącą polecenia cmdlet. Na przykład wpisanie
Get-Help Get-WinEventimportuje moduł Microsoft.PowerShell.Diagnostics zawierający polecenie cmdletGet-WinEvent.
Aby obsługiwać automatyczne importowanie modułów, polecenie cmdlet Get-Command pobiera wszystkie polecenia cmdlet i funkcje we wszystkich zainstalowanych modułach, nawet jeśli moduł nie zostanie zaimportowany do sesji. Aby uzyskać więcej informacji, zobacz temat pomocy dla polecenia cmdlet Get-Command.
Proces importowania
Po zaimportowaniu modułu zostanie utworzony nowy stan sesji dla modułu, a obiekt System.Management.Automation.PSModuleInfo jest tworzony w pamięci. Dla każdego zaimportowanego modułu jest tworzony stan sesji (obejmuje to moduł główny i wszystkie zagnieżdżone moduły). Elementy członkowskie wyeksportowane z modułu głównego, w tym wszystkie elementy członkowskie wyeksportowane do modułu głównego przez wszystkie zagnieżdżone moduły, są następnie importowane do stanu sesji obiektu wywołującego.
Metadane elementów członkowskich wyeksportowanych z modułu mają właściwość ModuleName. Ta właściwość jest wypełniana nazwą modułu, który je wyeksportował.
Ostrzeżenie
Jeśli nazwa wyeksportowanego elementu członkowskiego używa czasownika niezatwierdzonego lub jeśli nazwa elementu członkowskiego używa znaków z ograniczeniami, podczas uruchamiania polecenia cmdlet Import-Module.
Domyślnie polecenie cmdlet Import-Module nie zwraca żadnych obiektów do potoku. Jednak polecenie cmdlet obsługuje parametr PassThru, który może służyć do zwracania obiektu System.Management.Automation.PSModuleInfo dla każdego zaimportowanego modułu. Aby wysłać dane wyjściowe do hosta, użytkownicy powinni uruchomić polecenie cmdlet Write-Host.
Ograniczanie importowanych elementów członkowskich
Gdy moduł jest importowany przy użyciu polecenia cmdlet import-module, domyślnie wszystkie wyeksportowane elementy członkowskie modułu są importowane do sesji, w tym wszystkie polecenia wyeksportowane do modułu zagnieżdżonego. Domyślnie zmienne i aliasy nie są eksportowane. Aby ograniczyć wyeksportowane elementy członkowskie, użyj manifestu modułu . Aby ograniczyć zaimportowane elementy członkowskie, użyj następujących parametrów polecenia cmdlet Import-Module.
funkcja: ten parametr ogranicza eksportowane funkcje. (Jeśli używasz manifestu modułu, zobacz klucz FunctionsToExport).
` cmdlet: ten parametr ogranicza wyeksportowane polecenia cmdlet (jeśli używasz manifestu modułu, zobacz klucz CmdletsToExport).
zmiennej: ten parametr ogranicza wyeksportowane zmienne (jeśli używasz manifestu modułu, zobacz klucz VariablesToExport).
Alias: ten parametr ogranicza aliasy wyeksportowane (jeśli używasz manifestu modułu, zobacz aliasesToExport key).