PowerShell Logo Small

Get-Module



This is the built-in help made by Microsoft for the command 'Get-Module', in PowerShell version 4 - as retrieved from Windows version 'Microsoft Windows 8.1 Enterprise' 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

Gets the modules that have been imported or that can be imported into the current session.

SYNTAX


Get-Module [[-FullyQualifiedName] <String[]>] [[-Name] <String[]>] [-All] [<CommonParameters>]
Get-Module [[-FullyQualifiedName] <String[]>] [[-Name] <String[]>] [-All] [-Refresh] -ListAvailable [<CommonParameters>]
Get-Module [[-Name] <String[]>] [-CimNamespace <String>] [-CimResourceUri <Uri>] [-ListAvailable] [-Refresh] -CimSession <CimSession> [<CommonParameters>]
Get-Module [[-FullyQualifiedName] <String[]>] [[-Name] <String[]>] [-ListAvailable] [-Refresh] -PSSession <PSSession> [<CommonParameters>]



Search powershellhelp.space

DESCRIPTION


The Get-Module cmdlet gets the Windows PowerShell modules that have been imported, or that can be imported, into a Windows PowerShell session. The module object that
Get-Module returns contains valuable information about the module. You can also pipe the module objects to other cmdlets, such as the Import-Module and Remove-Module
cmdlets.


Without parameters, Get-Module gets modules that have been imported into the current session. To get all installed modules, use the ListAvailable parameter.


Get-Module gets modules, but it does not import them. Beginning in Windows PowerShell 3.0, modules are automatically imported when you use a command in the module, bu
t a Get-Module command does not trigger an automatic import. You can also import the modules into your session by using the Import-Module cmdlet.


Beginning in Windows PowerShell 3.0, you can get (and then, import) modules from remote sessions into the local session. This strategy uses the Implicit Remoting feat
ure of Windows PowerShell and is equivalent to using the Import-PSSession cmdlet. When you use commands in modules imported from another session, the commands run imp
licitly in the remote session, allowing you to manage the remote computer from the local session.


Also, beginning in Windows PowerShell 3.0, you can use Get-Module and Import-Module to get and import Common Information Model (CIM) modules, in which the cmdlets are
defined in Cmdlet Definition XML (CDXML) files. This feature allows you to use cmdlets that are implemented in non-managed code assemblies, such as those written in
C++.


With these new features, the Get-Module and Import-Module cmdlets become primary tools for managing heterogeneous enterprises that include Windows computers and compu
ters that are running other operating systems.


To manage remote Windows computers that have Windows PowerShell and Windows PowerShell remoting enabled, create a PSSession on the remote computer and then use the PS
Session parameter of Get-Module to get the Windows PowerShell modules in the PSSession. When you import the modules, and then use the imported commands in the current
session, the commands run implicitly in the PSSession on the remote computer. You can use this strategy to manage the remote computer.


You can use a similar strategy to manage computers that do not have Windows PowerShell remoting enabled, including computers that are not running a Windows operating
system, and Windows computers that have Windows PowerShell, but do not have Windows PowerShell remoting enabled.


Begin by creating a "CIM session" on the remote computer; a connection to Windows Management Instrumentation (WMI) on the remote computer. Then use the CIMSession par
ameter of Get-Module to get CIM modules from the CIM session. When you import a CIM module (by using the Import-Module cmdlet) and then run the imported commands, the
commands run implicitly on the remote computer. You can use this WMI and CIM strategy to manage the remote computer.



<

RELATED LINKS

Online Version: http://go.microsoft.com/fwlink/p/?linkid=289587
Get-CimSession
New-CimSession
about_Modules
Get-PSSession
Import-Module
Import-PSSession
New-PSSession
Remove-Module

REMARKS

<

Examples


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

PS C:\>Get-Module



This command gets modules that have been imported into the current session.








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

PS C:\>Get-Module -ListAvailable



This command gets the modules that are installed on the computer and can be imported into the current session.

Get-Module looks for available modules in the path specified by the $env:PSModulePath environment variable. For more information about PSModulePath, see about_Modules
and about_Environment_Variables.








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

PS C:\>Get-Module -ListAvailable -All



This command gets all of the exported files for all available modules.








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

PS C:\>Get-Module –FullyQualifiedName @{ModuleName="Microsoft.PowerShell.Management";ModuleVersion="3.1.0.0"} | Format-Table -Property Name,Version
Name Version

---- -------

Microsoft.PowerShell.Management 3.1.0.0



This command gets the Microsoft.PowerShell.Management module by specifying the module’s fully qualified name, with the FullyQualifiedName parameter. The command then
pipes the results into Format-Table, to format the results as a table with Name and Version as the column headings.








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

PS C:\>Get-Module | Get-Member -MemberType Property | Format-Table Name

Name

----

AccessMode

Author

ClrVersion

CompanyName

Copyright

Definition

Description

DotNetFrameworkVersion

ExportedAliases

ExportedCmdlets

ExportedCommands

ExportedFormatFiles

ExportedFunctions

ExportedTypeFiles

ExportedVariables

ExportedWorkflows

FileList

Guid

HelpInfoUri

LogPipelineExecutionDetails

ModuleBase

ModuleList

ModuleType

Name

NestedModules

OnRemove

Path

PowerShellHostName

PowerShellHostVersion

PowerShellVersion

PrivateData

ProcessorArchitecture

RequiredAssemblies

RequiredModules

RootModule

Scripts

SessionState

Version



This command gets the properties of the PSModuleInfo object that Get-Module returns. There is one object for each module file.

You can use the properties to format and filter the module objects. For more information about the properties, see "PSModule Properties" in the MSDN (Microsoft Develo
per Network) library at http://go.microsoft.com/fwlink/?LinkId=143624.

The output includes the new properties, such as Author and CompanyName, that were introduced in Windows PowerShell 3.0




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

PS C:\>Get-Module -ListAvailable -All | Format-Table -Property Name, Moduletype, Path -Groupby Name

Name: AppLocker


Name ModuleType Path

---- ---------- ----

AppLocker Manifest C:\Windows\system32\WindowsPowerShell\v1.0\Modules\AppLocker\AppLocker.psd1



Name: Appx


Name ModuleType Path

---- ---------- ----

Appx Manifest C:\Windows\system32\WindowsPowerShell\v1.0\Modules\Appx\en-US\Appx.psd1

Appx Manifest C:\Windows\system32\WindowsPowerShell\v1.0\Modules\Appx\Appx.psd1

Appx Script C:\Windows\system32\WindowsPowerShell\v1.0\Modules\Appx\Appx.psm1



Name: BestPractices


Name ModuleType Path

---- ---------- ----

BestPractices Manifest C:\Windows\system32\WindowsPowerShell\v1.0\Modules\BestPractices\BestPractices.psd1



Name: BitsTransfer


Name ModuleType Path

---- ---------- ----

BitsTransfer Manifest C:\Windows\system32\WindowsPowerShell\v1.0\Modules\BitsTransfer\BitsTransfer.psd1



This command gets all module files (imported and available) and groups them by module name. This lets you see the module files that each script is exporting.




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

The first command gets the PSModuleInfo object that represents BitsTransfer module. It saves the object in the $m variable.
PS C:\>$m = Get-Module -list -Name BitsTransfer

The second command uses the Get-Content cmdlet to get the content of the manifest file in the specified path. It uses dot notation to get the path to the manifest fil
e, which is stored in the Path property of the object.The output shows the contents of the module manifest.
PS C:\>Get-Content $m.Path

@{
GUID="{8FA5064B-8479-4c5c-86EA-0D311FE48875}"
Author="Microsoft Corporation"
CompanyName="Microsoft Corporation"
Copyright="© Microsoft Corporation. All rights reserved."
ModuleVersion="1.0.0.0"
Description="Windows Powershell File Transfer Module"
PowerShellVersion="2.0"
CLRVersion="2.0"
NestedModules="Microsoft.BackgroundIntelligentTransfer.Management"
FormatsToProcess="FileTransfer.Format.ps1xml"
RequiredAssemblies=Join-Path $psScriptRoot "Microsoft.BackgroundIntelligentTransfer.Management.Interop.dll"
}



These commands display the contents of the module manifest for the Windows PowerShell BitsTransfer module.

Modules are not required to have manifest files and, when they do have a manifest file, the manifest file is required only to include a version number. However, manif
est files often provide useful information about a module, its requirements, and its contents.




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

PS C:\>dir (Get-Module -ListAvailable FileTransfer).ModuleBase
Directory: C:\Windows\system32\WindowsPowerShell\v1.0\Modules\FileTransfer
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 12/16/2008 12:36 PM en-US
-a--- 11/19/2008 11:30 PM 16184 FileTransfer.Format.ps1xml
-a--- 11/20/2008 11:30 PM 1044 FileTransfer.psd1
-a--- 12/16/2008 12:20 AM 108544 Microsoft.BackgroundIntelligentTransfer.Management.Interop.dll



This command lists the files in the module's directory. This is another way to determine what is in a module before you import it. Some modules might have help files
or ReadMe files that describe the module.




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

PS C:\>$s = New-PSSession -ComputerName Server01

PS C:\>Get-Module -PSSession $s -ListAvailable



These commands get the modules that are installed on the Server01 computer.

The first command uses the New-PSSession cmdlet to create a PSSession on the Server01 computer. The command saves the PSSession in the $s variable.

The second command uses the PSSession and ListAvailable parameters of Get-Module to get the modules in the PSSession in the $s variable.

If you pipe modules from other sessions to the Import-Module cmdlet, Import-Module imports the module into the current session by using the implicit remoting feature.
This is equivalent to using the Import-PSSession cmdlet. You can use the cmdlets from the module in the current session, but commands that use these cmdlets actuall
y run the remote session. For more information, see Import-Module and Import-PSSession.




-------------------------- EXAMPLE 10 --------------------------

The first command uses the New-CimSession cmdlet to create a session on the RSDGF03 remote computer. The session connects to WMI on the remote computer. The command s
aves the CIM session in the $cs variable.
PS C:\>$cs = New-CimSession -ComputerName RSDGF03

The second command uses in the CIM session in the $cs variable to run a Get-Module command on the RSDGF03 computer. The command uses the Name parameter to specify the
Storage module.The command uses a pipeline operator (|) to send the Storage module to the Import-Module cmdlet, which imports it into the local session.
PS C:\>Get-Module -CimSession $cs -Name Storage | Import-Module

The third command runs the Get-Command cmdlet on the Get-Disk command in the Storage module.When you import a CIM module into the local session, Windows PowerShell co
nverts the CDXML files that represent in the CIM module into Windows PowerShell scripts, which appear as functions in the local session.
PS C:\>Get-Command Get-Disk
CommandType Name ModuleName

----------- ---- ----------

Function Get-Disk Storage

The fourth command runs the Get-Disk command. Although the command is typed in the local session, it runs implicitly on the remote computer from which it was imported
.The command gets objects from the remote computer and returns them to the local session.
PS C:\>Get-Disk
Number Friendly Name OperationalStatus Total Size Partition Style

------ ------------- ----------------- ---------- ---------------

0 Virtual HD ATA Device Online 40 GB MBR



The commands in this example enable you to manage the storage systems of a remote computer that is not running a Windows operating system. In this example, because th
e administrator of the computer has installed the Module Discovery WMI provider, the CIM commands can use the default values, which are designed for the provider.