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 cmdlet Import-PSSession
importiert Befehle , z. B. Cmdlets, Funktionen und Aliase, von einer PSSession auf einem lokalen oder Remotecomputer in die aktuelle Sitzung. Sie können jeden Befehl importieren, den das cmdlet Get-Command
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 cmdlet New-PSSession
, um eine PSSession zu erstellen. Verwenden Sie dann das cmdlet Import-PSSession
, um die Befehle zu importieren. Standardmäßig importiert 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 verwenden, wie Sie einen beliebigen Befehl in der Sitzung verwenden würden. 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 behandelt. Sie müssen sie nicht einmal kennen, es sei denn, Sie müssen die Verbindung mit der anderen Sitzung (PSSession) geöffnet lassen. Wenn Sie sie schließen, sind die importierten Befehle nicht mehr verfügbar.
Da importierte Befehle möglicherweise länger als lokale Befehle ausgeführt werden können, fügt Import-PSSession
jedem importierten Befehl einen AsJob Parameter hinzu. Mit diesem Parameter können Sie den Befehl als Windows PowerShell-Hintergrundauftrag ausführen. Weitere Informationen finden Sie unter about_Jobs.
Wenn Sie Import-PSSession
verwenden, 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 Cmdlet Export-PSSession
, um ein persistentes Modul zu erstellen, das Sie in zukünftigen Sitzungen verwenden können.
Das Cmdlet Import-PSSession
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 in einer ähnlichen Sitzung auf dem ursprünglichen Computer ausgeführt.
Ab Windows PowerShell 3.0 können Sie das cmdlet Import-Module
verwenden, um Module aus einer Remotesitzung in die aktuelle Sitzung zu importieren. Dieses Feature verwendet implizites Remoting. Es entspricht der Verwendung von Import-PSSession
zum Importieren 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
Mit diesem Befehl werden alle Befehle von einer PSSession auf dem Server01-Computer in die aktuelle Sitzung importiert, mit Ausnahme von Befehlen mit denselben Namen wie Befehle in der aktuellen Sitzung.
Da dieser Befehl nicht den parameter CommandName 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
Diese Befehle importieren die Befehle mit Namen, die in "-test" von einer PSSession in die lokale Sitzung enden, und zeigen dann, wie sie ein importiertes Cmdlet verwenden.
Der erste Befehl verwendet das cmdlet New-PSSession
zum Erstellen einer PSSession. Sie speichert die PSSession in der $S
Variablen.
Der zweite Befehl verwendet das cmdlet Import-PSSession
zum Importieren von Befehlen aus der PSSession in $S
in die aktuelle Sitzung. Der Parameter CommandName wird verwendet, um Befehle mit dem Substantiv Test und dem FormatTypeName Parameter anzugeben, um die Formatierungsdaten für die Befehle "Test" zu importieren.
Die dritten und vierten Befehle verwenden die importierten Befehle in der aktuellen Sitzung. Da importierte Befehle tatsächlich zur aktuellen Sitzung hinzugefügt werden, verwenden Sie die lokale Syntax, um sie auszuführen. Sie müssen das cmdlet Invoke-Command
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 wie lokale Cmdlets verwenden können.
Diese Befehle importieren die cmdlets New-Test
und Get-Test
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 von einem Cmdlet ohne Fehler an ein anderes weiterleiten.
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 gezeigt, wie ein importierter Befehl als Hintergrundauftrag ausgeführt wird.
Da importierte Befehle möglicherweise länger als lokale Befehle ausgeführt werden können, fügt Import-PSSession
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
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 variablen $batch
zurückgibt.
Der vierte Befehl verwendet das Cmdlet Receive-Job
, um die Ergebnisse des Auftrags in der variablen $batch
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 gezeigt, wie Sie die Cmdlets und Funktionen aus einem Windows PowerShell-Modul auf einem Remotecomputer in die aktuelle Sitzung importieren.
Der erste Befehl erstellt eine PSSession auf dem Server01-Computer und speichert sie in der variablen $S
.
Der zweite Befehl verwendet das cmdlet Invoke-Command
, um einen Import-Module
Befehl in der PSSession in $S
auszuführen.
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 von Import-PSSession
, um die Cmdlets und Funktionen im Modul in die aktuelle Sitzung zu importieren.
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. Außerdem wird gezeigt, dass alle Befehle in Funktionen konvertiert werden, bevor sie in die aktuelle Sitzung importiert werden.
Der Befehl verwendet das Cmdlet Import-PSSession
, um ein Get-Date
-Cmdlet und eine SearchHelp-Funktion in die aktuelle Sitzung zu importieren.
Das cmdlet Import-PSSession
gibt ein PSModuleInfo--Objekt zurück, das das temporäre Modul darstellt. Der Wert der eigenschaft Path zeigt, dass Import-PSSession
eine Skriptmoduldatei (PSM1) an einem temporären Speicherort erstellt hat. Die eigenschaft ExportedFunctions zeigt, dass das cmdlet Get-Date
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 gezeigt, wie Sie einen Befehl ausführen, der durch einen importierten Befehl ausgeblendet ist.
Der erste Befehl importiert ein Get-Date
-Cmdlet aus der PSSession in der variablen $S
. Da die aktuelle Sitzung ein Get-Date
-Cmdlet enthält, ist der AllowClobber Parameter im Befehl erforderlich.
Der zweite Befehl verwendet den Parameter All des Cmdlets Get-Command
, 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
aus.
Der dritte Befehl führt einen Get-Date
Befehl aus. Da Funktionen Vorrang vor Cmdlets haben, führt Windows PowerShell die importierte Get-Date
-Funktion aus, die ein julianisches Datum zurückgibt.
Die vierten und fünften Befehle zeigen, wie Sie einen qualifizierten Namen verwenden, um einen Befehl auszuführen, der durch einen importierten Befehl ausgeblendet ist.
Der vierte Befehl ruft den Namen des Windows PowerShell-Snap-Ins ab, das das ursprüngliche cmdlet Get-Date
zur aktuellen Sitzung hinzugefügt hat.
Der fünfte Befehl verwendet den snap-in-qualifizierten Namen des cmdlets Get-Date
, 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
Dieser Befehl importiert Befehle, deren Namen Element aus der PSSession in $S
enthalten. Da der Befehl den parameter CommandName, aber nicht den FormatTypeData--Parameter enthält, wird nur der Befehl importiert.
Verwenden Sie diesen Befehl, wenn Sie Import-PSSession
verwenden, um einen Befehl auf einem Remotecomputer auszuführen, und Sie verfügen bereits über die Formatierungsdaten für den Befehl in der aktuellen Sitzung.
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
Mit diesem Befehl wird gezeigt, 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 Cmdlet Import-PSSession
, um Befehle zu importieren, deren Namen "Bits" aus der PSSession in der $S
Variablen enthalten. Der Befehl Import-PSSession
gibt ein temporäres Modul zurück, und der Befehl speichert das Modul in der $m
Variablen.
Der zweite Befehl verwendet das Cmdlet Get-Command
, um die Befehle abzurufen, die vom Modul in der variablen $M
exportiert werden.
Der parameter Module akzeptiert 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 Befehl Get-Command
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 mit demselben Namen wie ein Befehl in der aktuellen Sitzung importieren, blendet der importierte Befehl die ursprünglichen Befehle aus oder ersetzt sie. Weitere Informationen finden Sie unter about_Command_Precedence.
Standardmäßig importiert Import-PSSession
keine Befehle mit demselben Namen wie Befehle in der aktuellen Sitzung.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-ArgumentList
Gibt ein Array von Befehlen an, die aus der Verwendung der angegebenen Argumente (Parameterwerte) resultieren.
Um beispielsweise die Variante des Befehls Get-Item
im Zertifikatlaufwerk (Cert:) in der PSSession in $S
zu importieren, geben Sie Import-PSSession -Session $S -Command Get-Item -ArgumentList cert:
ein.
Typ: | Object[] |
Aliase: | Args |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Certificate
Gibt das Clientzertifikat an, das zum Signieren der Formatdateien (*. Format.ps1xml) oder Skriptmoduldateien (PSM1) im temporären Modul, das Import-PSSession
erstellt.
Geben Sie eine Variable ein, die ein Zertifikat oder einen Befehl oder Ausdruck enthält, der das Zertifikat abruft.
Um ein Zertifikat zu finden, verwenden Sie das cmdlet Get-PfxCertificate
, oder verwenden Sie das cmdlet Get-ChildItem
im Zertifikatlaufwerk (Cert:). Wenn das Zertifikat ungültig ist oder nicht über ausreichende Autorität verfügt, schlägt der Befehl fehl.
Typ: | X509Certificate2 |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-CommandName
Gibt Befehle mit den angegebenen Namen oder Namensmustern an. Wildcards sind zulässig. Verwenden Sie CommandName- oder ihren Alias Name.
Standardmäßig importiert Import-PSSession
alle Befehle aus der Sitzung, mit Ausnahme von Befehlen mit denselben Namen wie Befehle in der aktuellen Sitzung. Dadurch wird verhindert, dass importierte Befehle in der Sitzung ausgeblendet oder ersetzt werden. Verwenden Sie den AllowClobber Parameter, um alle Befehle zu importieren, die auch andere Befehle ausblenden oder ersetzen.
Wenn Sie den parameter CommandName verwenden, werden die Formatierungsdateien für die Befehle nur importiert, wenn Sie den FormatTypeName Parameter verwenden. Wenn Sie den parameter FormatTypeName verwenden, werden auch keine Befehle importiert, es sei denn, Sie verwenden den parameter CommandName.
Typ: | String[] |
Aliase: | Name |
Position: | 2 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-CommandType
Gibt den Typ von Befehlsobjekten an. Der Standardwert ist Cmdlet. Verwenden Sie CommandType- oder ihren Alias Type. Die zulässigen Werte für diesen Parameter sind:
-
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, .exeund .dll Dateien. -
Cmdlet
: Die Cmdlets in der Remotesitzung. "Cmdlet" ist die Standardeinstellung. -
ExternalScript
: Die .ps1 Dateien in den Pfaden, die in der Path-Umgebungsvariable ($env:path
) in der Remotesitzung aufgeführt sind. -
Filter
undFunction
: 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.
Typ: | CommandTypes |
Aliase: | Type |
Zulässige Werte: | Alias, Function, Filter, Cmdlet, ExternalScript, Application, Script, Workflow, Configuration, All |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | 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 ein Modul, das Sie importieren, Cmdlets oder Funktionen exportiert, die nicht genehmigte Verben in ihren Namen 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."
Diese Meldung ist nur eine Warnung. Das vollständige Modul wird weiterhin importiert, einschließlich der nicht konformen Befehle. Obwohl die Meldung für Modulbenutzer angezeigt wird, sollte das Benennungsproblem vom Modulautor behoben werden.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-FormatTypeName
Gibt Formatierungsanweisungen für die angegebenen Microsoft .NET Framework-Typen an. Geben Sie die Typnamen ein. Wildcards 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. Geben Sie *
ein, um alle Formatierungsdaten in der Remotesitzung abzurufen.
Wenn der Befehl weder den CommandName noch FormatTypeName Parameter enthält, importiert Import-PSSession
Formatierungsanweisungen für alle .NET Framework-Typen, 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 parameter CommandName.
Wenn Sie auch den parameter CommandName verwenden, werden die Formatierungsdateien für die Befehle nicht importiert, es sei denn, Sie verwenden den FormatTypeName Parameter.
Typ: | String[] |
Position: | 3 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | 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 die PSModulePath- nach dem angegebenen Modul.
Eine Modulspezifikation ist eine Hashtabelle mit den folgenden Schlüsseln.
-
ModuleName
- Erforderlicher Gibt den Modulnamen an. -
GUID
- Optionaler Gibt die GUID des Moduls an. - Außerdem Erforderlicher, um mindestens einen der drei folgenden Tasten anzugeben.
-
ModuleVersion
– Gibt eine akzeptable Mindestversion 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 ein Module-Parameter angeben. Die beiden Parameter schließen sich gegenseitig aus.
Typ: | ModuleSpecification[] |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Module
Gibt das Array von Befehlen in den Windows PowerShell-Snap-Ins und -Modulen an. Geben Sie die Snap-In- und Modulnamen ein. Wildcards sind nicht zulässig.
Import-PSSession
können keine Anbieter aus einem Snap-In importieren.
Weitere Informationen finden Sie unter about_PSSnapins und about_Modules.
Typ: | String[] |
Aliase: | PSSnapin |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | 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
bezeichnet und nicht mit dem ursprünglichen cmdlet Get-Date
verwechselt.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Session
Gibt den PSSession- an, aus dem 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
-Befehl. Sie können nur eine Sitzung angeben. Dieser Parameter ist erforderlich.
Typ: | PSSession |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
Eingaben
None
Sie können keine Objekte an dieses Cmdlet weiterleiten.
Ausgaben
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 Cmdlet Export-PSSession
, um ein permanentes Modul auf dem Datenträger zu erstellen.
Hinweise
-
Import-PSSession
basiert auf der PowerShell-Remotinginfrastruktur. Um dieses Cmdlet zu verwenden, muss der Computer für WS-Management Remoting konfiguriert werden. Weitere Informationen finden Sie unter about_Remote und about_Remote_Requirements. -
Import-PSSession
importiert keine Variablen oder PowerShell-Anbieter. - Wenn Sie Befehle importieren, die dieselben Namen wie Befehle in der aktuellen Sitzung haben, können die importierten Befehle Aliase, Funktionen und Cmdlets in der Sitzung ausblenden, und sie können Funktionen und Variablen in der Sitzung ersetzen. Um Namenskonflikte zu verhindern, verwenden Sie den Parameter Prefix. Weitere Informationen finden Sie unter about_Command_Precedence.
-
Import-PSSession
konvertiert alle Befehle in Funktionen, bevor sie importiert werden. Daher verhalten sich importierte Befehle etwas anders als bei beibehaltenem ursprünglichen Befehlstyp. Wenn Sie beispielsweise ein Cmdlet aus einer PSSession importieren und dann ein Cmdlet mit demselben Namen aus einem Modul oder Snap-In importieren, wird das aus der PSSession importierte Cmdlet standardmäßig ausgeführt, da Funktionen Vorrang vor Cmdlets haben. Wenn Sie dagegen einen Alias in eine Sitzung importieren, die einen Alias mit demselben Namen enthält, wird der ursprüngliche Alias immer verwendet, da Aliase Vorrang vor Funktionen haben. Weitere Informationen finden Sie unter about_Command_Precedence. -
Import-PSSession
verwendet das CmdletWrite-Progress
, um den Fortschritt des Befehls anzuzeigen. Möglicherweise wird die Statusleiste angezeigt, während der Befehl ausgeführt wird. - Um die zu importierenden Befehle zu finden, verwendet
Import-PSSession
das cmdletInvoke-Command
zum Ausführen einesGet-Command
Befehls in der PSSession. Zum Abrufen von Formatierungsdaten für die Befehle wird das cmdletGet-FormatData
verwendet. Möglicherweise werden Fehlermeldungen aus diesen Cmdlets angezeigt, wenn Sie einenImport-PSSession
Befehl ausführen. Außerdem könnenImport-PSSession
keine Befehle aus einer PSSession importieren, die die CmdletsGet-Command
,Get-FormatData
,Select-Object
undGet-Help
nicht enthält. - Importierte Befehle haben dieselben Einschränkungen wie andere Remotebefehle, einschließlich der Unfähigkeit, ein Programm mit einer Benutzeroberfläche zu starten, z. B. Editor.
- Da Windows PowerShell-Profile nicht in PSSessions ausgeführt werden, sind die Befehle, die ein Profil zu einer Sitzung hinzufügt, nicht für
Import-PSSession
verfügbar. Um Befehle aus einem Profil zu importieren, verwenden Sie einenInvoke-Command
Befehl, um das Profil in der PSSession manuell vor dem Importieren von Befehlen auszuführen. - Das temporäre Modul, das
Import-PSSession
erstellt, kann eine Formatierungsdatei enthalten, auch wenn der Befehl keine Formatierungsdaten importiert. Wenn der Befehl keine Formatierungsdaten importiert, enthalten alle erstellten Formatierungsdateien keine Formatierungsdaten. - Um
Import-PSSession
zu verwenden, kann die Ausführungsrichtlinie in der aktuellen Sitzung nicht eingeschränkt oder AllSigned sein, da das temporäre Modul, dasImport-PSSession
erstellt, nicht signierte Skriptdateien enthält, die durch diese Richtlinien verboten sind. UmImport-PSSession
zu verwenden, ohne die Ausführungsrichtlinie für den lokalen Computer zu ändern, verwenden Sie den parameter Scope vonSet-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 Parameters Präfix zuweisen. Um Hilfe zu einem importierten Befehl in Windows PowerShell 2.0 zu erhalten, verwenden Sie den ursprünglichen (nicht präfixierten) Befehlsnamen.