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

Opis

Polecenie Import-Module cmdlet dodaje jeden lub więcej modułów do bieżącej sesji. 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. Jednak nadal można użyć Import-Module polecenia , aby zaimportować moduł. Automatyczne importowanie modułów można wyłączyć przy użyciu zmiennej $PSModuleAutoloadingPreference preferencji. 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 uzyskać więcej informacji na temat modułów, zobacz about_Modules.

Domyślnie Import-Module importuje wszystkie elementy członkowskie eksportowane przez moduł, ale można użyć parametrów Alias, Function, Cmdlet i Variable , aby ograniczyć importowane elementy członkowskie. Parametr NoClobber uniemożliwia 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 każdej nowej sesji, dodaj Import-Module polecenie do profilu programu PowerShell. Aby uzyskać więcej informacji na temat profilów, zobacz about_Profiles.

Zdalne komputery z systemem Windows z włączoną obsługą komunikacji zdalnej programu PowerShell można zarządzać przez utworzenie programu PSSession na komputerze zdalnym. Następnie użyj parametru PSSession polecenia , Import-Module aby zaimportować moduły zainstalowane na komputerze zdalnym. W przypadku używania zaimportowanych poleceń w bieżącej sesji polecenia są niejawnie uruchamiane na komputerze zdalnym.

Począwszy od programu Windows PowerShell 3.0, można użyć Import-Module do importowania modułów usługi Common Information Model (CIM). Moduły ciM definiują polecenia cmdlet 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++.

W przypadku komputerów zdalnych, które nie mają włączonej komunikacji zdalnej programu PowerShell, w tym komputerów, które nie korzystają z systemu operacyjnego Windows, można użyć parametru CIMSession polecenia Import-Module , aby zaimportować moduły CIM z komputera zdalnego. Zaimportowane polecenia są uruchamiane niejawnie na komputerze zdalnym. CiMSession to połączenie z instrumentacją zarządzania Windows (WMI) na komputerze zdalnym.

Przykłady

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

W tym przykładzie członkowie modułu PSDiagnostics są importowanych do bieżącej sesji.

Import-Module -Name PSDiagnostics

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

W tym przykładzie wszystkie dostępne moduły są importowane w ścieżce określonej przez zmienną $env:PSModulePath środowiskową 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 zaimportowane są elementy członkowskie modułów PSDiagnostics i Dism do bieżącej sesji.

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

Polecenie Get-Module cmdlet pobiera moduły PSDiagnostics i Dism i 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 polecenia Import-Module służy do importowania modułów do bieżącej sesji.

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 Import-Module raportowanie postępu podczas ładowania modułu. Bez parametru Import-Module Verbose, PassThru lub AsCustomObject 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ę. Parametr Funkcji ogranicza elementy członkowskie importowane z modułu. Możesz również użyć parametrów Alias, Variable i Cmdlet , aby ograniczyć inne elementy członkowskie importowanych przez moduł.

Polecenie Get-Module cmdlet 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.

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

Użycie parametru Get-Command Module polecenia cmdlet pokazuje polecenia zaimportowane z modułu PSDiagnostics. Wyniki potwierdzają, że zaimportowano tylko Disable-PSTrace polecenia cmdlet i Enable-PSTrace .

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

W tym przykładzie moduł PSDiagnostics jest importowany do bieżącej sesji, dodaje prefiks do nazw elementów członkowskich, a następnie wyświetla prefiks nazwy składowych. Parametr Import-Module Prefiks funkcji dodaje x prefiks do wszystkich elementów członkowskich importowanych z modułu. Prefiks dotyczy tylko elementów członkowskich w bieżącej sesji. Nie zmienia modułu. Parametr PassThru zwraca obiekt modułu reprezentujący zaimportowany moduł.

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

Get-Command pobiera elementy członkowskie zaimportowane 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

W tym przykładzie pokazano, jak pobrać i użyć obiektu niestandardowego zwróconego przez Import-Moduleelement .

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ą 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żna używać tylko podczas importowania modułu skryptu. Użyj Get-Module polecenia , aby określić, które 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"()

Moduł skryptu Show-Calendar jest importowany przy użyciu parametru AsCustomObject w celu żądania obiektu niestandardowego i parametru PassThru w celu zwrócenia obiektu. Wynikowy obiekt niestandardowy jest zapisywany w zmiennej $a .

Zmienna $a jest potokowa do Get-Member polecenia cmdlet, aby wyświetlić właściwości i metody zapisanego obiektu. Dane wyjściowe zawierają metodę skryptu Show-Calendar .

Aby wywołać metodę skryptu Show-Calendar , nazwa metody musi być ujęta w cudzysłów, ponieważ nazwa zawiera łącznik.

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

W tym przykładzie pokazano, jak używać parametru Force w Import-Module przypadku ponownego importowania modułu do tej samej sesji. Parametr Force usuwa załadowany moduł, a następnie importuje go ponownie.

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

Pierwsze polecenie importuje moduł PSDiagnostics . Drugie polecenie ponownie zaimportuje moduł, tym razem przy użyciu parametru Prefix .

Bez parametru Force sesja będzie zawierać dwie kopie każdego polecenia cmdlet PSDiagnostics , 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:28:31 PM

Pierwsze Get-Date polecenie cmdlet zwraca obiekt DateTime z bieżącą datą. Po zaimportowaniu modułu Get-Date TestModule zwraca rok i dzień roku.

Za pomocą parametru Get-Command All pokaż wszystkie Get-Date polecenia w sesji. Wyniki pokazują, że w sesji znajdują się dwa Get-Date polecenia, funkcja z modułu TestModule i polecenie cmdlet z modułu Microsoft.PowerShell.Utility .

Ponieważ funkcje mają pierwszeństwo przed poleceniami cmdlet, Get-Date funkcja z modułu TestModule jest uruchamiana, zamiast Get-Date polecenia cmdlet. Aby uruchomić oryginalną wersję programu Get-Date, należy 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

W tym przykładzie importuje moduł PowerShellGet . Używa parametru MinimumVersion polecenia Import-Module , aby zaimportować tylko wersję lub nowszą wersję 2.0.0 modułu.

Import-Module -Name PowerShellGet -MinimumVersion 2.0.0

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

Przykład 11. Importowanie przy użyciu w pełni kwalifikowanej nazwy

W tym przykładzie importuje określoną wersję modułu przy użyciu metody FullyQualifiedName.

PS> Get-Module -ListAvailable PowerShellGet | Select-Object Name, Version

Name          Version
----          -------
PowerShellGet 2.2.1
PowerShellGet 2.1.3
PowerShellGet 2.1.2
PowerShellGet 1.0.0.1

PS> Import-Module -FullyQualifiedName @{ModuleName = 'PowerShellGet'; ModuleVersion = '2.1.3' }

Przykład 12. Importowanie przy użyciu w pełni kwalifikowanej ścieżki

W tym przykładzie importuje określoną wersję modułu przy użyciu w pełni kwalifikowanej ścieżki.

PS> Get-Module -ListAvailable PowerShellGet | Select-Object Path

Path
----
C:\Program Files\PowerShell\Modules\PowerShellGet\2.2.1\PowerShellGet.psd1
C:\program files\powershell\6\Modules\PowerShellGet\PowerShellGet.psd1
C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\2.1.2\PowerShellGet.psd1
C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PowerShellGet.psd1

PS> Import-Module -Name 'C:\Program Files\PowerShell\Modules\PowerShellGet\2.2.1\PowerShellGet.psd1'

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

W tym przykładzie Import-Module pokazano, jak za pomocą polecenia cmdlet 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 korzystające z 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

New-PSSession Tworzy sesję zdalną (PSSession) na Server01 komputerze. Plik PSSession jest zapisywany w zmiennej $s .

Uruchomienie Get-Module z parametrem PSSession pokazuje, że moduł NetSecurity jest zainstalowany i dostępny na komputerze zdalnym. To polecenie jest równoważne użyciu Invoke-Command polecenia cmdlet do uruchomienia Get-Module polecenia w sesji zdalnej. Na przykład:

Invoke-Command $s {Get-Module -ListAvailable -Name NetSecurity

Uruchomienie Import-Module z parametrem PSSession powoduje zaimportowanie modułu NetSecurity z komputera zdalnego do bieżącej sesji. Polecenie Get-Command cmdlet pobiera polecenia rozpoczynające się od Get modułu NetSecurity i dołączane Firewall do nich. Dane wyjściowe potwierdzają, że moduł i jego polecenia cmdlet zostały zaimportowane do bieżącej sesji.

Get-NetFirewallRule Następnie polecenie cmdlet pobiera reguły zapory zdalnego zarządzania systemem Windows na Server01 komputerze. Jest to równoważne użyciu Invoke-Command polecenia cmdlet do uruchomienia Get-NetFirewallRule w sesji zdalnej.

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

W tym przykładzie administrator komputera zainstalował dostawcę WMI odnajdywania modułów, który umożliwia korzystanie z poleceń modelu CIM przeznaczonych dla dostawcy.

Polecenie New-CimSession cmdlet tworzy sesję na komputerze zdalnym o nazwie RSDGF03. Sesja łączy się z usługą WMI na komputerze zdalnym. Sesja modelu CIM jest zapisywana w zmiennej $cs . Import-Module Program używa modułu CimSession w programie , $cs aby zaimportować moduł CIM usługi Storage z RSDGF03 komputera.

Polecenie Get-Command cmdlet pokazuje Get-Disk polecenie 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.

Mimo że Get-Disk jest wpisywany w sesji lokalnej, polecenie cmdlet niejawnie jest uruchamiane na komputerze zdalnym, z którego został zaimportowany. Polecenie zwraca obiekty z komputera zdalnego 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 Import-Module podczas 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 na temat zachowania argumentlist, zobacz about_Splatting.

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, importuje elementy członkowskie modułu do sesji, Import-Module a następnie zwraca obiekt PSCustomObject zamiast obiektu PSModuleInfo. Obiekt niestandardowy można zapisać w zmiennej i użyć wyliczenia dostępu do składowych, 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-Moduleelementu .

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 program używa połączenia sesji modelu CIM do importowania modułów z komputera zdalnego do bieżącej sesji. Gdy używasz poleceń z zaimportowanego modułu w bieżącej sesji, polecenia są uruchamiane na komputerze zdalnym.

Tego parametru można 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. Niektóre moduły ładują zestawy zewnętrzne. Importowanie nie powiedzie się, jeśli importujesz moduł, który ładuje nowszą wersję zestawu. Parametr Force nie może zastąpić błędu. Aby załadować nową wersję, musisz uruchomić nową sesję.

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

-FullyQualifiedName

Wartość może być nazwą modułu, pełną specyfikacją modułu lub ścieżką do pliku modułu.

Gdy wartość jest ścieżką, ścieżka może być w pełni kwalifikowana lub względna. Ścieżka względna jest rozpoznawana względem skryptu zawierającego instrukcję using.

Gdy wartość jest nazwą lub specyfikacją modułu, program PowerShell przeszukuje element PSModulePath dla określonego modułu.

Specyfikacja modułu to tabela skrótu zawierająca następujące klucze.

  • ModuleName - Required Określa nazwę modułu.
  • GUID - Opcjonalnie Określa identyfikator GUID modułu.
  • Wymagane jest również określenie co najmniej jednego z trzech poniższych kluczy.
    • ModuleVersion - Określa minimalną akceptowalną wersję modułu.
    • MaximumVersion - Określa maksymalną akceptowalną wersję modułu.
    • RequiredVersion - Określa dokładną, wymaganą wersję modułu. Nie można tego używać z innymi kluczami wersji.
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 Import-Module polecenie cmdlet 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 modułu 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 Globalny jest odpowiednikiem parametru Scope z wartością Global.

Aby ograniczyć polecenia eksportowane przez moduł, użyj Export-ModuleMember polecenia 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 zwraca 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. Użyj nazwy parametru MinimumVersion lub jego aliasu, Wersja. Jeśli żadna wersja nie kwalifikuje się, Import-Module generuje błąd.

Aby określić dokładną wersję, użyj parametru RequiredVersion . Możesz również użyć parametrów modułu i wersji 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-Moduleelementu .

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 .psd1plik , .psm1, .dlllub .ps1 . Ścieżki plików są opcjonalne. Symbole wieloznaczne nie są dozwolone. Można również potokować nazwy modułów i nazwy plików do Import-Module.

Jeśli pominięto ścieżkę, Import-Module poszukaj modułu 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.

Uwaga

Chociaż istnieje możliwość zaimportowania pliku skryptu () jako.ps1 modułu, pliki skryptów zwykle nie mają struktury, takiej jak plik modułów skryptów (.psm1). Importowanie pliku skryptu nie gwarantuje, że będzie można go używać jako modułu. Aby uzyskać więcej informacji, zobacz about_Modules.

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

-NoClobber

Zapobiega importowaniu 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 Prefiks lub 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 zaimportowany moduł. 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życia. 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 Get-Date polecenie cmdlet, polecenie cmdlet jest znane w sesji jako Get-UTCDate, i nie jest mylone z oryginalnym Get-Date poleceniem cmdlet.

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 (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, takie jak Get-PSSession polecenie.

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ą 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 Import-PSSession polecenia cmdlet do importowania określonych modułów z sesji.

Import-Module Nie można zaimportować podstawowych modułów programu PowerShell z innej sesji. Podstawowe moduły programu PowerShell 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 modułu i wersji 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 opcji 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 importowania modułu.

Dopuszczalne wartości tego parametru to:

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

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

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 Globalny jest odpowiednikiem parametru Scope 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ść:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-SkipEditionCheck

Pomija sprawdzanie w CompatiblePSEditions polu.

Umożliwia ładowanie modułu z katalogu modułu "$($env:windir)\System32\WindowsPowerShell\v1.0\Modules" do programu PowerShell Core, gdy ten moduł nie określa Core w polu manifestu CompatiblePSEditions .

Podczas importowania modułu z innej ścieżki ten przełącznik nie wykonuje żadnych operacji, ponieważ sprawdzanie nie jest wykonywane. W systemach Linux i macOS ten przełącznik nic nie robi.

Aby uzyskać więcej informacji, zobacz about_PowerShell_Editions.

Ostrzeżenie

Import-Module -SkipEditionCheck Nadal prawdopodobnie nie można zaimportować modułu. Nawet jeśli zakończy się pomyślnie, wywołanie polecenia z modułu może później zakończyć się niepowodzeniem, gdy spróbuje użyć niezgodnego interfejsu API.

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

-UseWindowsPowerShell

Ładuje moduł przy użyciu funkcji zgodności programu Windows PowerShell. Aby uzyskać więcej informacji, zobacz about_Windows_PowerShell_Compatibility .

Typ:SwitchParameter
Aliasy:UseWinPS
Position:Named
Domyślna wartość:False
Wymagane:True
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

String

Możesz przekazać nazwę modułu do tego polecenia cmdlet.

PSModuleInfo

Do tego polecenia cmdlet można przekazać obiekt modułu.

Assembly

Możesz przekazać obiekt zestawu do tego polecenia cmdlet.

Dane wyjściowe

None

Domyślnie to polecenie cmdlet nie zwraca żadnych danych wyjściowych.

PSModuleInfo

Jeśli określisz parametr PassThru , polecenie cmdlet generuje obiekt System.Management.Automation.PSModuleInfo reprezentujący zaimportowany moduł.

PSCustomObject

Jeśli określisz razem parametry AsCustomObject i PassThru , polecenie cmdlet wygeneruje obiekt PSCustomObject reprezentujący moduł.

Uwagi

Program PowerShell zawiera następujące aliasy dla programu Import-Module:

  • Wszystkie platformy:

    • ipmo
  • Aby można było zaimportować moduł, moduł musi być dostępny dla komputera lokalnego i uwzględniony w zmiennej środowiskowej PSModulePath . 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 korzystające z poleceń cmdlet w tych modułach są 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 poleceń zaimportowanych z modułu Update-FormatData , użyj polecenia cmdlet . Jeśli plik formatowania modułu ulegnie zmianie, użyj Update-FormatData polecenia cmdlet , aby zaktualizować dane formatowania dla zaimportowanych poleceń. Nie trzeba ponownie importować modułu.

  • Począwszy od programu Windows PowerShell 3.0, podstawowe polecenia zainstalowane za pomocą programu PowerShell są pakowane w modułach. W programie Windows PowerShell 2.0 i programach hosta, 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 uruchomione przez New-PSSession polecenie cmdlet, są sesjami w starszym stylu, które obejmują podstawowe przystawki.

    Aby uzyskać informacje o metodzie CreateDefault2, która tworzy nowsze sesje z modułami podstawowymi, zobacz metodę CreateDefault2.

  • W programie Windows PowerShell 2.0 niektóre wartości właściwości obiektu modułu, takie jak ExportedCmdlets i NestedModules , nie zostały wypełnione, dopóki moduł nie zostanie zaimportowany.

  • Jeśli spróbujesz zaimportować moduł zawierający zestawy w trybie mieszanym, które nie są zgodne z programem Windows PowerShell 3.0 lub nowszym, Import-Module zwraca 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. Zestaw modułu mieszanego, który zawiera 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ć Import-Module polecenie.

    PowerShell.exe -Version 2.0

  • Aby korzystać z funkcji sesji modelu CIM, komputer zdalny musi mieć zdalną funkcję komunikacji zdalnej w usłudze WS-Management i instrumentację 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 mają 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.

  • Domyślnie importuje moduły w zakresie globalnym nawet wtedy, Import-Module gdy są wywoływane z zakresu potomnego. Zakres najwyższego poziomu i wszystkie zakresy podrzędne mają dostęp do wyeksportowanych elementów modułu.

    W zakresie -Scope Local potomnym ogranicza importowanie do tego zakresu i wszystkich zakresów podrzędnych. Zakresy nadrzędne nie widzą zaimportowanych elementów członkowskich.

    Uwaga

    Get-Module pokazuje wszystkie moduły załadowane w bieżącej sesji. Obejmuje to moduły ładowane lokalnie w zakresie potomnym. Użyj Get-Command -Module modulename polecenia , aby zobaczyć, które elementy członkowskie są ładowane w bieżącym zakresie.

  • Import-Module nie ładuje definicji klas i wyliczenia w module. Użyj instrukcji using module na początku skryptu. Spowoduje to zaimportowanie modułu, w tym definicji klasy i wyliczenia. Aby uzyskać więcej informacji, zobacz about_Using.

  • Podczas opracowywania modułu skryptu często wprowadza się zmiany w kodzie, a następnie ładują nową wersję modułu przy użyciu Import-Module parametru Force . Działa to tylko w przypadku zmian funkcji w module głównym. Import-Module nie ładuje ponownie żadnych zagnieżdżonych modułów. Ponadto nie ma możliwości załadowania zaktualizowanych klas ani wyliczenia.

    Aby uzyskać zaktualizowane elementy członkowskie modułu zdefiniowane w zagnieżdżonych modułach, usuń moduł za pomocą Remove-Modulepolecenia , a następnie zaimportuj moduł ponownie.

    Jeśli moduł został załadowany z instrukcją using , należy uruchomić nową sesję, aby zaimportować zaktualizowane definicje dla klas i wyliczenia. Nie można zwolnić klas i wyliczenia zdefiniowanych w programie PowerShell i zaimportowanych za pomocą using instrukcji.