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
PS C:\> $S = New-PSSession -ComputerName Server01
PS C:\> 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
PS C:\> $S = New-PSSession https://ps.testlabs.com/powershell
PS C:\> Import-PSSession -Session $S -CommandName *-test -FormatTypeName *
PS C:\> New-Test -Name Test1
PS C:\> 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
PS C:\> $S1 = New-PSSession -ComputerName s1
PS C:\> $S2 = New-PSSession -ComputerName s2
PS C:\> Import-PSSession -Session s1 -Type cmdlet -Name New-Test, Get-Test -FormatTypeName *
PS C:\> Import-PSSession -Session s2 -Type Cmdlet -Name Set-Test -FormatTypeName *
PS C:\> 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
PS C:\> $S = New-PSSession -ComputerName Server01
PS C:\> Import-PSSession -Session $S -CommandName *-test* -FormatTypeName *
PS C:\> $batch = New-Test -Name Batch -AsJob
PS C:\> 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
PS C:\> $S = New-PSSession -ComputerName Server01
PS C:\> Invoke-Command -Session $S {Import-Module TestManagement}
PS C:\> 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 $S
auszufü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 $S
aus.
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 $S
zu 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.
- Alle. Die Cmdlets und Funktionen in der Remotesitzung.
- Anwendung: 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. - Filter und Funktion. Die Windows PowerShell-Funktionen in der Remotesitzung.
- Skript. Die Skriptblöcke in der Remotesitzung.
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-RemoteDate
bezeichnet 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
Import-PSSession
gibt das gleiche Modulobjekt zurück, das und New-Module
Get-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 dasWrite-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 einenGet-Command
Befehl in der PSSession auszuführen. Um Formatierungsdaten für die Befehle abzurufen, wird dasGet-FormatData
Cmdlet verwendet. Möglicherweise werden Fehlermeldungen von diesen Cmdlets angezeigt, wenn Sie einenImport-PSSession
Befehl ausführen. Außerdem können keine Befehle aus einer PSSession importiert werden,Import-PSSession
die dieGet-Command
Cmdlets ,Get-FormatData
,Select-Object
undGet-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ügung
Import-PSSession
. Um Befehle aus einem Profil zu importieren, verwenden Sie einenInvoke-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 verwendenImport-PSSession
möchten, verwenden Sie den Scope-Parameter von, um eine weniger restriktive AusführungsrichtlinieSet-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).