Export (0) Print
Expand All

Export-ModuleMember

Updated: December 3, 2014

Applies To: Windows PowerShell 4.0

Export-ModuleMember

Specifies the module members that are exported.

Syntax

Parameter Set: Default
Export-ModuleMember [[-Function] <String[]> ] [-Alias <String[]> ] [-Cmdlet <String[]> ] [-Variable <String[]> ] [ <CommonParameters>]




Detailed Description

The Export-ModuleMember cmdlet specifies the module members (such as cmdlets, functions, variables, and aliases) that are exported from a script module (.psm1) file, or from a dynamic module created by using the New-Module cmdlet. This cmdlet can be used only in a script module file or a dynamic module.

If a script module does not include an Export-ModuleMember command, the functions in the script module are exported, but the variables and aliases are not. When a script module includes Export-ModuleMember commands, only the members specified in the Export-ModuleMember commands are exported. You can also use Export-ModuleMember to suppress or export members that the script module imports from other modules.

An Export-ModuleMember command is optional, but it is a best practice. Even if the command confirms the default values, it demonstrates the intention of the module author.

Parameters

-Alias<String[]>

Specifies the aliases that are exported from the script module file. Enter the alias names. Wildcards are permitted.


Aliases

none

Required?

false

Position?

named

Default Value

None

Accept Pipeline Input?

true (ByPropertyName)

Accept Wildcard Characters?

true

-Cmdlet<String[]>

Specifies the cmdlets that are exported from the script module file. Enter the cmdlet names. Wildcards are permitted.

You cannot create cmdlets in a script module file, but you can import cmdlets from a binary module into a script module and re-export them from the script module.


Aliases

none

Required?

false

Position?

named

Default Value

None

Accept Pipeline Input?

true (ByPropertyName)

Accept Wildcard Characters?

true

-Function<String[]>

Specifies the functions that are exported from the script module file. Enter the function names. Wildcards are permitted. You can also pipe function name strings to Export-ModuleMember.


Aliases

none

Required?

false

Position?

1

Default Value

None

Accept Pipeline Input?

true (ByValue, ByPropertyName)

Accept Wildcard Characters?

true

-Variable<String[]>

Specifies the variables that are exported from the script module file. Enter the variable names (without a dollar sign). Wildcards are permitted.


Aliases

none

Required?

false

Position?

named

Default Value

None

Accept Pipeline Input?

true (ByPropertyName)

Accept Wildcard Characters?

true

<CommonParameters>

This cmdlet supports the common parameters: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, and -OutVariable. For more information, see  about_CommonParameters (http://go.microsoft.com/fwlink/p/?LinkID=113216).

Inputs

The input type is the type of the objects that you can pipe to the cmdlet.

  • System.String

    You can pipe function name strings to Export-ModuleMember.


Outputs

The output type is the type of the objects that the cmdlet emits.

  • None

    This cmdlet does not generate any output.


Notes

  • To exclude a member from the list of exported members, add an Export-ModuleMember command that lists all other members but omits the member that you want to exclude.

Examples

-------------------------- EXAMPLE 1 --------------------------

This command exports the aliases defined in the script module, along with the functions defined in the script module.

To export the aliases, which are not exported by default, you must also explicitly specify the functions. Otherwise, only the aliases will be exported.


PS C:\> Export-ModuleMember -function * -alias *

-------------------------- EXAMPLE 2 --------------------------

This command exports three aliases and three functions defined in the script module.

You can use this command format to specify the names of module members.


PS C:\> Export-ModuleMember -function Get-Test, New-Test, Start-Test -alias gtt, ntt, stt

-------------------------- EXAMPLE 3 --------------------------

This command specifies that no members defined in the script module are exported.

This command prevents the module members from being exported, but it does not hide the members. Users can read and copy module members or use the call operator (&) to invoke module members that are not exported.


PS C:\> Export-ModuleMember

-------------------------- EXAMPLE 4 --------------------------

This command exports only the $increment variable from the script module. No other members are exported.

If you want to export a variable, in addition to exporting the functions in a module, the Export-ModuleMember command must include the names of all of the functions and the name of the variable.


PS C:\> Export-ModuleMember -variable increment

-------------------------- EXAMPLE 5 --------------------------

These commands show how multiple Export-ModuleMember commands are interpreted in a script module (.psm1) file.

These commands create three functions and one alias, and then they export two of the functions and the alias.

Without the Export-ModuleMember commands, all three of the functions would be exported, but the alias would not be exported. With the Export-ModuleMember commands, only the Get-Test and Start-Test functions and the STT alias are exported.


PS C:\> # From TestModule.psm1
function new-test
   { <function code> }
export-modulemember -function new-test
function validate-test
   { <function code> }
function start-test
   { <function code> }
set-alias stt start-test
export-modulemember -function *-test -alias stt

-------------------------- EXAMPLE 6 --------------------------

This command shows how to use Export-ModuleMember in a dynamic module that is created by using the New-Module cmdlet.

In this example, Export-ModuleMember is used to export both the "Hi" alias and the "SayHello" function in the dynamic module.


PS C:\> new-module -script {function SayHello {"Hello!"}; set-alias Hi SayHello; Export-ModuleMember -alias Hi -function SayHello}

-------------------------- EXAMPLE 7 --------------------------

This example includes a function named Export that declares a function or creates a variable, and then writes an Export-ModuleMember command for the function or variable. This lets you declare and export a function or variable in a single command.

To use the Export function, include it in your script module. To export a function, type "Export" before the Function keyword.

To export a variable, use the following format to declare the variable and set its value:

export variable <variable-name> <value>

The commands in the example show the correct format. In this example, only the New-Test function and the $Interval variable are exported.


PS C:\> function export
{
  param ([parameter(mandatory=$true)] [validateset("function","variable")] $type,
  [parameter(mandatory=$true)] $name,
  [parameter(mandatory=$true)] $value)
  if ($type -eq "function")
   {
     Set-item "function:script:$name" $value
     Export-ModuleMember $name
   }
else
   {
     Set-Variable -scope Script $name $value
     Export-ModuleMember -variable $name
   }
}
export function New-Test
   {
...
   }
function helper
{
...
}
export variable interval 0
$interval = 2

Related topics



Was this page helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft