Share via


Import-PSSession

Importiert Befehle aus einer anderen Sitzung in die aktuelle Sitzung.

Syntax

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

Beschreibung

Das Import-PSSession Cmdlet importiert Befehle wie Cmdlets, Funktionen und Aliase aus einer PSSession auf einem lokalen oder Remotecomputer in die aktuelle Sitzung. Sie können einen beliebigen Befehl importieren, den das Get-Command Cmdlet in der PSSession finden kann.

Verwenden Sie einen Import-PSSession Befehl, um Befehle aus einer benutzerdefinierten Shell zu importieren, z. B. aus einer Microsoft Exchange Server Shell, oder aus einer Sitzung, die Windows PowerShell Module und Snap-Ins oder andere Elemente enthält, die sich nicht in der aktuellen Sitzung befinden.

Verwenden Sie zum Importieren von Befehlen zunächst das New-PSSession Cmdlet, um eine PSSession zu erstellen. Verwenden Sie dann das Import-PSSession Cmdlet, um die Befehle zu importieren. Standardmäßig werden alle Befehle mit Ausnahme von Befehlen importiert, Import-PSSession die denselben Namen wie Befehle in der aktuellen Sitzung haben. Zum Importieren aller Befehle verwenden Sie den AllowClobber-Parameter.

Sie können importierte Befehle genauso wie jeden anderen Befehl in der Sitzung ausführen. Wenn Sie einen importierten Befehl verwenden, wird der importierte Teil des Befehls implizit in der Sitzung ausgeführt, aus der er importiert wurde. Die Remotevorgänge werden jedoch vollständig von Windows PowerShell verarbeitet. Abgesehen davon, dass die Verbindung mit der anderen Sitzung (PSSession) geöffnet bleiben muss, können Remotevorgänge vollständig unbeaufsichtigt ablaufen. Wenn Sie die Verbindung trennen, sind die importierten Befehle nicht mehr verfügbar.

Da die Ausführung importierter Befehle möglicherweise länger dauert als lokale Befehle, Import-PSSession fügt jedem importierten Befehl einen AsJob-Parameter hinzu. Durch diesen Parameter können Sie den Befehl in Windows PowerShell als Hintergrundauftrag ausführen. Weitere Informationen finden Sie unter about_Jobs.

Wenn Sie verwendenImport-PSSession, fügt Windows PowerShell die importierten Befehle zu einem temporären Modul hinzu, das nur in Ihrer Sitzung vorhanden ist, und gibt ein Objekt zurück, das das Modul darstellt. Verwenden Sie das Export-PSSession Cmdlet, um ein persistentes Modul zu erstellen, das Sie in zukünftigen Sitzungen verwenden können.

Das Import-PSSession Cmdlet verwendet die implizite Remotingfunktion von Windows PowerShell. Wenn Sie Befehle in die aktuelle Sitzung importieren, werden sie implizit in der ursprünglichen Sitzung oder in einer ähnlichen Sitzung auf dem Ursprungscomputer ausgeführt.

Ab Windows PowerShell 3.0 können Sie das Import-Module Cmdlet verwenden, um Module aus einer Remotesitzung in die aktuelle Sitzung zu importieren. Dieses Feature verwendet implizites Remoting. Dies entspricht der Verwendung Import-PSSession von, um ausgewählte Module aus einer Remotesitzung in die aktuelle Sitzung zu importieren.

Beispiele

Beispiel 1: Importieren aller Befehle aus einer PSSession

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

Dieser Befehl importiert alle Befehle einer PSSession auf Computer Server01 in die aktuelle Sitzung. Dies gilt nicht für Befehle, die über dieselben Namen wie Befehle in der aktuellen Sitzung verfügen.

Da der CommandName-Parameter von diesem Befehl nicht verwendet wird, werden außerdem alle für die importierten Befehle erforderlichen Formatierungsdaten importiert.

Beispiel 2: Importieren von Befehlen, die mit einer bestimmten Zeichenfolge enden

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

Durch diese Befehle werden die auf „-test“ endenden Namen aus einer PSSession in die lokale Sitzung importiert. Anschließend wird die Verwendung eines importierten Cmdlets gezeigt.

Der erste Befehl verwendet das New-PSSession Cmdlet, um eine PSSession zu erstellen. Die PSSession wird in der $S Variablen gespeichert.

Der zweite Befehl verwendet das Import-PSSession Cmdlet, um Befehle aus der PSSession in $S in die aktuelle Sitzung zu importieren. Er verwendet den CommandName-Parameter, um Befehle mit dem Substantiv „Test“ anzugeben, und den FormatTypeName-Parameter, um die Formatierungsdaten für die Test-Befehle zu importieren.

Vom dritten und vierten Befehl werden die importierten Befehle in der aktuellen Sitzung verwendet. Importierte Befehle werden der aktuellen Sitzung tatsächlich hinzugefügt, sodass Sie sie mithilfe lokaler Syntax ausführen. Sie müssen das Invoke-Command Cmdlet nicht verwenden, um einen importierten Befehl auszuführen.

Beispiel 3: Importieren von Cmdlets aus einer 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

Dieses Beispiel zeigt, dass Sie importierte Cmdlets genauso verwenden, wie Sie lokale Cmdlets verwenden würden.

Diese Befehle importieren die New-Test Cmdlets und Get-Test aus einer PSSession auf dem Server01-Computer und das Set-Test Cmdlet aus einer PSSession auf dem Server02-Computer.

Obwohl die Cmdlets aus verschiedenen PSSessions importiert wurden, können Sie ein Objekt aus einem Cmdlet fehlerfrei an ein anderes Cmdlet weiterreichen.

Beispiel 4: Ausführen eines importierten Befehls als Hintergrundauftrag

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

In diesem Beispiel wird erläutert, wie ein importierter Befehl als Hintergrundauftrag ausgeführt wird.

Da die Ausführung importierter Befehle möglicherweise länger dauert als lokale Befehle, Import-PSSession fügt jedem importierten Befehl einen AsJob-Parameter hinzu. Der AsJob-Parameter ermöglicht Ihnen die Ausführung des Befehls als Hintergrundauftrag.

Der erste Befehl erstellt eine PSSession auf dem Server01-Computer und speichert das PSSession-Objekt in der $S Variablen.

Der zweite Befehl verwendet Import-PSSession , um die Test-Cmdlets aus der PSSession in $S in in die aktuelle Sitzung zu importieren.

Der dritte Befehl verwendet den AsJob-Parameter des importierten New-Test Cmdlets, um einen New-Test Befehl als Hintergrundauftrag auszuführen. Der Befehl speichert das Auftragsobjekt, das New-Test in der $batch Variablen zurückgibt.

Der vierte Befehl verwendet das Receive-Job Cmdlet, um die Ergebnisse des Auftrags in der $batch Variablen abzurufen.

Beispiel 5: Importieren von Cmdlets und Funktionen aus einem Windows PowerShell Modul

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

In diesem Beispiel wird veranschaulicht, wie Cmdlets und Funktionen aus einem Windows PowerShell-Modul auf einem Remotecomputer in die aktuelle Sitzung importiert werden.

Der erste Befehl erstellt eine PSSession auf dem Server01-Computer und speichert sie in der $S Variablen.

Der zweite Befehl verwendet das Invoke-Command Cmdlet, um einen Import-Module Befehl in psSession in $Sauszuführen.

In der Regel wird das Modul allen Sitzungen durch einen Import-Module Befehl in einem Windows PowerShell-Profil hinzugefügt, aber Profile werden nicht in PSSessions ausgeführt.

Der dritte Befehl verwendet den Parameter Module von Import-PSSession , um die Cmdlets und Funktionen im Modul in die aktuelle Sitzung zu importieren.

Beispiel 6: Create eines Moduls in einer temporären Datei

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     : {}

Dieses Beispiel zeigt, dass Import-PSSession ein Modul in einer temporären Datei auf dem Datenträger erstellt. Außerdem wird veranschaulicht, dass alle Befehle vor dem Import in die aktuelle Sitzung in Funktionen konvertiert werden.

Der Befehl verwendet das Import-PSSession Cmdlet, um ein Get-Date Cmdlet und eine SearchHelp-Funktion in die aktuelle Sitzung zu importieren.

Das Import-PSSession Cmdlet gibt ein PSModuleInfo-Objekt zurück, das das temporäre Modul darstellt. Der Wert der Path-Eigenschaft zeigt an, dass Import-PSSession eine Skriptmoduldatei (.psm1) an einem temporären Speicherort erstellt wurde. Die ExportedFunctions-Eigenschaft zeigt, dass das Get-Date Cmdlet und die SearchHelp-Funktion beide als Funktionen importiert wurden.

Beispiel 7: Ausführen eines Befehls, der von einem importierten Befehl ausgeblendet wird

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 diesem Beispiel wird die Ausführung eines Befehls veranschaulicht, der von einem importierten Befehl ausgeblendet wird.

Der erste Befehl importiert ein Get-Date Cmdlet aus der PSSession in der $S Variablen. Da die aktuelle Sitzung ein Get-Date Cmdlet enthält, ist der Parameter AllowClobber im Befehl erforderlich.

Der zweite Befehl verwendet den Parameter All des Get-Command Cmdlets, um alle Get-Date Befehle in der aktuellen Sitzung abzurufen. Die Ausgabe zeigt, dass die Sitzung das ursprüngliche Get-Date Cmdlet und eine Get-Date Funktion enthält. Die Get-Date Funktion führt das importierte Get-Date Cmdlet in psSession in $Saus.

Der dritte Befehl führt einen Befehl aus Get-Date . Da Funktionen Vorrang vor Cmdlets haben, führt Windows PowerShell die importierte Get-Date Funktion aus, die ein julianisches Datum zurückgibt.

Der vierte und fünfte Befehl zeigen, wie ein Befehl, der von einem importierten Befehl ausgeblendet wird, anhand eines qualifizierten Namens ausgeführt wird.

Der vierte Befehl ruft den Namen des Windows PowerShell Snap-Ins ab, das das ursprüngliche Get-Date Cmdlet der aktuellen Sitzung hinzugefügt hat.

Der fünfte Befehl verwendet den snap-in-qualifizierten Namen des Get-Date Cmdlets, um einen Get-Date Befehl auszuführen.

Weitere Informationen zur Befehlsrangfolge und zu ausgeblendeten Befehlen finden Sie unter about_Command_Precedence.

Beispiel 8: Importieren von Befehlen mit einer bestimmten Zeichenfolge im Namen

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

Mit diesem Befehl werden Befehle importiert, deren Namen Item enthalten, aus der PSSession in $S. Da der Befehl den Parameter CommandName , aber nicht den Parameter FormatTypeData enthält, wird nur der Befehl importiert.

Verwenden Sie diesen Befehl, wenn Sie verwenden Import-PSSession , um einen Befehl auf einem Remotecomputer auszuführen und Sie bereits über die Formatierungsdaten für den Befehl in der aktuellen Sitzung verfügen.

Beispiel 9: Verwenden des Modulparameters, um zu ermitteln, welche Befehle in die Sitzung importiert wurden

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

Dieser Befehl zeigt, wie Sie den Parameter Module von Get-Command verwenden, um herauszufinden, welche Befehle von einem Import-PSSession Befehl in die Sitzung importiert wurden.

Der erste Befehl verwendet das Import-PSSession Cmdlet, um Befehle zu importieren, deren Namen "Bits" aus der PSSession in der $S Variablen enthalten. Der Import-PSSession Befehl gibt ein temporäres Modul zurück, und der Befehl speichert das Modul in der $m Variablen.

Der zweite Befehl verwendet das Get-Command Cmdlet, um die Befehle abzurufen, die vom Modul in die $M Variable exportiert werden.

Der Module-Parameter akzeptiert einen Zeichenfolgenwert, der eigens für den Modulnamen erstellt wurde. Wenn Sie ein Modulobjekt senden, verwendet Windows PowerShell jedoch die ToString-Methode für das Modulobjekt, das den Modulnamen zurückgibt.

Der Get-Command Befehl ist das Äquivalent zu Get-Command $M.Name".

Parameter

-AllowClobber

Gibt an, dass dieses Cmdlet die angegebenen Befehle importiert, auch wenn sie die gleichen Namen wie Befehle in der aktuellen Sitzung haben.

Wenn Sie einen Befehl importieren, der denselben Namen wie der Befehl in der aktuellen Sitzung hat, werden die ursprünglichen Befehle durch den importierten Befehl ausgeblendet oder ersetzt. Weitere Informationen finden Sie unter about_Command_Precedence.

Standardmäßig werden keine Befehle importiert, Import-PSSession die denselben Namen wie Befehle in der aktuellen Sitzung haben.

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

-ArgumentList

Gibt ein Array von Befehlen an, das sich aus der Verwendung der angegebenen Argumente (Parameterwerte) ergibt.

Geben Import-PSSession -Session $S -Command Get-Item -ArgumentList cert:Sie für instance ein, um die Variante des Get-Item Befehls im Laufwerk Zertifikat (Cert:) in die PSSession in $Szu importieren.

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

-Certificate

Gibt das Clientzertifikat an, das zum Signieren der Formatdateien (* verwendet wird. Format.ps1xml) oder Skriptmoduldateien (.psm1) im temporären Modul, das Import-PSSession erstellt wird.

Geben Sie eine Variable ein, die ein Zertifikat, einen Befehl oder einen Ausdruck enthält, durch die das Zertifikat abgerufen wird.

Um ein Zertifikat zu finden, verwenden Sie das Get-PfxCertificate Cmdlet oder das Get-ChildItem Cmdlet auf dem Laufwerk Certificate (Cert:). Wenn das Zertifikat ungültig ist oder keine qualifizierte Zertifizierungsstelle aufweist, verursacht der Befehl einen Fehler.

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

-CommandName

Gibt Befehle mit den angegebenen Namen oder Namensmustern an. Platzhalter sind zulässig. Verwenden Sie CommandName oder dessen Alias Name.

Importiert standardmäßig Import-PSSession alle Befehle aus der Sitzung, mit Ausnahme von Befehlen, die den gleichen Namen wie Befehle in der aktuellen Sitzung haben. Dadurch wird verhindert, dass Befehle in der Sitzung durch importierte Befehle ausgeblendet oder ersetzt werden. Um alle Befehle zu importieren, also auch die Befehle, durch die andere Befehle ausgeblendet oder ersetzt werden, verwenden Sie den AllowClobber-Parameter.

Bei Verwendung des CommandName-Parameters werden die Formatierungsdateien für die Befehle nicht importiert, sofern nicht der FormatTypeName-Parameter verwendet wird. Entsprechend werden bei Verwendung des FormatTypeName-Parameters keine Befehle importiert, sofern Sie nicht den CommandName-Parameter verwenden.

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

-CommandType

Gibt den Typ der Befehlsobjekte an. Der Standardwert ist Cmdlet. Verwenden Sie CommandType oder dessen Aliasname Type. Zulässige Werte für diesen Parameter:

  • Alias: Die Windows PowerShell Aliase in der Remotesitzung.
  • All: Die Cmdlets und Funktionen in der Remotesitzung.
  • Application: Alle Dateien außer Windows-PowerShell Dateien in den Pfaden, die in der Umgebungsvariable Path ($env:path) in der Remotesitzung aufgeführt sind, einschließlich .txt-, .exe- und .dll-Dateien.
  • Cmdlet: Die Cmdlets in der Remotesitzung. Der Standardwert ist Cmdlet.
  • ExternalScript: Die .ps1 Dateien in den Pfaden, die in der Umgebungsvariable Path ($env:path) in der Remotesitzung aufgeführt sind.
  • Filterund Function: Die Windows PowerShell Funktionen in der Remotesitzung.
  • Script: Das Skript blockiert in der Remotesitzung.

Diese Werte werden als flagbasierte Enumeration definiert. Sie können mehrere Werte miteinander kombinieren, um mehrere Flags mit diesem Parameter festzulegen. Die Werte können als Array von Werten oder als durch Trennzeichen getrennte Zeichenfolge dieser Werte an den CommandType-Parameter übergeben werden. Das Cmdlet kombiniert die Werte mithilfe eines binär-OR-Vorgangs. Das Übergeben von Werten als Array ist die einfachste Option und ermöglicht es Ihnen auch, die Tabulatorvervollständigung für die Werte zu verwenden.

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

Gibt an, dass dieses Cmdlet die Meldung unterdrückt, die Sie warnt, wenn Sie ein Cmdlet oder eine Funktion importieren, deren Name ein nicht genehmigtes Verb oder ein verbotenes Zeichen enthält.

Wenn ein Modul, das Sie importieren, Cmdlets oder Funktionen exportiert, die nicht genehmigte Verben in ihren Namen enthalten, zeigt die Windows PowerShell standardmäßig die folgende Warnmeldung an:

WARNUNG: Einige importierte Befehlsnamen enthalten nicht genehmigte Verben, die möglicherweise weniger auffindbar sind. Verwenden Sie den Parameter Verbose für weitere Details oder den Typ Get-Verb , um die Liste der genehmigten Verben anzuzeigen."

Diese Meldung ist nur eine Warnung. Es wird trotzdem das gesamte Modul einschließlich nicht konformer Befehle importiert. Obwohl die Meldung für Modulbenutzer angezeigt wird, sollte das Namensproblem vom Modulautor behoben werden.

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

-FormatTypeName

Gibt Formatierungsanweisungen für die angegebenen Microsoft .NET Framework-Typen an. Geben Sie die Typnamen ein. Platzhalter sind zulässig.

Der Wert dieses Parameters muss der Name eines Typs sein, der von einem Get-FormatData Befehl in der Sitzung zurückgegeben wird, aus der die Befehle importiert werden. Geben Sie ein, *um alle Formatierungsdaten in der Remotesitzung abzurufen.

Wenn der Befehl weder den Parameter CommandName noch FormatTypeName enthält, importiert Formatierungsanweisungen für alle .NET Framework Typen, Import-PSSession die von einem Get-FormatData Befehl in der Remotesitzung zurückgegeben werden.

Wenn Sie den FormatTypeName-Parameter verwenden, werden keine Befehle importiert, sofern nicht der CommandName-Parameter verwendet wird.

Entsprechend werden bei Verwendung des CommandName-Parameters die Formatierungsdateien für die Befehle nicht importiert, sofern Sie nicht den FormatTypeName-Parameter verwenden.

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

-FullyQualifiedModule

Gibt Module mit Namen an, die in Form von ModuleSpecification-Objekten angegeben werden (beschrieben im Abschnitt Hinweise des ModuleSpecification-Konstruktors (Hashtable) im PowerShell SDK. Der Parameter FullyQualifiedModule akzeptiert beispielsweise einen Modulnamen, der im Format angegeben ist:

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

ModuleName und ModuleVersion sind erforderlich, aber Guid ist optional.

Sie können den Parameter FullyQualifiedModule nicht im selben Befehl wie einen Module-Parameter angeben. Die beiden Parameter schließen sich gegenseitig aus.

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

-Module

Gibt ein Array von Befehlen im Windows PowerShell Snap-Ins und Module an. Geben Sie die Snap-In- und Modulnamen ein. Platzhalter sind nicht zulässig.

Import-PSSession Kann keine Anbieter aus einem Snap-In importieren.

Weitere Informationen finden Sie unter about_PSSnapins und about_Modules.

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

-Prefix

Gibt ein Präfix für die Nomen in den Namen importierter Befehle an.

Verwenden Sie diesen Parameter, um Namenskonflikte zu vermeiden, die auftreten können, wenn verschiedene Befehle in der Sitzung denselben Namen haben.

Wenn Sie für instance das Präfix Remote angeben und dann ein Get-Date Cmdlet importieren, wird das Cmdlet in der Sitzung als Get-RemoteDatebezeichnet und nicht mit dem ursprünglichen Get-Date Cmdlet verwechselt.

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

-Session

Gibt die PSSession an, aus der die Cmdlets importiert werden. Geben Sie eine Variable ein, die ein Sitzungsobjekt oder einen Befehl enthält, mit dem ein Sitzungsobjekt abgerufen wird, z. B. ein New-PSSession - oder Get-PSSession -Befehl. Sie können jeweils nur eine Sitzung angeben. Dieser Parameter ist erforderlich.

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

Eingaben

None

Objekte können nicht an dieses Cmdlet weitergereicht werden.

Ausgaben

PSModuleInfo

Import-PSSession gibt das gleiche Modulobjekt zurück, das und New-ModuleGet-Module Cmdlets zurückgeben. Das importierte Modul ist jedoch temporär und nur in der aktuellen Sitzung vorhanden. Verwenden Sie das Cmdlet, um ein permanentes Modul auf dem Export-PSSession Datenträger zu erstellen.

Hinweise

  • Import-PSSession basiert auf der PowerShell-Remotinginfrastruktur. Zur Verwendung dieses Cmdlets muss der Computer für das WS-Management-Remoting konfiguriert sein. Weitere Informationen finden Sie unter about_Remote und about_Remote_Requirements.
  • Import-PSSession importiert keine Variablen oder PowerShell-Anbieter.
  • Beim Importieren von Befehlen, die denselben Namen wie die Befehle in der aktuellen Sitzung haben, können die importierten Befehle Aliase, Funktionen und Cmdlets in der Sitzung ausblenden sowie Funktionen und Variablen in der Sitzung ersetzen. Um Namenskonflikte zu vermeiden, verwenden Sie den Prefix-Parameter. Weitere Informationen finden Sie unter about_Command_Precedence.
  • Import-PSSession konvertiert alle Befehle in Funktionen, bevor sie importiert werden. Folglich zeigen importierte Befehle ein etwas anderes Verhalten, als wenn sie den ursprünglichen Befehlstyp behalten würden. Wenn Sie z. B. ein Cmdlet aus einer PSSession importieren und dann ein Cmdlet desselben Namens aus einem Modul oder Snap-In importieren, wird standardmäßig das aus der PSSession importierte Cmdlet ausgeführt, weil Funktionen Vorrang vor Cmdlets haben. Wenn Sie dagegen einen Alias in eine Sitzung importieren, die über einen Alias desselben Namens verfügt, wird immer der ursprüngliche Alias verwendet, weil Aliase Vorrang vor Funktionen haben. Weitere Informationen finden Sie unter about_Command_Precedence.
  • Import-PSSession verwendet das Write-Progress Cmdlet, um den Status des Befehls anzuzeigen. Während der Befehlsausführung wird u. U. die Statusanzeige angezeigt.
  • Um die zu importierenden Befehle zu finden, verwendet das Invoke-Command Cmdlet, Import-PSSession um einen Get-Command Befehl in der PSSession auszuführen. Um Formatierungsdaten für die Befehle abzurufen, wird das Get-FormatData Cmdlet verwendet. Möglicherweise werden Fehlermeldungen von diesen Cmdlets angezeigt, wenn Sie einen Import-PSSession Befehl ausführen. Außerdem können keine Befehle aus einer PSSession importiert werden, Import-PSSession die die Get-CommandCmdlets , Get-FormatData, Select-Objectund Get-Help nicht enthält.
  • Importierte Befehle unterliegen den gleichen Beschränkungen wie andere Remotebefehle. Beispielweise können sie kein Programm mit einer Benutzeroberfläche, z. B. den Editor, starten.
  • Da Windows PowerShell Profile in PSSessions nicht ausgeführt werden, stehen die Befehle, die ein Profil einer Sitzung hinzufügt, für nicht zur VerfügungImport-PSSession. Um Befehle aus einem Profil zu importieren, verwenden Sie einen Invoke-Command Befehl, um das Profil in der PSSession vor dem Importieren von Befehlen manuell auszuführen.
  • Das temporäre Modul, das erstellt wird, Import-PSSession kann eine Formatierungsdatei enthalten, auch wenn der Befehl keine Formatierungsdaten importiert. Wenn durch den Befehl keine Formatierungsdaten importiert werden, enthält keine der erstellten Formatierungsdateien Formatierungsdaten.
  • Um zu verwenden Import-PSSession, kann die Ausführungsrichtlinie in der aktuellen Sitzung nicht eingeschränkt oder AllSigned sein, da das temporäre Modul, das erstellt wird, Import-PSSession nicht signierte Skriptdateien enthält, die durch diese Richtlinien verboten sind. Wenn Sie die Ausführungsrichtlinie für den lokalen Computer ohne Änderung der Ausführungsrichtlinie verwenden Import-PSSession möchten, verwenden Sie den Scope-Parameter von, um eine weniger restriktive Ausführungsrichtlinie Set-ExecutionPolicy für einen einzelnen Prozess festzulegen.
  • In Windows PowerShell 2.0 enthalten Hilfethemen zu Befehlen, die aus einer anderen Sitzung importiert werden, nicht das über den Prefix-Parameter zugewiesene Präfix. Um Hilfe zu einem importierten Befehl in Windows PowerShell 2.0 zu erhalten, verwenden Sie den ursprünglichen Befehlsnamen (ohne Präfix).