Import commands from another session and save them in a Windows PowerShell module.
Syntax Export-PSSession [-Session] PSSession [-OutputModule] string [[-CommandName] string[]] [[-FormatTypeName] string[]] [-AllowClobber] [-ArgumentList Object[]] [-CommandType {Alias | Function | Filter | Cmdlet | ExternalScript | Application | Script | All}] [-Encoding string] [-Force] [-Module string[]] [CommonParameters] Key -AllowClobber Export the specified commands, even if they have the same names as commands in the current session. If you import a command with the same name as a command in the current session, the imported command hides or replaces the original commands. For more information, see about_Command_Precedence. By default Export-PSSession does not import commands that have the same names as commands in the current session. The default behavior is designed to prevent command name conflicts. -ArgumentList Object[] Export the variant of the command that results from using the specified arguments (parameter values). For example, to export the variant of the Get-Item command in the certificate (Cert:) drive in the PSSession in $sess, type "export-pssession -session $sess -command get-item -argumentlist cert:". -CommandName string[] Export only the commands with the specified string names or name patterns. Wildcards are permitted. Use "-CommandName" or its alias, "-Name". By default, Export-PSSession will export all commands from the PSSession except for commands that have the same names as commands in the current session. This prevents imported commands from hiding or replacing commands in the current session. To export all commands, even those that hide or replace other commands, use -AllowClobber If you use -CommandName, the formatting files for the commands are not exported unless you use -FormatTypeName. Similarly, if you use -FormatTypeName, no commands are exported unless you specify -CommandName. -CommandType CommandTypes Export only specific types of command objects. Use "-CommandType" or its alias, "-Type". Valid values are: Alias All PowerShell aliases in the current session. All All command types. It is the equivalent of "get-command *". Application All files other than PowerShell files in paths listed in the Path environment variable ($env:path), including .txt, .exe, and .dll files. Cmdlet The cmdlets in the current session. "Cmdlet" is the default. ExternalScript All .ps1 files in the path(s) listed in the Path environment variable ($env:path). Filter All PowerShell functions. Function All PowerShell functions. Script Script blocks in the current session. -Encoding string The encoding for the output files. Valid values are "Unicode", "UTF7", "UTF8", "ASCII", "UTF32", "Big EndianUnicode", "Default", and "OEM". The default is "UTF-8". -Force Overwrite one or more existing output files, even if the file has the read-only attribute. -FormatTypeName string[] Export formatting instructions only for the specified Microsoft .NET Framework types. Enter the type names. By default, Export-PSSession exports formatting instructions for all .NET Framework types that are not in the System.Management.Automation namespace. The value of this parameter must be the name of a type that is returned by a Get-FormatData command in the session from which the commands are being imported. To get all of the formatting data in the remote session, type * If you use the FormatTypeName parameter, no commands are exported unless you use -CommandName. Similarly, if you use -CommandName, the formatting files for the commands are not exported unless you also use -FormatTypeName. -Module string[] Export only the commands in the specified PowerShell snap-ins and modules. Enter the snap-in and module names. Wildcards are not permitted. For more information, see about_PSSnapins and Import-Module. -OutputModule string A path (optional) and name for the module that Export-PSSession creates. The default path is $home\Documents\WindowsPowerShell\Modules. This parameter is required. If the module subdirectory or any of the files that Export-PSSession creates already exist, the command fails. To overwrite existing files, use -Force. -Session PSSession The PSSession from which the commands are exported. Enter a variable that contains a session object or a command that gets a session object, such as a Get-PSSession command. This parameter is required. CommonParameters: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -WarningAction, -WarningVariable, -OutBuffer -OutVariable.
Standard Aliases for Export-PSSession: epsn
Export-PSSession gets cmdlets, functions, aliases, and other command types from another PSSession on a local or remote computer and saves them in a PowerShell module. To add the commands from the module to the current session, use Import-Module.
Unlike Import-PSSession, which imports commands from another PSSession into the current session, Export-PSSession saves the commands in a module. The commands are not imported into the current session.
To export commands, first use New-PSSession to create a PSSession that has the commands that you want to
export. Then use the Export-PSSession cmdlet to export the commands. By default, Export-PSSession exports all commands, except for commands that exist in the current session, but you can use -CommandName to specify
the commands to export.
Export-PSSession uses the implicit remoting feature of Windows PowerShell. When you import commands into
the current session, they run implicitly in the original session or in a similar session on the originating computer. If the original remote session is closed, then accessing the module will automatically re-open a remote session
connected to the originating computer.
Examples
Export all commands from a PSSession on the Server64 computer to the Server64 module on the local computer. Include formatting data but exclude any commands that have the same names as commands in the current session:
PS C:> $sess = new-pssession -computerName Server64
PS C:> export-pssession -session $sess -outputModule Server64
Export all commands and all formatting data from the PSSession in the $sess variable into the current session.:
PS C:> export-pssession -session $sess -AllowClobber -outputModule AllCommands
Note that if Enter-PSSession -ComputerName is used (instead of new-psSession), then Enter-PSSession would have automatically created a temporary session that would close as soon as the interactive session ends.
“Laughter is America's most important export” ~ Walt Disney
Related PowerShell Cmdlets:
Import-PSSession - Import commands from another session.