Sdílet prostřednictvím


Import-Module

Přidá moduly do aktuální relace.

Syntaxe

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>]

Description

Rutina Import-Module přidá do aktuální relace jeden nebo více modulů. Počínaje PowerShellem 3.0 se nainstalované moduly automaticky importují do relace, když v modulu použijete všechny příkazy nebo zprostředkovatele. K importu Import-Module modulu ale můžete použít příkaz. Automatické importování modulů můžete zakázat pomocí $PSModuleAutoloadingPreference proměnné předvoleb. Další informace o $PSModuleAutoloadingPreference proměnné najdete v tématu about_Preference_Variables.

Modul je balíček, který obsahuje členy, které je možné použít v PowerShellu. Členové zahrnují rutiny, zprostředkovatele, skripty, funkce, proměnné a další nástroje a soubory. Po importu modulu můžete ve své relaci použít členy modulu. Další informace o modulech najdete v tématu about_Modules.

Ve výchozím nastavení importuje všechny členy, Import-Module které modul exportuje, ale k omezení importovaných členů můžete použít parametry Alias, Funkce, Rutina a Proměnná . Parametr NoClobber zabraňuje Import-Module importu členů se stejnými názvy jako členy v aktuální relaci.

Import-Module importuje modul pouze do aktuální relace. Pokud chcete modul importovat do každé nové relace, přidejte do profilu PowerShellu Import-Module příkaz. Další informace o profilech najdete v tématu about_Profiles.

Vzdálené počítače s Windows, které mají povolenou vzdálenou správu Prostředí PowerShell, můžete vytvořit na vzdáleném počítači psSession . Potom pomocí parametru Import-Module PSSession importujte moduly nainstalované ve vzdáleném počítači. Pokud v aktuální relaci použijete importované příkazy, příkazy se implicitně spustí na vzdáleném počítači.

Počínaje windows PowerShellem 3.0 můžete importovat Import-Module moduly MODELU CIM (Common Information Model). Moduly CIM definují rutiny v souborech CDXML (Cmdlet Definition XML). Tato funkce umožňuje používat rutiny implementované v nespravovaných sestaveních kódu, jako jsou například rutiny napsané v jazyce C++.

U vzdálených počítačů, které nemají povolenou vzdálenou vzdálenou komunikace PowerShellu, včetně počítačů, které nepoužívají operační systém Windows, můžete pomocí parametru Import-Module CIMSession importovat moduly CIM ze vzdáleného počítače. Importované příkazy běží implicitně ve vzdáleném počítači. CIMSession je připojení ke službě WMI (Windows Management Instrumentation) ve vzdáleném počítači.

Příklady

Příklad 1: Import členů modulu do aktuální relace

Tento příklad naimportuje členy modulu PSDiagnostics do aktuální relace.

Import-Module -Name PSDiagnostics

Příklad 2: Import všech modulů určených cestou k modulu

Tento příklad importuje všechny dostupné moduly v cestě určené proměnnou $env:PSModulePath prostředí do aktuální relace.

Get-Module -ListAvailable | Import-Module

Příklad 3: Import členů několika modulů do aktuální relace

Tento příklad naimportuje členy modulů PSDiagnostics a Dism do aktuální relace.

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

Rutina Get-Module získá moduly PSDiagnostics a Dism a uloží objekty do $m proměnné. Parametr ListAvailable se vyžaduje, když získáváte moduly, které ještě nejsou importovány do relace.

Parametr ModuleInfo Import-Module pro import modulů do aktuální relace.

Příklad 4: Import všech modulů určených cestou

Tento příklad používá explicitní cestu k identifikaci modulu k importu.

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'.

Použití podrobného parametru způsobí Import-Module hlášení průběhu při načítání modulu. Bez parametru Import-Module Verbose, PassThru nebo AsCustomObject negeneruje žádný výstup při importu modulu.

Příklad 5: Omezení členů modulů importovaných do relace

Tento příklad ukazuje, jak omezit, které členy modulu se importují do relace, a vliv tohoto příkazu na relaci. Parametr funkce omezuje členy importované z modulu. Pomocí parametrů Alias, Proměnná a Rutina můžete také omezit ostatní členy, které modul importuje.

Rutina Get-Module získá objekt, který představuje modul PSDiagnostics . Vlastnost ExportedCmdlets obsahuje seznam všech rutin, které modul exportuje, i když nebyly všechny importovány.

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

Pomocí parametru Module rutiny Get-Command se zobrazují příkazy, které byly importovány z modulu PSDiagnostics. Výsledky potvrdí, že se importovaly jenom rutiny Disable-PSTrace a Enable-PSTrace rutiny.

Příklad 6: Import členů modulu a přidání předpony

Tento příklad naimportuje modul PSDiagnostics do aktuální relace, přidá předponu k názvům členů a pak zobrazí názvy předpony členů. Parametr Import-Module Předpona přidá předponu x všem členům importovaným z modulu. Předpona se vztahuje pouze na členy v aktuální relaci. Modul se nezmění. Parametr PassThru vrátí objekt modulu, který představuje importovaný modul.

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 získá členy, které byly importovány z modulu. Výstup ukazuje, že členy modulu byly správně předpony.

Příklad 7: Získání a použití vlastního objektu

Tento příklad ukazuje, jak získat a použít vlastní objekt vrácený Import-Module.

Vlastní objekty zahrnují syntetické členy, které představují každý z importovaných členů modulu. Například rutiny a funkce v modulu se převedou na metody skriptů vlastního objektu.

Vlastní objekty jsou užitečné při skriptování. Jsou také užitečné, když několik importovaných objektů má stejné názvy. Použití metody skriptu objektu je ekvivalentní k zadání plně kvalifikovaného názvu importovaného člena, včetně jeho názvu modulu.

Parametr AsCustomObject je použitelný pouze při importu modulu skriptu. Slouží Get-Module k určení, které z dostupných modulů je skriptovací modul.

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"()

Modul Show-Calendar skriptu se importuje pomocí parametru AsCustomObject k vyžádání vlastního objektu a parametru PassThru k vrácení objektu. Výsledný vlastní objekt je uložen v $a proměnné.

Proměnná $a se předá rutině Get-Member , aby zobrazila vlastnosti a metody uloženého objektu. Výstup zobrazuje metodu Show-Calendar skriptu.

Chcete-li volat metodu Show-Calendar skriptu, musí být název metody uzavřen v uvozovkách, protože název obsahuje spojovník.

Příklad 8: Opětovné importování modulu do stejné relace

Tento příklad ukazuje, jak použít parametr Import-Module Force při opětovném importu modulu do stejné relace. Parametr Force odebere načtený modul a pak ho znovu naimportuje.

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

První příkaz importuje modul PSDiagnostics . Druhý příkaz znovu naimportuje modul, tentokrát pomocí parametru Prefix .

Bez parametru Force by relace obsahovala dvě kopie každé rutiny PSDiagnostics , jednu se standardním názvem a druhou s předponou.

Příklad 9: Spuštění příkazů skrytých importovanými příkazy

Tento příklad ukazuje, jak spouštět příkazy skryté importovanými příkazy. Modul TestModule obsahuje funkci s názvem Get-Date , která vrátí rok a den v roce.

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

První Get-Date rutina vrátí objekt DateTime s aktuálním datem. Po importu modulu Get-Date TestModule vrátí rok a den v roce.

Pomocí parametru All (Vše ) Get-Command zobrazíte všechny Get-Date příkazy v relaci. Výsledky ukazují, že v relaci existují dva Get-Date příkazy, funkce z modulu TestModule a rutina z modulu Microsoft.PowerShell.Utility .

Vzhledem k tomu, že funkce mají přednost před rutinami, spustí se Get-Date funkce z modulu TestModule místo rutiny Get-Date . Pokud chcete spustit původní verzi Get-Date, musíte kvalifikovat název příkazu s názvem modulu.

Další informace o prioritách příkazů v PowerShellu najdete v tématu about_Command_Precedence.

Příklad 10: Import minimální verze modulu

Tento příklad naimportuje modul PowerShellGet . Používá parametr Import-Module MinimumVersion k importu pouze verze 2.0.0 nebo vyšší modulu.

Import-Module -Name PowerShellGet -MinimumVersion 2.0.0

Parametr RequiredVersion můžete také použít k importu konkrétní verze modulu nebo můžete použít parametry module a verze klíčového #Requires slova k vyžadování konkrétní verze modulu ve skriptu.

Příklad 11: Import s použitím plně kvalifikovaného názvu

Tento příklad naimportuje konkrétní verzi modulu pomocí 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' }

Příklad 12: Import pomocí plně kvalifikované cesty

Tento příklad naimportuje konkrétní verzi modulu pomocí plně kvalifikované cesty.

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'

Příklad 13: Import modulu ze vzdáleného počítače

Tento příklad ukazuje, jak pomocí rutiny Import-Module importovat modul ze vzdáleného počítače. Tento příkaz používá funkci Implicitní komunikace PowerShellu.

Při importu modulů z jiné relace můžete použít rutiny v aktuální relaci. Příkazy, které používají rutiny, se ale spouští ve vzdálené relaci.

$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 vytvoří vzdálenou relaci (PSSession) k Server01 počítači. PsSession se uloží do $s proměnné.

Spuštění Get-Module s parametrem PSSession ukazuje, že je modul NetSecurity nainstalovaný a dostupný na vzdáleném počítači. Tento příkaz je ekvivalentní použití rutiny Invoke-Command ke spuštění Get-Module příkazu ve vzdálené relaci. Příklad:

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

Spuštění Import-Module s parametrem PSSession importuje modul NetSecurity ze vzdáleného počítače do aktuální relace. Rutina Get-Command načte příkazy, které začínají Get a zahrnují Firewall z modulu NetSecurity . Výstup potvrzuje, že modul a jeho rutiny byly importovány do aktuální relace.

V dalším kroku rutina Get-NetFirewallRule získá pravidla brány firewall vzdálené správy systému Windows v Server01 počítači. To je ekvivalentem použití rutiny Invoke-Command ke spuštění Get-NetFirewallRule ve vzdálené relaci.

Příklad 14: Správa úložiště na vzdáleném počítači bez operačního systému Windows

V tomto příkladu nainstaloval správce počítače zprostředkovatele rozhraní WMI zjišťování modulů, který umožňuje používat příkazy CIM určené pro daného poskytovatele.

Rutina New-CimSession vytvoří relaci na vzdáleném počítači s názvem RSDGF03. Relace se připojí ke službě WMI na vzdáleném počítači. Relace CIM se uloží do $cs proměnné. Import-Modulenástroj CimSession $cs použije k importu modulu CIM úložiště z RSDGF03 počítače.

Rutina Get-Command zobrazí Get-Disk příkaz v modulu Storage . Když importujete modul CIM do místní relace, PowerShell převede soubory CDXML pro každý příkaz na skripty PowerShellu, které se zobrazí jako funkce v místní relaci.

I když Get-Disk je zadána v místní relaci, rutina implicitně běží na vzdáleném počítači, ze kterého byla importována. Příkaz vrátí objekty ze vzdáleného počítače do místní relace.

$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

Určuje aliasy, které tato rutina importuje z modulu do aktuální relace. Zadejte čárkami oddělený seznam aliasů. Jsou povoleny zástupné znaky.

Některé moduly při importu modulu automaticky exportuje vybrané aliasy do relace. Tento parametr umožňuje vybírat z exportovaných aliasů.

Typ:String[]
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:True

-ArgumentList

Určuje pole argumentů nebo hodnot parametrů, které se během Import-Module příkazu předávají modulu skriptu. Tento parametr je platný pouze při importu modulu skriptu.

Můžete také odkazovat na parametr ArgumentList podle jeho aliasu, args. Další informace o chování ArgumentList naleznete v tématu about_Splatting.

Typ:Object[]
Aliasy:Args
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-AsCustomObject

Označuje, že tato rutina vrátí vlastní objekt se členy, které představují importované členy modulu. Tento parametr je platný pouze pro moduly skriptu.

Pokud použijete parametr AsCustomObject , Import-Module importuje členy modulu do relace a pak vrátí PSCustomObject objekt místo PSModuleInfo objektu. Vlastní objekt můžete uložit do proměnné a pomocí výčtu přístupu člena vyvolat členy.

Typ:SwitchParameter
Position:Named
Default value:False
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Assembly

Určuje pole objektů sestavení. Tato rutina importuje rutiny a zprostředkovatele implementované v zadaných objektech sestavení. Zadejte proměnnou obsahující objekty sestavení nebo příkaz, který vytváří objekty sestavení. Objekt sestavení lze také pipetovat do Import-Moduleobjektu sestavení .

Pokud použijete tento parametr, importují se pouze rutiny a zprostředkovatelé implementované zadanými sestaveními. Pokud modul obsahuje další soubory, nenaimportují se a možná vám chybí důležité členy modulu. Tento parametr použijte k ladění a testování modulu nebo k jeho použití autorem modulu.

Typ:Assembly[]
Position:0
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-CimNamespace

Určuje obor názvů alternativního poskytovatele CIM, který zveřejňuje moduly CIM. Výchozí hodnota je obor názvů zprostředkovatele rozhraní WMI zjišťování modulů.

Tento parametr použijte k importu modulů CIM z počítačů a zařízení, která nepoužívají operační systém Windows.

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:String
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-CimResourceUri

Určuje alternativní umístění pro moduly CIM. Výchozí hodnota je identifikátor URI prostředku zprostředkovatele rozhraní WMI zjišťování modulu ve vzdáleném počítači.

Tento parametr použijte k importu modulů CIM z počítačů a zařízení, která nepoužívají operační systém Windows.

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:Uri
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-CimSession

Určuje relaci CIM na vzdáleném počítači. Zadejte proměnnou obsahující relaci CIM nebo příkaz, který získá relaci CIM, například příkaz Get-CimSession .

Import-Module používá připojení relace CIM k importu modulů ze vzdáleného počítače do aktuální relace. Pokud použijete příkazy z importovaného modulu v aktuální relaci, příkazy se spustí na vzdáleném počítači.

Tento parametr můžete použít k importu modulů z počítačů a zařízení, na kterých běží operační systém Windows, a počítačů s Windows, které mají PowerShell, ale nemají povolenou vzdálené komunikace PowerShellu.

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:CimSession
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Cmdlet

Určuje pole rutin, které tato rutina importuje z modulu do aktuální relace. Jsou povoleny zástupné znaky.

Některé moduly při importu modulu automaticky exportují vybrané rutiny do relace. Tento parametr umožňuje vybírat z exportovaných rutin.

Typ:String[]
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:True

-DisableNameChecking

Označuje, že tato rutina potlačí zprávu, která vás upozorní při importu rutiny nebo funkce, jejíž název obsahuje neschválené sloveso nebo zakázaný znak.

Pokud modul, který importujete, ve výchozím nastavení exportuje rutiny nebo funkce, které mají ve svých názvech neschválené příkazy, zobrazí PowerShell následující zprávu upozornění:

UPOZORNĚNÍ: Některé importované názvy příkazů zahrnují neschválené příkazy, které by mohly být méně zjistitelné. Pokud chcete zobrazit seznam schválených sloves, použijte podrobný parametr Podrobné nebo zadejte Příkaz Get-Verb.

Tato zpráva je pouze upozornění. Kompletní modul se stále importuje, včetně nevyhovujících příkazů. I když se zpráva zobrazuje uživatelům modulu, měl by problém s pojmenováním vyřešit autor modulu.

Typ:SwitchParameter
Position:Named
Default value:False
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Force

Tento parametr způsobí, že se modul načte nebo znovu načte nad aktuální. Některé moduly načítají externí sestavení. Import selže, pokud importujete modul, který načte novější verzi sestavení. Parametr Force nemůže chybu přepsat. Pokud chcete načíst novou verzi, musíte spustit novou relaci.

Typ:SwitchParameter
Position:Named
Default value:False
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-FullyQualifiedName

Hodnota může být název modulu, úplná specifikace modulu nebo cesta k souboru modulu.

Pokud je hodnota cesta, může být cesta plně kvalifikovaná nebo relativní. Relativní cesta je vyřešena vzhledem ke skriptu, který obsahuje příkaz using.

Pokud je hodnota název nebo specifikace modulu, PowerShell vyhledá zadaný modul v psModulePath .

Specifikace modulu je hashovatelná tabulka s následujícími klíči.

  • ModuleName - Povinný argument Určuje název modulu.
  • GUID - Volitelné určuje identifikátor GUID modulu.
  • Je také povinné zadat aspoň jeden ze tří následujících klíčů.
    • ModuleVersion – Určuje minimální přijatelnou verzi modulu.
    • MaximumVersion – Určuje maximální přijatelnou verzi modulu.
    • RequiredVersion – Určuje přesnou požadovanou verzi modulu. Tuto možnost nelze použít s jinými klíči verze.
Typ:ModuleSpecification[]
Position:0
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Function

Určuje pole funkcí, které tato rutina importuje z modulu do aktuální relace. Jsou povoleny zástupné znaky. Některé moduly při importu modulu automaticky exportuje vybrané funkce do relace. Tento parametr umožňuje vybírat z exportovaných funkcí.

Typ:String[]
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:True

-Global

Označuje, že tato rutina importuje moduly do globálního stavu relace, aby byly dostupné pro všechny příkazy v relaci.

Ve výchozím nastavení se při Import-Module zavolání rutiny z příkazového řádku, souboru skriptu nebo skriptublock všechny příkazy importují do globálního stavu relace.

Při vyvolání z jiného modulu Import-Module rutina importuje příkazy v modulu, včetně příkazů z vnořených modulů, do stavu relace volajícího modulu.

Tip

Měli byste se vyhnout volání Import-Module z modulu. Místo toho deklarujte cílový modul jako vnořený modul v manifestu nadřazeného modulu. Deklarace vnořených modulů zlepšuje zjistitelnost závislostí.

Globální parametr je ekvivalentní parametru Scope s hodnotou Global.

Pokud chcete omezit příkazy, které modul exportuje, použijte Export-ModuleMember příkaz v modulu skriptu.

Typ:SwitchParameter
Position:Named
Default value:False
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-MaximumVersion

Určuje maximální verzi. Tato rutina importuje pouze verzi modulu, která je menší nebo rovna zadané hodnotě. Pokud není kvalifikovat žádná verze, Import-Module vrátí chybu.

Typ:String
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-MinimumVersion

Určuje minimální verzi. Tato rutina importuje pouze verzi modulu, která je větší nebo rovna zadané hodnotě. Použijte název parametru MinimumVersion nebo jeho alias Verze. Pokud kvalifikuje žádná verze, Import-Module vygeneruje chybu.

Pokud chcete zadat přesnou verzi, použijte parametr RequiredVersion . Parametry modulu a verze klíčového slova #Requires můžete použít také k vyžadování konkrétní verze modulu ve skriptu.

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:Version
Aliasy:Version
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-ModuleInfo

Určuje pole objektů modulu, které se mají importovat. Zadejte proměnnou, která obsahuje objekty modulu, nebo příkaz, který získá objekty modulu, například následující příkaz: Get-Module -ListAvailable. Objekty modulu můžete také pipetovat do Import-Module.

Typ:PSModuleInfo[]
Position:0
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Name

Určuje názvy modulů, které se mají importovat. Zadejte název modulu nebo název souboru v modulu, například .psd1, .psm1, .dllnebo .ps1 soubor. Cesty k souborům jsou volitelné. Zástupné znaky nejsou povolené. Můžete také převést názvy modulů a názvy souborů na Import-Module.

Pokud cestu vynecháte, Import-Module vyhledá modul v cestách uložených $env:PSModulePath v proměnné prostředí.

Kdykoli je to možné, zadejte pouze název modulu. Když zadáte název souboru, importují se pouze členové implementované v daném souboru. Pokud modul obsahuje další soubory, nenaimportují se a možná vám chybí důležité členy modulu.

Poznámka:

I když je možné importovat soubor skriptu (.ps1) jako modul, soubory skriptů obvykle nejsou strukturované jako soubor souboru modulů skriptů (.psm1). Import souboru skriptu nezaručuje, že je použitelný jako modul. Další informace najdete v tématu about_Modules.

Typ:String[]
Position:0
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:True
Přijmout zástupné znaky:True

-NoClobber

Zabrání importu příkazů se stejnými názvy jako existující příkazy v aktuální relaci. Ve výchozím nastavení Import-Module importuje všechny exportované příkazy modulu.

Příkazy se stejnými názvy můžou v relaci skrýt nebo nahradit příkazy. Chcete-li zabránit konfliktům názvů příkazů v relaci, použijte parametry Prefix nebo NoClobber . Další informace o konfliktech názvů a prioritách příkazů najdete v tématu Moduly a konflikty názvů v about_Modules a about_Command_Precedence.

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:SwitchParameter
Aliasy:NoOverwrite
Position:Named
Default value:False
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-PassThru

Vrátí objekt představující importovaný modul. Ve výchozím nastavení tato rutina negeneruje žádný výstup.

Typ:SwitchParameter
Position:Named
Default value:False
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Prefix

Určuje předponu, kterou tato rutina přidá do podstatných jmen v názvech importovaných členů modulu.

Tento parametr použijte, chcete-li zabránit konfliktům názvů, ke kterým může dojít, když mají různé členy v relaci stejný název. Tento parametr nemění modul a nemá vliv na soubory, které modul importuje pro vlastní použití. Tyto moduly se označují jako vnořené moduly. Tato rutina má vliv jenom na jména členů v aktuální relaci.

Pokud například zadáte předponu UTC a pak importujete rutinu Get-Date , rutina se v relaci označuje jako Get-UTCDatea nezaměňuje se s původní Get-Date rutinou.

Hodnota tohoto parametru má přednost před DefaultCommandPrefix vlastnost modulu, která určuje výchozí předponu.

Typ:String
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-PSSession

Určuje relaci spravovanou uživatelem PowerShellu (PSSession), ze které tato rutina importuje moduly do aktuální relace. Zadejte proměnnou , která obsahuje psSession nebo příkaz, který získá psSession, například Get-PSSession příkaz.

Při importu modulu z jiné relace do aktuální relace můžete použít rutiny z modulu v aktuální relaci stejně jako rutiny z místního modulu. Příkazy, které používají vzdálené rutiny, běží ve vzdálené relaci, ale podrobnosti vzdálené komunikace se spravují na pozadí pomocí PowerShellu.

Tento parametr používá funkci Implicitní vzdálené komunikace PowerShellu. Je ekvivalentem použití rutiny Import-PSSession k importu konkrétních modulů z relace.

Import-Module Nejde importovat základní moduly PowerShellu z jiné relace. Základní moduly PowerShellu mají názvy, které začínají Microsoft.PowerShellem.

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:PSSession
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-RequiredVersion

Určuje verzi modulu, kterou tato rutina importuje. Pokud verze není nainstalovaná, Import-Module vygeneruje chybu.

Ve výchozím nastavení Import-Module importuje modul bez kontroly čísla verze.

Pokud chcete zadat minimální verzi, použijte parametr MinimumVersion . Parametry modulu a verze klíčového slova #Requires můžete použít také k vyžadování konkrétní verze modulu ve skriptu.

Tento parametr byl představen ve Windows PowerShellu 3.0.

Skripty, které používají RequiredVersion k importu modulů, které jsou součástí stávajících verzí operačního systému Windows, se v budoucích verzích operačního systému Windows automaticky nespustí. Důvodem je to, že čísla verzí modulu PowerShellu v budoucích verzích operačního systému Windows jsou vyšší než čísla verzí modulů v existujících verzích operačního systému Windows.

Typ:Version
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Scope

Určuje obor pro import modulu.

Tento parametr přijímá tyto hodnoty:

  • Globální. K dispozici pro všechny příkazy v relaci. Ekvivalent globálního parametru.
  • Místní. K dispozici pouze v aktuálním oboru.

Ve výchozím nastavení se při Import-Module zavolání rutiny z příkazového řádku, souboru skriptu nebo skriptublock všechny příkazy importují do globálního stavu relace. Tento parametr můžete použít -Scope Local k importu obsahu modulu do oboru skriptu nebo skriptu.

Při vyvolání z jiného modulu Import-Module rutina importuje příkazy v modulu, včetně příkazů z vnořených modulů, do stavu relace volajícího. -Scope Global Určuje nebo -Global označuje, že tato rutina importuje moduly do globálního stavu relace, aby byly dostupné pro všechny příkazy v relaci.

Globální parametr je ekvivalentní parametru Scope s hodnotou Global.

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:String
Přípustné hodnoty:Local, Global
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-SkipEditionCheck

Přeskočí kontrolu CompatiblePSEditions pole.

Umožňuje načtení modulu z "$($env:windir)\System32\WindowsPowerShell\v1.0\Modules" adresáře modulu do PowerShellu Core, pokud tento modul v poli manifestu CompatiblePSEditions neurčíCore.

Při importu modulu z jiné cesty tento přepínač nedělá nic, protože se kontrola neprovádí. V Linuxu a macOS tento přepínač nedělá nic.

Další informace najdete v tématu about_PowerShell_Editions.

Upozorňující

Import-Module -SkipEditionCheck je stále pravděpodobné, že se nepodaří importovat modul. I když se to podaří, vyvolání příkazu z modulu může později selhat, když se pokusí použít nekompatibilní rozhraní API.

Typ:SwitchParameter
Position:Named
Default value:False
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-UseWindowsPowerShell

Načte modul pomocí funkce kompatibility prostředí Windows PowerShell. Další informace najdete v tématu about_Windows_PowerShell_Compatibility .

Typ:SwitchParameter
Aliasy:UseWinPS
Position:Named
Default value:False
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Variable

Určuje pole proměnných, které tato rutina importuje z modulu do aktuální relace. Zadejte seznam proměnných. Jsou povoleny zástupné znaky.

Některé moduly při importu modulu automaticky exportují vybrané proměnné do relace. Tento parametr umožňuje vybírat z exportovaných proměnných.

Typ:String[]
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:True

Vstupy

String

Do této rutiny můžete připojit název modulu.

PSModuleInfo

Objekt modulu můžete do této rutiny převést.

Assembly

Objekt sestavení můžete do této rutiny převést.

Výstupy

None

Ve výchozím nastavení tato rutina nevrací žádný výstup.

PSModuleInfo

Pokud zadáte parametr PassThru , rutina vygeneruje objekt System.Management.Automation.PSModuleInfo , který představuje importovaný modul.

PSCustomObject

Pokud společně zadáte parametry AsCustomObject a PassThru , rutina vygeneruje objekt PSCustomObject , který představuje modul.

Poznámky

PowerShell obsahuje následující aliasy pro Import-Module:

  • Všechny platformy:

    • ipmo
  • Než budete moct importovat modul, musí být modul přístupný pro místní počítač a zahrnutý do PSModulePath proměnné prostředí. Další informace najdete v tématu about_Modules.

    K importu modulů nainstalovaných na vzdálených počítačích můžete také použít parametry PSSession a CIMSession . Příkazy, které používají rutiny v těchto modulech, však běží ve vzdálené relaci na vzdáleném počítači.

  • Pokud do relace importujete členy se stejným názvem a stejným typem, PowerShell ve výchozím nastavení použije člena importovaného jako poslední. Proměnné a aliasy jsou nahrazeny a originály nejsou přístupné. Funkce, rutiny a poskytovatelé jsou pouze stínovány novými členy. K nim je možné získat přístup tak, že k názvu příkazu použijete název modulu snap-in, modulu nebo cesty funkce.

  • Pokud chcete aktualizovat formátovací data pro příkazy importované z modulu, použijte tuto rutinu Update-FormatData . Pokud se formátovací soubor modulu změní, aktualizujte Update-FormatData pomocí rutiny data formátování pro importované příkazy. Modul nemusíte znovu importovat.

  • Počínaje Windows PowerShellem 3.0 se základní příkazy nainstalované pomocí PowerShellu zabalí do modulů. V prostředí Windows PowerShell 2.0 a v hostitelských programech, které vytvářejí relace staršího stylu v novějších verzích PowerShellu, se základní příkazy zabalí do modulů snap-in (PSSnapins). Výjimkou je Microsoft.PowerShell.Core, což je vždy modul snap-in. Vzdálené relace, například relace spuštěné rutinou New-PSSession , jsou také relace ve starším stylu, které zahrnují základní moduly snap-in.

    Informace o createDefault2 metoda, která vytváří novější relace se základními moduly, naleznete v CreateDefault2 Metoda.

  • V prostředí Windows PowerShell 2.0 nebyly některé hodnoty vlastností objektu modulu, jako jsou exportovanécmdlety a hodnoty vlastností NestedModules , vyplněny, dokud se modul nenaimportoval.

  • Pokud se pokusíte importovat modul, který obsahuje sestavení smíšeného režimu, která nejsou kompatibilní s Prostředím Windows PowerShell 3.0+, Import-Module vrátí chybovou zprávu podobná následující.

    Modul importu: Sestavení smíšeného režimu je sestaveno proti verzi modulu runtime v2.0.50727 a nelze ji načíst do modulu runtime 4.0 bez dalších informací o konfiguraci.

    K této chybě dochází v případě, že modul navržený pro Prostředí Windows PowerShell 2.0 obsahuje alespoň jedno sestavení smíšeného modulu. Sestavení se smíšeným modulem, které zahrnuje spravovaný i nespravovaný kód, například C++ a C#.

    Pokud chcete importovat modul, který obsahuje sestavení smíšeného režimu, spusťte Windows PowerShell 2.0 pomocí následujícího příkazu a opakujte Import-Module příkaz.

    PowerShell.exe -Version 2.0

  • Aby bylo možné používat funkci relace CIM, musí mít vzdálený počítač vzdálenou vzdálenou správu WS-Management a rozhraní WMI (Windows Management Instrumentation), což je implementace modelu CIM (Common Information Model). Počítač musí mít také poskytovatele rozhraní WMI pro zjišťování modulů nebo alternativního poskytovatele CIM, který má stejné základní funkce.

    Funkci relace CIM můžete použít na počítačích, na kterých není spuštěn operační systém Windows a na počítačích s Windows, které mají PowerShell, ale nemají povolenou vzdálené komunikace PowerShellu.

    Parametry CIM můžete také použít k získání modulů CIM z počítačů s povolenou vzdálené komunikace PowerShellu, včetně místního počítače. Při vytváření relace CIM na místním počítači používá PowerShell k vytvoření relace DCOM místo rozhraní WMI.

  • Ve výchozím nastavení Import-Module importuje moduly v globálním oboru i v případě, že je volána z potomkového oboru. Obor nejvyšší úrovně a všechny potomky mají přístup k exportovaným prvkům modulu.

    V oboru potomku -Scope Local omezí import na tento obor a všechny jeho potomky. Nadřazené obory se pak nezobrazují importovaným členům.

    Poznámka:

    Get-Module zobrazí všechny moduly načtené v aktuální relaci. To zahrnuje moduly načtené místně v oboru potomků. Umožňuje Get-Command -Module modulename zobrazit, které členy jsou načteny v aktuálním oboru.

  • Import-Module nenačítá definice tříd a výčtů v modulu. Použijte příkaz using module na začátku skriptu. Tím se naimportuje modul, včetně definic tříd a výčtů. Další informace najdete v tématu about_Using.

  • Při vývoji modulu skriptu je běžné provádět změny kódu a pak načíst novou verzi modulu pomocí Import-Module parametru Force . To funguje jenom pro změny funkcí v kořenovém modulu. Import-Module nenačítá žádné vnořené moduly. Neexistuje také způsob, jak načíst žádné aktualizované třídy nebo výčty.

    Pokud chcete získat aktualizované členy modulu definované v vnořených modulech, odeberte modul s Remove-Modulea pak modul znovu naimportujte.

    Pokud byl modul načten příkazem using , musíte zahájit novou relaci pro import aktualizovaných definic pro třídy a výčty. Třídy a výčty definované v PowerShellu a importované pomocí using příkazu se nedají uvolnit.