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-Date
wilt 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
, .dll
of .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-UTCDate
en 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
U kunt een modulenaam doorsluisen naar deze cmdlet.
U kunt een moduleobject doorsluisen naar deze cmdlet.
U kunt een assembly-object doorsluisen naar deze cmdlet.
Uitvoerwaarden
None
Deze cmdlet retourneert standaard geen uitvoer.
Als u de parameter PassThru opgeeft, genereert de cmdlet een System.Management.Automation.PSModuleInfo object dat de geïmporteerde module vertegenwoordigt.
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 cmdletUpdate-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. GebruikGet-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 instructieusing 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-Module
en 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 eenusing
instructie kunnen niet worden uitgepakt.