Import-Module
将模块添加到当前会话。
语法
Name (默认值)
Import-Module
    [-Name] <String[]>
    [-Global]
    [-Prefix <String>]
    [-Function <String[]>]
    [-Cmdlet <String[]>]
    [-Variable <String[]>]
    [-Alias <String[]>]
    [-Force]
    [-SkipEditionCheck]
    [-PassThru]
    [-AsCustomObject]
    [-MinimumVersion <Version>]
    [-MaximumVersion <String>]
    [-RequiredVersion <Version>]
    [-ArgumentList <Object[]>]
    [-DisableNameChecking]
    [-NoClobber]
    [-Scope <String>]
    [<CommonParameters>]
PSSession
Import-Module
    [-Name] <String[]>
    -PSSession <PSSession>
    [-Global]
    [-Prefix <String>]
    [-Function <String[]>]
    [-Cmdlet <String[]>]
    [-Variable <String[]>]
    [-Alias <String[]>]
    [-Force]
    [-SkipEditionCheck]
    [-PassThru]
    [-AsCustomObject]
    [-MinimumVersion <Version>]
    [-MaximumVersion <String>]
    [-RequiredVersion <Version>]
    [-ArgumentList <Object[]>]
    [-DisableNameChecking]
    [-NoClobber]
    [-Scope <String>]
    [<CommonParameters>]
		CimSession
	 
	Import-Module
    [-Name] <String[]>
    -CimSession <CimSession>
    [-Global]
    [-Prefix <String>]
    [-Function <String[]>]
    [-Cmdlet <String[]>]
    [-Variable <String[]>]
    [-Alias <String[]>]
    [-Force]
    [-SkipEditionCheck]
    [-PassThru]
    [-AsCustomObject]
    [-MinimumVersion <Version>]
    [-MaximumVersion <String>]
    [-RequiredVersion <Version>]
    [-ArgumentList <Object[]>]
    [-DisableNameChecking]
    [-NoClobber]
    [-Scope <String>]
    [-CimResourceUri <Uri>]
    [-CimNamespace <String>]
    [<CommonParameters>]
		UseWindowsPowerShell
	   
	Import-Module
    [-Name] <string[]>
    -UseWindowsPowerShell
    [-Global]
    [-Prefix <string>]
    [-Function <string[]>]
    [-Cmdlet <string[]>]
    [-Variable <string[]>]
    [-Alias <string[]>]
    [-Force]
    [-PassThru]
    [-AsCustomObject]
    [-MinimumVersion <version>]
    [-MaximumVersion <string>]
    [-RequiredVersion <version>]
    [-ArgumentList <Object[]>]
    [-DisableNameChecking]
    [-NoClobber]
    [-Scope <string>]
    [<CommonParameters>]
		FullyQualifiedName
	  
	Import-Module
    [-FullyQualifiedName] <ModuleSpecification[]>
    [-Global]
    [-Prefix <String>]
    [-Function <String[]>]
    [-Cmdlet <String[]>]
    [-Variable <String[]>]
    [-Alias <String[]>]
    [-Force]
    [-SkipEditionCheck]
    [-PassThru]
    [-AsCustomObject]
    [-ArgumentList <Object[]>]
    [-DisableNameChecking]
    [-NoClobber]
    [-Scope <String>]
    [<CommonParameters>]
		FullyQualifiedNameAndPSSession
	    
	Import-Module
    [-FullyQualifiedName] <ModuleSpecification[]>
    -PSSession <PSSession>
    [-Global]
    [-Prefix <String>]
    [-Function <String[]>]
    [-Cmdlet <String[]>]
    [-Variable <String[]>]
    [-Alias <String[]>]
    [-Force]
    [-SkipEditionCheck]
    [-PassThru]
    [-AsCustomObject]
    [-ArgumentList <Object[]>]
    [-DisableNameChecking]
    [-NoClobber]
    [-Scope <String>]
    [<CommonParameters>]
		FullyQualifiedNameAndUseWindowsPowerShell
	       
	Import-Module
    [-FullyQualifiedName] <ModuleSpecification[]>
    -UseWindowsPowerShell
    [-Global]
    [-Prefix <string>]
    [-Function <string[]>]
    [-Cmdlet <string[]>]
    [-Variable <string[]>]
    [-Alias <string[]>]
    [-Force]
    [-PassThru]
    [-AsCustomObject]
    [-ArgumentList <Object[]>]
    [-DisableNameChecking]
    [-NoClobber]
    [-Scope <string>]
    [<CommonParameters>]
Assembly
Import-Module
    [-Assembly] <Assembly[]>
    [-Global]
    [-Prefix <String>]
    [-Function <String[]>]
    [-Cmdlet <String[]>]
    [-Variable <String[]>]
    [-Alias <String[]>]
    [-Force]
    [-SkipEditionCheck]
    [-PassThru]
    [-AsCustomObject]
    [-ArgumentList <Object[]>]
    [-DisableNameChecking]
    [-NoClobber]
    [-Scope <String>]
    [<CommonParameters>]
		ModuleInfo
	 
	Import-Module
    [-ModuleInfo] <PSModuleInfo[]>
    [-Global]
    [-Prefix <String>]
    [-Function <String[]>]
    [-Cmdlet <String[]>]
    [-Variable <String[]>]
    [-Alias <String[]>]
    [-Force]
    [-SkipEditionCheck]
    [-PassThru]
    [-AsCustomObject]
    [-ArgumentList <Object[]>]
    [-DisableNameChecking]
    [-NoClobber]
    [-Scope <String>]
    [<CommonParameters>]
说明
              Import-Module cmdlet 将一个或多个模块添加到当前会话。 从 PowerShell 3.0 开始,在模块中使用任何命令或提供程序时,已安装的模块会自动导入会话。 但是,仍可以使用 Import-Module 命令导入模块。
可以使用 $PSModuleAutoLoadingPreference 首选项变量禁用自动模块导入。 有关 $PSModuleAutoLoadingPreference 变量的详细信息,请参阅 about_Preference_Variables。
模块是一个包,其中包含可在 PowerShell 中使用的成员。 成员包括 cmdlet、提供程序、脚本、函数、变量和其他工具和文件。 导入模块后,可以在会话中使用模块成员。 有关模块的详细信息,请参阅 about_Modules。
默认情况下,Import-Module 导入模块导出的所有成员,但可以使用 别名、函数、Cmdlet和 变量 参数来限制导入的成员。 
              NoClobber 参数可防止 Import-Module 导入与当前会话中的成员同名的成员。
              Import-Module 仅将模块导入当前会话。 若要将模块导入每个新会话,请将 Import-Module 命令添加到 PowerShell 配置文件。 有关配置文件的详细信息,请参阅 about_Profiles。
可以通过在远程计算机上创建 PSSession 来管理启用了 PowerShell 远程处理的远程 Windows 计算机。 然后使用 Import-Module 参数导入远程计算机上安装的模块。 在当前会话中使用导入的命令时,命令会在远程计算机上隐式运行。
从 Windows PowerShell 3.0 开始,可以使用 Import-Module 导入通用信息模型 (CIM) 模块。 CIM 模块在 Cmdlet 定义 XML (CDXML) 文件中定义 cmdlet。 此功能允许你使用在非托管代码程序集中实现的 cmdlet,例如用 C++ 编写的 cmdlet。
对于未启用 PowerShell 远程处理(包括未运行 Windows作系统的计算机)的远程计算机,可以使用 Import-Module 参数从远程计算机导入 CIM 模块。 导入的命令在远程计算机上隐式运行。 
              CIMSession 是与远程计算机上的 Windows Management Instrumentation(WMI)的连接。
示例
示例 1:将模块的成员导入当前会话
此示例将 PSDiagnostics 模块的成员导入到当前会话中。
Import-Module -Name PSDiagnostics
示例 2:导入模块路径指定的所有模块
此示例将 $Env:PSModulePath 环境变量指定的路径中的所有可用模块导入到当前会话中。
Get-Module -ListAvailable | Import-Module
示例 3:将多个模块的成员导入当前会话
本示例将 PSDiagnostics 和 Dism 模块的成员导入到当前会话中。
$m = Get-Module -ListAvailable PSDiagnostics, Dism
Import-Module -ModuleInfo $m
              Get-Module cmdlet 获取 PSDiagnostics 和 Dism 模块,并将对象保存在 $m 变量中。 获取尚未导入到会话中的模块时,需要 ListAvailable 参数。
              
               的 Import-Module 参数用于将模块导入当前会话。
示例 4:导入路径指定的所有模块
此示例使用显式路径标识要导入的模块。
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-Parameter'.
VERBOSE: Exporting function 'Get-Specification'.
VERBOSE: Exporting function 'Get-SpecDetails'.
使用 Verbose 参数会导致加载模块时 Import-Module 报告进度。
如果没有 详细、PassThru或 AsCustomObject 参数,Import-Module 在导入模块时不会生成任何输出。
示例 5:限制导入到会话中的模块成员
此示例演示如何限制将哪些模块成员导入到会话中,以及此命令对会话的影响。 Function 参数限制从模块导入的成员。 还可以使用 别名、变量和 Cmdlet 参数来限制模块导入的其他成员。
              Get-Module cmdlet 获取表示 PSDiagnostics 模块的对象。 
              ExportedCmdlets 属性列出了模块导出的所有 cmdlet,即使它们不是全部导入的。
Import-Module PSDiagnostics -Function Disable-PSTrace, Enable-PSTrace
(Get-Module PSDiagnostics).ExportedCommands
Key                          Value
---                          -----
Disable-PSTrace              Disable-PSTrace
Disable-PSWSManCombinedTrace Disable-PSWSManCombinedTrace
Disable-WSManTrace           Disable-WSManTrace
Enable-PSTrace               Enable-PSTrace
Enable-PSWSManCombinedTrace  Enable-PSWSManCombinedTrace
Enable-WSManTrace            Enable-WSManTrace
Get-LogProperties            Get-LogProperties
Set-LogProperties            Set-LogProperties
Start-Trace                  Start-Trace
Stop-Trace                   Stop-Trace
Get-Command -Module PSDiagnostics
CommandType     Name                 Version    Source
-----------     ----                 -------    ------
Function        Disable-PSTrace      6.1.0.0    PSDiagnostics
Function        Enable-PSTrace       6.1.0.0    PSDiagnostics
使用  cmdlet 的 Get-Command 参数显示从 PSDiagnostics 模块导入的命令。 结果确认仅导入了 Disable-PSTrace 和 Enable-PSTrace cmdlet。
示例 6:导入模块的成员并添加前缀
此示例将 PSDiagnostics 模块导入当前会话,向成员名称添加前缀,然后显示前缀成员名称。 
              
               的 Import-Module 参数将 x 前缀添加到从模块导入的所有成员。 前缀仅适用于当前会话中的成员。 它不会更改模块。 
              PassThru 参数返回一个表示导入模块的模块对象。
Import-Module PSDiagnostics -Prefix x -PassThru
ModuleType Version    Name               ExportedCommands
---------- -------    ----               ----------------
Script     6.1.0.0    PSDiagnostics      {Disable-xPSTrace, Disable-xPSWSManCombinedTrace, Disable-xW...
Get-Command -Module PSDiagnostics
CommandType     Name                                   Version    Source
-----------     ----                                   -------    ------
Function        Disable-xPSTrace                       6.1.0.0    PSDiagnostics
Function        Disable-xPSWSManCombinedTrace          6.1.0.0    PSDiagnostics
Function        Disable-xWSManTrace                    6.1.0.0    PSDiagnostics
Function        Enable-xPSTrace                        6.1.0.0    PSDiagnostics
Function        Enable-xPSWSManCombinedTrace           6.1.0.0    PSDiagnostics
Function        Enable-xWSManTrace                     6.1.0.0    PSDiagnostics
Function        Get-xLogProperties                     6.1.0.0    PSDiagnostics
Function        Set-xLogProperties                     6.1.0.0    PSDiagnostics
Function        Start-xTrace                           6.1.0.0    PSDiagnostics
Function        Stop-xTrace                            6.1.0.0    PSDiagnostics
              Get-Command 获取从模块导入的成员。 输出显示模块成员已正确添加前缀。
示例 7:获取和使用自定义对象
此示例演示如何获取和使用 Import-Module返回的自定义对象。
自定义对象包括表示每个导入模块成员的合成成员。 例如,模块中的 cmdlet 和函数将转换为自定义对象的脚本方法。
自定义对象在脚本中很有用。 当多个导入的对象具有相同的名称时,它们也很有用。 使用对象的脚本方法等效于指定导入成员的完全限定名称,包括其模块名称。
              AsCustomObject 参数仅在导入脚本模块时可用。 使用 Get-Module 确定哪些可用模块是脚本模块。
Get-Module -List | Format-Table -Property Name, ModuleType -AutoSize
Name          ModuleType
----          ----------
Show-Calendar     Script
BitsTransfer    Manifest
PSDiagnostics   Manifest
TestCmdlets       Script
...
$a = Import-Module -Name Show-Calendar -AsCustomObject -PassThru
$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();
$a."Show-Calendar"()
              Show-Calendar 脚本模块使用 AsCustomObject 参数导入,以请求自定义对象,PassThru 参数返回该对象。 生成的自定义对象保存在 $a 变量中。
              $a 变量通过管道传递给 Get-Member cmdlet 以显示已保存对象的属性和方法。 输出显示 Show-Calendar 脚本方法。
若要调用 Show-Calendar 脚本方法,方法名称必须括在引号中,因为名称包含连字符。
示例 8:将模块重新导入同一会话
此示例演示如何在将模块重新导入同一会话时使用  的 Import-Module 参数。 
              Force 参数删除加载的模块,然后再次导入它。
Import-Module PSDiagnostics
Import-Module PSDiagnostics -Force -Prefix PS
第一个命令导入 PSDiagnostics 模块。 第二个命令再次导入模块,这次使用 Prefix 参数。
如果没有 Force 参数,会话将包含每个 PSDiagnostics cmdlet 的两个副本,一个具有标准名称,一个具有前缀名称。
示例 9:运行已导入命令隐藏的命令
此示例演示如何运行已导入的命令隐藏的命令。 
              TestModule 模块包括一个名为 Get-Date 的函数,用于返回年份和年份的日期。
Get-Date
Thursday, August 15, 2019 2:26:12 PM
Import-Module TestModule
Get-Date
19227
Get-Command Get-Date -All | Format-Table -Property CommandType, Name, ModuleName -AutoSize
CommandType     Name         ModuleName
-----------     ----         ----------
Function        Get-Date     TestModule
Cmdlet          Get-Date     Microsoft.PowerShell.Utility
Microsoft.PowerShell.Utility\Get-Date
Thursday, August 15, 2019 2:28:31 PM
第一个 Get-Date cmdlet 返回具有当前日期的 DateTime 对象。 导入 TestModule 模块后,Get-Date 返回年份和一年中的一天。
使用  的 Get-Command 参数显示会话中的所有 Get-Date 命令。 结果显示会话中有两个 Get-Date 命令:TestModule 模块中的函数,以及 Microsoft.PowerShell.Utility 模块中的 cmdlet。
由于函数优先于 cmdlet,因此 Get-Date 模块运行的  函数,而不是 Get-Date cmdlet。 若要运行 Get-Date的原始版本,必须使用模块名称限定命令名称。
有关 PowerShell 中的命令优先级的详细信息,请参阅 about_Command_Precedence。
示例 10:导入模块的最低版本
此示例导入 PowerShellGet 模块。 它使用  的 Import-Module 参数仅导入模块的版本 2.0.0 或更高版本。
Import-Module -Name PowerShellGet -MinimumVersion 2.0.0
还可以使用 RequiredVersion 参数导入特定版本的模块,或使用 模块 和 参数来要求脚本中特定版本的模块。
示例 11:使用完全限定名称导入
此示例使用 FullyQualifiedName导入模块的特定版本。
PS> Get-Module -ListAvailable PowerShellGet | Select-Object Name, Version
Name          Version
----          -------
PowerShellGet 2.2.1
PowerShellGet 2.1.3
PowerShellGet 2.1.2
PowerShellGet 1.0.0.1
PS> Import-Module -FullyQualifiedName @{ModuleName = 'PowerShellGet'; ModuleVersion = '2.1.3' }
示例 12:使用完全限定路径导入
此示例使用完全限定的路径导入模块的特定版本。
PS> Get-Module -ListAvailable PowerShellGet | Select-Object Path
Path
----
C:\Program Files\PowerShell\Modules\PowerShellGet\2.2.1\PowerShellGet.psd1
C:\Program Files\PowerShell\6\Modules\PowerShellGet\PowerShellGet.psd1
C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\2.1.2\PowerShellGet.psd1
C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PowerShellGet.psd1
PS> Import-Module -Name 'C:\Program Files\PowerShell\Modules\PowerShellGet\2.2.1\PowerShellGet.psd1'
示例 13:从远程计算机导入模块
此示例演示如何使用 Import-Module cmdlet 从远程计算机导入模块。
此命令使用 PowerShell 的隐式远程处理功能。
从另一个会话导入模块时,可以使用当前会话中的 cmdlet。 但是,使用 cmdlet 的命令在远程会话中运行。
$s = New-PSSession -ComputerName Server01
Get-Module -PSSession $s -ListAvailable -Name NetSecurity
ModuleType Name             ExportedCommands
---------- ----             ----------------
Manifest   NetSecurity      {New-NetIPsecAuthProposal, New-NetIPsecMainModeCryptoProposal, New-Ne...
Import-Module -PSSession $s -Name NetSecurity
Get-Command -Module NetSecurity -Name Get-*Firewall*
CommandType     Name                                               ModuleName
-----------     ----                                               ----------
Function        Get-NetFirewallAddressFilter                       NetSecurity
Function        Get-NetFirewallApplicationFilter                   NetSecurity
Function        Get-NetFirewallInterfaceFilter                     NetSecurity
Function        Get-NetFirewallInterfaceTypeFilter                 NetSecurity
Function        Get-NetFirewallPortFilter                          NetSecurity
Function        Get-NetFirewallProfile                             NetSecurity
Function        Get-NetFirewallRule                                NetSecurity
Function        Get-NetFirewallSecurityFilter                      NetSecurity
Function        Get-NetFirewallServiceFilter                       NetSecurity
Function        Get-NetFirewallSetting                             NetSecurity
Get-NetFirewallRule -DisplayName "Windows Remote Management*" |
  Format-Table -Property DisplayName, Name -AutoSize
DisplayName                                              Name
-----------                                              ----
Windows Remote Management (HTTP-In)                      WINRM-HTTP-In-TCP
Windows Remote Management (HTTP-In)                      WINRM-HTTP-In-TCP-PUBLIC
Windows Remote Management - Compatibility Mode (HTTP-In) WINRM-HTTP-Compat-In-TCP
              New-PSSession 创建到  计算机的远程会话(Server01)。 
              PSSession 保存在 $s 变量中。
使用 Get-Module 参数运行  显示远程计算机上已安装并提供了 NetSecurity 模块。 此命令等效于使用 Invoke-Command cmdlet 在远程会话中运行 Get-Module 命令。 例如:
Invoke-Command $s {Get-Module -ListAvailable -Name NetSecurity
使用 Import-Module 参数运行  会将远程计算机中的 NetSecurity 模块导入到当前会话中。 
              Get-Command cmdlet 检索以 Get 开头的命令,并从 Firewall 模块包含 。 输出确认模块及其 cmdlet 已导入到当前会话中。
接下来,Get-NetFirewallRule cmdlet 获取 Server01 计算机上的 Windows 远程管理防火墙规则。 这相当于使用 Invoke-Command cmdlet 在远程会话上运行 Get-NetFirewallRule。
示例 14:在没有 Windows作系统的远程计算机上管理存储
在此示例中,计算机的管理员安装了模块发现 WMI 提供程序,该提供程序允许你使用为提供程序设计的 CIM 命令。
              New-CimSession cmdlet 在名为 RSDGF03 的远程计算机上创建会话。 会话连接到远程计算机上的 WMI 服务。 CIM 会话保存在 $cs 变量中。
              Import-Module 使用  中的 $cs 从  计算机导入 RSDGF03 CIM 模块。
              Get-Command cmdlet 显示 Get-Disk 模块中的  命令。 将 CIM 模块导入本地会话时,PowerShell 会将每个命令的 CDXML 文件转换为 PowerShell 脚本,这些脚本显示为本地会话中的函数。
尽管在本地会话中键入了 Get-Disk,但 cmdlet 在从中导入该 cmdlet 的远程计算机上隐式运行。 该命令将对象从远程计算机返回到本地会话。
$cs = New-CimSession -ComputerName RSDGF03
Import-Module -CimSession $cs -Name Storage
# Importing a CIM module, converts the CDXML files for each command into
# PowerShell scripts. These appear as functions in the local session.
Get-Command Get-Disk
CommandType     Name                  ModuleName
-----------     ----                  ----------
Function        Get-Disk              Storage
# Use implicit remoting to query disks on the remote computer from which the
# module was imported.
Get-Disk
Number Friendly Name           OperationalStatus  Total Size Partition Style
------ -------------           -----------------  ---------- ---------------
0      Virtual HD ATA Device   Online                  40 GB MBR
参数
-Alias
指定此 cmdlet 从模块导入到当前会话中的别名。 输入以逗号分隔的别名列表。 允许使用通配符。
导入模块时,某些模块会自动将所选别名导出到会话中。 此参数允许从导出的别名中进行选择。
参数属性
| 类型: | String[] | 
| 默认值: | None | 
| 支持通配符: | True | 
| 不显示: | False | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-ArgumentList 
		指定在 Import-Module 命令期间传递给脚本模块的参数或参数值的数组。 此参数仅在导入脚本模块时才有效。
还可以通过其别名引用 ArgumentList 参数,参数。 有关 ArgumentList 的行为的详细信息,请参阅 about_Splatting。
参数属性
| 类型: | Object[] | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
| 别名: | 参数 | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-AsCustomObject  
		指示此 cmdlet 返回一个自定义对象,其中包含表示导入的模块成员的成员。 此参数仅适用于脚本模块。
使用 AsCustomObject 参数时,Import-Module 将模块成员导入会话,然后返回 PSCustomObject 对象,而不是 PSModuleInfo 对象。 可以将自定义对象保存在变量中,并使用成员访问枚举来调用成员。
参数属性
| 类型: | SwitchParameter | 
| 默认值: | False | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-Assembly
指定程序集对象的数组。 此 cmdlet 导入在指定程序集对象中实现的 cmdlet 和提供程序。 输入包含程序集对象的变量或创建程序集对象的命令。 还可以通过管道将程序集对象传递给 Import-Module。
使用此参数时,仅导入由指定程序集实现的 cmdlet 和提供程序。 如果模块包含其他文件,则不会导入这些文件,并且可能缺少模块的重要成员。 使用此参数调试和测试模块,或者当被模块作者指示使用它时。
参数属性
| 类型: | Assembly[] | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
Assembly
| Position: | 0 | 
| 必需: | True | 
| 来自管道的值: | True | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-CimNamespace 
		指定公开 CIM 模块的备用 CIM 提供程序的命名空间。 默认值为模块发现 WMI 提供程序的命名空间。
使用此参数从未运行 Windows作系统的计算机和设备导入 CIM 模块。
此参数是在 Windows PowerShell 3.0 中引入的。
参数属性
| 类型: | String | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
					CimSession 
					
				 
				| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-CimResourceUri  
		指定 CIM 模块的备用位置。 默认值是远程计算机上的模块发现 WMI 提供程序的资源 URI。
使用此参数从未运行 Windows作系统的计算机和设备导入 CIM 模块。
此参数是在 Windows PowerShell 3.0 中引入的。
参数属性
| 类型: | Uri | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
					CimSession 
					
				 
				| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-CimSession 
		指定远程计算机上的 CIM 会话。 输入包含 CIM 会话的变量或获取 CIM 会话的命令,例如 Get-CimSession 命令。
              Import-Module 使用 CIM 会话连接将模块从远程计算机导入当前会话。 在当前会话中使用导入模块中的命令时,这些命令在远程计算机上运行。
可以使用此参数从未运行 Windows作系统的计算机和设备导入模块,以及具有 PowerShell 但未启用 PowerShell 远程处理的 Windows 计算机。
此参数是在 Windows PowerShell 3.0 中引入的。
参数属性
| 类型: | CimSession | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
					CimSession 
					
				 
				| Position: | Named | 
| 必需: | True | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-Cmdlet
指定此 cmdlet 从模块导入到当前会话的 cmdlet 数组。 允许使用通配符。
导入模块时,某些模块会自动将选定的 cmdlet 导出到会话中。 此参数允许从导出的 cmdlet 中进行选择。
参数属性
| 类型: | String[] | 
| 默认值: | None | 
| 支持通配符: | True | 
| 不显示: | False | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-DisableNameChecking  
		指示此 cmdlet 禁止在导入名称包括未经批准的谓词或禁止字符的 cmdlet 或函数时发出警告的消息。
默认情况下,当导入导出 cmdlet 或名称中未批准的谓词的函数时,PowerShell 会显示以下警告消息:
警告:一些导入的命令名称包括未经批准的谓词,这可能会使它们更易于发现。 使用 Verbose 参数获取更多详细信息或类型 Get-Verb 以查看已批准的谓词列表。
此消息只是警告。 仍导入完整的模块,包括不符合的命令。 尽管消息显示给模块用户,但模块作者应修复命名问题。
参数属性
| 类型: | SwitchParameter | 
| 默认值: | False | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-Force
此参数会导致在当前模块顶部加载或重新加载模块。 某些模块加载外部程序集。 如果要导入加载较新版本程序集的模块,则导入失败。 Force 参数无法替代错误。 必须启动新会话才能加载新版本。
参数属性
| 类型: | SwitchParameter | 
| 默认值: | False | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-FullyQualifiedName  
		该值可以是模块名称、完整模块规范或模块文件的路径。
如果值为路径,则路径可以完全限定或相对。 相对于包含 using 语句的脚本解析相对路径。
当该值为名称或模块规范时,PowerShell 会在 PSModulePath 中搜索指定的模块。
模块规范是具有以下键的哈希表。
- 
              ModuleName- 必需 指定模块名称。
- 
              GUID- 可选 指定模块的 GUID。
- 它还 必需 指定以下三个键中的至少一个。
- 
              ModuleVersion- 指定模块的最低可接受版本。
- 
              MaximumVersion- 指定模块的最大可接受版本。
- 
              RequiredVersion- 指定模块的确切所需版本。 这不能与其他版本密钥一起使用。
 
- 
              
参数属性
| 类型: | |
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
					FullyQualifiedName 
					
				  
				| Position: | 0 | 
| 必需: | True | 
| 来自管道的值: | True | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
					FullyQualifiedNameAndPSSession 
					
				    
				| Position: | 0 | 
| 必需: | True | 
| 来自管道的值: | True | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
					FullyQualifiedNameAndWinCompat 
					
				     
				| Position: | 0 | 
| 必需: | True | 
| 来自管道的值: | True | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-Function
指定此 cmdlet 从模块导入到当前会话中的函数数组。 允许使用通配符。 导入模块时,某些模块会自动将所选函数导出到会话中。 此参数允许从导出的函数中进行选择。
参数属性
| 类型: | String[] | 
| 默认值: | None | 
| 支持通配符: | True | 
| 不显示: | False | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-Global
指示此 cmdlet 将模块导入全局会话状态,以便它们可用于会话中的所有命令。
默认情况下,从命令提示符、脚本文件或 scriptblock 调用 Import-Module cmdlet 时,所有命令都导入到全局会话状态。
从另一个模块调用时,Import-Module cmdlet 将模块中的命令(包括嵌套模块中的命令)导入到调用模块的会话状态。
小窍门
应避免从模块内部调用 Import-Module。 而是将目标模块声明为父模块清单中的嵌套模块。 声明嵌套模块可以提高依赖项的可发现性。
Global 参数等效于具有 全局值的 Scope 参数。
若要限制模块导出的命令,请使用脚本模块中的 Export-ModuleMember 命令。
参数属性
| 类型: | SwitchParameter | 
| 默认值: | False | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-MaximumVersion 
		指定最大版本。 此 cmdlet 仅导入小于或等于指定值的模块版本。 如果没有版本限定,Import-Module 将返回错误。
参数属性
| 类型: | String | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
Name
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
PSSession
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
					CimSession 
					
				 
				| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
					WinCompat 
					
				 
				| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-MinimumVersion 
		指定最低版本。 此 cmdlet 仅导入大于或等于指定值的模块版本。 使用 MinimumVersion 参数名称或其别名,版本。 如果没有版本限定,Import-Module 将生成错误。
若要指定确切的版本,请使用 RequiredVersion 参数。 还可以使用 模块 和 #Requires 关键字的版本 参数来要求脚本中特定版本的模块。
此参数是在 Windows PowerShell 3.0 中引入的。
参数属性
| 类型: | Version | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
| 别名: | 版本 | 
参数集
Name
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
PSSession
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
					CimSession 
					
				 
				| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
					WinCompat 
					
				 
				| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-ModuleInfo 
		指定要导入的模块对象的数组。 输入包含模块对象的变量,或获取模块对象的命令,如以下命令:Get-Module -ListAvailable。 还可以通过管道将模块对象传递给 Import-Module。
参数属性
| 类型: | |
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
					ModuleInfo 
					
				 
				| Position: | 0 | 
| 必需: | True | 
| 来自管道的值: | True | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-Name
指定要导入的模块的名称。 输入模块的名称或模块中文件的名称,例如 .psd1、.psm1、.dll或 .ps1 文件。 文件路径是可选的。 不允许使用通配符。 还可以通过管道将模块名称和文件名传递给 Import-Module。
如果省略路径,Import-Module 查找保存在 $Env:PSModulePath 环境变量中的路径中的模块。
请尽可能仅指定模块名称。 指定文件名时,仅导入该文件中实现的成员。 如果模块包含其他文件,则不会导入这些文件,并且可能缺少模块的重要成员。
注释
虽然可以将脚本(.ps1)文件导入为模块,但脚本文件通常不像脚本模块文件(.psm1)文件一样结构化。 导入脚本文件不能保证它可作为模块使用。 有关详细信息,请参阅 about_Modules。
参数属性
| 类型: | String[] | 
| 默认值: | None | 
| 支持通配符: | True | 
| 不显示: | False | 
参数集
Name
| Position: | 0 | 
| 必需: | True | 
| 来自管道的值: | True | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
PSSession
| Position: | 0 | 
| 必需: | True | 
| 来自管道的值: | True | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
					CimSession 
					
				 
				| Position: | 0 | 
| 必需: | True | 
| 来自管道的值: | True | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
					WinCompat 
					
				 
				| Position: | 0 | 
| 必需: | True | 
| 来自管道的值: | True | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-NoClobber 
		阻止导入与当前会话中的现有命令具有相同名称的命令。 默认情况下,Import-Module 导入所有导出的模块命令。
具有相同名称的命令可以隐藏或替换会话中的命令。 若要避免会话中的命令名称冲突,请使用 前缀 或 NoClobber 参数。 有关名称冲突和命令优先级的详细信息,请参阅 about_Modules 和 about_Command_Precedence中的“模块和名称冲突”。
此参数是在 Windows PowerShell 3.0 中引入的。
参数属性
| 类型: | SwitchParameter | 
| 默认值: | False | 
| 支持通配符: | False | 
| 不显示: | False | 
| 别名: | NoOverwrite | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-PassThru 
		返回一个对象,该对象表示导入的模块。 默认情况下,此 cmdlet 不会生成任何输出。
参数属性
| 类型: | SwitchParameter | 
| 默认值: | False | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-Prefix
指定此 cmdlet 添加到导入模块成员名称中的名词的前缀。
使用此参数可避免会话中不同成员具有相同名称时可能发生的名称冲突。 此参数不会更改模块,并且不会影响模块导入以供自己使用的文件。 这些模块称为嵌套模块。 此 cmdlet 仅影响当前会话中成员的名称。
例如,如果指定前缀 UTC,然后导入 Get-Date cmdlet,则该 cmdlet 在会话中称为 Get-UTCDate,并且与原始 Get-Date cmdlet 不混淆。
此参数的值优先于模块的 DefaultCommandPrefix 属性,该属性指定默认前缀。
参数属性
| 类型: | String | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-PSSession
指定 PowerShell 用户管理的会话(PSSession),此 cmdlet 将从该会话中导入模块。 输入一个变量,其中包含 PSSession 或获取 PSSession的命令,例如 Get-PSSession 命令。
将模块从其他会话导入当前会话时,可以使用当前会话中模块中的 cmdlet,就像使用本地模块中的 cmdlet 一样。 使用远程 cmdlet 的命令在远程会话中运行,但远程处理详细信息由 PowerShell 在后台管理。
此参数使用 PowerShell 的隐式远程处理功能。 它等效于使用 Import-PSSession cmdlet 从会话导入特定模块。
              Import-Module 无法从另一个会话导入核心 PowerShell 模块。 核心 PowerShell 模块的名称以 Microsoft.PowerShell 开头。
此参数是在 Windows PowerShell 3.0 中引入的。
参数属性
| 类型: | PSSession | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
PSSession
| Position: | Named | 
| 必需: | True | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
					FullyQualifiedNameAndPSSession 
					
				    
				| Position: | Named | 
| 必需: | True | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-RequiredVersion 
		指定此 cmdlet 导入的模块版本。 如果未安装版本,Import-Module 将生成错误。
默认情况下,Import-Module 导入模块而不检查版本号。
若要指定最低版本,请使用 MinimumVersion 参数。 还可以使用 模块 和 #Requires 关键字的版本 参数来要求脚本中特定版本的模块。
此参数是在 Windows PowerShell 3.0 中引入的。
使用 RequiredVersion 导入现有版本的 Windows 操作系统中包含的模块的脚本不会在 Windows 操作系统的未来版本中自动运行。 这是因为 Windows 操作系统的未来版本中的 PowerShell 模块版本号高于 Windows 操作系统的现有版本中的模块版本号。
参数属性
| 类型: | Version | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
Name
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
PSSession
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
					CimSession 
					
				 
				| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
					WinCompat 
					
				 
				| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-Scope
指定要在其中导入模块的范围。
此参数的可接受值为:
- 全局。 可用于会话中的所有命令。 等效于 Global 参数。
- 本地。 仅在当前范围内可用。
默认情况下,从命令提示符、脚本文件或 scriptblock 调用 Import-Module cmdlet 时,所有命令都导入到全局会话状态。 可以使用 -Scope Local 参数将模块内容导入脚本或脚本块范围。
从另一个模块调用时,Import-Module cmdlet 将模块中的命令(包括嵌套模块中的命令)导入调用方会话状态。 指定 -Scope Global 或 -Global 指示此 cmdlet 将模块导入全局会话状态,以便它们可用于会话中的所有命令。
Global 参数等效于具有 全局值的 Scope 参数。
此参数是在 Windows PowerShell 3.0 中引入的。
参数属性
| 类型: | String | 
| 默认值: | None | 
| 接受的值: | Local, Global | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-SkipEditionCheck  
		跳过 CompatiblePSEditions 字段上的检查。
当该模块未在 "$($Env:windir)\System32\WindowsPowerShell\v1.0\Modules" 清单字段中指定 Core 时,允许将模块从 CompatiblePSEditions 模块目录加载到 PowerShell Core 中。
从另一个路径导入模块时,此开关不执行任何作,因为不会执行检查。 在 Linux 和 macOS 上,此开关不执行任何作。
有关详细信息,请参阅 about_PowerShell_Editions。
警告
              Import-Module -SkipEditionCheck 仍可能无法导入模块。 即使成功,在尝试使用不兼容的 API 时,从模块调用命令也会失败。
参数属性
| 类型: | SwitchParameter | 
| 默认值: | False | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
Name
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
PSSession
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
					CimSession 
					
				 
				| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
					FullyQualifiedName 
					
				  
				| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
					FullyQualifiedNameAndPSSession 
					
				    
				| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
Assembly
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
					ModuleInfo 
					
				 
				| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-UseWindowsPowerShell   
		使用 Windows PowerShell 兼容性功能加载模块。 有关详细信息,请参阅 about_Windows_PowerShell_Compatibility。
参数属性
| 类型: | SwitchParameter | 
| 默认值: | False | 
| 支持通配符: | False | 
| 不显示: | False | 
| 别名: | UseWinPS | 
参数集
					WinCompat 
					
				 
				| Position: | Named | 
| 必需: | True | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
					FullyQualifiedNameAndWinCompat 
					
				     
				| Position: | Named | 
| 必需: | True | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-Variable
指定此 cmdlet 从模块导入到当前会话中的变量数组。 输入变量列表。 允许使用通配符。
导入模块时,某些模块会自动将所选变量导出到会话中。 此参数允许从导出的变量中进行选择。
参数属性
| 类型: | String[] | 
| 默认值: | None | 
| 支持通配符: | True | 
| 不显示: | False | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
CommonParameters
此 cmdlet 支持通用参数:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 有关详细信息,请参阅 about_CommonParameters。
输入
String
可以将模块名称通过管道传递给此 cmdlet。
PSModuleInfo
可以通过管道将模块对象传递给此 cmdlet。
Assembly
可以通过管道将程序集对象传递给此 cmdlet。
输出
None
默认情况下,此 cmdlet 不返回任何输出。
PSModuleInfo
如果指定 PassThru 参数,该 cmdlet 将生成表示导入模块的 System.Management.Automation.PSModuleInfo 对象。
PSCustomObject
如果同时指定 AsCustomObject 和 PassThru 参数,则 cmdlet 将生成表示模块的 PSCustomObject 对象。
备注
PowerShell 包含以下与 Import-Module相关的别名:
- 所有平台: - ipmo
 
- 在导入模块之前,该模块必须可供本地计算机访问,并包含在 - PSModulePath环境变量中。 有关详细信息,请参阅 about_Modules。- 还可以使用 PSSession 和 CimSession 参数导入安装在远程计算机上的模块。 但是,使用这些模块中的 cmdlet 的命令在远程计算机上的远程会话中运行。 
- 如果将同名和同一类型的成员导入到会话中,则 PowerShell 默认使用上次导入的成员。 将替换变量和别名,并且无法访问原始变量。 函数、cmdlet 和提供程序只是受新成员的阴影。 可以通过使用命令管理单元、模块或函数路径的名称限定命令名称来访问它们。 
- 若要更新从模块导入的命令的格式设置数据,请使用 - Update-FormatDatacmdlet。 如果模块的格式文件发生更改,请使用- Update-FormatDatacmdlet 更新导入命令的格式设置数据。 无需再次导入模块。
- 从 Windows PowerShell 3.0 开始,随 PowerShell 一起安装的核心命令打包在模块中。 在 Windows PowerShell 2.0 和在更高版本的 PowerShell 中创建旧式会话的主机程序中,核心命令打包在管理单元中(PSSnapins)。 例外情况是 Microsoft.PowerShell.Core,该管理单元始终是管理单元。 此外,远程会话(例如由 - New-PSSessioncmdlet 启动的会话)是包含核心管理单元的旧式会话。- 有关使用核心模块创建较新样式会话的 CreateDefault2 方法的信息,请参阅 CreateDefault2 方法。 
- 在 Windows PowerShell 2.0 中,模块对象的一些属性值(如 ExportedCmdlet 和 NestedModules 属性值)在导入模块之前未填充。 
- 如果尝试导入包含与 Windows PowerShell 3.0+ 不兼容的混合模式程序集的模块, - Import-Module将返回如下所示的错误消息。- Import-Module :混合模式程序集是针对运行时的版本“v2.0.50727”生成的,无法在 4.0 运行时中加载,而无需其他配置信息。 - 如果为 Windows PowerShell 2.0 设计的模块至少包含一个混合模块程序集,则会发生此错误。 包含托管和非托管代码(如 C++ 和 C#)的混合模块程序集。 - 若要导入包含混合模式程序集的模块,请使用以下命令启动 Windows PowerShell 2.0,然后再次尝试 - Import-Module命令。- powershell.exe -Version 2.0
- 若要使用 CIM 会话功能,远程计算机必须具有 WS-Management 远程处理和 Windows Management Instrumentation(WMI),这是通用信息模型(CIM)标准的Microsoft实现。 计算机还必须具有模块发现 WMI 提供程序或具有相同基本功能的备用 CIM 提供程序。 - 可以在未运行 Windows作系统的计算机和具有 PowerShell 但未启用 PowerShell 远程处理的 Windows 计算机上使用 CIM 会话功能。 - 还可以使用 CIM 参数从启用了 PowerShell 远程处理的计算机(包括本地计算机)获取 CIM 模块。 在本地计算机上创建 CIM 会话时,PowerShell 使用 DCOM 而不是 WMI 来创建会话。 
- 默认情况下,即使从子代范围调用, - Import-Module也会导入全局范围内的模块。 顶级作用域和所有子代作用域都有权访问模块的导出元素。- 在后代作用域中, - -Scope Local将导入限制到该范围及其所有后代范围。 然后,父范围看不到导入的成员。- 注释 - Get-Module显示当前会话中加载的所有模块。 这包括在子代范围内本地加载的模块。 使用- Get-Command -Module modulename查看当前作用域中加载的成员。
- Import-Module不会加载模块中的类和枚举定义。 使用脚本开头的- using module语句。 这会导入模块,包括类和枚举定义。 有关详细信息,请参阅 about_Using。
- 在脚本模块的开发过程中,通常更改代码,然后使用 - Import-Module参数 加载模块的新版本。 这仅适用于根模块中函数的更改。- Import-Module不会重新加载任何嵌套模块。 此外,无法加载任何更新的类或枚举。- 若要获取嵌套模块中定义的更新模块成员,请删除具有 - Remove-Module的模块,然后再次导入该模块。- 如果模块已使用 - using语句加载,则必须启动一个新会话来导入类和枚举的更新定义。 无法在 PowerShell 中定义并使用- using语句导入的类和枚举。