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 jeden Befehl importieren, den das Get-Command Cmdlet in der PSSession finden kann.

Verwenden Sie einen Import-PSSession Befehl zum Importieren von Befehlen aus einer angepassten Shell, z. B. 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 zuerst das New-PSSession Cmdlet, um eine PSSession zu erstellen. Verwenden Sie dann das Import-PSSession Cmdlet, um die Befehle zu importieren. Importiert standardmäßig Import-PSSession alle Befehle mit Ausnahme von Befehlen mit denselben Namen wie Befehle in der aktuellen Sitzung. Verwenden Sie zum Importieren aller Befehle den Parameter AllowClobber .

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 importierte Befehle möglicherweise länger ausgeführt werden 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.

Bei Verwendung fügt Import-PSSessionWindows 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 das implizite Remoting-Feature von Windows PowerShell. Wenn Sie Befehle in die aktuelle Sitzung importieren, werden sie implizit in der ursprünglichen Sitzung oder einer ähnlichen Sitzung auf dem Quellcomputer ausgeführt.

Ab Windows PowerShell 3.0 können Sie mit dem Import-Module Cmdlet Module aus einer Remotesitzung in die aktuelle Sitzung importieren. Dieses Feature verwendet implizites Remoting. Es entspricht der Verwendung Import-PSSession ausgewählter Module aus einer Remotesitzung in die aktuelle Sitzung.

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 dieser Befehl nicht den CommandName-Parameter verwendet, importiert er auch alle Formatierungsdaten, die für die importierten Befehle erforderlich sind.

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 zum Erstellen einer PSSession. Die PSSession wird in der $S Variablen gespeichert.

Der zweite Befehl verwendet das Import-PSSession Cmdlet, um Befehle aus der PSSession in $S die aktuelle Sitzung zu importieren. Er verwendet den CommandName-Parameter , um Befehle mit dem Test-Substantiv und dem FormatTypeName-Parameter anzugeben, um die Formatierungsdaten für die Befehle "Test" 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 und Get-Test Cmdlets von einer PSSession auf dem Server01-Computer und dem Set-Test Cmdlet von 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 importierte Befehle möglicherweise länger ausgeführt werden als lokale Befehle, Import-PSSession fügt jedem importierten Befehl einen AsJob-Parameter hinzu. Mit dem Parameter "AsJob " können Sie den Befehl als Hintergrundauftrag ausführen.

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 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ückgegeben wird.

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 zum Ausführen eines Import-Module Befehls in der PSSession in $S.

In der Regel würde 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 " zum Import-PSSession Importieren der Cmdlets und Funktionen im Modul in die aktuelle Sitzung.

Beispiel 6: Erstellen 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 wird. 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, 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 durch einen importierten Befehl ausgeblendet ist

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 "Alle " 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 der PSSession in $S.

Der dritte Befehl führt einen Get-Date Befehl aus. Da Funktionen Vorrang vor Cmdlets haben, führt Windows PowerShell die importierte Funktion aus, die ein julianisches Get-Date 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 zur 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 Rangfolge und ausgeblendeten Befehlen finden Sie unter about_Command_Precedence.

Beispiel 8: Importieren von Befehlen mit einer bestimmten Zeichenfolge in ihren Namen

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

Mit diesem Befehl werden Befehle importiert, deren Namen Element aus der PSSession enthalten.$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 Import-PSSession einen Befehl auf einem Remotecomputer ausführen und 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 Get-Command "Module" verwenden, um herauszufinden, welche Befehle mithilfe eines Import-PSSession Befehls 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 der $M Variablen exportiert werden.

Der Parameter "Module" verwendet einen Zeichenfolgenwert, der für den Modulnamen konzipiert ist. Wenn Sie jedoch ein Modulobjekt übermitteln, verwendet Windows PowerShell die ToString-Methode für das Modulobjekt, das den Modulnamen zurückgibt.

Der Get-Command Befehl entspricht Get-Command $M.Name".

Parameter

-AllowClobber

Gibt an, dass dieses Cmdlet die angegebenen Befehle importiert, auch wenn sie dieselben 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, die aus der Verwendung der angegebenen Argumente (Parameterwerte) resultieren.

Wenn Sie beispielsweise die Variante des Get-Item Befehls im Zertifikatlaufwerk (Cert:) in der PSSession $Simportieren möchten, geben Sie folgendes ein 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

Gibt das Clientzertifikat an, das zum Signieren der Formatdateien (*. 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 verwenden Sie das Get-ChildItem Cmdlet im Zertifikatlaufwerk (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 den Alias "Name".

Importiert standardmäßig Import-PSSession alle Befehle aus der Sitzung, mit Ausnahme von Befehlen mit denselben Namen wie Befehle in der aktuellen Sitzung. Dadurch wird verhindert, dass Befehle in der Sitzung durch importierte Befehle ausgeblendet oder ersetzt werden. Wenn Sie alle Befehle importieren möchten, verwenden Sie auch diejenigen, die andere Befehle ausblenden oder ersetzen, den Parameter AllowClobber .

Wenn Sie den Parameter CommandName verwenden, werden die Formatierungsdateien für die Befehle nur importiert, wenn Sie den Parameter FormatTypeName verwenden. Ebenso werden bei Verwendung des FormatTypeName-Parameters keine Befehle importiert, es sei denn, Sie verwenden den CommandName-Parameter .

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

-CommandType

Gibt den Typ von Befehlsobjekten an. Der Standardwert ist Cmdlet. Verwenden Sie CommandType oder deren Aliastyp. 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 Pfadumgebungsvariable ($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 Pfadumgebungsvariable ($env:path) in der Remotesitzung aufgeführt sind.
  • Filter und 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 kombinieren, um mehrere Flags mithilfe dieses Parameters festzulegen. Die Werte können als Array von Werten oder als kommagetrennte Zeichenfolge dieser Werte an den CommandType-Parameter übergeben werden. Das Cmdlet kombiniert die Werte mithilfe eines Binary-OR-Vorgangs. Das Übergeben von Werten als Array ist die einfachste Option und ermöglicht ihnen auch die Verwendung des Tabstopps für die Werte.

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 unzulässiges Zeichen enthält.

Wenn durch ein importiertes Modul Cmdlets oder Funktionen exportiert werden, deren Namen nicht genehmigte Verben enthalten, zeigt Windows PowerShell standardmäßig die folgende Warnmeldung an:

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

Dabei handelt es sich nur um 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 dem die Befehle importiert werden. Wenn Sie alle Formatierungsdaten in der Remotesitzung abrufen möchten, geben Sie folgendes ein *.

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

Wenn Sie den Parameter FormatTypeName verwenden, werden keine Befehle importiert, es sei denn, Sie verwenden den CommandName-Parameter .

Wenn Sie den Parameter CommandName verwenden, werden die Formatierungsdateien für die Befehle nicht importiert, es sei denn, Sie verwenden den Parameter FormatTypeName .

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

-FullyQualifiedModule

Der Wert kann ein Modulname, eine vollständige Modulspezifikation oder ein Pfad zu einer Moduldatei sein.

Wenn der Wert ein Pfad ist, kann der Pfad vollqualifizierte oder relativ sein. Ein relativer Pfad wird relativ zum Skript aufgelöst, das die using-Anweisung enthält.

Wenn es sich bei dem Wert um einen Namen oder eine Modulspezifikation handelt, durchsucht PowerShell den PSModulePath nach dem angegebenen Modul.

Eine Modulspezifikation ist eine Hashtabelle mit den folgenden Schlüsseln.

  • ModuleName - Erforderlich . Gibt den Modulnamen an.
  • GUID - Optional Gibt die GUID des Moduls an.
  • Es ist auch erforderlich , mindestens eine der drei folgenden Tasten anzugeben.
    • ModuleVersion - Gibt eine mindestens akzeptable Version des Moduls an.
    • MaximumVersion - Gibt die maximal zulässige Version des Moduls an.
    • RequiredVersion - Gibt eine genaue, erforderliche Version des Moduls an. Dies kann nicht mit den anderen Versionsschlüsseln verwendet werden.

Sie können den Parameter "FullyQualifiedModule " nicht im selben Befehl wie einen Modulparameter 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 das Array von Befehlen in den Windows PowerShell-Snap-Ins und -Modulen an. Geben Sie die Snap-In- und Modulnamen ein. Platzhalter sind nicht zulässig.

Import-PSSession Anbieter können nicht aus einem Snap-In importiert werden.

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 Substantive 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 beispielsweise das Präfix Remote angeben und dann ein Get-Date Cmdlet importieren, wird das Cmdlet in der Sitzung als Get-RemoteDate, und es wird 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, der ein Sitzungsobjekt abruft, z. B. einen New-PSSession oder Get-PSSession einen 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

Sie können keine Objekte an dieses Cmdlet weiterleiten.

Ausgaben

PSModuleInfo

Dieses Cmdlet gibt dasselbe Modulobjekt zurück, das New-Module und Get-Module Cmdlets zurückgeben. Das importierte Modul ist jedoch temporär und nur in der aktuellen Sitzung vorhanden. Verwenden Sie das Export-PSSession Cmdlet, um ein permanentes Modul auf dem 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. Verwenden Sie den Präfixparameter , um Namenskonflikte zu verhindern. 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 Fortschritt des Befehls anzuzeigen. Während der Befehlsausführung wird u. U. die Statusanzeige angezeigt.
  • Um die zu importierenden Befehle zu finden, Import-PSSession verwendet das Invoke-Command Cmdlet, um einen Get-Command Befehl in der PSSession auszuführen. Zum Abrufen von Formatierungsdaten für die Befehle wird das Get-FormatData Cmdlet verwendet. Möglicherweise werden Fehlermeldungen aus 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 nicht die Get-CommandCmdlets , Get-FormatData, , Select-Objectund Get-Help die Cmdlets 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 nicht in PSSessions ausgeführt werden, stehen die Befehle, die ein Profil zu einer Sitzung hinzufügt, nicht zur Verfügung Import-PSSession. Verwenden Sie zum Importieren von Befehlen aus einem Profil einen Invoke-Command Befehl, um das Profil manuell in der PSSession auszuführen, bevor Sie Befehle importieren.
  • 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.
  • Zur Verwendung Import-PSSessionkann die Ausführungsrichtlinie in der aktuellen Sitzung nicht eingeschränkt oder AllSigned sein, da das temporäre Modul, das erstellt, Import-PSSession nicht signierte Skriptdateien enthält, die von diesen Richtlinien verboten sind. Um die Ausführungsrichtlinie für den lokalen Computer zu ändernImport-PSSession, verwenden Sie den Scope-ParameterSet-ExecutionPolicy, um eine weniger restriktive Ausführungsrichtlinie für einen einzelnen Prozess festzulegen.
  • In Windows PowerShell 2.0 enthalten Hilfethemen für Befehle, die aus einer anderen Sitzung importiert werden, nicht das Präfix, das Sie mithilfe des Präfixparameters zuweisen. Um Hilfe zu einem importierten Befehl in Windows PowerShell 2.0 zu erhalten, verwenden Sie den ursprünglichen Befehlsnamen (ohne Präfix).