Udostępnij za pośrednictwem


Import-Module

Dodaje moduły do bieżącej sesji.

Składnia

Import-Module
      [-Global]
      [-Prefix <String>]
      [-Name] <String[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-PassThru]
      [-AsCustomObject]
      [-MinimumVersion <Version>]
      [-MaximumVersion <String>]
      [-RequiredVersion <Version>]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>]
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-Name] <String[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-PassThru]
      [-AsCustomObject]
      [-MinimumVersion <Version>]
      [-MaximumVersion <String>]
      [-RequiredVersion <Version>]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>]
      -PSSession <PSSession>
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-Name] <String[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-PassThru]
      [-AsCustomObject]
      [-MinimumVersion <Version>]
      [-MaximumVersion <String>]
      [-RequiredVersion <Version>]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>]
      -CimSession <CimSession>
      [-CimResourceUri <Uri>]
      [-CimNamespace <String>]
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-FullyQualifiedName] <ModuleSpecification[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-PassThru]
      [-AsCustomObject]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>]
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-FullyQualifiedName] <ModuleSpecification[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-PassThru]
      [-AsCustomObject]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>]
      -PSSession <PSSession>
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-Assembly] <Assembly[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-PassThru]
      [-AsCustomObject]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>]
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-PassThru]
      [-AsCustomObject]
      [-ModuleInfo] <PSModuleInfo[]>
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>]
      [<CommonParameters>]

Opis

Polecenie cmdlet Import-Module dodaje jeden lub więcej modułów do bieżącej sesji. Importowane moduły muszą być zainstalowane na komputerze lokalnym lub komputerze zdalnym.

Począwszy od programu PowerShell 3.0, zainstalowane moduły są automatycznie importowane do sesji podczas korzystania z dowolnych poleceń lub dostawców w module. Można jednak nadal użyć polecenia Import-Module, aby zaimportować moduł i włączyć i wyłączyć automatyczne importowanie modułów przy użyciu zmiennej preferencji $PSModuleAutoloadingPreference. Aby uzyskać więcej informacji na temat modułów, zobacz about_Modules. Aby uzyskać więcej informacji na temat zmiennej $PSModuleAutoloadingPreference, zobacz about_Preference_Variables.

Moduł to pakiet zawierający elementy członkowskie, których można używać w programie PowerShell. Elementy członkowskie obejmują polecenia cmdlet, dostawców, skrypty, funkcje, zmienne i inne narzędzia i pliki. Po zaimportowaniu modułu można użyć członków modułu w sesji.

Aby zaimportować moduł, użyj parametrów Name, Assembly, ModuleInfo, MinimumVersion i parametrów RequiredVersion, aby zidentyfikować moduł do zaimportowania. Domyślnie Import-Module importuje wszystkie elementy członkowskie eksportowane przez moduł, ale można użyć aliasu, funkcjicmdleti parametrów zmiennej, aby ograniczyć importowane elementy członkowskie. Można również użyć parametru NoClobber, aby uniemożliwić Import-Module importowanie elementów członkowskich o takich samych nazwach jak elementy członkowskie w bieżącej sesji.

Import-Module importuje moduł tylko do bieżącej sesji. Aby zaimportować moduł do wszystkich sesji, dodaj polecenie Import-Module do profilu programu PowerShell. Aby uzyskać więcej informacji na temat profilów, zobacz about_Profiles.

Począwszy od programu Windows PowerShell 3.0, można użyć Import-Module do zaimportowania modułów usługi Common Information Model (CIM), w których polecenia cmdlet są zdefiniowane w plikach XML definicji polecenia cmdlet (CDXML). Ta funkcja umożliwia używanie poleceń cmdlet, które są implementowane w zestawach kodu niezarządzanego, takich jak te napisane w języku C++.

Dzięki tym nowym funkcjom polecenie cmdlet Import-Module staje się podstawowym narzędziem do zarządzania heterogenicznymi przedsiębiorstwami, które obejmują komputery z systemem operacyjnym Windows i komputerami z innymi systemami operacyjnymi.

Aby zarządzać komputerami zdalnymi z systemem operacyjnym Windows z włączoną obsługą komunikacji zdalnej programu PowerShell i programu PowerShell, utwórz PSSession na komputerze zdalnym, a następnie użyj parametru PSSession programu Get-Module, aby pobrać moduły programu PowerShell w programu PSSession. Podczas importowania modułów, a następnie używania zaimportowanych poleceń w bieżącej sesji polecenia są uruchamiane niejawnie w PSSession na komputerze zdalnym. Tej strategii można użyć do zarządzania komputerem zdalnym.

Podobną strategię można użyć do zarządzania komputerami, które nie mają włączonej komunikacji zdalnej programu PowerShell, w tym komputerów, które nie korzystają z systemu operacyjnego Windows, oraz komputerów z systemem Windows z programem PowerShell, ale nie mają włączonej komunikacji zdalnej programu PowerShell.

Zacznij od utworzenia sesji modelu CIM na komputerze zdalnym, który jest połączeniem z instrumentacją zarządzania Windows (WMI) na komputerze zdalnym. Następnie użyj CIMSession parametru Import-Module, aby zaimportować moduły CIM z komputera zdalnego. Po zaimportowaniu modułu CIM, a następnie uruchomieniu zaimportowanych poleceń, polecenia są uruchamiane niejawnie na komputerze zdalnym. Tę strategię WMI i CIM można użyć do zarządzania komputerem zdalnym.

Przykłady

Przykład 1. Importowanie członków modułu do bieżącej sesji

W tym przykładzie do bieżącej sesji zaimportowane są elementy członkowskie modułu PSDiagnostics. Nazwa nazwa parametru jest opcjonalna i może zostać pominięta.

Import-Module -Name PSDiagnostics

Domyślnie Import-Module nie generuje żadnych danych wyjściowych podczas importowania modułu. Aby zażądać danych wyjściowych, użyj parametru PassThru lub AsCustomObject lub parametru Verbose.

Przykład 2. Importowanie wszystkich modułów określonych przez ścieżkę modułu

Ten przykład importuje wszystkie dostępne moduły w ścieżce określonej przez zmienną środowiskową $env:PSModulePath do bieżącej sesji.

Get-Module -ListAvailable | Import-Module

Przykład 3. Importowanie elementów członkowskich kilku modułów do bieżącej sesji

W tym przykładzie importuje do bieżącej sesji elementy członkowskie modułów PSDiagnostics i Dism.

$m = Get-Module -ListAvailable PSDiagnostics, Dism
Import-Module -ModuleInfo $m

Polecenie cmdlet Get-Module pobiera moduły PSDiagnostics i Dism oraz zapisuje obiekty w zmiennej $m. Parametr ListAvailable jest wymagany w przypadku pobierania modułów, które nie zostały jeszcze zaimportowane do sesji.

Parametr ModuleInfo służy do importowania modułów do bieżącej sesji.

Te polecenia są równoważne użyciu operatora potoku (|) do wysyłania danych wyjściowych polecenia Get-Module do Import-Module.

Przykład 4. Importowanie wszystkich modułów określonych przez ścieżkę

W tym przykładzie użyto jawnej ścieżki do zidentyfikowania modułu do zaimportowania.

Import-Module -Name c:\ps-test\modules\test -Verbose

VERBOSE: Loading module from path 'C:\ps-test\modules\Test\Test.psm1'.
VERBOSE: Exporting function 'my-parm'.
VERBOSE: Exporting function 'Get-Parameter'.
VERBOSE: Exporting function 'Get-Specification'.
VERBOSE: Exporting function 'Get-SpecDetails'.

Użycie parametru Verbose powoduje, że Import-Module zgłaszać postęp podczas ładowania modułu. Bez parametru VerbosePassThrulub AsCustomObject parametr, Import-Module nie generuje żadnych danych wyjściowych podczas importowania modułu.

Przykład 5. Ograniczanie elementów członkowskich modułu zaimportowanych do sesji

W tym przykładzie pokazano, jak ograniczyć, które elementy członkowskie modułu są importowane do sesji, oraz wpływ tego polecenia na sesję.

Import-Module PSDiagnostics -Function Disable-PSTrace, Enable-PSTrace
(Get-Module PSDiagnostics).ExportedCommands

Key                          Value
---                          -----
Disable-PSTrace              Disable-PSTrace
Disable-PSWSManCombinedTrace Disable-PSWSManCombinedTrace
Disable-WSManTrace           Disable-WSManTrace
Enable-PSTrace               Enable-PSTrace
Enable-PSWSManCombinedTrace  Enable-PSWSManCombinedTrace
Enable-WSManTrace            Enable-WSManTrace
Get-LogProperties            Get-LogProperties
Set-LogProperties            Set-LogProperties
Start-Trace                  Start-Trace
Stop-Trace                   Stop-Trace

Get-Command -Module PSDiagnostics

CommandType     Name                 Version    Source
-----------     ----                 -------    ------
Function        Disable-PSTrace      6.1.0.0    PSDiagnostics
Function        Enable-PSTrace       6.1.0.0    PSDiagnostics

Pierwsze polecenie importuje tylko polecenia cmdlet Disable-PSTrace i Enable-PSTrace z modułu PSDiagnostics. Funkcja ogranicza elementy członkowskie importowane z modułu. Możesz również użyć aliasu aliasu, zmienneji parametrów cmdlet, aby ograniczyć inne elementy członkowskie importowanych przez moduł.

Polecenie cmdlet Get-Module pobiera obiekt reprezentujący moduł PSDiagnostics. Właściwość ExportCmdlets zawiera listę wszystkich poleceń cmdlet eksportowanych przez moduł, mimo że nie wszystkie zostały zaimportowane.

W trzecim poleceniu parametr module cmdlet pobiera polecenia zaimportowane z modułu PSDiagnostics. Wyniki potwierdzają, że zaimportowano tylko polecenia cmdlet Disable-PSTrace i Enable-PSTrace.

Przykład 6. Importowanie elementów członkowskich modułu i dodawanie prefiksu

W tym przykładzie importuje moduł PSDiagnostics do bieżącej sesji, dodaje prefiks do nazw elementów członkowskich, a następnie wyświetla prefiks nazwy składowych. Prefiks dotyczy tylko elementów członkowskich w bieżącej sesji. Nie zmienia modułu.

Import-Module PSDiagnostics -Prefix x -PassThru

ModuleType Version    Name               ExportedCommands
---------- -------    ----               ----------------
Script     6.1.0.0    PSDiagnostics      {Disable-xPSTrace, Disable-xPSWSManCombinedTrace, Disable-xW...

Get-Command -Module PSDiagnostics

CommandType     Name                                   Version    Source
-----------     ----                                   -------    ------
Function        Disable-xPSTrace                       6.1.0.0    PSDiagnostics
Function        Disable-xPSWSManCombinedTrace          6.1.0.0    PSDiagnostics
Function        Disable-xWSManTrace                    6.1.0.0    PSDiagnostics
Function        Enable-xPSTrace                        6.1.0.0    PSDiagnostics
Function        Enable-xPSWSManCombinedTrace           6.1.0.0    PSDiagnostics
Function        Enable-xWSManTrace                     6.1.0.0    PSDiagnostics
Function        Get-xLogProperties                     6.1.0.0    PSDiagnostics
Function        Set-xLogProperties                     6.1.0.0    PSDiagnostics
Function        Start-xTrace                           6.1.0.0    PSDiagnostics
Function        Stop-xTrace                            6.1.0.0    PSDiagnostics

Używa prefiksu parametru Import-Module dodaje prefiks x do wszystkich elementów członkowskich importowanych z modułu i parametru PassThru, aby zwrócić obiekt modułu reprezentujący zaimportowany moduł.

Polecenie cmdlet Get-Command w celu pobrania elementów członkowskich zaimportowanych z modułu. Dane wyjściowe pokazują, że składowe modułu zostały poprawnie poprzedzone prefiksem.

Przykład 7. Pobieranie i używanie obiektu niestandardowego

Te polecenia pokazują, jak pobrać i użyć obiektu niestandardowego, który import-module zwraca.

Obiekty niestandardowe obejmują syntetyczne elementy członkowskie reprezentujące każdy z zaimportowanych elementów członkowskich modułu. Na przykład polecenia cmdlet i funkcje w module są konwertowane na metody skryptu obiektu niestandardowego.

Obiekty niestandardowe są bardzo przydatne w skryptach. Są one również przydatne, gdy kilka zaimportowanych obiektów ma takie same nazwy. Użycie metody skryptu obiektu jest równoważne określaniu w pełni kwalifikowanej nazwy zaimportowanego elementu członkowskiego, w tym jego nazwy modułu.

Parametr AsCustomObject może być używany tylko podczas importowania modułu skryptu, dlatego pierwszym zadaniem jest określenie, który z dostępnych modułów jest modułem skryptu.

Get-Module -List | Format-Table -Property Name, ModuleType -AutoSize

Name          ModuleType
----          ----------
Show-Calendar     Script
BitsTransfer    Manifest
PSDiagnostics   Manifest
TestCmdlets       Script

$a = Import-Module -Name Show-Calendar -AsCustomObject -Passthru
$a | Get-Member

TypeName: System.Management.Automation.PSCustomObject
Name          MemberType   Definition
----          ----------   ----------
Equals        Method       bool Equals(System.Object obj)
GetHashCode   Method       int GetHashCode()
GetType       Method       type GetType()
ToString      Method       string ToString()
Show-Calendar ScriptMethod System.Object Show-Calendar();

$a."Show-Calendar"()

Pierwsze polecenie używa polecenia cmdlet Get-Module w celu pobrania dostępnych modułów. Polecenie używa operatora potoku, aby przekazać obiekty modułu do polecenia cmdlet Format-Table, które zawiera listę Nazwa i ModuleType każdego modułu w tabeli.

Drugie polecenie używa polecenia cmdlet Import-Module do zaimportowania modułu skryptu Show-Calendar. Polecenie używa parametru AsCustomObject, aby zażądać obiektu niestandardowego i parametru PassThru, aby zwrócić obiekt. Polecenie zapisuje wynikowy obiekt niestandardowy w zmiennej $a.

Trzecie polecenie używa operatora potoku do wysyłania zmiennej $a do polecenia cmdlet Get-Member, które pobiera właściwości i metody PSCustomObject w $a. Dane wyjściowe przedstawiają metodę skryptu Show-Calendar().

Ostatnie polecenie używa metody skryptu Show-Calendar. Nazwa metody musi być ujęta w cudzysłów, ponieważ zawiera łącznik.

Przykład 8. Ponowne importowanie modułu do tej samej sesji

W tym przykładzie pokazano, jak użyć parametru ForceImport-Module podczas ponownego importowania modułu do tej samej sesji.

Import-Module PSDiagnostics
Import-Module PSDiagnostics -Force -Prefix PS

Pierwsze polecenie importuje moduł PSDiagnostics. Drugie polecenie ponownie zaimportuje moduł, tym razem używając parametru prefiksu.

Używając parametru Force, Import-Module usuwa moduł, a następnie importuje go ponownie. Bez tego parametru sesja będzie zawierać dwie kopie każdego PSDiagnostics polecenia cmdlet, jeden o nazwie standardowej i jeden z prefiksem nazwy.

Przykład 9. Uruchamianie poleceń ukrytych przez zaimportowane polecenia

W tym przykładzie pokazano, jak uruchamiać polecenia ukryte przez zaimportowane polecenia. Moduł TestModule. zawiera funkcję o nazwie Get-Date, która zwraca rok i dzień roku.

Get-Date

Thursday, August 15, 2019 2:26:12 PM

Import-Module TestModule
Get-Date

19227

Get-Command Get-Date -All | Format-Table -Property CommandType, Name, ModuleName -AutoSize

CommandType     Name         ModuleName
-----------     ----         ----------
Function        Get-Date     TestModule
Cmdlet          Get-Date     Microsoft.PowerShell.Utility

Microsoft.PowerShell.Utility\Get-Date

Thursday, August 15, 2019 2:26:12 PM

Pierwszacmdlet returns a **DateTime** object with the current date. After importing the **TestModule** module,Get-Date zwraca rok i dzień roku.

Używając parametru AllGet-Command pobieramy wszystkie polecenia Get-Date w sesji. Wyniki pokazują, że w sesji znajdują się dwa polecenia — funkcja z modułu TestModule i polecenie cmdlet z modułu Microsoft.PowerShell.Utility.

Ponieważ funkcje mają pierwszeństwo przed poleceniami cmdlet, funkcja Get-Date z modułu TestModule jest uruchamiana, zamiast polecenia cmdlet Get-Date. Aby uruchomić oryginalną wersję Get-Date musisz zakwalifikować nazwę polecenia z nazwą modułu.

Aby uzyskać więcej informacji na temat pierwszeństwa poleceń w programie PowerShell, zobacz about_Command_Precedence.

Przykład 10: Importowanie minimalnej wersji modułu

Import-Module -Name PSWorkflow -MinimumVersion 3.0.0.0

To polecenie importuje moduł PSWorkflow. Używa parametru MinimumVersionImport-Module do importowania tylko wersji 3.0.0.0 lub nowszej modułu.

Można również użyć parametru RequiredVersion, aby zaimportować określoną wersję modułu lub użyć Module i Version parametrów słowa kluczowego #Requires, aby wymagać konkretnej wersji modułu w skry skrycie.

Przykład 11. Importowanie modułu z komputera zdalnego

W tym przykładzie pokazano, jak za pomocą polecenia cmdlet Import-Module zaimportować moduł z komputera zdalnego. To polecenie używa funkcji niejawnej komunikacji zdalnej programu PowerShell.

Podczas importowania modułów z innej sesji można użyć poleceń cmdlet w bieżącej sesji. Jednak polecenia używające poleceń cmdlet są uruchamiane w sesji zdalnej.

$s = New-PSSession -ComputerName Server01
Get-Module -PSSession $s -ListAvailable -Name NetSecurity

ModuleType Name                                ExportedCommands
---------- ----                                ----------------
Manifest   NetSecurity                         {New-NetIPsecAuthProposal, New-NetIPsecMainModeCryptoProposal, New-Ne...

Import-Module -PSSession $s -Name NetSecurity
Get-Command -Module NetSecurity -Name Get-*Firewall*

CommandType     Name                                               ModuleName
-----------     ----                                               ----------
Function        Get-NetFirewallAddressFilter                       NetSecurity
Function        Get-NetFirewallApplicationFilter                   NetSecurity
Function        Get-NetFirewallInterfaceFilter                     NetSecurity
Function        Get-NetFirewallInterfaceTypeFilter                 NetSecurity
Function        Get-NetFirewallPortFilter                          NetSecurity
Function        Get-NetFirewallProfile                             NetSecurity
Function        Get-NetFirewallRule                                NetSecurity
Function        Get-NetFirewallSecurityFilter                      NetSecurity
Function        Get-NetFirewallServiceFilter                       NetSecurity
Function        Get-NetFirewallSetting                             NetSecurity

Get-NetFirewallRule -DisplayName "Windows Remote Management*" | Format-Table -Property DisplayName, Name -AutoSize

DisplayName                                              Name
-----------                                              ----
Windows Remote Management (HTTP-In)                      WINRM-HTTP-In-TCP
Windows Remote Management (HTTP-In)                      WINRM-HTTP-In-TCP-PUBLIC
Windows Remote Management - Compatibility Mode (HTTP-In) WINRM-HTTP-Compat-In-TCP

Pierwsze polecenie używa polecenia cmdlet New-PSSession do utworzenia sesji zdalnej (PSSession) na komputerze Server01. Polecenie zapisuje PSSession w zmiennej .

Drugie polecenie używa parametru PSSession polecenia cmdlet Get-Module, aby pobrać moduł NetSecurity w sesji w zmiennej $s. To polecenie jest równoważne użyciu polecenia cmdlet Invoke-Command do uruchomienia polecenia Get-Module w sesji w $s (Invoke-Command $s {Get-Module -ListAvailable -Name NetSecurity). Dane wyjściowe pokazują, że moduł NetSecurity jest zainstalowany na komputerze i jest dostępny dla sesji w zmiennej $s.

Trzecie polecenie używa parametru PSSession polecenia cmdlet Import-Module w celu zaimportowania modułu NetSecurity z sesji w zmiennej $s do bieżącej sesji.

Czwarte polecenie używa polecenia cmdlet Get-Command do pobrania poleceń rozpoczynających się od Get i dołącz Firewall z modułu NetSecurity. Dane wyjściowe pobiera polecenia i potwierdza, że moduł i jego polecenia cmdlet zostały zaimportowane do bieżącej sesji.

Piąte polecenie używa polecenia cmdlet Get-NetFirewallRule, aby uzyskać reguły zapory zarządzania zdalnego systemu Windows na komputerze Server01. To polecenie jest równoważne użyciu polecenia cmdlet Invoke-Command do uruchomienia polecenia Get-NetFirewallRule w sesji w zmiennej $s.

Przykład 12: Zarządzanie magazynem na komputerze zdalnym bez systemu operacyjnego Windows

W tym przykładzie, ponieważ administrator komputera zainstalował dostawcę WMI odnajdywania modułów, polecenia modelu CIM mogą używać wartości domyślnych, które są przeznaczone dla dostawcy.

Polecenia w tym przykładzie umożliwiają zarządzanie systemami magazynowania komputera zdalnego, który nie korzysta z systemu operacyjnego Windows.

Pierwsze polecenie używa polecenia cmdlet New-CimSession do utworzenia sesji na komputerze zdalnym RSDGF03. Sesja nawiązuje połączenie z usługą WMI na komputerze zdalnym. Polecenie zapisuje sesję modelu CIM w zmiennej $cs.

Drugie polecenie używa sesji modelu CIM w zmiennej $cs, aby uruchomić polecenie Import-Module na komputerze RSDGF03. Polecenie używa parametru Name w celu określenia modułu Storage CIM.

Trzecie polecenie uruchamia polecenie Get-Command w Get-Disk w module Storage. Podczas importowania modułu CIM do sesji lokalnej program PowerShell konwertuje pliki CDXML dla każdego polecenia na skrypty programu PowerShell, które są wyświetlane jako funkcje w sesji lokalnej.

Czwarte polecenie uruchamia polecenie Get-Disk. Mimo że polecenie jest wpisywane w sesji lokalnej, jest uruchamiane niejawnie na komputerze zdalnym, z którego został zaimportowany. Polecenie pobiera obiekty z komputera zdalnego i zwraca je do sesji lokalnej.

$cs = New-CimSession -ComputerName RSDGF03
Import-Module -CimSession $cs -Name Storage
# Importing a CIM module, converts the CDXML files for each command into PowerShell scripts.
# These appear as functions in the local session.
Get-Command Get-Disk

CommandType     Name                  ModuleName
-----------     ----                  ----------
Function        Get-Disk              Storage

# Use implicit remoting to query disks on the remote computer from which the module was imported.
Get-Disk

Number Friendly Name              OperationalStatus          Total Size Partition Style
------ -------------              -----------------          ---------- ---------------
0      Virtual HD ATA Device      Online                          40 GB MBR

Parametry

-Alias

Określa aliasy, które to polecenie cmdlet importuje z modułu do bieżącej sesji. Wprowadź rozdzielaną przecinkami listę aliasów. Dozwolone są symbole wieloznaczne.

Niektóre moduły automatycznie eksportują wybrane aliasy do sesji podczas importowania modułu. Ten parametr umożliwia wybranie spośród wyeksportowanych aliasów.

Typ:String[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:True

-ArgumentList

Określa tablicę argumentów lub wartości parametrów, które są przekazywane do modułu skryptu podczas Import-Module polecenia. Ten parametr jest prawidłowy tylko podczas importowania modułu skryptu.

Możesz również odwołać się do parametru ArgumentList według jego aliasu, args. Aby uzyskać więcej informacji, zobacz about_Aliases.

Typ:Object[]
Aliasy:Args
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-AsCustomObject

Wskazuje, że to polecenie cmdlet zwraca obiekt niestandardowy z elementami członkowskimi reprezentującymi zaimportowane elementy członkowskie modułu. Ten parametr jest prawidłowy tylko dla modułów skryptów.

Jeśli używasz parametru AsCustomObject, Import-Module importuje elementy członkowskie modułu do sesji, a następnie zwraca obiekt PSCustomObject zamiast obiektu PSModuleInfo. Obiekt niestandardowy można zapisać w zmiennej i użyć notacji kropkowej, aby wywołać elementy członkowskie.

Typ:SwitchParameter
Position:Named
Domyślna wartość:False
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Assembly

Określa tablicę obiektów zestawu. To polecenie cmdlet importuje polecenia cmdlet i dostawców zaimplementowanych w określonych obiektach zestawu. Wprowadź zmienną zawierającą obiekty zestawu lub polecenie, które tworzy obiekty zestawu. Możesz również przekazać obiekt zestawu do Import-Module.

W przypadku użycia tego parametru importowane są tylko polecenia cmdlet i dostawcy zaimplementowani przez określone zestawy. Jeśli moduł zawiera inne pliki, nie są importowane i może brakować ważnych elementów członkowskich modułu. Użyj tego parametru do debugowania i testowania modułu lub po poinstruowaniu, aby używać go przez autora modułu.

Typ:Assembly[]
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-CimNamespace

Określa przestrzeń nazw alternatywnego dostawcy modelu CIM, który uwidacznia moduły MODELU CIM. Wartość domyślna to przestrzeń nazw dostawcy usługi WMI odnajdywania modułów.

Użyj tego parametru, aby zaimportować moduły CIM z komputerów i urządzeń, które nie korzystają z systemu operacyjnego Windows.

Ten parametr został wprowadzony w programie Windows PowerShell 3.0.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-CimResourceUri

Określa alternatywną lokalizację modułów CIM. Wartość domyślna to identyfikator URI zasobu dostawcy usługi WMI odnajdywania modułów na komputerze zdalnym.

Użyj tego parametru, aby zaimportować moduły CIM z komputerów i urządzeń, które nie korzystają z systemu operacyjnego Windows.

Ten parametr został wprowadzony w programie Windows PowerShell 3.0.

Typ:Uri
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-CimSession

Określa sesję modelu ciM na komputerze zdalnym. Wprowadź zmienną zawierającą sesję modelu CIM lub polecenie, które pobiera sesję modelu CIM, na przykład polecenie Get-CimSession.

Import-Module używa połączenia sesji modelu CIM do importowania modułów z komputera zdalnego do bieżącej sesji. W przypadku używania poleceń z zaimportowanego modułu w bieżącej sesji polecenia są uruchamiane na komputerze zdalnym.

Ten parametr służy do importowania modułów z komputerów i urządzeń, które nie korzystają z systemu operacyjnego Windows, oraz komputerów z systemem Windows, które mają program PowerShell, ale nie mają włączonej komunikacji zdalnej programu PowerShell.

Ten parametr został wprowadzony w programie Windows PowerShell 3.0.

Typ:CimSession
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Cmdlet

Określa tablicę poleceń cmdlet, które to polecenie cmdlet importuje z modułu do bieżącej sesji. Dozwolone są symbole wieloznaczne.

Niektóre moduły automatycznie eksportują wybrane polecenia cmdlet do sesji podczas importowania modułu. Ten parametr umożliwia wybranie spośród wyeksportowanych poleceń cmdlet.

Typ:String[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:True

-DisableNameChecking

Wskazuje, że to polecenie cmdlet pomija komunikat ostrzegający podczas importowania polecenia cmdlet lub funkcji, której nazwa zawiera niezatwierdzone zlecenie lub niedozwolony znak.

Domyślnie, gdy moduł importowany eksportuje polecenia cmdlet lub funkcje, które mają niezatwierdzone czasowniki w nazwach, program PowerShell wyświetla następujący komunikat ostrzegawczy:

OSTRZEŻENIE: Niektóre zaimportowane nazwy poleceń obejmują niezatwierdzone czasowniki, które mogą sprawić, że będą one mniej wykrywalne. Użyj parametru Verbose, aby uzyskać więcej szczegółów lub wpisz Get-Verb, aby wyświetlić listę zatwierdzonych czasowników.

Ten komunikat jest tylko ostrzeżeniem. Cały moduł jest nadal importowany, w tym polecenia niezgodne. Mimo że komunikat jest wyświetlany użytkownikom modułu, problem z nazewnictwem powinien zostać rozwiązany przez autora modułu.

Typ:SwitchParameter
Position:Named
Domyślna wartość:False
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Force

Ten parametr powoduje załadowanie lub ponowne załadowanie modułu na początku bieżącego

Typ:SwitchParameter
Position:Named
Domyślna wartość:False
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-FullyQualifiedName

Określa w pełni kwalifikowaną nazwę specyfikacji modułu.

Typ:ModuleSpecification[]
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-Function

Określa tablicę funkcji, które to polecenie cmdlet importuje z modułu do bieżącej sesji. Dozwolone są symbole wieloznaczne.

Niektóre moduły automatycznie eksportują wybrane funkcje do sesji podczas importowania modułu. Ten parametr umożliwia wybranie spośród wyeksportowanych funkcji.

Typ:String[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:True

-Global

Wskazuje, że to polecenie cmdlet importuje moduły do stanu sesji globalnej, aby były dostępne dla wszystkich poleceń w sesji.

Domyślnie, gdy polecenie cmdlet Import-Module jest wywoływane z wiersza polecenia, pliku skryptu lub skryptblock, wszystkie polecenia są importowane do stanu sesji globalnej.

Po wywołaniu z innego modułu Import-Module polecenie cmdlet importuje polecenia w module, w tym polecenia z zagnieżdżonych modułów, do stanu sesji obiektu wywołującego.

Napiwek

Należy unikać wywoływania Import-Module z poziomu modułu. Zamiast tego zadeklaruj moduł docelowy jako zagnieżdżony moduł w manifeście modułu nadrzędnego. Deklarowanie zagnieżdżonych modułów zwiększa możliwość odnajdywania zależności.

Parametr Global jest odpowiednikiem parametru zakresu z wartością Global.

Aby ograniczyć polecenia eksportowane przez moduł, użyj polecenia Export-ModuleMember w module skryptu.

Typ:SwitchParameter
Position:Named
Domyślna wartość:False
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-MaximumVersion

Określa maksymalną wersję. To polecenie cmdlet importuje tylko wersję modułu, która jest mniejsza lub równa określonej wartości. Jeśli żadna wersja nie kwalifikuje się, Import-Module generuje błąd.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-MinimumVersion

Określa minimalną wersję. To polecenie cmdlet importuje tylko wersję modułu, która jest większa lub równa określonej wartości. Jeśli żadna wersja nie kwalifikuje się, Import-Module generuje błąd.

Domyślnie Import-Module importuje moduł bez sprawdzania numeru wersji.

Użyj nazwy parametru MinimumVersion lub jego aliasu Version( Wersja).

Aby określić dokładną wersję, użyj parametru RequiredVersion. Możesz również użyć parametrów module i Version słowa kluczowego #Requires, aby wymagać określonej wersji modułu w skry skrycie.

Ten parametr został wprowadzony w programie Windows PowerShell 3.0.

Typ:Version
Aliasy:Version
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-ModuleInfo

Określa tablicę obiektów modułu do zaimportowania. Wprowadź zmienną zawierającą obiekty modułu lub polecenie, które pobiera obiekty modułu, takie jak następujące polecenie: Get-Module -ListAvailable. Możesz również przekazać potok obiektów modułu do Import-Module.

Typ:PSModuleInfo[]
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-Name

Określa nazwy modułów do zaimportowania. Wprowadź nazwę modułu lub nazwę pliku w module, na przykład .psd1, psm1, .dlllub ps1. Ścieżki plików są opcjonalne. Symbole wieloznaczne nie są dozwolone. Możesz również potokować nazwy modułów i nazwy plików, aby Import-Module.

Jeśli pominięto ścieżkę, Import-Module wyszuka moduł w ścieżkach zapisanych w zmiennej środowiskowej $env:PSModulePath.

Określ tylko nazwę modułu, jeśli jest to możliwe. Po określeniu nazwy pliku importowane są tylko elementy członkowskie zaimplementowane w tym pliku. Jeśli moduł zawiera inne pliki, nie są importowane i może brakować ważnych elementów członkowskich modułu.

Typ:String[]
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:True

-NoClobber

Wskazuje, że to polecenie cmdlet nie importuje poleceń, które mają takie same nazwy jak istniejące polecenia w bieżącej sesji. Domyślnie Import-Module importuje wszystkie wyeksportowane polecenia modułu.

Polecenia o tych samych nazwach mogą ukrywać lub zastępować polecenia w sesji. Aby uniknąć konfliktów nazw poleceń w sesji, użyj parametrów prefiksu lub parametrów NoClobber. Aby uzyskać więcej informacji na temat konfliktów nazw i pierwszeństwa poleceń, zobacz "Moduły i konflikty nazw" w about_Modules i about_Command_Precedence.

Ten parametr został wprowadzony w programie Windows PowerShell 3.0.

Typ:SwitchParameter
Aliasy:NoOverwrite
Position:Named
Domyślna wartość:False
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-PassThru

Zwraca obiekt reprezentujący element, z którym pracujesz. Domyślnie to polecenie cmdlet nie generuje żadnych danych wyjściowych.

Typ:SwitchParameter
Position:Named
Domyślna wartość:False
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Prefix

Określa prefiks, który to polecenie cmdlet dodaje do uns w nazwach zaimportowanych elementów członkowskich modułu.

Użyj tego parametru, aby uniknąć konfliktów nazw, które mogą wystąpić, gdy różne elementy członkowskie w sesji mają taką samą nazwę. Ten parametr nie zmienia modułu i nie ma wpływu na pliki importujące moduł do własnego użytku. Są to moduły zagnieżdżone. To polecenie cmdlet wpływa tylko na nazwy członków w bieżącej sesji.

Jeśli na przykład określisz prefiks UTC, a następnie zaimportujesz polecenie cmdlet Get-Date, polecenie cmdlet jest znane w sesji jako Get-UTCDatei nie jest mylone z oryginalnym poleceniem cmdlet Get-Date.

Wartość tego parametru ma pierwszeństwo przed właściwością DefaultCommandPrefix modułu, która określa domyślny prefiks.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-PSSession

Określa sesję zarządzaną przez użytkownika programu PowerShell (programu PSSession), z której to polecenie cmdlet importuje moduły do bieżącej sesji. Wprowadź zmienną zawierającą PSSession lub polecenie, które pobiera PSSession, na przykład polecenie Get-PSSession.

Podczas importowania modułu z innej sesji do bieżącej sesji można użyć poleceń cmdlet z modułu w bieżącej sesji, tak samo jak polecenia cmdlet z modułu lokalnego. Polecenia używające zdalnych poleceń cmdlet są rzeczywiście uruchamiane w sesji zdalnej, ale szczegóły komunikacji zdalnej są zarządzane w tle przez program PowerShell.

Ten parametr używa funkcji niejawnej komunikacji zdalnej programu PowerShell. Jest to równoważne użyciu polecenia cmdlet Import-PSSession do importowania określonych modułów z sesji.

Import-Module nie można zaimportować modułów programu PowerShell Core z innej sesji. Moduły programu PowerShell Core mają nazwy rozpoczynające się od programu Microsoft.PowerShell.

Ten parametr został wprowadzony w programie Windows PowerShell 3.0.

Typ:PSSession
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-RequiredVersion

Określa wersję modułu importowanych przez to polecenie cmdlet. Jeśli wersja nie jest zainstalowana, Import-Module generuje błąd.

Domyślnie Import-Module importuje moduł bez sprawdzania numeru wersji.

Aby określić minimalną wersję, użyj parametru MinimumVersion. Możesz również użyć parametrów module i Version słowa kluczowego #Requires, aby wymagać określonej wersji modułu w skry skrycie.

Ten parametr został wprowadzony w programie Windows PowerShell 3.0.

Skrypty używające RequiredVersion do importowania modułów dołączonych do istniejących wersji systemu operacyjnego Windows nie są uruchamiane automatycznie w przyszłych wersjach systemu operacyjnego Windows. Dzieje się tak, ponieważ numery wersji modułu programu PowerShell w przyszłych wersjach systemu operacyjnego Windows są wyższe niż numery wersji modułu w istniejących wersjach systemu operacyjnego Windows.

Typ:Version
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Scope

Określa zakres, do którego to polecenie cmdlet importuje moduł.

Dopuszczalne wartości tego parametru to:

  • globalne. Dostępne dla wszystkich poleceń w sesji. Odpowiednik parametru globalnego .
  • lokalnego . Dostępne tylko w bieżącym zakresie.

Domyślnie, gdy polecenie cmdlet Import-Module jest wywoływane z wiersza polecenia, pliku skryptu lub skryptblock, wszystkie polecenia są importowane do stanu sesji globalnej. Możesz użyć parametru -Scope z wartością Local, aby zaimportować zawartość modułu do zakresu skryptu lub skryptu.

Po wywołaniu z innego modułu Import-Module polecenie cmdlet importuje polecenia w module, w tym polecenia z zagnieżdżonych modułów, do stanu sesji obiektu wywołującego. Określenie -Scope Global lub -Global wskazuje, że to polecenie cmdlet importuje moduły do stanu sesji globalnej, aby były dostępne dla wszystkich poleceń w sesji.

Parametr Global jest odpowiednikiem parametru zakresu z wartością Global.

Ten parametr został wprowadzony w programie Windows PowerShell 3.0.

Typ:String
Dopuszczalne wartości:Local, Global
Position:Named
Domyślna wartość:Current scope
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Variable

Określa tablicę zmiennych, które to polecenie cmdlet importuje z modułu do bieżącej sesji. Wprowadź listę zmiennych. Dozwolone są symbole wieloznaczne.

Niektóre moduły automatycznie eksportują wybrane zmienne do sesji podczas importowania modułu. Ten parametr umożliwia wybranie spośród wyeksportowanych zmiennych.

Typ:String[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:True

Dane wejściowe

System.String, System.Management.Automation.PSModuleInfo, System.Reflection.Assembly

Do tego polecenia cmdlet można przekazać nazwę modułu, obiekt modułu lub obiekt zestawu.

Dane wyjściowe

None, System.Management.Automation.PSModuleInfo, or System.Management.Automation.PSCustomObject

To polecenie cmdlet zwraca PSModuleInfo lub PSCustomObject. Domyślnie Import-Module nie generuje żadnych danych wyjściowych. Jeśli określisz parametr PassThru, polecenie cmdlet wygeneruje obiekt System.Management.Automation.PSModuleInfo, który reprezentuje moduł. Jeśli określisz parametr AsCustomObject, wygeneruje obiekt PSCustomObject.

Uwagi

  • Aby można było zaimportować moduł, moduł musi zostać zainstalowany na komputerze lokalnym. Oznacza to, że katalog modułu musi zostać skopiowany do katalogu, który jest dostępny dla komputera lokalnego. Aby uzyskać więcej informacji, zobacz about_Modules.

    Można również użyć parametrów PSSession i CIMSession do importowania modułów zainstalowanych na komputerach zdalnych. Jednak polecenia używające poleceń cmdlet w tych modułach są rzeczywiście uruchamiane w sesji zdalnej na komputerze zdalnym.

  • W przypadku importowania członków o tej samej nazwie i tym samym typie do sesji program PowerShell domyślnie używa elementu członkowskiego zaimportowanych ostatnio. Zmienne i aliasy są zastępowane, a oryginały nie są dostępne. Funkcje, polecenia cmdlet i dostawcy są tylko w tle przez nowych członków. Dostęp do nich można uzyskać, kwalifikując nazwę polecenia przy użyciu nazwy przystawki, modułu lub ścieżki funkcji.

  • Aby zaktualizować dane formatowania dla poleceń zaimportowanych z modułu, użyj polecenia cmdlet Update-FormatData. Update-FormatData także aktualizuje dane formatowania poleceń w sesji zaimportowanej z modułów. Jeśli plik formatowania modułu ulegnie zmianie, możesz uruchomić polecenie Update-FormatData, aby zaktualizować dane formatowania dla zaimportowanych poleceń. Nie trzeba ponownie importować modułu.

  • Począwszy od programu Windows PowerShell 3.0, podstawowe polecenia instalowane za pomocą programu PowerShell są pakowane w modułach. W programie Windows PowerShell 2.0 i programach hostujących, które tworzą starsze sesje w nowszych wersjach programu PowerShell, podstawowe polecenia są pakowane w przystawkach (PSSnapins). Wyjątkiem jest Microsoft.PowerShell.Core, który jest zawsze przystawką. Ponadto sesje zdalne, takie jak te uruchamiane przez polecenie cmdlet New-PSSession, to sesje w stylu starszym, które obejmują podstawowe przystawki.

    Aby uzyskać informacje na temat metody CreateDefault2, która tworzy nowsze sesje z modułami podstawowymi, zobacz CreateDefault2 Method.

  • Import-Module nie można zaimportować modułów programu PowerShell Core z innej sesji. Moduły programu PowerShell Core mają nazwy rozpoczynające się od programu Microsoft.PowerShell.

  • W programie Windows PowerShell 2.0 niektóre wartości właściwości obiektu modułu, takie jak ExportedCmdlets i NestedModules wartości właściwości, nie zostały wypełnione do momentu zaimportowania modułu i nie były dostępne w obiekcie modułu, który parametr passThru zwraca. W programie Windows PowerShell 3.0 wszystkie wartości właściwości modułu są wypełniane.

  • Jeśli spróbujesz zaimportować moduł zawierający zestawy w trybie mieszanym, które nie są zgodne z programem Windows PowerShell 3.0, Import-Module zwróci komunikat o błędzie podobny do poniższego.

    Import-Module: zestaw trybu mieszanego jest kompilowany w wersji "v2.0.50727" środowiska uruchomieniowego i nie można go załadować w środowisku uruchomieniowym 4.0 bez dodatkowych informacji o konfiguracji.

    Ten błąd występuje, gdy moduł przeznaczony dla programu Windows PowerShell 2.0 zawiera co najmniej jeden zestaw mieszany modułu, czyli zestaw zawierający zarówno zarządzany, jak i niezarządzany kod, taki jak C++ i C#.

    Aby zaimportować moduł zawierający zestawy w trybie mieszanym, uruchom program Windows PowerShell 2.0 przy użyciu następującego polecenia, a następnie spróbuj ponownie wykonać polecenie Import-Module.

    PowerShell.exe -Version 2.0

  • Aby korzystać z funkcji sesji modelu CIM, komputer zdalny musi mieć WS-Management komunikacji zdalnej i instrumentacji zarządzania Windows (WMI), która jest implementacją firmy Microsoft standardu Common Information Model (CIM). Komputer musi również mieć dostawcę usługi WMI odnajdywania modułów lub alternatywnego dostawcę modelu CIM, który ma te same podstawowe funkcje.

    Funkcji sesji modelu CIM można używać na komputerach, na których nie jest uruchomiony system operacyjny Windows i na komputerach z systemem Windows z programem PowerShell, ale nie ma włączonej komunikacji zdalnej programu PowerShell.

    Możesz również użyć parametrów modelu CIM, aby pobrać moduły CIM z komputerów z włączoną obsługą komunikacji zdalnej programu PowerShell, w tym komputera lokalnego. Podczas tworzenia sesji modelu CIM na komputerze lokalnym program PowerShell używa modelu DCOM zamiast usługi WMI do utworzenia sesji.