Delen via


Import-Module

Voegt modules toe aan de huidige sessie.

Syntaxis

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

Description

De cmdlet Import-Module voegt een of meer modules toe aan de huidige sessie. Vanaf PowerShell 3.0 worden geïnstalleerde modules automatisch geïmporteerd in de sessie wanneer u opdrachten of providers in de module gebruikt. U kunt echter nog steeds de opdracht Import-Module gebruiken om een module te importeren. U kunt het importeren van automatische modules uitschakelen met behulp van de $PSModuleAutoloadingPreference voorkeursvariabele. Zie about_Preference_Variablesvoor meer informatie over de variabele $PSModuleAutoloadingPreference.

Een module is een pakket dat leden bevat die kunnen worden gebruikt in PowerShell. Leden omvatten cmdlets, providers, scripts, functies, variabelen en andere hulpprogramma's en bestanden. Nadat een module is geïmporteerd, kunt u de moduleleden in uw sessie gebruiken. Zie about_Modulesvoor meer informatie over modules.

Standaard importeert Import-Module alle leden die de module exporteert, maar u kunt de parameters Alias, Function, Cmdleten Variable parameters gebruiken om te beperken welke leden worden geïmporteerd. Met de parameter NoClobber voorkomt u dat Import-Module leden importeert die dezelfde namen hebben als leden in de huidige sessie.

Import-Module importeert een module alleen in de huidige sessie. Als u de module in elke nieuwe sessie wilt importeren, voegt u een Import-Module opdracht toe aan uw PowerShell-profiel. Zie about_Profilesvoor meer informatie over profielen.

U kunt externe Windows-computers beheren waarvoor externe communicatie via PowerShell is ingeschakeld door een PSSession- op de externe computer te maken. Gebruik vervolgens de PSSession-parameter van Import-Module om de modules te importeren die op de externe computer zijn geïnstalleerd. Wanneer u de geïmporteerde opdrachten in de huidige sessie gebruikt, worden de opdrachten impliciet uitgevoerd op de externe computer.

Vanaf Windows PowerShell 3.0 kunt u Import-Module gebruiken om CIM-modules (Common Information Model) te importeren. CIM-modules definiëren cmdlets in CDXML-bestanden (Cmdlet Definition XML). Met deze functie kunt u cmdlets gebruiken die zijn geïmplementeerd in niet-beheerde codeassembly's, zoals die zijn geschreven in C++.

Voor externe computers waarop externe communicatie met PowerShell niet is ingeschakeld, inclusief computers waarop het Windows-besturingssysteem niet wordt uitgevoerd, kunt u de parameter CIMSession parameter van Import-Module gebruiken om CIM-modules te importeren vanaf de externe computer. De geïmporteerde opdrachten worden impliciet uitgevoerd op de externe computer. Een CIMSession is een verbinding met Windows Management Instrumentation (WMI) op de externe computer.

Voorbeelden

Voorbeeld 1: De leden van een module importeren in de huidige sessie

In dit voorbeeld worden de leden van de PSDiagnostics-module geïmporteerd in de huidige sessie.

Import-Module -Name PSDiagnostics

Voorbeeld 2: alle modules importeren die zijn opgegeven door het modulepad

In dit voorbeeld worden alle beschikbare modules geïmporteerd in het pad dat is opgegeven door de omgevingsvariabele $env:PSModulePath in de huidige sessie.

Get-Module -ListAvailable | Import-Module

Voorbeeld 3: de leden van verschillende modules importeren in de huidige sessie

In dit voorbeeld worden de leden van de PSDiagnostics en Dism modules geïmporteerd in de huidige sessie.

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

De cmdlet Get-Module haalt de PSDiagnostics en Dism modules op en slaat de objecten op in de variabele $m. De parameter ListAvailable is vereist wanneer u modules krijgt die nog niet in de sessie zijn geïmporteerd.

De parameter ModuleInfo van Import-Module wordt gebruikt om de modules in de huidige sessie te importeren.

Voorbeeld 4: Alle modules importeren die zijn opgegeven door een pad

In dit voorbeeld wordt een expliciet pad gebruikt om de module te identificeren die moet worden geïmporteerd.

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

Als u de uitgebreide parameter gebruikt, wordt Import-Module de voortgang rapporteren terwijl de module wordt geladen. Zonder de uitgebreide, PassThru-of parameter AsCustomObject, genereert Import-Module geen uitvoer wanneer er een module wordt geïmporteerd.

Voorbeeld 5: Moduleleden beperken die zijn geïmporteerd in een sessie

In dit voorbeeld ziet u hoe u kunt beperken welke moduleleden worden geïmporteerd in de sessie en het effect van deze opdracht op de sessie. De parameter Function beperkt de leden die uit de module worden geïmporteerd. U kunt ook de parameters Alias, Variabeleen cmdlet parameters gebruiken om andere leden te beperken die door een module worden geïmporteerd.

Met de Get-Module cmdlet wordt het object opgehaald dat de PSDiagnostics module vertegenwoordigt. De eigenschap ExportedCmdlets bevat alle cmdlets die de module exporteert, ook al zijn ze niet allemaal geïmporteerd.

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

Met de parameter Module van de Get-Command-cmdlet worden de opdrachten weergegeven die zijn geïmporteerd uit de PSDiagnostics-module. De resultaten bevestigen dat alleen de Disable-PSTrace en Enable-PSTrace cmdlets zijn geïmporteerd.

Voorbeeld 6: De leden van een module importeren en een voorvoegsel toevoegen

In dit voorbeeld wordt de PSDiagnostics-module geïmporteerd in de huidige sessie, wordt een voorvoegsel toegevoegd aan de ledennamen en worden vervolgens de voorvoegselnamen weergegeven. Het voorvoegsel parameter van Import-Module voegt het x voorvoegsel toe aan alle leden die uit de module worden geïmporteerd. Het voorvoegsel is alleen van toepassing op de leden in de huidige sessie. De module wordt niet gewijzigd. De parameter PassThru retourneert een moduleobject dat de geïmporteerde module vertegenwoordigt.

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 haalt de leden op die zijn geïmporteerd uit de module. In de uitvoer ziet u dat de moduleleden correct zijn voorafgegaan.

Voorbeeld 7: Een aangepast object ophalen en gebruiken

In dit voorbeeld ziet u hoe u het aangepaste object kunt ophalen en gebruiken dat wordt geretourneerd door Import-Module.

Aangepaste objecten bevatten synthetische leden die elk van de geïmporteerde moduleleden vertegenwoordigen. De cmdlets en functies in een module worden bijvoorbeeld geconverteerd naar scriptmethoden van het aangepaste object.

Aangepaste objecten zijn handig bij het uitvoeren van scripts. Ze zijn ook handig wanneer verschillende geïmporteerde objecten dezelfde namen hebben. Het gebruik van de scriptmethode van een object is gelijk aan het opgeven van de volledig gekwalificeerde naam van een geïmporteerd lid, inclusief de modulenaam.

De parameter AsCustomObject kan alleen worden gebruikt bij het importeren van een scriptmodule. Gebruik Get-Module om te bepalen welke van de beschikbare modules een scriptmodule is.

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

De Show-Calendar scriptmodule wordt geïmporteerd met behulp van de parameter AsCustomObject om een aangepast object aan te vragen en de parameter PassThru om het object te retourneren. Het resulterende aangepaste object wordt opgeslagen in de variabele $a.

De $a variabele wordt doorgesluisd naar de cmdlet Get-Member om de eigenschappen en methoden van het opgeslagen object weer te geven. De uitvoer toont een Show-Calendar scriptmethode.

Als u de Show-Calendar scriptmethode wilt aanroepen, moet de methodenaam tussen aanhalingstekens staan omdat de naam een afbreekstreepje bevat.

Voorbeeld 8: Een module opnieuw importeren in dezelfde sessie

In dit voorbeeld ziet u hoe u de parameter Forceren van Import-Module gebruikt wanneer u een module in dezelfde sessie wilt importeren. De parameter Forceren verwijdert de geladen module en importeert deze opnieuw.

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

Met de eerste opdracht importeert u de PSDiagnostics module. Met de tweede opdracht wordt de module opnieuw geïmporteerd, deze keer met behulp van de parameter voorvoegsel.

Zonder de parameter Force bevat de sessie twee kopieën van elke PSDiagnostics cmdlet, één met de standaardnaam en één met de voorvoegselnaam.

Voorbeeld 9: Opdrachten uitvoeren die zijn verborgen door geïmporteerde opdrachten

In dit voorbeeld ziet u hoe u opdrachten uitvoert die zijn verborgen door geïmporteerde opdrachten. De module TestModule bevat een functie met de naam Get-Date die het jaar en de dag van het jaar retourneert.

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

De eerste Get-Date cmdlet retourneert een DateTime-object met de huidige datum. Na het importeren van de module TestModule, retourneert Get-Date het jaar en de dag van het jaar.

Gebruik de parameter Alle van Get-Command alle Get-Date opdrachten in de sessie weer te geven. De resultaten tonen aan dat er twee Get-Date opdrachten in de sessie zijn, een functie uit de module TestModule en een cmdlet uit de microsoft.PowerShell.Utility-module.

Omdat functies voorrang hebben op cmdlets, wordt de Get-Date-functie van de TestModule-module uitgevoerd in plaats van de Get-Date-cmdlet. Als u de oorspronkelijke versie van Get-Datewilt uitvoeren, moet u de opdrachtnaam kwalificeren met de modulenaam.

Zie about_Command_Precedencevoor meer informatie over de prioriteit van opdrachten in PowerShell.

Voorbeeld 10: Een minimale versie van een module importeren

In dit voorbeeld wordt de module PowerShellGet geïmporteerd. Hierbij wordt de parameter MinimumVersion van Import-Module gebruikt om alleen versie 2.0.0 of hoger van de module te importeren.

Import-Module -Name PowerShellGet -MinimumVersion 2.0.0

U kunt ook de parameter RequiredVersion gebruiken om een bepaalde versie van een module te importeren of de parameters Module en Version van het trefwoord #Requires te gebruiken om een bepaalde versie van een module in een script te vereisen.

Voorbeeld 11: Importeren met een volledig gekwalificeerde naam

In dit voorbeeld wordt een specifieke versie van een module geïmporteerd met behulp van de 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' }

Voorbeeld 12: Importeren met behulp van een volledig gekwalificeerd pad

In dit voorbeeld wordt een specifieke versie van een module geïmporteerd met behulp van het volledig gekwalificeerde pad.

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'

Voorbeeld 13: Een module importeren vanaf een externe computer

In dit voorbeeld ziet u hoe u de Import-Module-cmdlet gebruikt om een module van een externe computer te importeren. Deze opdracht maakt gebruik van de functie Impliciete externe toegang van PowerShell.

Wanneer u modules uit een andere sessie importeert, kunt u de cmdlets in de huidige sessie gebruiken. Opdrachten die gebruikmaken van de cmdlets worden echter uitgevoerd in de externe sessie.

$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 maakt een externe sessie (PSSession) op de Server01 computer. De PSSession- wordt opgeslagen in de $s variabele.

Als u Get-Module uitvoert met de PSSession-parameter, ziet u dat de module NetSecurity is geïnstalleerd en beschikbaar is op de externe computer. Deze opdracht is gelijk aan het gebruik van de Invoke-Command cmdlet om Get-Module opdracht uit te voeren in de externe sessie. Bijvoorbeeld:

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

Als u Import-Module uitvoert met de parameter PSSession, wordt de module NetSecurity van de externe computer geïmporteerd in de huidige sessie. De Get-Command-cmdlet haalt opdrachten op die beginnen met Get en neemt Firewall op uit de module NetSecurity. De uitvoer bevestigt dat de module en de bijbehorende cmdlets zijn geïmporteerd in de huidige sessie.

Vervolgens haalt de Get-NetFirewallRule-cmdlet firewallregels voor Windows Remote Management op de Server01 computer op. Dit komt overeen met het gebruik van de Invoke-Command-cmdlet om Get-NetFirewallRule uit te voeren op de externe sessie.

Voorbeeld 14: Opslag beheren op een externe computer zonder het Windows-besturingssysteem

In dit voorbeeld heeft de beheerder van de computer de WMI-provider moduledetectie geïnstalleerd, waarmee u CIM-opdrachten kunt gebruiken die zijn ontworpen voor de provider.

De cmdlet New-CimSession maakt een sessie op de externe computer met de naam RSDGF03. De sessie maakt verbinding met de WMI-service op de externe computer. De CIM-sessie wordt opgeslagen in de variabele $cs. Import-Module gebruikt de CimSession- in $cs om de Storage CIM-module te importeren vanaf de RSDGF03 computer.

De Get-Command-cmdlet toont de opdracht Get-Disk in de module Storage. Wanneer u een CIM-module in de lokale sessie importeert, converteert PowerShell de CDXML-bestanden voor elke opdracht naar PowerShell-scripts, die worden weergegeven als functies in de lokale sessie.

Hoewel Get-Disk is getypt in de lokale sessie, wordt de cmdlet impliciet uitgevoerd op de externe computer van waaruit deze is geïmporteerd. De opdracht retourneert objecten van de externe computer naar de lokale sessie.

$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

Parameters

-Alias

Hiermee geeft u de aliassen op die met deze cmdlet uit de module worden geïmporteerd in de huidige sessie. Voer een door komma's gescheiden lijst met aliassen in. Jokertekens zijn toegestaan.

Sommige modules exporteren automatisch geselecteerde aliassen naar uw sessie wanneer u de module importeert. Met deze parameter kunt u kiezen uit de geëxporteerde aliassen.

Type:String[]
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:True

-ArgumentList

Hiermee geeft u een matrix met argumenten of parameterwaarden op die tijdens de opdracht Import-Module worden doorgegeven aan een scriptmodule. Deze parameter is alleen geldig wanneer u een scriptmodule importeert.

U kunt ook verwijzen naar de parameter ArgumentList door de alias, args. Zie about_Splattingvoor meer informatie over het gedrag van ArgumentList.

Type:Object[]
Aliassen:Args
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-AsCustomObject

Geeft aan dat deze cmdlet een aangepast object retourneert met leden die de geïmporteerde moduleleden vertegenwoordigen. Deze parameter is alleen geldig voor scriptmodules.

Wanneer u de parameter AsCustomObject gebruikt, importeert Import-Module de moduleleden in de sessie en retourneert u vervolgens een PSCustomObject object in plaats van een PSModuleInfo-object. U kunt het aangepaste object opslaan in een variabele en de opsomming voor lidtoegang gebruiken om de leden aan te roepen.

Type:SwitchParameter
Position:Named
Default value:False
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Assembly

Hiermee geeft u een matrix van assembly-objecten. Met deze cmdlet worden de cmdlets en providers geïmporteerd die zijn geïmplementeerd in de opgegeven assemblyobjecten. Voer een variabele in die assemblyobjecten bevat of een opdracht waarmee assemblyobjecten worden gemaakt. U kunt ook een assembly-object doorsluisen naar Import-Module.

Wanneer u deze parameter gebruikt, worden alleen de cmdlets en providers geïmporteerd die door de opgegeven assembly's zijn geïmplementeerd. Als de module andere bestanden bevat, worden ze niet geïmporteerd en mist u mogelijk belangrijke leden van de module. Gebruik deze parameter voor foutopsporing en het testen van de module, of wanneer u wordt geïnstrueerd om deze te gebruiken door de auteur van de module.

Type:Assembly[]
Position:0
Default value:None
Vereist:True
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-CimNamespace

Hiermee geeft u de naamruimte van een alternatieve CIM-provider die CIM-modules beschikbaar maakt. De standaardwaarde is de naamruimte van de WMI-provider voor moduledetectie.

Gebruik deze parameter om CIM-modules te importeren van computers en apparaten waarop geen Windows-besturingssysteem wordt uitgevoerd.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-CimResourceUri

Hiermee geeft u een alternatieve locatie voor CIM-modules. De standaardwaarde is de resource-URI van de WMI-provider voor moduledetectie op de externe computer.

Gebruik deze parameter om CIM-modules te importeren van computers en apparaten waarop geen Windows-besturingssysteem wordt uitgevoerd.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

Type:Uri
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-CimSession

Hiermee geeft u een CIM-sessie op de externe computer. Voer een variabele in die de CIM-sessie of een opdracht bevat die de CIM-sessie ophaalt, zoals een Get-CimSession opdracht.

Import-Module gebruikt de CIM-sessieverbinding om modules van de externe computer in de huidige sessie te importeren. Wanneer u de opdrachten uit de geïmporteerde module in de huidige sessie gebruikt, worden de opdrachten uitgevoerd op de externe computer.

U kunt deze parameter gebruiken om modules te importeren van computers en apparaten waarop het Windows-besturingssysteem niet wordt uitgevoerd en Windows-computers met PowerShell, maar waarvoor externe communicatie van PowerShell niet is ingeschakeld.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

Type:CimSession
Position:Named
Default value:None
Vereist:True
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Cmdlet

Hiermee geeft u een matrix van cmdlets op die met deze cmdlet worden geïmporteerd uit de module in de huidige sessie. Jokertekens zijn toegestaan.

Sommige modules exporteren automatisch geselecteerde cmdlets naar uw sessie wanneer u de module importeert. Met deze parameter kunt u kiezen uit de geëxporteerde cmdlets.

Type:String[]
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:True

-DisableNameChecking

Geeft aan dat deze cmdlet het bericht onderdrukt dat u waarschuwt wanneer u een cmdlet of functie importeert waarvan de naam een niet-goedgekeurd werkwoord of een verboden teken bevat.

Wanneer een module die u importeert cmdlets of functies met niet-goedgekeurde werkwoorden in hun namen importeert, wordt in PowerShell standaard het volgende waarschuwingsbericht weergegeven:

WAARSCHUWING: Sommige geïmporteerde opdrachtnamen bevatten niet-goedgekeurde werkwoorden, waardoor ze mogelijk minder detecteerbaar zijn. Gebruik de uitgebreide parameter voor meer details of typ Get-Verb om de lijst met goedgekeurde werkwoorden weer te geven.

Dit bericht is slechts een waarschuwing. De volledige module wordt nog steeds geïmporteerd, inclusief de niet-conforme opdrachten. Hoewel het bericht wordt weergegeven aan modulegebruikers, moet het naamgevingsprobleem worden opgelost door de auteur van de module.

Type:SwitchParameter
Position:Named
Default value:False
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Force

Deze parameter zorgt ervoor dat een module boven aan de huidige module wordt geladen of opnieuw wordt geladen. Sommige modules laden externe assembly's. Het importeren mislukt als u een module importeert waarmee een nieuwere versie van een assembly wordt geladen. De parameter Forceren kan de fout niet overschrijven. U moet een nieuwe sessie starten om de nieuwe versie te laden.

Type:SwitchParameter
Position:Named
Default value:False
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-FullyQualifiedName

De waarde kan een modulenaam, een volledige modulespecificatie of een pad naar een modulebestand zijn.

Wanneer de waarde een pad is, kan het pad volledig of relatief zijn. Een relatief pad wordt omgezet ten opzichte van het script dat de using-instructie bevat.

Wanneer de waarde een naam of modulespecificatie is, zoekt PowerShell naar de PSModulePath- voor de opgegeven module.

Een modulespecificatie is een hashtabel met de volgende sleutels.

  • ModuleName - Vereist Geeft de modulenaam op.
  • GUID - Optionele Geeft de GUID van de module aan.
  • Het is ook Vereist om ten minste een van de drie onderstaande sleutels op te geven.
    • ModuleVersion - Hiermee geeft u een minimaal acceptabele versie van de module op.
    • MaximumVersion - Hiermee geeft u de maximaal acceptabele versie van de module.
    • RequiredVersion - Hiermee geeft u een exacte, vereiste versie van de module op. Dit kan niet worden gebruikt met de andere versiesleutels.
Type:ModuleSpecification[]
Position:0
Default value:None
Vereist:True
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-Function

Hiermee geeft u een matrix van functies op die met deze cmdlet worden geïmporteerd uit de module in de huidige sessie. Jokertekens zijn toegestaan. Sommige modules exporteren automatisch geselecteerde functies naar uw sessie wanneer u de module importeert. Met deze parameter kunt u kiezen uit de geëxporteerde functies.

Type:String[]
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:True

-Global

Geeft aan dat met deze cmdlet modules worden geïmporteerd in de status van de globale sessie, zodat deze beschikbaar zijn voor alle opdrachten in de sessie.

Wanneer Import-Module cmdlet standaard wordt aangeroepen vanaf de opdrachtprompt, het scriptbestand of de scriptblokkering, worden alle opdrachten geïmporteerd in de globale sessiestatus.

Wanneer deze wordt aangeroepen vanuit een andere module, importeert Import-Module cmdlet de opdrachten in een module, inclusief opdrachten uit geneste modules, in de sessiestatus van de aanroepende module.

Fooi

Vermijd het aanroepen van Import-Module vanuit een module. Declareer in plaats daarvan de doelmodule als een geneste module in het manifest van de bovenliggende module. Het declareren van geneste modules verbetert de detectie van afhankelijkheden.

De parameter Global is gelijk aan de parameter Scope met een waarde van Global.

Als u de opdrachten wilt beperken die door een module worden geëxporteerd, gebruikt u een Export-ModuleMember opdracht in de scriptmodule.

Type:SwitchParameter
Position:Named
Default value:False
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-MaximumVersion

Hiermee geeft u een maximale versie. Met deze cmdlet wordt alleen een versie van de module geïmporteerd die kleiner is dan of gelijk is aan de opgegeven waarde. Als er geen versie in aanmerking komt, retourneert Import-Module een fout.

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-MinimumVersion

Hiermee geeft u een minimale versie. Met deze cmdlet importeert u alleen een versie van de module die groter is dan of gelijk is aan de opgegeven waarde. Gebruik de parameternaam MinimumVersion of de alias, Versie. Als er geen versie in aanmerking komt, genereert Import-Module een fout.

Als u een exacte versie wilt opgeven, gebruikt u de parameter RequiredVersion. U kunt ook de parameters Module en Versie van het trefwoord #Requires gebruiken om een specifieke versie van een module in een script te vereisen.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

Type:Version
Aliassen:Version
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-ModuleInfo

Hiermee geeft u een matrix van moduleobjecten die moeten worden geïmporteerd. Voer een variabele in die de moduleobjecten bevat of een opdracht waarmee de moduleobjecten worden opgehaald, zoals de volgende opdracht: Get-Module -ListAvailable. U kunt ook moduleobjecten naar Import-Module.

Type:PSModuleInfo[]
Position:0
Default value:None
Vereist:True
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-Name

Hiermee geeft u de namen van de modules die moeten worden geïmporteerd. Voer de naam van de module of de naam van een bestand in de module in, zoals een .psd1, .psm1, .dllof .ps1 bestand. Bestandspaden zijn optioneel. Jokertekens zijn niet toegestaan. U kunt ook modulenamen en bestandsnamen doorsluisen naar Import-Module.

Als u een pad weglaat, zoekt Import-Module naar de module in de paden die zijn opgeslagen in de omgevingsvariabele $env:PSModulePath.

Geef indien mogelijk alleen de modulenaam op. Wanneer u een bestandsnaam opgeeft, worden alleen de leden die in dat bestand zijn geïmplementeerd, geïmporteerd. Als de module andere bestanden bevat, worden ze niet geïmporteerd en mist u mogelijk belangrijke leden van de module.

Notitie

Hoewel het mogelijk is om een scriptbestand (.ps1) als module te importeren, zijn scriptbestanden meestal niet gestructureerd, zoals het bestand met scriptmodules (.psm1). Het importeren van een scriptbestand garandeert niet dat het kan worden gebruikt als een module. Zie about_Modulesvoor meer informatie.

Type:String[]
Position:0
Default value:None
Vereist:True
Pijplijninvoer accepteren:True
Jokertekens accepteren:True

-NoClobber

Voorkomt het importeren van opdrachten met dezelfde namen als bestaande opdrachten in de huidige sessie. Standaard importeert Import-Module alle geëxporteerde moduleopdrachten.

Opdrachten met dezelfde namen kunnen opdrachten in de sessie verbergen of vervangen. Gebruik de parameters voorvoegsel of NoClobber parameters om conflicten met opdrachtnamen in een sessie te voorkomen. Zie modules en naamconflicten in about_Modules en about_Command_Precedencevoor meer informatie over naamconflicten en opdrachtprioriteit.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

Type:SwitchParameter
Aliassen:NoOverwrite
Position:Named
Default value:False
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-PassThru

Retourneert een object dat de geïmporteerde module vertegenwoordigt. Deze cmdlet genereert standaard geen uitvoer.

Type:SwitchParameter
Position:Named
Default value:False
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Prefix

Hiermee geeft u een voorvoegsel op dat met deze cmdlet wordt toegevoegd aan de zelfstandige naamwoorden in de namen van geïmporteerde moduleleden.

Gebruik deze parameter om naamconflicten te voorkomen die kunnen optreden wanneer verschillende leden in de sessie dezelfde naam hebben. Deze parameter wijzigt de module niet en heeft geen invloed op bestanden die door de module worden geïmporteerd voor eigen gebruik. Deze worden geneste modules genoemd. Deze cmdlet is alleen van invloed op de namen van leden in de huidige sessie.

Als u bijvoorbeeld het voorvoegsel UTC opgeeft en vervolgens een Get-Date cmdlet importeert, staat de cmdlet bekend in de sessie als Get-UTCDateen wordt deze niet verward met de oorspronkelijke Get-Date cmdlet.

De waarde van deze parameter heeft voorrang op de eigenschap DefaultCommandPrefix eigenschap van de module, waarmee het standaardvoorvoegsel wordt opgegeven.

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-PSSession

Hiermee geeft u een door de gebruiker beheerde PowerShell-sessie (PSSession) op waaruit deze cmdlet modules in de huidige sessie importeert. Voer een variabele in die een PSSession- of een opdracht bevat waarmee een PSSession-wordt ophaalt, zoals een Get-PSSession opdracht.

Wanneer u een module uit een andere sessie in de huidige sessie importeert, kunt u de cmdlets uit de module in de huidige sessie gebruiken, net zoals u cmdlets uit een lokale module zou gebruiken. Opdrachten die gebruikmaken van de externe cmdlets worden uitgevoerd in de externe sessie, maar de details van externe communicatie worden op de achtergrond beheerd door PowerShell.

Deze parameter maakt gebruik van de functie Impliciete externe communicatie van PowerShell. Het komt overeen met het gebruik van de Import-PSSession-cmdlet om bepaalde modules uit een sessie te importeren.

Import-Module kan kernmodules van PowerShell niet importeren uit een andere sessie. De belangrijkste PowerShell-modules hebben namen die beginnen met Microsoft.PowerShell.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

Type:PSSession
Position:Named
Default value:None
Vereist:True
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-RequiredVersion

Hiermee geeft u een versie van de module op die door deze cmdlet wordt geïmporteerd. Als de versie niet is geïnstalleerd, genereert Import-Module een fout.

Standaard importeert Import-Module de module zonder het versienummer te controleren.

Als u een minimale versie wilt opgeven, gebruikt u de parameter MinimumVersion. U kunt ook de parameters Module en Versie van het trefwoord #Requires gebruiken om een specifieke versie van een module in een script te vereisen.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

Scripts die gebruikmaken van RequiredVersion om modules te importeren die zijn opgenomen in bestaande versies van het Windows-besturingssysteem, worden niet automatisch uitgevoerd in toekomstige versies van het Windows-besturingssysteem. Dit komt doordat powerShell-moduleversienummers in toekomstige versies van het Windows-besturingssysteem hoger zijn dan moduleversienummers in bestaande versies van het Windows-besturingssysteem.

Type:Version
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Scope

Hiermee geeft u een bereik op waarin de module moet worden geïmporteerd.

De acceptabele waarden voor deze parameter zijn:

  • Global. Beschikbaar voor alle opdrachten in de sessie. Gelijk aan de parameter Global.
  • lokale. Alleen beschikbaar in het huidige bereik.

Wanneer Import-Module cmdlet standaard wordt aangeroepen vanaf de opdrachtprompt, het scriptbestand of de scriptblokkering, worden alle opdrachten geïmporteerd in de globale sessiestatus. U kunt de parameter -Scope Local gebruiken om module-inhoud te importeren in het script- of scriptblokbereik.

Wanneer deze wordt aangeroepen vanuit een andere module, importeert Import-Module cmdlet de opdrachten in een module, inclusief opdrachten van geneste modules, in de sessiestatus van de aanroeper. Als u -Scope Global of -Global opgeeft, wordt aangegeven dat met deze cmdlet modules worden geïmporteerd in de globale sessiestatus, zodat deze beschikbaar zijn voor alle opdrachten in de sessie.

De parameter Global is gelijk aan de parameter Scope met een waarde van Global.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

Type:String
Geaccepteerde waarden:Local, Global
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Variable

Hiermee geeft u een matrix van variabelen op die met deze cmdlet worden geïmporteerd uit de module in de huidige sessie. Voer een lijst met variabelen in. Jokertekens zijn toegestaan.

Sommige modules exporteren automatisch geselecteerde variabelen naar uw sessie wanneer u de module importeert. Met deze parameter kunt u kiezen uit de geëxporteerde variabelen.

Type:String[]
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:True

Invoerwaarden

String

U kunt een modulenaam doorsluisen naar deze cmdlet.

PSModuleInfo

U kunt een moduleobject doorsluisen naar deze cmdlet.

Assembly

U kunt een assembly-object doorsluisen naar deze cmdlet.

Uitvoerwaarden

None

Deze cmdlet retourneert standaard geen uitvoer.

PSModuleInfo

Als u de parameter PassThru opgeeft, genereert de cmdlet een System.Management.Automation.PSModuleInfo object dat de geïmporteerde module vertegenwoordigt.

PSCustomObject

Als u de parameters AsCustomObject en PassThru samen opgeeft, genereert de cmdlet een PSCustomObject-object dat de module vertegenwoordigt.

Notities

Windows PowerShell bevat de volgende aliassen voor Import-Module:

  • ipmo

  • Voordat u een module kunt importeren, moet de module toegankelijk zijn voor uw lokale computer en zijn opgenomen in de omgevingsvariabele PSModulePath. Zie about_Modulesvoor meer informatie.

    U kunt ook de PSSession- en CIMSession-parameters gebruiken om modules te importeren die op externe computers zijn geïnstalleerd. Opdrachten die gebruikmaken van de cmdlets in deze modules worden echter uitgevoerd in de externe sessie op de externe computer.

  • Als u leden met dezelfde naam en hetzelfde type importeert in uw sessie, gebruikt PowerShell standaard het lid dat als laatste is geïmporteerd. Variabelen en aliassen worden vervangen en de originelen zijn niet toegankelijk. Functies, cmdlets en providers worden slechts in de schaduw van de nieuwe leden weergegeven. Ze kunnen worden geopend door de opdrachtnaam te kwalificeren met de naam van de module, module of functiepad.

  • Als u de opmaakgegevens wilt bijwerken voor opdrachten die zijn geïmporteerd uit een module, gebruikt u de cmdlet Update-FormatData. Als het opmaakbestand voor een module wordt gewijzigd, gebruikt u de cmdlet Update-FormatData om de opmaakgegevens voor geïmporteerde opdrachten bij te werken. U hoeft de module niet opnieuw te importeren.

  • Vanaf Windows PowerShell 3.0 worden de kernopdrachten die met PowerShell zijn geïnstalleerd, verpakt in modules. In Windows PowerShell 2.0 en in hostprogramma's die oudere sessies maken in latere versies van PowerShell, worden de kernopdrachten verpakt in modules (PSSnapins). De uitzondering is Microsoft.PowerShell.Core, wat altijd een module is. Ook zijn externe sessies, zoals sessies die zijn gestart door de New-PSSession-cmdlet, oudere sessies met kernmodules.

    Zie de methode CreateDefault2voor informatie over de methode CreateDefault2 waarmee nieuwere sessies met kernmodules worden gemaakt.

  • In Windows PowerShell 2.0 zijn sommige eigenschapswaarden van het moduleobject, zoals de ExportedCmdlets en NestedModules eigenschapswaarden, pas ingevuld nadat de module is geïmporteerd.

  • Als u probeert een module te importeren die assembly's in gemengde modus bevat die niet compatibel zijn met Windows PowerShell 3.0+, retourneert Import-Module een foutbericht zoals de volgende.

    Import-Module: Assembly met gemengde modus is gebouwd op basis van versie v2.0.50727 van de runtime en kan niet worden geladen in de runtime 4.0 zonder aanvullende configuratiegegevens.

    Deze fout treedt op wanneer een module die is ontworpen voor Windows PowerShell 2.0 ten minste één assembly met gemengde modules bevat. Een assembly met gemengde modules die zowel beheerde als niet-beheerde code bevat, zoals C++ en C#.

    Als u een module met assembly's in de gemengde modus wilt importeren, start u Windows PowerShell 2.0 met behulp van de volgende opdracht en probeert u de opdracht Import-Module opnieuw.

    PowerShell.exe -Version 2.0

  • Als u de CIM-sessiefunctie wilt gebruiken, moet de externe computer beschikken over WS-Management externe communicatie en WMI (Windows Management Instrumentation), de Microsoft-implementatie van de CIM-standaard (Common Information Model). De computer moet ook beschikken over de WMI-provider voor moduledetectie of een alternatieve CIM-provider met dezelfde basisfuncties.

    U kunt de CIM-sessiefunctie gebruiken op computers waarop geen Windows-besturingssysteem wordt uitgevoerd en op Windows-computers met PowerShell, maar waarvoor externe communicatie met PowerShell niet is ingeschakeld.

    U kunt ook de CIM-parameters gebruiken om CIM-modules op te halen van computers waarop externe communicatie met PowerShell is ingeschakeld, inclusief de lokale computer. Wanneer u een CIM-sessie maakt op de lokale computer, gebruikt PowerShell DCOM in plaats van WMI om de sessie te maken.

  • Standaard importeert Import-Module modules in het globale bereik, zelfs wanneer ze worden aangeroepen vanuit een afstammelingsbereik. Het bereik op het hoogste niveau en alle onderliggende bereiken hebben toegang tot de geëxporteerde elementen van de module.

    In een afstammelingsbereik beperkt -Scope Local de import tot dat bereik en alle onderliggende bereiken. Bovenliggende bereiken zien de geïmporteerde leden vervolgens niet.

    Notitie

    Get-Module toont alle modules die in de huidige sessie zijn geladen. Dit omvat modules die lokaal in een afstammelingsbereik zijn geladen. Gebruik Get-Command -Module modulename om te zien welke leden in het huidige bereik worden geladen.

  • Import-Module laadt geen klasse- en opsommingsdefinities in de module. Gebruik de instructie using module aan het begin van het script. Hiermee importeert u de module, inclusief de klasse- en opsommingsdefinities. Zie about_Usingvoor meer informatie.

  • Tijdens het ontwikkelen van een scriptmodule is het gebruikelijk om wijzigingen aan te brengen in de code en vervolgens de nieuwe versie van de module te laden met behulp van Import-Module met de parameter Force. Dit werkt alleen voor wijzigingen in functies in de hoofdmodule. Import-Module laadt geen geneste modules opnieuw. Er is ook geen manier om bijgewerkte klassen of opsommingen te laden.

    Als u bijgewerkte moduleleden wilt ophalen die zijn gedefinieerd in geneste modules, verwijdert u de module met Remove-Moduleen importeert u de module opnieuw.

    Als de module is geladen met een using instructie, moet u een nieuwe sessie starten om bijgewerkte definities voor de klassen en opsommingen te importeren. Klassen en opsommingen die zijn gedefinieerd in PowerShell en geïmporteerd met een using instructie kunnen niet worden uitgepakt.