PowerShell Logo Small

Import-Module



This is the built-in help made by Microsoft for the command 'Import-Module', in PowerShell version 2 - as retrieved from Windows version 'Microsoft® Windows Vista™ Ultimate ' PowerShell help files on 2016-06-23.

For PowerShell version 3 and up, where you have Update-Help, this command was run just before creating the web pages from the help files.

SYNOPSIS

Adds modules to the current session.

SYNTAX


Import-Module [-Name] <string[]> [-Alias <string[]>] [-ArgumentList <Object[]>] [-AsCustomObject] [-Cmdlet <string[]>] [-Force] [-Function <strin
g[]>] [-Global] [-PassThru] [-Prefix <string>] [-Variable <string[]>] [-Version <Version>] [<CommonParameters>]
Import-Module [-Assembly] <Assembly[]> [-Alias <string[]>] [-ArgumentList <Object[]>] [-AsCustomObject] [-Cmdlet <string[]>] [-Force] [-Function
<string[]>] [-Global] [-PassThru] [-Prefix <string>] [-Variable <string[]>] [-Version <Version>] [<CommonParameters>]
Import-Module [-ModuleInfo] <PSModuleInfo[]> [-Alias <string[]>] [-ArgumentList <Object[]>] [-AsCustomObject] [-Cmdlet <string[]>] [-Force] [-Fun
ction <string[]>] [-Global] [-PassThru] [-Prefix <string>] [-Variable <string[]>] [-Version <Version>] [<CommonParameters>]



Search powershellhelp.space

DESCRIPTION


The Import-Module cmdlet adds one or more modules to the current session.

A module is a package that contains members (such as cmdlets, providers, scripts, functions, variables, and other tools and files) that can be us
ed in Windows PowerShell. After a module is imported, you can use the module members in your session.

To import a module, use the Name, Assembly, or ModuleInfo parameter to identify the module to import. By default, Import-Module imports all membe
rs that the module exports, but you can use the Alias, Function, Cmdlet, and Variable parameters to restrict the members that are imported.

Import-Module imports a module only into the current session. To import the module into all sessions, add an Import-Module command to your Window
s PowerShell profile. For more information about profiles, see about_Profiles.

For more information about modules, see about_Modules.



<

RELATED LINKS

Online version: http://go.microsoft.com/fwlink/?LinkID=141553
Get-Module
New-Module
Remove-Module
Export-ModuleMember
about_Modules

REMARKS

<

Examples


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

C:\PS>import-module -name BitsTransfer



Description
-----------
This command imports the members of the BitsTransfer module into the current session.

The Name parameter name (-Name) is optional and can be omitted.

By default, Import-Module does not generate any output when it imports a module. To request output, use the PassThru or AsCustomObject parameter,
or the Verbose common parameter.








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

C:\PS>get-module -listAvailable | import-module



Description
-----------
This command imports all available modules in the path specified by the PSModulePath environment variable ($env:psmodulepath) into the current se
ssion.








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

C:\PS>$m = get-module -ListAvailable BitsTransfer, ServerBackup

C:\PS> import-module -moduleInfo $m



Description
-----------
These commands import the members of the BitsTransfer and ServerBackup modules into the current session.

The first command uses the Get-Module cmdlet to get PSModuleInfo objects that represent the BitsTransfer and ServerBackup modules. It saves the o
bjects in the $m variable. The ListAvailable parameter is required when you are getting modules that are not yet imported into the session.

The second command uses the ModuleInfo parameter of Import-Module to import the modules into the current session.

These commands are equivalent to using a pipeline operator (|) to send the output of a Get-Module command to Import-Module.








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

C:\PS>import-module -name c:\ps-test\modules\test -verbose

VERBOSE: Loading module from path 'C:\ps-test\modules\Test\Test.psm1'.
VERBOSE: Exporting function 'my-parm'.
VERBOSE: Exporting function 'get-parm'.
VERBOSE: Exporting function 'get-spec'.
VERBOSE: Exporting function 'get-specDetails'.



Description
-----------
This command uses an explicit path to identify the module to import.

It also uses the Verbose common parameter to get a list of the items imported from the module. Without the Verbose, PassThru, or AsCustomObject p
arameter, Import-Module does not generate any output when it imports a module.








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

C:\PS>import-module BitsTransfer -cmdlet Add-BitsTransferFile, Get-BitsTransfer

C:\PS> get-module BitsTransfer

Name : BitsTransfer
Path : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\BitsTransfer\BitsTransfer.psd1
Description :
Guid : 8fa5064b-8479-4c5c-86ea-0d311fe48875
Version : 1.0.0.0
ModuleBase : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\BitsTransfer
ModuleType : Manifest
PrivateData :
AccessMode : ReadWrite
ExportedAliases : {}
ExportedCmdlets : {[Add-BitsTransfer, Add-BitsTransfer], [Complete-BitsTransfer, Complete-BitsTransfer], [Get-BitsTransfer, Get-BitsTransfer],
[Rem
ove-BitsTransfer, Remove-BitsTransfer]...}
ExportedFunctions : {}
ExportedVariables : {}
NestedModules : {Microsoft.BackgroundIntelligentTransfer.Management}


C:\PS> get-command -module BitsTransfer

CommandType Name Definition
----------- ---- ----------
Cmdlet Add-BitsTransfer Add-BitsTransfer [-BitsJob] <BitsJob[]> [-Source] <String[]> [[-Destination] <String[]>] [-Verbose] [-Debug] [-Er
rorA...
Cmdlet Get-BitsTransfer Get-BitsTransfer [[-Name] <String[]>] [-AllUsers] [-Verbose] [-Debug] [-ErrorAction <ActionPreference>] [-Warning
Acti...



Description
-----------
This example shows how to restrict the module members that are imported into the session and the effect of this command on the session.

The first command imports only the Add-BitsTransfer and Get-BitsTransfer cmdlets from the BitsTransfer module. The command uses the Cmdlet parame
ter to restrict the cmdlets that the module imports. You can also use the Alias, Variable, and Function parameters to restrict other members that
a module imports.

The second command uses the Get-Module cmdlet to get the object that represents the BitsTransfer module. The ExportedCmdlets property lists all o
f the cmdlets that the module exports, even when they were not all imported.

The third command uses the Module parameter of the Get-Command cmdlet to get the commands that were imported from the BitsTransfer module. The re
sults confirm that only the Add-BitsTransfer and Get-BitsTransfer cmdlets were imported.








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

C:\PS>import-module BitsTransfer -prefix PS -passthru

Name : bitstransfer
Path : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\bitstransfer\bitstransfer.psd1
Description :
Guid : 8fa5064b-8479-4c5c-86ea-0d311fe48875
Version : 1.0.0.0
ModuleBase : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\bitstransfer
ModuleType : Manifest
PrivateData :
AccessMode : ReadWrite
ExportedAliases : {}
ExportedCmdlets : {[Add-BitsTransfer, Add-BitsTransfer], [Remove-BitsTransfer, Remove-BitsTransfer], [Complete-BitsTransfer, Complete-BitsTrans
fer]
, [Get-BitsTransfer, Get-BitsTransfer]...}
ExportedFunctions : {}
ExportedVariables : {}
NestedModules : {Microsoft.BackgroundIntelligentTransfer.Management}


C:\PS> get-command -module bitstransfer

CommandType Name Definition
----------- ---- ----------
Cmdlet Add-PSBitsTransfer Add-PSBitsTransfer [-BitsJob] <BitsJob[]> [-Source] <String[]> ...
Cmdlet Complete-PSBitsTransfer Complete-PSBitsTransfer [-BitsJob] <BitsJob[]> [-Verbose] [-Deb...
Cmdlet Get-PSBitsTransfer Get-PSBitsTransfer [[-Name] <String[]>] [-AllUsers] [-Verbose] ...
Cmdlet Remove-PSBitsTransfer Remove-PSBitsTransfer [-BitsJob] <BitsJob[]> [-Verbose] [-Debug...
Cmdlet Resume-PSBitsTransfer Resume-PSBitsTransfer [-BitsJob] <BitsJob[]> [-Asynchronous] [-...
Cmdlet Set-PSBitsTransfer Set-PSBitsTransfer [-BitsJob] <BitsJob[]> [-DisplayName <String...
Cmdlet Start-PSBitsTransfer Start-PSBitsTransfer [[-Source] <String[]>] [[-Destination] <St...
Cmdlet Suspend-PSBitsTransfer Suspend-PSBitsTransfer [-BitsJob] <BitsJob[]> [-Verbose] [-Debu...



Description
-----------
These commands import the BitsTransfer module into the current session, add a prefix to the member names, and then display the prefixed member na
mes.

The first command uses the Import-Module cmdlet to import the BitsTransfer module. It uses the Prefix parameter to add the PS prefix to all membe
rs that are imported from the module and the PassThru parameter to return a module object that represents the imported module.

The module object that the command returns has an ExportedCmdlets property that lists the exported members. The prefix does not appear in the cmd
let names, because it is applied after the members are exported (but before they are imported).

The second command uses the Get-Command cmdlet to get the members that have been imported from the module. It uses the Module parameter to specif
y the module. The output shows that the module members were correctly prefixed.

The prefix that you use applies only to the members in the current session. It does not change the module.








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

C:\PS>get-module -list | format-table -property name, moduletype -auto

Name ModuleType
---- ----------
Show-Calendar Script
BitsTransfer Manifest
PSDiagnostics Manifest
TestCmdlets Script

C:\PS> $a = import-module -name Show-Calendar -asCustomObject

C:\PS> $a | get-member


TypeName: System.Management.Automation.PSCustomObject

Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Show-Calendar ScriptMethod System.Object Show-Calendar();

C:\PS> $a."show-calendar"()



Description
-----------
These commands demonstrate how to get and use the custom object that Import-Module returns.

Custom objects include synthetic members that represent each of the imported module members. For example, the cmdlets and functions in a module a
re converted to script methods of the custom object.

Custom objects are very useful in scripting. They are also useful when several imported objects have the same names. Using the script method of a
n object is equivalent to specifying the fully qualified name of an imported member, including its module name.

The AsCustomObject parameter can be used only with a script module, so the first task is to determine which of the available modules is a script
module.

The first command uses the Get-Module cmdlet to get the available modules. The command uses a pipeline operator (|) to pass the module objects to
the Format-Table cmdlet, which lists the Name and ModuleType of each module in a table.

The second command uses the Import-Module cmdlet to import the Show-Calendar script module. The command uses the AsCustomObject parameter to requ
est a custom object. The command saves the resulting custom object in the $a variable.

The third command uses a pipeline operator to send the $a variable to the Get-Member cmdlet, which gets the properties and methods of the PSCusto
mObject in $a. The output shows a Show-Calendar script method.

The last command uses the Show-Calendar script method. The method name must be enclosed in quotation marks, because it includes a hyphen.








-------------------------- EXAMPLE 8 --------------------------

C:\PS>import-module BitsTransfer

C:\PS> import-module BitsTransfer -force -prefix PS



Description
-----------
This example shows how to use the Force parameter of Import-Module when you are re-importing a module into the same session.

The first command imports the BitsTransfer module. The second command imports the module again, this time using the Prefix parameter.

The second command also includes the Force parameter, which removes the module and then imports it again. Without this parameter, the session wou
ld include two copies of each BitsTransfer cmdlet, one with the standard name and one with the prefixed name.








-------------------------- EXAMPLE 9 --------------------------

C:\PS>get-date

Saturday, September 12, 2009 6:47:04 PM

C:\PS> import-module TestModule

C:\PS> get-date
09255

C:\PS> get-command get-date | format-table -property commandtype, name, pssnapin, module -auto

CommandType Name pssnapin Module
----------- ---- -------- ------
Function Get-Date TestModule
Cmdlet Get-Date Microsoft.PowerShell.Utility


C:\PS> Microsoft.PowerShell.Utility\get-date

Saturday, September 12, 2009 6:33:23 PM



Description
-----------
This example shows how to run commands that have been hidden by imported commands.

The first command run the Get-Date cmdlet that comes with Windows PowerShell. It returns a DateTime object with the current date.

The second command imports the TestModule module. This module includes a function named Get-Date that returns the Julian date.

The third command runs the Get-Date command again. Because functions take precedence over cmdlets, the Get-Date function from the TestModule modu
le ran, instead of the Get-Date cmdlet.

The fourth command shows that there are two Get-Date commands in the session, a function from the TestModule module and a cmdlet from the Microso
ft.PowerShell.Utility snap-in.

The fifth command runs the hidden cmdlet by qualifying the command name with the snap-in name.

For more information about command precedence in Windows PowerShell, see about_command_precedence.