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. De modules die u importeert, moeten worden geïnstalleerd op de lokale computer of een externe computer.

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 en u kunt het automatisch importeren van modules in- en uitschakelen met behulp van de $PSModuleAutoloadingPreference voorkeursvariabele. Zie about_Modulesvoor meer informatie over modules. 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.

Als u een module wilt importeren, gebruikt u de Name, Assembly, ModuleInfo, MinimumVersion en RequiredVersion parameters om de te importeren module te identificeren. Standaard importeert Import-Module alle leden die de module exporteert, maar u kunt de parameters Alias, Function, Cmdleten Variable parameters gebruiken om de geïmporteerde leden te beperken. U kunt ook de parameter NoClobber gebruiken om te voorkomen 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 alle sessies wilt importeren, voegt u een Import-Module opdracht toe aan uw PowerShell-profiel. Zie about_Profilesvoor meer informatie over profielen.

Vanaf Windows PowerShell 3.0 kunt u Import-Module gebruiken om CIM-modules (Common Information Model) te importeren, waarin de cmdlets zijn gedefinieerd 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++.

Met deze nieuwe functies wordt Import-Module cmdlet een primair hulpprogramma voor het beheren van heterogene ondernemingen die computers met het Windows-besturingssysteem en computers waarop andere besturingssystemen worden uitgevoerd.

Als u externe computers wilt beheren waarop het Windows-besturingssysteem wordt uitgevoerd waarvoor externe communicatie met PowerShell en PowerShell is ingeschakeld, maakt u een PSSession- op de externe computer en gebruikt u vervolgens de PSSession-parameter van Get-Module om de PowerShell-modules op te halen in de PSSession-. Wanneer u de modules importeert en vervolgens de geïmporteerde opdrachten in de huidige sessie gebruikt, worden de opdrachten impliciet uitgevoerd in de PSSession- op de externe computer. U kunt deze strategie gebruiken om de externe computer te beheren.

U kunt een vergelijkbare strategie gebruiken om computers te beheren waarvoor externe communicatie met PowerShell niet is ingeschakeld, inclusief computers waarop het Windows-besturingssysteem niet wordt uitgevoerd en Windows-computers met PowerShell, maar waarvoor externe communicatie met PowerShell niet is ingeschakeld.

Maak eerst een CIM-sessie op de externe computer. Dit is een verbinding met Windows Management Instrumentation (WMI) op de externe computer. Gebruik vervolgens de parameter CIMSession van Import-Module om CIM-modules van de externe computer te importeren. Wanneer u een CIM-module importeert en vervolgens de geïmporteerde opdrachten uitvoert, worden de opdrachten impliciet uitgevoerd op de externe computer. U kunt deze WMI- en CIM-strategie gebruiken om de externe computer te beheren.

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. De parameternaam Name is optioneel en kan worden weggelaten.

Import-Module -Name PSDiagnostics

Standaard genereert Import-Module geen uitvoer wanneer een module wordt geïmporteerd. Als u uitvoer wilt aanvragen, gebruikt u de parameter PassThru of AsCustomObject of de uitgebreide algemene parameter.

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

Deze opdrachten zijn gelijk aan het gebruik van een pijplijnoperator (|) om de uitvoer van een Get-Module opdracht naar Import-Modulete verzenden.

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.

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 eerste opdracht worden alleen de Disable-PSTrace- en Enable-PSTrace-cmdlets uit de PSDiagnostics-module geïmporteerd. 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.

In de derde opdracht haalt de module parameter van de Get-Command cmdlet de opdrachten op 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 is alleen van toepassing op de leden in de huidige sessie. De module wordt niet gewijzigd.

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

De parameter voorvoegsel van Import-Module voegt het voorvoegsel x toe aan alle leden die zijn geïmporteerd uit de module en de parameter PassThru om een moduleobject te retourneren dat de geïmporteerde module vertegenwoordigt.

De Get-Command cmdlet om de leden op te halen 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

Deze opdrachten laten zien hoe u het aangepaste object kunt ophalen en gebruiken dat Import-Module retourneert.

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 erg 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. De eerste taak is dus 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 eerste opdracht maakt gebruik van de Get-Module cmdlet om de beschikbare modules op te halen. De opdracht maakt gebruik van een pijplijnoperator om de moduleobjecten door te geven aan de cmdlet Format-Table, waarin de Name en ModuleType van elke module in een tabel worden vermeld.

Met de tweede opdracht wordt de Import-Module-cmdlet gebruikt om de scriptmodule Show-Calendar te importeren. De opdracht gebruikt de parameter AsCustomObject om een aangepast object aan te vragen en de parameter PassThru om het object te retourneren. Met de opdracht wordt het resulterende aangepaste object opgeslagen in de variabele $a.

De derde opdracht maakt gebruik van een pijplijnoperator om de variabele $a te verzenden naar de cmdlet Get-Member, waarmee de eigenschappen en methoden van de PSCustomObject- in $aworden opgehaald. De uitvoer toont een Show-Calendar() scriptmethode.

De laatste opdracht maakt gebruik van de scriptmethode Show-Calendar. De naam van de methode moet tussen aanhalingstekens staan, omdat deze een afbreekstreepje bevat.

Voorbeeld 8: Een module opnieuw importeren in dezelfde sessie

In dit voorbeeld ziet u hoe u de parameter Force van Import-Module gebruikt wanneer u een module opnieuw in dezelfde sessie importeert.

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.

Met behulp van de parameter Force verwijdert Import-Module de module en importeert u deze opnieuw. Zonder deze parameter bevat de sessie twee kopieën van elke PSDiagnostics cmdlet, één met de standaardnaam en een 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:26:12 PM

De eerste get-datecmdlet returns a **DateTime** object with the current date. After importing the **TestModule** module,Retourneert het jaar en de dag van het jaar.

Met behulp van de parameter Alle van de Get-Command krijgen we alle Get-Date opdrachten in de sessie. 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

Import-Module -Name PSWorkflow -MinimumVersion 3.0.0.0

Met deze opdracht importeert u de module PSWorkflow. Hierbij wordt de parameter MinimumVersion van Import-Module gebruikt om alleen versie 3.0.0.0 of hoger van de module te importeren.

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: 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 daadwerkelijk 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

De eerste opdracht maakt gebruik van de New-PSSession cmdlet om een externe sessie (PSSession) te maken op de Server01-computer. Met de opdracht wordt de PSSession- opgeslagen in de variabele $s.

De tweede opdracht maakt gebruik van de PSSession parameter van de Get-Module cmdlet om de NetSecurity module op te halen in de sessie in de $s variabele. Deze opdracht is gelijk aan het gebruik van de Invoke-Command cmdlet om een Get-Module opdracht uit te voeren in de sessie in $s (Invoke-Command $s {Get-Module -ListAvailable -Name NetSecurity). In de uitvoer ziet u dat de module NetSecurity op de computer is geïnstalleerd en beschikbaar is voor de sessie in de $s variabele.

De derde opdracht maakt gebruik van de PSSession parameter van de Import-Module cmdlet voor het importeren van de NetSecurity module uit de sessie in de $s variabele in de huidige sessie.

De vierde opdracht maakt gebruik van de cmdlet Get-Command om opdrachten op te halen die beginnen met Get en Firewall uit de module NetSecurity op te nemen. De uitvoer haalt de opdrachten op en bevestigt dat de module en de bijbehorende cmdlets zijn geïmporteerd in de huidige sessie.

De vijfde opdracht maakt gebruik van de Get-NetFirewallRule-cmdlet om firewallregels voor Windows Remote Management op te halen op de Server01-computer. Deze opdracht is gelijk aan het gebruik van de Invoke-Command cmdlet om een Get-NetFirewallRule opdracht uit te voeren op de sessie in de $s variabele.

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

Omdat de beheerder van de computer de WMI-provider moduledetectie heeft geïnstalleerd, kunnen de CIM-opdrachten de standaardwaarden gebruiken, die zijn ontworpen voor de provider.

Met de opdrachten in dit voorbeeld kunt u de opslagsystemen beheren van een externe computer waarop het Windows-besturingssysteem niet wordt uitgevoerd.

De eerste opdracht maakt gebruik van de New-CimSession cmdlet om een sessie te maken op de RSDGF03 externe computer. De sessie maakt verbinding met WMI op de externe computer. Met de opdracht wordt de CIM-sessie opgeslagen in de variabele $cs.

De tweede opdracht maakt gebruik van de CIM-sessie in de $cs variabele om een Import-Module opdracht uit te voeren op de RSDGF03 computer. De opdracht gebruikt de parameter Name om de CIM-module Storage op te geven.

Met de derde opdracht wordt de opdracht Get-Command uitgevoerd op 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.

Met de vierde opdracht wordt de Get-Disk opdracht uitgevoerd. Hoewel de opdracht is getypt in de lokale sessie, wordt deze impliciet uitgevoerd op de externe computer van waaruit deze is geïmporteerd. Met de opdracht worden objecten van de externe computer opgehaald en geretourneerd 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_Aliasesvoor meer informatie.

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 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 puntnotatie 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 daadwerkelijk 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 wordt geladen of opnieuw wordt geladen boven aan de huidige

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

-FullyQualifiedName

Hiermee geeft u de volledig gekwalificeerde naam van de modulespecificatie.

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 ze 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 van geneste modules, in de sessiestatus van de aanroeper.

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 Bereik met de waarde 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, genereert 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 wordt alleen een versie van de module geïmporteerd die groter is dan of gelijk is aan de opgegeven waarde. Als er geen versie in aanmerking komt, genereert Import-Module een fout.

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

Gebruik de MinimumVersion parameternaam of de bijbehorende alias, versie.

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.

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

-NoClobber

Geeft aan dat deze cmdlet geen opdrachten importeert die dezelfde namen hebben 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 het item aangeeft waarmee u werkt. 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, is 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 daadwerkelijk 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 is gelijk aan het gebruik van de cmdlet Import-PSSession om bepaalde modules uit een sessie te importeren.

Import-Module kan PowerShell Core-modules niet importeren uit een andere sessie. De PowerShell Core-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 deze cmdlet de module importeert.

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 gebruiken met de waarde van Local om module-inhoud te importeren in het script- of scriptblockbereik.

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 deze cmdlet modules importeert in de globale sessiestatus, zodat deze beschikbaar zijn voor alle opdrachten in de sessie.

De parameter Global is gelijk aan de parameter Bereik met de waarde Global.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

Type:String
Geaccepteerde waarden:Local, Global
Position:Named
Default value:Current scope
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

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

U kunt een modulenaam, moduleobject of assemblyobject doorsluisen naar deze cmdlet.

Uitvoerwaarden

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

Met deze cmdlet wordt een PSModuleInfo- of PSCustomObjectgeretourneerd. Standaard genereert Import-Module geen uitvoer. Als u de parameter PassThru opgeeft, genereert de cmdlet een System.Management.Automation.PSModuleInfo object dat de module vertegenwoordigt. Als u de parameter AsCustomObject opgeeft, wordt er een PSCustomObject-object gegenereerd.

Notities

  • Voordat u een module kunt importeren, moet de module op de lokale computer worden geïnstalleerd. Dat wil gezegd: de modulemap moet worden gekopieerd naar een map die toegankelijk is voor uw lokale computer. 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 de cmdlets in deze modules gebruiken, worden echter daadwerkelijk 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. Update-FormatData werkt ook de opmaakgegevens bij voor opdrachten in de sessie die zijn geïmporteerd uit modules. Als het opmaakbestand voor een module wordt gewijzigd, kunt u een Update-FormatData opdracht uitvoeren 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 belangrijkste opdrachten 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.

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

  • 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 en niet beschikbaar zijn in het moduleobject dat de parameter PassThru retourneert. In Windows PowerShell 3.0 worden alle eigenschapswaarden van de module ingevuld.

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