Delen via


Import-PSSession

Hiermee importeert u opdrachten uit een andere sessie in de huidige sessie.

Syntax

Import-PSSession
      [-Prefix <String>]
      [-DisableNameChecking]
      [[-CommandName] <String[]>]
      [-AllowClobber]
      [-ArgumentList <Object[]>]
      [-CommandType <CommandTypes>]
      [-Module <String[]>]
      [-FullyQualifiedModule <ModuleSpecification[]>]
      [[-FormatTypeName] <String[]>]
      [-Certificate <X509Certificate2>]
      [-Session] <PSSession>
      [<CommonParameters>]

Description

De Import-PSSession cmdlet importeert opdrachten , zoals cmdlets, functies en aliassen, van een PSSession op een lokale of externe computer in de huidige sessie. U kunt elke opdracht importeren die de Get-Command cmdlet kan vinden in de PSSession.

Gebruik een Import-PSSession opdracht om opdrachten te importeren uit een aangepaste shell, zoals een Microsoft Exchange Server shell, of uit een sessie met Windows PowerShell modules en modules of andere elementen die zich niet in de huidige sessie bevinden.

Als u opdrachten wilt importeren, gebruikt u eerst de New-PSSession cmdlet om een PSSession te maken. Gebruik vervolgens de Import-PSSession cmdlet om de opdrachten te importeren. Standaard worden alle opdrachten geïmporteerd, Import-PSSession met uitzondering van opdrachten die dezelfde namen hebben als opdrachten in de huidige sessie. Als u alle opdrachten wilt importeren, gebruikt u de parameter AllowClobber .

U kunt geïmporteerde opdrachten op dezelfde manier gebruiken als elke opdracht in de sessie. Wanneer u een geïmporteerde opdracht gebruikt, wordt het geïmporteerde deel van de opdracht impliciet uitgevoerd in de sessie waaruit deze is geïmporteerd. De externe bewerkingen worden echter volledig verwerkt door Windows PowerShell. U hoeft zich er niet eens van bewust te zijn, behalve dat u de verbinding met de andere sessie (PSSession) open moet houden. Als u deze sluit, zijn de geïmporteerde opdrachten niet meer beschikbaar.

Omdat het uitvoeren van geïmporteerde opdrachten langer kan duren dan lokale opdrachten, Import-PSSession voegt u een AsJob-parameter toe aan elke geïmporteerde opdracht. Met deze parameter kunt u de opdracht uitvoeren als een Windows PowerShell achtergrondtaak. Zie About Jobs (Taken) voor meer informatie.

Wanneer u gebruiktImport-PSSession, voegt Windows PowerShell de geïmporteerde opdrachten toe aan een tijdelijke module die alleen in uw sessie bestaat en retourneert een object dat de module vertegenwoordigt. Als u een permanente module wilt maken die u in toekomstige sessies kunt gebruiken, gebruikt u de Export-PSSession cmdlet.

De Import-PSSession cmdlet maakt gebruik van de functie voor impliciete externe communicatie van Windows PowerShell. Wanneer u opdrachten in de huidige sessie importeert, worden ze impliciet uitgevoerd in de oorspronkelijke sessie of in een vergelijkbare sessie op de oorspronkelijke computer.

Vanaf Windows PowerShell 3.0 kunt u de Import-Module cmdlet gebruiken om modules van een externe sessie in de huidige sessie te importeren. Deze functie maakt gebruik van impliciete externe communicatie. Dit komt overeen met het gebruik Import-PSSession om geselecteerde modules uit een externe sessie in de huidige sessie te importeren.

Voorbeelden

Voorbeeld 1: Alle opdrachten uit een PSSession importeren

$S = New-PSSession -ComputerName Server01
Import-PSSession -Session $S

Met deze opdracht worden alle opdrachten uit een PSSession op de Server01-computer in de huidige sessie geïmporteerd, met uitzondering van opdrachten die dezelfde namen hebben als opdrachten in de huidige sessie.

Omdat deze opdracht niet de parameter CommandName gebruikt, worden ook alle opmaakgegevens geïmporteerd die nodig zijn voor de geïmporteerde opdrachten.

Voorbeeld 2: Opdrachten importeren die eindigen op een specifieke tekenreeks

$S = New-PSSession https://ps.testlabs.com/powershell
Import-PSSession -Session $S -CommandName *-test -FormatTypeName *
New-Test -Name Test1
Get-Test test1 | Run-Test

Deze opdrachten importeren de opdrachten met namen die eindigen op '-test' vanuit een PSSession in de lokale sessie en laten vervolgens zien hoe u een geïmporteerde cmdlet gebruikt.

De eerste opdracht gebruikt de New-PSSession cmdlet om een PSSession te maken. Hiermee wordt de PSSession opgeslagen in de $S variabele.

De tweede opdracht gebruikt de Import-PSSession cmdlet om opdrachten uit de PSSession in $S de huidige sessie te importeren. De parameter CommandName wordt gebruikt om opdrachten op te geven met het zelfstandig naamwoord Test en de parameter FormatTypeName om de opmaakgegevens voor de testopdrachten te importeren.

De derde en vierde opdracht maken gebruik van de geïmporteerde opdrachten in de huidige sessie. Omdat geïmporteerde opdrachten daadwerkelijk worden toegevoegd aan de huidige sessie, gebruikt u de lokale syntaxis om ze uit te voeren. U hoeft de Invoke-Command cmdlet niet te gebruiken om een geïmporteerde opdracht uit te voeren.

Voorbeeld 3: cmdlets importeren uit een PSSession

$S1 = New-PSSession -ComputerName s1
$S2 = New-PSSession -ComputerName s2
Import-PSSession -Session s1 -Type cmdlet -Name New-Test, Get-Test -FormatTypeName *
Import-PSSession -Session s2 -Type Cmdlet -Name Set-Test -FormatTypeName *
New-Test Test1 | Set-Test -RunType Full

In dit voorbeeld ziet u dat u geïmporteerde cmdlets net zo kunt gebruiken als lokale cmdlets.

Met deze opdrachten worden de New-Test cmdlets en Get-Test geïmporteerd van een PSSession op de Server01-computer en de Set-Test cmdlet van een PSSession op de Server02-computer.

Hoewel de cmdlets zijn geïmporteerd uit verschillende PSSessions, kunt u een object zonder fouten van de ene cmdlet naar de andere doorsluizen.

Voorbeeld 4: Een geïmporteerde opdracht uitvoeren als achtergrondtaak

$S = New-PSSession -ComputerName Server01
Import-PSSession -Session $S -CommandName *-test* -FormatTypeName *
$batch = New-Test -Name Batch -AsJob
Receive-Job $batch

In dit voorbeeld ziet u hoe u een geïmporteerde opdracht uitvoert als een achtergrondtaak.

Omdat het uitvoeren van geïmporteerde opdrachten langer kan duren dan lokale opdrachten, Import-PSSession voegt u een AsJob-parameter toe aan elke geïmporteerde opdracht. Met de parameter AsJob kunt u de opdracht uitvoeren als een achtergrondtaak.

Met de eerste opdracht maakt u een PSSession op de Server01-computer en slaat u het PSSession-object op in de $S variabele.

De tweede opdracht gebruikt Import-PSSession om de test-cmdlets te importeren uit de PSSession in $S de huidige sessie.

De derde opdracht gebruikt de parameter AsJob van de geïmporteerde New-Test cmdlet om een New-Test opdracht als achtergrondtaak uit te voeren. Met de opdracht wordt het taakobject opgeslagen dat New-Test wordt geretourneerd in de $batch variabele.

De vierde opdracht gebruikt de Receive-Job cmdlet om de resultaten van de taak in de $batch variabele op te halen.

Voorbeeld 5: cmdlets en functies importeren uit een Windows PowerShell-module

$S = New-PSSession -ComputerName Server01
Invoke-Command -Session $S {Import-Module TestManagement}
Import-PSSession -Session $S -Module TestManagement

In dit voorbeeld ziet u hoe u de cmdlets en functies van een Windows PowerShell module op een externe computer in de huidige sessie importeert.

Met de eerste opdracht maakt u een PSSession op de Server01-computer en slaat u deze op in de $S variabele.

De tweede opdracht gebruikt de Invoke-Command cmdlet om een Import-Module opdracht uit te voeren in de PSSession in $S.

Normaal gesproken wordt de module aan alle sessies toegevoegd door een Import-Module opdracht in een Windows PowerShell-profiel, maar profielen worden niet uitgevoerd in PSSessions.

De derde opdracht gebruikt de moduleparameter van Import-PSSession om de cmdlets en functies in de module te importeren in de huidige sessie.

Voorbeeld 6: een module Creatie in een tijdelijk bestand

PS C:\> Import-PSSession $S -CommandName Get-Date, SearchHelp -FormatTypeName * -AllowClobber

Name              : tmp_79468106-4e1d-4d90-af97-1154f9317239_tcw1zunz.ttf
Path              : C:\Users\User01\AppData\Local\Temp\tmp_79468106-4e1d-4d90-af97-1154f9317239_tcw1
zunz.ttf\tmp_79468106-4e1d-4d90-af97-1154f9317239_
tcw1zunz.ttf.psm1
Description       : Implicit remoting for http://server01.corp.fabrikam.com/wsman
Guid              : 79468106-4e1d-4d90-af97-1154f9317239
Version           : 1.0
ModuleBase        : C:\Users\User01\AppData\Local\Temp\tmp_79468106-4e1d-4d90-af97-1154f9317239_tcw1
zunz.ttf
ModuleType        : Script
PrivateData       : {ImplicitRemoting}
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {[Get-Date, Get-Date], [SearchHelp, SearchHelp]}
ExportedVariables : {}
NestedModules     : {}

In dit voorbeeld ziet u dat Import-PSSession er een module wordt gemaakt in een tijdelijk bestand op schijf. U ziet ook dat alle opdrachten worden geconverteerd naar functies voordat ze in de huidige sessie worden geïmporteerd.

De opdracht gebruikt de Import-PSSession cmdlet om een Get-Date cmdlet en een SearchHelp-functie te importeren in de huidige sessie.

De Import-PSSession cmdlet retourneert een PSModuleInfo-object dat de tijdelijke module vertegenwoordigt. De waarde van de eigenschap Path geeft aan dat Import-PSSession er een scriptmodulebestand (.psm1) is gemaakt op een tijdelijke locatie. De eigenschap ExportedFunctions geeft aan dat de Get-Date cmdlet en de functie SearchHelp beide als functies zijn geïmporteerd.

Voorbeeld 7: Een opdracht uitvoeren die is verborgen door een geïmporteerde opdracht

PS C:\> Import-PSSession $S -CommandName Get-Date -FormatTypeName * -AllowClobber

PS C:\> Get-Command Get-Date -All

CommandType   Name       Definition
-----------   ----       ----------
Function      Get-Date   ...
Cmdlet        Get-Date   Get-Date [[-Date] <DateTime>] [-Year <Int32>] [-Month <Int32>]

PS C:\> Get-Date
09074

PS C:\> (Get-Command -Type Cmdlet -Name Get-Date).PSSnapin.Name
Microsoft.PowerShell.Utility

PS C:\> Microsoft.PowerShell.Utility\Get-Date
Sunday, March 15, 2009 2:08:26 PM

In dit voorbeeld ziet u hoe u een opdracht uitvoert die is verborgen door een geïmporteerde opdracht.

Met de eerste opdracht importeert u een Get-Date cmdlet uit de PSSession in de $S variabele. Omdat de huidige sessie een Get-Date cmdlet bevat, is de parameter AllowClobber vereist in de opdracht.

De tweede opdracht gebruikt de parameter All van de Get-Command cmdlet om alle Get-Date opdrachten in de huidige sessie op te halen. De uitvoer laat zien dat de sessie de oorspronkelijke Get-Date cmdlet en een Get-Date functie bevat. De Get-Date functie voert de geïmporteerde Get-Date cmdlet uit in de PSSession in $S.

Met de derde opdracht wordt een Get-Date opdracht uitgevoerd. Omdat functies voorrang hebben op cmdlets, wordt Windows PowerShell de geïmporteerde Get-Date functie uitgevoerd, die een Juliaanse datum retourneert.

De vierde en vijfde opdracht laten zien hoe u een gekwalificeerde naam gebruikt om een opdracht uit te voeren die is verborgen door een geïmporteerde opdracht.

De vierde opdracht haalt de naam op van de Windows PowerShell module waarmee de oorspronkelijke Get-Date cmdlet aan de huidige sessie is toegevoegd.

De vijfde opdracht gebruikt de in aanmerking komende modulenaam van de Get-Date cmdlet om een Get-Date opdracht uit te voeren.

Zie about_Command_Precedence voor meer informatie over opdrachtprioriteit en verborgen opdrachten.

Voorbeeld 8: Opdrachten importeren met een specifieke tekenreeks in hun namen

PS C:\> Import-PSSession -Session $S -CommandName **Item** -AllowClobber

Met deze opdracht worden opdrachten geïmporteerd waarvan de namen Item uit de PSSession bevatten in $S. Omdat de opdracht de parameter CommandName bevat, maar niet de parameter FormatTypeData , wordt alleen de opdracht geïmporteerd.

Gebruik deze opdracht wanneer u gebruikt Import-PSSession om een opdracht uit te voeren op een externe computer en u de opmaakgegevens voor de opdracht al in de huidige sessie hebt.

Voorbeeld 9: de parameter Module gebruiken om te ontdekken welke opdrachten in de sessie zijn geïmporteerd

PS C:\> $M = Import-PSSession -Session $S -CommandName *bits* -FormatTypeName *bits*
PS C:\> Get-Command -Module $M
CommandType     Name
-----------     ----
Function        Add-BitsFile
Function        Complete-BitsTransfer
Function        Get-BitsTransfer
Function        Remove-BitsTransfer
Function        Resume-BitsTransfer
Function        Set-BitsTransfer
Function        Start-BitsTransfer
Function        Suspend-BitsTransfer

Deze opdracht laat zien hoe u de moduleparameter van Get-Command gebruikt om erachter te komen welke opdrachten door een Import-PSSession opdracht in de sessie zijn geïmporteerd.

De eerste opdracht gebruikt de Import-PSSession cmdlet om opdrachten te importeren waarvan de namen 'bits' bevatten uit de PSSession in de $S variabele. De Import-PSSession opdracht retourneert een tijdelijke module en de opdracht slaat de module op in de $m variabele.

De tweede opdracht maakt gebruik van de Get-Command cmdlet om de opdrachten op te halen die door de module in de $M variabele worden geëxporteerd.

De moduleparameter gebruikt een tekenreekswaarde, die is ontworpen voor de modulenaam. Wanneer u echter een moduleobject verzendt, gebruikt Windows PowerShell de methode ToString voor het moduleobject, waarmee de modulenaam wordt geretourneerd.

De Get-Command opdracht is het equivalent van Get-Command $M.Name'.

Parameters

-AllowClobber

Geeft aan dat deze cmdlet de opgegeven opdrachten importeert, zelfs als ze dezelfde namen hebben als opdrachten in de huidige sessie.

Als u een opdracht importeert met dezelfde naam als een opdracht in de huidige sessie, worden de oorspronkelijke opdrachten verborgen of vervangen door de geïmporteerde opdracht. Zie about_Command_Precedence voor meer informatie.

Importeert standaard Import-PSSession geen opdrachten met dezelfde naam als opdrachten in de huidige sessie.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ArgumentList

Hiermee geeft u een matrix met opdrachten op die het resultaat zijn van het gebruik van de opgegeven argumenten (parameterwaarden).

Als u bijvoorbeeld de variant van de Get-Item opdracht wilt importeren in het certificaatstation (Cert:) in de PSSession in $S, typt u Import-PSSession -Session $S -Command Get-Item -ArgumentList cert:.

Type:Object[]
Aliases:Args
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Certificate

Hiermee geeft u het clientcertificaat op dat wordt gebruikt voor het ondertekenen van de indelingsbestanden (*. Format.ps1xml) of scriptmodulebestanden (.psm1) in de tijdelijke module die Import-PSSession wordt gemaakt.

Voer een variabele in die een certificaat of een opdracht of expressie bevat waarmee het certificaat wordt ophaalt.

Als u een certificaat wilt zoeken, gebruikt u de Get-PfxCertificate cmdlet of gebruikt u de Get-ChildItem cmdlet in het station Certificate (Cert:). Als het certificaat niet geldig is of onvoldoende autoriteit heeft, mislukt de opdracht.

Type:X509Certificate2
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CommandName

Hiermee geeft u opdrachten met de opgegeven namen of naampatronen. Jokertekens zijn toegestaan. Gebruik CommandName of de bijbehorende alias, Naam.

Standaard importeert Import-PSSession u alle opdrachten uit de sessie, met uitzondering van opdrachten die dezelfde namen hebben als opdrachten in de huidige sessie. Dit voorkomt dat geïmporteerde opdrachten in de sessie worden verborgen of vervangen. Als u alle opdrachten wilt importeren, zelfs opdrachten die andere opdrachten verbergen of vervangen, gebruikt u de parameter AllowClobber .

Als u de parameter CommandName gebruikt, worden de opmaakbestanden voor de opdrachten niet geïmporteerd, tenzij u de parameter FormatTypeName gebruikt. Als u de parameter FormatTypeName gebruikt, worden er geen opdrachten geïmporteerd, tenzij u de parameter CommandName gebruikt.

Type:String[]
Aliases:Name
Position:2
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CommandType

Hiermee geeft u het type opdrachtobjecten. De standaardwaarde is Cmdlet. Gebruik CommandType of de alias, Type. De aanvaardbare waarden voor deze parameter zijn:

  • Alias: De Windows PowerShell aliassen in de externe sessie.
  • All: de cmdlets en functies in de externe sessie.
  • Application: alle andere bestanden dan Windows-PowerShell bestanden in de paden die worden vermeld in de omgevingsvariabele Pad ($env:path) in de externe sessie, inclusief .txt, .exe en .dll bestanden.
  • Cmdlet: de cmdlets in de externe sessie. Cmdlet is de standaardinstelling.
  • ExternalScript: de .ps1 bestanden in de paden die worden vermeld in de omgevingsvariabele Pad ($env:path) in de externe sessie.
  • Filteren Function: de Windows PowerShell functies in de externe sessie.
  • Script: Het script blokkeert in de externe sessie.

Deze waarden worden gedefinieerd als een opsomming op basis van een vlag. U kunt meerdere waarden combineren om meerdere vlaggen in te stellen met behulp van deze parameter. De waarden kunnen worden doorgegeven aan de parameter CommandType als een matrix met waarden of als een door komma's gescheiden tekenreeks van deze waarden. De cmdlet combineert de waarden met behulp van een binaire-OR-bewerking. Het doorgeven van waarden als een matrix is de eenvoudigste optie en stelt u ook in staat om tabvoltooiing te gebruiken voor de waarden.

Type:CommandTypes
Aliases:Type
Accepted values:Alias, Function, Filter, Cmdlet, ExternalScript, Application, Script, Workflow, Configuration, All
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-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 exporteert met niet-goedgekeurde werkwoorden in hun naam, wordt in de Windows PowerShell standaard het volgende waarschuwingsbericht weergegeven:

'WAARSCHUWING: sommige geïmporteerde opdrachtnamen bevatten niet-goedgekeurde werkwoorden, waardoor ze mogelijk minder detecteerbaar zijn. Gebruik de parameter Uitgebreid voor meer details of type 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 voor modulegebruikers, moet het naamgevingsprobleem worden opgelost door de auteur van de module.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FormatTypeName

Hiermee geeft u opmaak-instructies voor de opgegeven Microsoft .NET Framework typen. Voer de typenamen in. Jokertekens zijn toegestaan.

De waarde van deze parameter moet de naam zijn van een type dat wordt geretourneerd door een Get-FormatData opdracht in de sessie waaruit de opdrachten worden geïmporteerd. Als u alle opmaakgegevens in de externe sessie wilt ophalen, typt *u .

Als de opdracht niet de parameter CommandName of FormatTypeName bevat, Import-PSSession importeert u opmaakinstructies voor alle .NET Framework typen die door een Get-FormatData opdracht in de externe sessie worden geretourneerd.

Als u de parameter FormatTypeName gebruikt, worden er geen opdrachten geïmporteerd, tenzij u de parameter CommandName gebruikt.

Als u de parameter CommandName gebruikt, worden de opmaakbestanden voor de opdrachten niet geïmporteerd, tenzij u de parameter FormatTypeName gebruikt.

Type:String[]
Position:3
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FullyQualifiedModule

Hiermee geeft u modules op met namen die zijn opgegeven in de vorm van ModuleSpecification-objecten (beschreven in de sectie Opmerkingen van ModuleSpecification Constructor (Hashtable) in de PowerShell SDK. De parameter FullyQualifiedModule accepteert bijvoorbeeld een modulenaam die is opgegeven in de indeling:

  • @{ModuleName = "modulename"; ModuleVersion = "version_number"} of
  • @{ModuleName = "modulename"; ModuleVersion = "version_number"; Guid = "GUID"}.

ModuleName en ModuleVersion zijn vereist, maar GUID is optioneel.

U kunt de parameter FullyQualifiedModule niet opgeven in dezelfde opdracht als een moduleparameter . De twee parameters sluiten elkaar uit.

Type:ModuleSpecification[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Module

Hiermee geeft u een matrix van opdrachten op in de Windows PowerShell modules en modules. Voer de module- en modulenamen in. Jokertekens zijn niet toegestaan.

Import-PSSession kan geen providers importeren uit een module.

Zie about_PSSnapins en about_Modules voor meer informatie.

Type:String[]
Aliases:PSSnapin
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Prefix

Hiermee geeft u een voorvoegsel voor de zelfstandige naamwoorden in de namen van geïmporteerde opdrachten.

Gebruik deze parameter om naamconflicten te voorkomen die kunnen optreden wanneer verschillende opdrachten in de sessie dezelfde naam hebben.

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

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Session

Hiermee geeft u de PSSession waaruit de cmdlets worden geïmporteerd. Voer een variabele in die een sessieobject bevat of een opdracht waarmee een sessieobject wordt opgehaald, zoals een New-PSSession opdracht of Get-PSSession . U kunt slechts één sessie opgeven. Deze parameter is vereist.

Type:PSSession
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

Invoerwaarden

None

U kunt geen objecten doorspezen naar deze cmdlet.

Uitvoerwaarden

PSModuleInfo

Import-PSSession retourneert hetzelfde moduleobject dat New-Module en Get-Module cmdlets retourneren. De geïmporteerde module is echter tijdelijk en bestaat alleen in de huidige sessie. Gebruik de cmdlet om een permanente module op schijf Export-PSSession te maken.

Notities

  • Import-PSSession is afhankelijk van de externe communicatie-infrastructuur van PowerShell. Als u deze cmdlet wilt gebruiken, moet de computer worden geconfigureerd voor externe WS-Management externe toegang. Zie about_Remote en about_Remote_Requirements voor meer informatie.
  • Import-PSSession importeert geen variabelen of PowerShell-providers.
  • Wanneer u opdrachten importeert die dezelfde namen hebben als opdrachten in de huidige sessie, kunnen de geïmporteerde opdrachten aliassen, functies en cmdlets in de sessie verbergen en kunnen ze functies en variabelen in de sessie vervangen. Gebruik de parameter Voorvoegsel om naamconflicten te voorkomen. Zie about_Command_Precedence voor meer informatie.
  • Import-PSSession converteert alle opdrachten naar functies voordat ze worden geïmporteerd. Als gevolg hiervan gedragen geïmporteerde opdrachten zich iets anders dan wanneer ze hun oorspronkelijke opdrachttype behouden. Als u bijvoorbeeld een cmdlet uit een PSSession importeert en vervolgens een cmdlet met dezelfde naam uit een module of module importeert, wordt de cmdlet die wordt geïmporteerd uit de PSSession altijd standaard uitgevoerd omdat functies voorrang hebben op cmdlets. Als u daarentegen een alias importeert in een sessie met een alias met dezelfde naam, wordt altijd de oorspronkelijke alias gebruikt, omdat aliassen voorrang hebben op functies. Zie about_Command_Precedence voor meer informatie.
  • Import-PSSession gebruikt de Write-Progress cmdlet om de voortgang van de opdracht weer te geven. Mogelijk ziet u de voortgangsbalk terwijl de opdracht wordt uitgevoerd.
  • Als u de opdrachten wilt vinden die u wilt importeren, Import-PSSession gebruikt u de Invoke-Command cmdlet om een Get-Command opdracht uit te voeren in de PSSession. Voor het ophalen van opmaakgegevens voor de opdrachten wordt de Get-FormatData cmdlet gebruikt. U ziet mogelijk foutberichten van deze cmdlets wanneer u een Import-PSSession opdracht uitvoert. Import-PSSession Kan ook geen opdrachten importeren uit een PSSession die de Get-Commandcmdlets , Get-FormatData, Select-Objecten Get-Help niet bevat.
  • Geïmporteerde opdrachten hebben dezelfde beperkingen als andere externe opdrachten, waaronder het niet kunnen starten van een programma met een gebruikersinterface, zoals Kladblok.
  • Omdat Windows PowerShell profielen niet worden uitgevoerd in PSSessions, zijn de opdrachten die een profiel toevoegt aan een sessie niet beschikbaar voor Import-PSSession. Als u opdrachten uit een profiel wilt importeren, gebruikt u een Invoke-Command opdracht om het profiel handmatig uit te voeren in de PSSession voordat u opdrachten importeert.
  • De tijdelijke module die Import-PSSession wordt gemaakt, kan een opmaakbestand bevatten, zelfs als de opdracht geen opmaakgegevens importeert. Als de opdracht geen opmaakgegevens importeert, bevatten de opmaakbestanden die worden gemaakt geen opmaakgegevens.
  • Als u wilt gebruiken Import-PSSession, kan het uitvoeringsbeleid in de huidige sessie niet Beperkt of AllSigned zijn, omdat de tijdelijke module die Import-PSSession wordt gemaakt, niet-ondertekende scriptbestanden bevat die niet zijn toegestaan door dit beleid. Als u wilt gebruiken Import-PSSession zonder het uitvoeringsbeleid voor de lokale computer te wijzigen, gebruikt u de parameter Bereik van Set-ExecutionPolicy om een minder beperkend uitvoeringsbeleid in te stellen voor één proces.
  • In Windows PowerShell 2.0 bevatten Help-onderwerpen voor opdrachten die zijn geïmporteerd uit een andere sessie niet het voorvoegsel dat u toewijst met behulp van de parameter Voorvoegsel. Voor hulp bij een geïmporteerde opdracht in Windows PowerShell 2.0 gebruikt u de oorspronkelijke opdrachtnaam (zonder voorvoegsel).