Export-PSSession
Hiermee exporteert u opdrachten uit een andere sessie en slaat u deze op in een PowerShell-module.
Syntax
Export-PSSession
[-OutputModule] <String>
[-Force]
[-Encoding <Encoding>]
[[-CommandName] <String[]>]
[-AllowClobber]
[-ArgumentList <Object[]>]
[-CommandType <CommandTypes>]
[-Module <String[]>]
[-FullyQualifiedModule <ModuleSpecification[]>]
[[-FormatTypeName] <String[]>]
[-Certificate <X509Certificate2>]
[-Session] <PSSession>
[<CommonParameters>]
Description
De Export-PSSession cmdlet haalt cmdlets, functies, aliassen en andere opdrachttypen op van een andere PowerShell-sessie (PSSession) op een lokale of externe computer en slaat deze op in een PowerShell-module. Gebruik de Import-Module cmdlet om de opdrachten uit de module toe te voegen aan de huidige sessie.
In tegenstelling tot Import-PSSession, waarmee opdrachten uit een andere PSSession in de huidige sessie worden geïmporteerd, Export-PSSession worden de opdrachten in een module opgeslagen. De opdrachten worden niet geïmporteerd in de huidige sessie.
Als u opdrachten wilt exporteren, gebruikt u de New-PSSession cmdlet om een PSSession te maken met de opdrachten die u wilt exporteren. Gebruik vervolgens de Export-PSSession cmdlet om de opdrachten te exporteren.
Om conflicten met opdrachtnamen te voorkomen, is het standaardinstelling Export-PSSession om alle opdrachten te exporteren, met uitzondering van opdrachten die aanwezig zijn in de huidige sessie. U kunt de parameter CommandName gebruiken om de opdrachten op te geven die u wilt exporteren.
De Export-PSSession cmdlet maakt gebruik van de impliciete externe functie van PowerShell. Wanneer u opdrachten in de huidige sessie importeert, worden ze impliciet uitgevoerd in de oorspronkelijke sessie of in een vergelijkbare sessie op de oorspronkelijke computer.
Voorbeelden
Voorbeeld 1: Opdrachten exporteren vanuit een PSSession
In dit voorbeeld wordt een nieuwe PSSession gemaakt van de lokale computer naar de Server01-computer. Alle opdrachten, behalve de opdrachten die aanwezig zijn in de huidige sessie, worden geëxporteerd naar de module Server01 op de lokale computer. De export bevat de opmaakgegevens voor de opdrachten.
$S = New-PSSession -ComputerName Server01
Export-PSSession -Session $S -OutputModule Server01
Met de New-PSSession opdracht maakt u een PSSession op de Server01-computer. De PSSession wordt opgeslagen in de $S variabele. Met Export-PSSession de opdracht worden de opdrachten en opmaakgegevens van de $S variabele geëxporteerd naar de Server01-module.
Voorbeeld 2: de opdrachten Ophalen en instellen exporteren
In dit voorbeeld worden alle opdrachten en Set opdrachten van Get een server geëxporteerd.
$S = New-PSSession -ConnectionUri https://exchange.microsoft.com/mailbox -Credential exchangeadmin01@hotmail.com -Authentication Negotiate
Export-PSSession -Session $S -Module exch* -CommandName Get-*, Set-* -FormatTypeName * -OutputModule $PSHOME\Modules\Exchange -Encoding ASCII
Met deze opdrachten exporteert u de Get en Set opdrachten van een Microsoft Exchange Server module op een externe computer naar een Exchange-module in de $PSHOME\Modules map op de lokale computer.
Als u de module in de $PSHOME\Modules map plaatst, is deze toegankelijk voor alle gebruikers van de computer.
Voorbeeld 3: Opdrachten exporteren vanaf een externe computer
In dit voorbeeld worden cmdlets geëxporteerd van een PSSession op een externe computer en worden deze opgeslagen in een module op de lokale computer. De cmdlets uit de module worden toegevoegd aan de huidige sessie, zodat ze kunnen worden gebruikt.
$S = New-PSSession -ComputerName Server01 -Credential Server01\User01
Export-PSSession -Session $S -OutputModule TestCmdlets -Type Cmdlet -CommandName *test* -FormatTypeName *
Remove-PSSession $S
Import-Module TestCmdlets
Get-Help Test*
Test-Files
De New-PSSession opdracht maakt een PSSession op de Server01-computer en slaat deze op in de $S variabele. Met Export-PSSession de opdracht worden de cmdlets geëxporteerd waarvan de namen beginnen met Testen van de PSSession in $S naar de TestCmdlets-module op de lokale computer.
Met Remove-PSSession de cmdlet wordt de PSSession $S verwijderd uit de huidige sessie. Deze opdracht laat zien dat de PSSession niet actief hoeft te zijn om de opdrachten te gebruiken die zijn geïmporteerd uit de sessie. Met Import-Module de cmdlet worden de cmdlets in de module TestCmdlets toegevoegd aan de huidige sessie. De opdracht kan op elk gewenst moment in elke sessie worden uitgevoerd.
De Get-Help cmdlet krijgt hulp voor cmdlets waarvan de namen beginnen met Testen. Nadat de opdrachten in een module zijn toegevoegd aan de huidige sessie, kunt u de Get-Help en Get-Command cmdlets gebruiken om meer te weten te komen over de geïmporteerde opdrachten. De Test-Files cmdlet is geëxporteerd van de Server01-computer en toegevoegd aan de sessie. De Test-Files cmdlet wordt uitgevoerd in een externe sessie op de computer van waaruit de opdracht is geïmporteerd. PowerShell maakt een sessie op basis van informatie die is opgeslagen in de Module TestCmdlets.
Voorbeeld 4: Opdrachten exporteren en klonen in de huidige sessie
In dit voorbeeld worden opdrachten geëxporteerd die zijn opgeslagen in een variabele in de huidige sessie.
Export-PSSession -Session $S -AllowClobber -OutputModule AllCommands
Met deze Export-PSSession opdracht worden alle opdrachten en alle opmaakgegevens uit de PSSession in de $S variabele geëxporteerd naar de huidige sessie. De parameter AllowClobber bevat opdrachten met dezelfde namen als opdrachten in de huidige sessie.
Voorbeeld 5: Opdrachten exporteren vanuit een gesloten PSSession
In dit voorbeeld ziet u hoe u de geëxporteerde opdrachten met speciale opties uitvoert wanneer de PSSession waarmee de geëxporteerde opdrachten zijn gemaakt, wordt gesloten.
Als de oorspronkelijke externe sessie wordt gesloten wanneer een module wordt geïmporteerd, gebruikt de module elke geopende externe sessie die verbinding maakt met de oorspronkelijke computer. Als er geen huidige sessie naar de oorspronkelijke computer is, wordt er een sessie hersteld.
Als u geëxporteerde opdrachten met speciale opties in een externe sessie wilt uitvoeren, moet u een externe sessie met deze opties maken voordat u de module importeert. New-PSSession De cmdlet gebruiken met de parameter SessionOption
$Options = New-PSSessionOption -NoMachineProfile
$S = New-PSSession -ComputerName Server01 -SessionOption $Options
Export-PSSession -Session $S -OutputModule Server01
Remove-PSSession $S
New-PSSession -ComputerName Server01 -SessionOption $Options
Import-Module Server01
De New-PSSessionOption cmdlet maakt een PSSessionOption-object en slaat het object op in de $Options variabele. Met de New-PSSession opdracht maakt u een PSSession op de Server01-computer.
De parameter SessionOption maakt gebruik van het object dat is opgeslagen in $Options. De sessie wordt opgeslagen in de $S variabele.
De Export-PSSession cmdlet exporteert opdrachten van de PSSession in $S naar de Server01-module.
De Remove-PSSession cmdlet verwijdert de PSSession in de $S variabele.
De New-PSSession cmdlet maakt een nieuwe PSSession die verbinding maakt met de Server01-computer. De parameter SessionOption maakt gebruik van het object dat is opgeslagen in $Options. De Import-Module cmdlet importeert de opdrachten uit de Server01-module. De opdrachten in de module worden uitgevoerd in de PSSession op de Server01-computer.
Parameters
Hiermee exporteert u de opgegeven opdrachten, zelfs als deze dezelfde namen hebben als opdrachten in de huidige sessie.
Als u een opdracht exporteert met dezelfde naam als een opdracht in de huidige sessie, worden de oorspronkelijke opdrachten verborgen of vervangen door de geëxporteerde opdracht. Zie about_Command_Precedence voor meer informatie.
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Hiermee exporteert u de variant van de opdracht die het resultaat is van het gebruik van de opgegeven argumenten (parameterwaarden).
Als u bijvoorbeeld de variant van de Get-Item opdracht in het certificaat wilt exporteren (certificaat:) station in de PSSession in $S, type Export-PSSession -Session $S -Command Get-Item -ArgumentList cert:.
| Type: | Object[] |
| Aliases: | Args |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Hiermee geeft u het clientcertificaat op dat wordt gebruikt voor het ondertekenen van de indelingsbestanden (*. Format.ps1xml) of scriptmodulebestanden (.psm1) in de module die Export-PSSession wordt gemaakt. Voer een variabele in die een certificaat of een opdracht of expressie bevat die het certificaat ophaalt.
Als u een certificaat wilt zoeken, gebruikt u de Get-PfxCertificate cmdlet of gebruikt u de Get-ChildItem cmdlet in het certificaat (certificaat:) rijden. Als het certificaat ongeldig is of onvoldoende autoriteit heeft, mislukt de opdracht.
| Type: | X509Certificate2 |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Hiermee exporteert u alleen de opdrachten met de opgegeven namen of naampatronen. Jokertekens zijn toegestaan. Gebruik CommandName of de alias , Name.
Standaard exporteert u alle opdrachten uit de PSSession, Export-PSSession met uitzondering van opdrachten met dezelfde namen als opdrachten in de huidige sessie. Hiermee voorkomt u dat opdrachten worden verborgen of vervangen door opdrachten in de huidige sessie. Als u alle opdrachten wilt exporteren, zelfs opdrachten die andere opdrachten verbergen of vervangen, gebruikt u de parameter AllowClobber .
Als u de parameter CommandName gebruikt, worden de opmaakbestanden voor de opdrachten niet geëxporteerd, tenzij u de parameter FormatTypeName gebruikt. Als u ook de parameter FormatTypeName gebruikt, worden er geen opdrachten geëxporteerd, tenzij u de parameter CommandName gebruikt.
| Type: | String[] |
| Aliases: | Name |
| Position: | 2 |
| Default value: | All commands in the session. |
| Accept pipeline input: | False |
| Accept wildcard characters: | True |
Hiermee exporteert u alleen de opgegeven typen opdrachtobjecten. Gebruik CommandType of de alias, Type.
De acceptabele waarden voor deze parameter zijn als volgt:
Alias: alle PowerShell-aliassen in de huidige sessie.All: Alle opdrachttypen. Het is het equivalent vanGet-Command -Name *.Application: Alle andere bestanden dan PowerShell-bestanden in paden die worden vermeld in de omgevingsvariabele Path ($env:path), inclusief .txt, .exe en .dll bestanden.Cmdlet: de cmdlets in de huidige sessie. Cmdlet is de standaardinstelling.Configuration: Een PowerShell-configuratie. Zie about_Session_Configurations voor meer informatie.ExternalScript: Alle .ps1 bestanden in de paden die worden vermeld in de omgevingsvariabele Path ($env:path).FilterenFunction: alle PowerShell-functies.ScriptScriptblokken in de huidige sessie.WorkflowEen PowerShell-werkstroom. Zie about_Workflows voor meer informatie.
Deze waarden worden gedefinieerd als een opsomming op basis van vlaggen. U kunt meerdere waarden combineren om meerdere vlaggen in te stellen met behulp van deze parameter. De waarden kunnen worden doorgegeven aan de parameter CommandType als een matrix met waarden of als een door komma's gescheiden tekenreeks van deze waarden. De cmdlet combineert de waarden met behulp van een binaire-OF-bewerking. Het doorgeven van waarden als een matrix is de eenvoudigste optie en stelt u ook in staat om tabvoltooiing te gebruiken voor de waarden.
| Type: | CommandTypes |
| Aliases: | Type |
| Accepted values: | Alias, All, Application, Cmdlet, Configuration, ExternalScript, Filter, Function, Script, Workflow |
| Position: | Named |
| Default value: | All commands in the session. |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Hiermee geeft u het type codering voor het doelbestand. De standaardwaarde is utf8NoBOM.
De acceptabele waarden voor deze parameter zijn als volgt:
ascii: Gebruikt de codering voor de ASCII-tekenset (7-bits).bigendianunicode: Codeert in UTF-16-indeling met behulp van de bytevolgorde big-endian.bigendianutf32: Codeert in UTF-32-indeling met behulp van de bytevolgorde big-endian.oem: maakt gebruik van de standaardcodering voor MS-DOS en consoleprogramma's.unicode: Codeert in UTF-16-indeling met behulp van de bytevolgorde little-endian.utf7: Codeert in UTF-7-indeling.utf8: Codeert in UTF-8-indeling.utf8BOM: Codeert in UTF-8-indeling met Byte Order Mark (BOM)utf8NoBOM: Codeert in UTF-8-indeling zonder Byte Order Mark (BOM)utf32: Codeert in UTF-32-indeling.
Vanaf PowerShell 6.2 staat de coderingsparameter ook numerieke id's toe van geregistreerde codepagina's (zoals -Encoding 1251) of tekenreeksnamen van geregistreerde codepagina's (zoals).-Encoding "windows-1251" Zie de .NET-documentatie voor Encoding.CodePage voor meer informatie.
| Type: | Encoding |
| Accepted values: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
| Position: | Named |
| Default value: | UTF8NoBOM |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Overschrijft een of meer bestaande uitvoerbestanden, zelfs als het bestand het kenmerk Alleen-lezen heeft.
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Hiermee exporteert u alleen opmaakinstructies voor de opgegeven typen Microsoft .NET Framework. Voer de typenamen in. Export-PSSession Standaard exporteert u opmaakinstructies voor alle .NET Framework typen die zich niet in de naamruimte System.Management.Automation bevinden.
De waarde van deze parameter moet de naam zijn van een type dat wordt geretourneerd door een Get-FormatData opdracht in de sessie waaruit de opdrachten worden geïmporteerd. Als u alle opmaakgegevens in de externe sessie wilt ophalen, typt *u .
Als u de parameter FormatTypeName gebruikt, worden er geen opdrachten geëxporteerd, tenzij u de parameter CommandName gebruikt.
Als u de parameter CommandName gebruikt, worden de opmaakbestanden voor de opdrachten niet geëxporteerd, tenzij u de parameter FormatTypeName gebruikt.
| Type: | String[] |
| Position: | 3 |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Hiermee geeft u modules met namen die zijn opgegeven in de vorm van ModuleSpecification-objecten . Zie het gedeelte Opmerkingen van ModuleSpecification Constructor (Hashtable).
De parameter FullyQualifiedModule accepteert bijvoorbeeld een modulenaam die is opgegeven in een van deze indelingen:
@{ModuleName = "modulename"; ModuleVersion = "version_number"}@{ModuleName = "modulename"; ModuleVersion = "version_number"; Guid = "GUID"}
ModuleName en ModuleVersion zijn vereist, maar Guid is optioneel. U kunt de parameter FullyQualifiedModule niet opgeven in dezelfde opdracht als een moduleparameter . de twee parameters sluiten elkaar wederzijds uit.
| Type: | ModuleSpecification[] |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Hiermee exporteert u alleen de opdrachten in de opgegeven PowerShell-modules en -modules. Voer de module- en modulenamen in. Jokertekens zijn niet toegestaan.
Zie en about_PSSnapins voor meer informatieImport-Module.
| Type: | String[] |
| Aliases: | PSSnapin |
| Position: | Named |
| Default value: | All commands in the session. |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Hiermee geeft u een optioneel pad en naam op voor de module die is gemaakt door Export-PSSession. Het standaardpad is $home\Documents\WindowsPowerShell\Modules. Deze parameter is vereist.
Als de submap van de module of een van de bestanden die Export-PSSession al worden gemaakt, bestaat, mislukt de opdracht. Als u bestaande bestanden wilt overschrijven, gebruikt u de parameter Force .
| Type: | String |
| Aliases: | PSPath, ModuleName |
| Position: | 1 |
| Default value: | $home\Documents\WindowsPowerShell\Modules |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Hiermee geeft u de PSSession waaruit de opdrachten worden geëxporteerd. Voer een variabele in die een sessieobject bevat of een opdracht waarmee een sessieobject wordt opgehaald, zoals een Get-PSSession opdracht. Deze parameter is vereist.
| Type: | PSSession |
| Position: | 0 |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Invoerwaarden
None
U kunt objecten niet doorsluisen naar Export-PSSession.
Uitvoerwaarden
Export-PSSession retourneert een lijst met bestanden die deel uitmaken van de module die is gemaakt.
Notities
Export-PSSession is afhankelijk van de externe infrastructuur van PowerShell. Als u deze cmdlet wilt gebruiken, moet de computer worden geconfigureerd voor externe communicatie. Zie about_Remote_Requirements voor meer informatie.
U kunt geen Export-PSSession PowerShell-provider exporteren.
Geëxporteerde opdrachten worden impliciet uitgevoerd in de PSSession waaruit ze zijn geëxporteerd. De details van het uitvoeren van de opdrachten op afstand worden volledig verwerkt door PowerShell. U kunt de geëxporteerde opdrachten uitvoeren, net zoals u lokale opdrachten zou uitvoeren.
Export-ModuleMember legt informatie over de PSSession vast en slaat deze op in de module die wordt geëxporteerd. Als de PSSession waaruit de opdrachten zijn geëxporteerd, wordt gesloten wanneer u de module importeert en er geen actieve PSSessions zijn op dezelfde computer, proberen de opdrachten in de module de PSSession opnieuw te maken. Als pogingen om de PSSession opnieuw te maken mislukken, worden de geëxporteerde opdrachten niet uitgevoerd.
De sessiegegevens die Export-ModuleMember in de module worden vastgelegd en opgeslagen, bevatten geen sessieopties, zoals de sessieopties die u opgeeft in de $PSSessionOption voorkeursvariabele of met behulp van de parameter SessionOption van de New-PSSession, Enter-PSSessionof Invoke-Command cmdlets. Als de oorspronkelijke PSSession wordt gesloten wanneer u de module importeert, gebruikt de module een andere PSSession op dezelfde computer, indien beschikbaar. Als u wilt dat de geïmporteerde opdrachten worden uitgevoerd in een correct geconfigureerde sessie, maakt u een PSSession met de gewenste opties voordat u de module importeert.
Als u wilt zoeken naar de opdrachten die u wilt exporteren, Export-PSSession gebruikt u de Invoke-Command cmdlet om een Get-Command opdracht uit te voeren in de PSSession. Om opmaakgegevens voor de opdrachten op te halen en op te slaan, worden de Get-FormatData en Export-FormatData cmdlets gebruikt. Mogelijk ziet u foutberichten vanInvoke-Command, Get-Commanden Get-FormatDataExport-FormatData wanneer u een Export-PSSession opdracht uitvoert. Export-PSSession U kunt ook geen opdrachten exporteren uit een sessie die de , en Get-HelpSelect-Objectcmdlets niet bevatGet-CommandGet-FormatData.
Export-PSSession gebruikt de Write-Progress cmdlet om de voortgang van de opdracht weer te geven. Mogelijk ziet u de voortgangsbalk terwijl de opdracht wordt uitgevoerd.
Geëxporteerde opdrachten hebben dezelfde beperkingen als andere externe opdrachten, waaronder het niet kunnen starten van een programma met een gebruikersinterface, zoals Kladblok.
Omdat PowerShell-profielen niet worden uitgevoerd in PSSessions, zijn de opdrachten die een profiel toevoegt aan een sessie niet beschikbaar voor Export-PSSession. Als u opdrachten uit een profiel wilt exporteren, gebruikt u een Invoke-Command opdracht om het profiel handmatig uit te voeren in de PSSession voordat u opdrachten exporteert.
De module die Export-PSSession wordt gemaakt, kan een opmaakbestand bevatten, zelfs als de opdracht geen opmaakgegevens importeert. Als de opdracht geen opmaakgegevens importeert, bevatten alle gemaakte opmaakbestanden geen opmaakgegevens.
Verwante koppelingen
Feedback
Feedback verzenden en weergeven voor