[玩转系统] Import-Module (Microsoft.PowerShell.Core)
作者:精品下载站 日期:2024-12-14 02:15:30 浏览:16 分类:玩电脑
Import-Module (Microsoft.PowerShell.Core)
Import-Module
模块 :Microsoft.PowerShell.Core将模块添加到当前会话。
句法
Import-Module
[-Global]
[-Prefix <String>]
[-Name] <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>]
Import-Module
[-Global]
[-Prefix <String>]
[-Name] <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>]
-PSSession <PSSession>
[<CommonParameters>]
Import-Module
[-Global]
[-Prefix <String>]
[-Name] <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>]
-CimSession <CimSession>
[-CimResourceUri <Uri>]
[-CimNamespace <String>]
[<CommonParameters>]
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>]
Import-Module
[-Global]
[-Prefix <String>]
[-FullyQualifiedName] <ModuleSpecification[]>
[-Function <String[]>]
[-Cmdlet <String[]>]
[-Variable <String[]>]
[-Alias <String[]>]
[-Force]
[-SkipEditionCheck]
[-PassThru]
[-AsCustomObject]
[-ArgumentList <Object[]>]
[-DisableNameChecking]
[-NoClobber]
[-Scope <String>]
[<CommonParameters>]
Import-Module
[-Global]
[-Prefix <String>]
[-FullyQualifiedName] <ModuleSpecification[]>
[-Function <String[]>]
[-Cmdlet <String[]>]
[-Variable <String[]>]
[-Alias <String[]>]
[-Force]
[-SkipEditionCheck]
[-PassThru]
[-AsCustomObject]
[-ArgumentList <Object[]>]
[-DisableNameChecking]
[-NoClobber]
[-Scope <String>]
-PSSession <PSSession>
[<CommonParameters>]
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>]
Import-Module
[-Global]
[-Prefix <String>]
[-Assembly] <Assembly[]>
[-Function <String[]>]
[-Cmdlet <String[]>]
[-Variable <String[]>]
[-Alias <String[]>]
[-Force]
[-SkipEditionCheck]
[-PassThru]
[-AsCustomObject]
[-ArgumentList <Object[]>]
[-DisableNameChecking]
[-NoClobber]
[-Scope <String>]
[<CommonParameters>]
Import-Module
[-Global]
[-Prefix <String>]
[-Function <String[]>]
[-Cmdlet <String[]>]
[-Variable <String[]>]
[-Alias <String[]>]
[-Force]
[-SkipEditionCheck]
[-PassThru]
[-AsCustomObject]
[-ModuleInfo] <PSModuleInfo[]>
[-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 和 Variable 参数来限制导入哪些成员。 NoClobber 参数可防止 Import-Module
导入与当前会话中的成员同名的成员。
Import-Module
仅将模块导入到当前会话中。要将模块导入到每个新会话中,请将 Import-Module
命令添加到您的 PowerShell 配置文件中。有关配置文件的更多信息,请参阅 about_Profiles。
您可以通过在远程计算机上创建 PSSession 来管理启用了 PowerShell 远程处理的远程 Windows 计算机。然后使用 Import-Module
的 PSSession 参数导入远程计算机上安装的模块。当您在当前会话中使用导入的命令时,这些命令会在远程计算机上隐式运行。
从 Windows PowerShell 3.0 开始,您可以使用 Import-Module
导入公共信息模型 (CIM) 模块。 CIM 模块在 Cmdlet 定义 XML (CDXML) 文件中定义 cmdlet。此功能允许您使用在非托管代码程序集中实现的 cmdlet,例如用 C++ 编写的程序集。
对于未启用 PowerShell 远程处理的远程计算机(包括未运行 Windows 操作系统的计算机),您可以使用 Import-Module
的 CIMSession 参数进行导入来自远程计算机的 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
的 ModuleInfo 参数用于将模块导入到当前会话中。
示例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
在加载模块时报告进度。如果没有 Verbose、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
使用 Get-Command
cmdlet 的 Module 参数显示从 PSDiagnostics 模块导入的命令。结果确认仅导入了 Disable-PSTrace
和 Enable-PSTrace
cmdlet。
示例 6:导入模块成员并添加前缀
此示例将 PSDiagnostics 模块导入到当前会话中,为成员名称添加前缀,然后显示带前缀的成员名称。 Import-Module
的 Prefix 参数将 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 和函数将转换为自定义对象的脚本方法。
自定义对象在脚本编写中很有用。当多个导入的对象具有相同名称时,它们也很有用。使用对象的 script 方法相当于指定导入成员的完全限定名称,包括其模块名称。
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 参数。 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
的All 参数显示会话中的所有Get-Date
命令。结果显示会话中有两个 Get-Date
命令,一个来自 TestModule 模块的函数和一个来自 Microsoft.PowerShell.Utility 的 cmdlet强> 模块。
由于函数优先于 cmdlet,因此会运行 TestModule 模块中的 Get-Date
函数,而不是 Get-Date
cmdlet。要运行原始版本的Get-Date
,您必须使用模块名称限定命令名称。
有关 PowerShell 中命令优先级的更多信息,请参阅 about_Command_Precedence。
示例 10:导入模块的最低版本
此示例导入 PowerShellGet 模块。它使用 Import-Module
的 MinimumVersion 参数仅导入 2.0.0
或更高版本的模块。
Import-Module -Name PowerShellGet -MinimumVersion 2.0.0
您还可以使用 RequiredVersion 参数导入特定版本的模块,或使用 # 的 Module 和 Version 参数Requires
关键字要求脚本中模块的特定版本。
示例 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.1\PowerShellGet.psd1
C:\program files\powershell\Modules\PowerShellGet\PowerShellGet.psd1
C:\Program Files\WindowsPowerShell\Modules\PowerShellGet.1.2\PowerShellGet.psd1
C:\Program Files\WindowsPowerShell\Modules\PowerShellGet.0.0.1\PowerShellGet.psd1
PS> Import-Module -Name 'C:\Program Files\PowerShell\Modules\PowerShellGet.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)。 PSSession 保存在 $s
变量中。
使用 PSSession 参数运行 Get-Module
表明 NetSecurity 模块已安装并在远程计算机上可用。此命令相当于使用 Invoke-Command
cmdlet 在远程会话中运行 Get-Module
命令。例如:
Invoke-Command $s {Get-Module -ListAvailable -Name NetSecurity
使用 PSSession 参数运行 Import-Module
会将 NetSecurity 模块从远程计算机导入到当前会话中。 Get-Command
cmdlet 检索以 Get
开头并包含 NetSecurity 模块中的 Firewall
的命令。输出确认模块及其 cmdlet 已导入到当前会话中。
接下来,Get-NetFirewallRule
cmdlet 获取 Server01
计算机上的 Windows 远程管理防火墙规则。这相当于使用 Invoke-Command
cmdlet 在远程会话上运行 Get-NetFirewallRule
。
示例 14:在没有 Windows 操作系统的情况下管理远程计算机上的存储
在此示例中,计算机管理员已安装 Module Discovery WMI 提供程序,它允许您使用专为该提供程序设计的 CIM 命令。
New-CimSession
cmdlet 在名为 RSDGF03 的远程计算机上创建一个会话。该会话连接到远程计算机上的 WMI 服务。 CIM 会话保存在 $cs
变量中。 Import-Module
使用 $cs
中的 CimSession 从 RSDGF03Storage CIM 模块/代码> 计算机。
Get-Command
cmdlet 显示存储模块中的Get-Disk
命令。当您将 CIM 模块导入本地会话时,PowerShell 会将每个命令的 CDXML 文件转换为 PowerShell 脚本,这些脚本在本地会话中显示为函数。
尽管 Get-Disk
是在本地会话中键入的,但该 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
必需的:False
接受管道输入:False
接受通配符:True
-ArgumentList
指定在 Import-Module
命令期间传递到脚本模块的参数或参数值的数组。该参数仅在导入脚本模块时有效。
您还可以通过别名 args 引用 ArgumentList 参数。有关 ArgumentList 行为的更多信息,请参阅 about_Splatting。
类型 :Object[]
别名:Args
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-AsCustomObject
指示此 cmdlet 返回一个自定义对象,其中的成员表示导入的模块成员。该参数仅对脚本模块有效。
当您使用 AsCustomObject 参数时,Import-Module
将模块成员导入到会话中,然后返回 PSCustomObject 对象而不是 PSModuleInfo 对象。您可以将自定义对象保存在变量中并使用成员访问枚举来调用成员。
SwitchParameter
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-Assembly
指定程序集对象的数组。此 cmdlet 导入在指定程序集对象中实现的 cmdlet 和提供程序。输入包含装配对象的变量或创建装配对象的命令。您还可以通过管道将程序集对象传递给 Import-Module
。
使用此参数时,仅导入由指定程序集实现的 cmdlet 和提供程序。如果模块包含其他文件,则不会导入它们,并且您可能会丢失该模块的重要成员。使用此参数来调试和测试模块,或者当模块作者指示您使用它时。
类型 :集会[]
位置:0
默认值:None
必需的:True
接受管道输入:True
接受通配符:False
-CimNamespace
指定公开 CIM 模块的备用 CIM 提供程序的命名空间。默认值是模块发现 WMI 提供程序的命名空间。
使用此参数可从未运行 Windows 操作系统的计算机和设备导入 CIM 模块。
此参数是在 Windows PowerShell 3.0 中引入的。
类型 :String
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-CimResourceUri
指定 CIM 模块的备用位置。默认值是远程计算机上模块发现 WMI 提供程序的资源 URI。
使用此参数可从未运行 Windows 操作系统的计算机和设备导入 CIM 模块。
此参数是在 Windows PowerShell 3.0 中引入的。
类型 :乌里
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-CimSession
指定远程计算机上的 CIM 会话。输入包含 CIM 会话的变量或获取 CIM 会话的命令,例如 Get-CimSession 命令。
Import-Module
使用 CIM 会话连接将模块从远程计算机导入到当前会话中。当您在当前会话中使用导入模块中的命令时,这些命令将在远程计算机上运行。
您可以使用此参数从未运行 Windows 操作系统的计算机和设备以及具有 PowerShell 但未启用 PowerShell 远程处理的 Windows 计算机导入模块。
此参数是在 Windows PowerShell 3.0 中引入的。
类型 :CimSession
位置:命名
默认值:None
必需的:True
接受管道输入:False
接受通配符:False
-Cmdlet
指定此 cmdlet 从模块导入到当前会话的 cmdlet 数组。允许使用通配符。
当您导入模块时,某些模块会自动将选定的 cmdlet 导出到您的会话中。此参数允许您从导出的 cmdlet 中进行选择。
类型 :String[]
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:True
-DisableNameChecking
指示当您导入名称中包含未经批准的动词或禁止字符的 cmdlet 或函数时,此 cmdlet 会禁止显示警告消息。
默认情况下,当您导入的模块导出名称中包含未经批准的动词的 cmdlet 或函数时,PowerShell 将显示以下警告消息:
警告:某些导入的命令名称包含未经批准的动词,这可能会使它们不易被发现。使用 Verbose 参数了解更多详细信息,或键入 Get-Verb 查看批准的动词列表。
此消息仅是警告。仍会导入完整的模块,包括不合格的命令。尽管该消息会显示给模块用户,但命名问题应由模块作者修复。
类型 :SwitchParameter
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-Force
此参数会导致在当前模块之上加载或重新加载模块。某些模块加载外部程序集。如果您导入的模块加载了较新版本的程序集,则导入会失败。 Force 参数无法覆盖该错误。您必须启动新会话才能加载新版本。
类型 :SwitchParameter
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-FullyQualifiedName
该值可以是模块名称、完整的模块规范或模块文件的路径。
当该值是路径时,该路径可以是完全限定的或相对的。相对路径是相对于包含 using 语句的脚本进行解析的。
当该值为名称或模块规范时,PowerShell 会在 PSModulePath 中搜索指定的模块。
模块规范是一个具有以下键的哈希表。
ModuleName
- 必需 指定模块名称。GUID
- 可选 指定模块的 GUID。还必需至少指定以下三个键之一。
ModuleVersion
- 指定模块的最低可接受版本。
MaximumVersion
- 指定模块可接受的最大版本。RequiredVersion
- 指定模块的准确、必需的版本。它不能与其他版本密钥一起使用。
模块规格[]
位置:0
默认值:None
必需的:True
接受管道输入:True
接受通配符:False
-Function
指定此 cmdlet 从模块导入到当前会话的函数数组。允许使用通配符。当您导入模块时,某些模块会自动将选定的函数导出到您的会话中。此参数允许您从导出的函数中进行选择。
类型 :String[]
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:True
-Global
指示此 cmdlet 将模块导入全局会话状态,以便会话中的所有命令都可以使用它们。
默认情况下,当从命令提示符、脚本文件或脚本块调用 Import-Module
cmdlet 时,所有命令都会导入到全局会话状态中。
当从另一个模块调用时,Import-Module
cmdlet 会将模块中的命令(包括来自嵌套模块的命令)导入到调用模块的会话状态中。
有用的提示
您应该避免从模块内调用Import-Module
。相反,请将目标模块声明为父模块清单中的嵌套模块。声明嵌套模块可以提高依赖项的可发现性。
Global 参数相当于值为Global 的Scope 参数。
要限制模块导出的命令,请在脚本模块中使用 Export-ModuleMember
命令。
SwitchParameter
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-MaximumVersion
指定最大版本。此 cmdlet 仅导入小于或等于指定值的模块版本。如果没有符合条件的版本,Import-Module
将返回错误。
String
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-MinimumVersion
指定最低版本。此 cmdlet 仅导入大于或等于指定值的模块版本。使用MinimumVersion参数名称或其别名Version。如果没有符合条件的版本,Import-Module
会生成错误。
要指定确切的版本,请使用 RequiredVersion 参数。您还可以使用 #Requires 关键字的 Module 和 Version 参数来要求脚本中模块的特定版本。
此参数是在 Windows PowerShell 3.0 中引入的。
类型 :版本
别名:Version
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-ModuleInfo
指定要导入的模块对象的数组。输入包含模块对象的变量,或获取模块对象的命令,例如以下命令:Get-Module -ListAvailable
。您还可以通过管道将模块对象传输到Import-Module
。
PS模块信息[]
位置:0
默认值:None
必需的:True
接受管道输入:True
接受通配符:False
-Name
指定要导入的模块的名称。输入模块的名称或模块中文件的名称,例如 .psd1
、.psm1
、.dll
或.ps1
文件。文件路径是可选的。不允许使用通配符。您还可以通过管道将模块名称和文件名传递给 Import-Module
。
如果省略路径,Import-Module
会在 $env:PSModulePath
环境变量中保存的路径中查找模块。
尽可能仅指定模块名称。当您指定文件名时,仅导入在该文件中实现的成员。如果模块包含其他文件,则不会导入它们,并且您可能会丢失该模块的重要成员。
笔记
虽然可以将脚本 (.ps1
) 文件作为模块导入,但脚本文件的结构通常不像脚本模块文件 (.psm1
) 文件那样。导入脚本文件并不能保证它可以用作模块。有关更多信息,请参阅 about_Modules。
String[]
位置:0
默认值:None
必需的:True
接受管道输入:True
接受通配符:True
-NoClobber
防止导入与当前会话中现有命令同名的命令。默认情况下,Import-Module
导入所有导出的模块命令。
具有相同名称的命令可以隐藏或替换会话中的命令。要避免会话中的命令名称冲突,请使用 Prefix 或 NoClobber 参数。有关名称冲突和命令优先级的详细信息,请参阅 about_Modules 和 about_Command_Precedence 中的“模块和名称冲突”。
此参数是在 Windows PowerShell 3.0 中引入的。
类型 :SwitchParameter
别名:NoOverwrite
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-PassThru
返回表示导入模块的对象。默认情况下,此 cmdlet 不会生成任何输出。
类型 :SwitchParameter
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-Prefix
指定此 cmdlet 添加到导入的模块成员名称中的名词的前缀。
使用此参数可以避免会话中不同成员具有相同名称时可能发生的名称冲突。此参数不会更改模块,也不会影响模块导入供其自身使用的文件。这些被称为嵌套模块。此 cmdlet 仅影响当前会话中的成员名称。
例如,如果您指定前缀 UTC,然后导入 Get-Date
cmdlet,则该 cmdlet 在会话中称为 Get-UTCDate
,并且不会与原始的Get-Date
cmdlet。
此参数的值优先于模块的 DefaultCommandPrefix 属性,该属性指定默认前缀。
类型 :String
位置:命名
默认值:None
必需的: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 中引入的。
类型 :PS会话
位置:命名
默认值:None
必需的:True
接受管道输入:False
接受通配符:False
-RequiredVersion
指定此 cmdlet 导入的模块的版本。如果未安装该版本,Import-Module
会生成错误。
默认情况下,Import-Module
导入模块时不检查版本号。
要指定最低版本,请使用 MinimumVersion 参数。您还可以使用 #Requires 关键字的 Module 和 Version 参数来要求脚本中模块的特定版本。
此参数是在 Windows PowerShell 3.0 中引入的。
使用 RequiredVersion 导入 Windows 操作系统现有版本中包含的模块的脚本不会在 Windows 操作系统的未来版本中自动运行。这是因为 Windows 操作系统未来版本中的 PowerShell 模块版本号高于 Windows 操作系统现有版本中的模块版本号。
类型 :版本
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-Scope
指定导入模块的范围。
该参数可接受的值为:
- 全球。可用于会话中的所有命令。相当于全局参数。
- 本地。仅在当前范围内可用。
默认情况下,当从命令提示符、脚本文件或脚本块调用 Import-Module
cmdlet 时,所有命令都会导入到全局会话状态中。您可以使用 -Scope Local
参数将模块内容导入到脚本或脚本块作用域中。
当从另一个模块调用时,Import-Module
cmdlet 会将模块中的命令(包括来自嵌套模块的命令)导入到调用者的会话状态中。指定 -Scope Global
或 -Global
表示此 cmdlet 将模块导入全局会话状态,以便会话中的所有命令都可以使用它们。
Global 参数相当于值为Global 的Scope 参数。
此参数是在 Windows PowerShell 3.0 中引入的。
类型 :String
接受的值:本地、全球
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-SkipEditionCheck
跳过对 CompatiblePSEditions
字段的检查。
当模块未指定 Core 时,允许将模块从 "$ ($env:windir)\System32\WindowsPowerShell\v1.0\Modules"
模块目录加载到 PowerShell Core 中 在 CompatiblePSEditions
清单字段中。
当从另一个路径导入模块时,此开关不执行任何操作,因为不执行检查。在 Linux 和 macOS 上,此开关不执行任何操作。
有关详细信息,请参阅 about_PowerShell_Editions。
警告
Import-Module -SkipEditionCheck
仍然可能无法导入模块。即使成功,当模块尝试使用不兼容的 API 时,从模块调用命令也可能会失败。
SwitchParameter
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-UseWindowsPowerShell
使用 Windows PowerShell 兼容性功能加载模块。有关详细信息,请参阅 about_Windows_PowerShell_Compatibility。
类型 :SwitchParameter
别名:UseWinPS
位置:命名
默认值:False
必需的:True
接受管道输入:False
接受通配符:False
-Variable
指定此 cmdlet 从模块导入到当前会话的变量数组。输入变量列表。允许使用通配符。
当您导入模块时,某些模块会自动将选定的变量导出到会话中。此参数允许您从导出的变量中进行选择。
类型 :String[]
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:True
输入
字符串
您可以通过管道将模块名称传递给此 cmdlet。
PSModuleInfo
您可以通过管道将模块对象传递给此 cmdlet。
组装
您可以通过管道将程序集对象传递给此 cmdlet。
输出
无
默认情况下,此 cmdlet 不返回任何输出。
PSModuleInfo
如果指定 PassThru 参数,则 cmdlet 会生成表示导入模块的 System.Management.Automation.PSModuleInfo 对象。
PS自定义对象
如果同时指定 AsCustomObject 和 PassThru 参数,则 cmdlet 会生成表示该模块的 PSCustomObject 对象。
笔记
PowerShell 包含以下 Import-Module 别名:
所有平台:
ipmo
在导入模块之前,本地计算机必须可以访问该模块并将其包含在 PSModulePath
环境变量中。有关更多信息,请参阅 about_Modules。
您还可以使用 PSSession 和 CIMSession 参数导入远程计算机上安装的模块。但是,使用这些模块中的 cmdlet 的命令在远程计算机上的远程会话中运行。
如果将具有相同名称和相同类型的成员导入到会话中,PowerShell 默认情况下会使用最后导入的成员。变量和别名被替换,并且原始变量和别名无法访问。函数、cmdlet 和提供程序仅受到新成员的影响。可以通过使用其管理单元、模块或函数路径的名称限定命令名称来访问它们。
要更新从模块导入的命令的格式数据,请使用 Update-FormatData
cmdlet。如果模块的格式设置文件发生更改,请使用 Update-FormatData
cmdlet 更新导入命令的格式设置数据。您不需要再次导入该模块。
从 Windows PowerShell 3.0 开始,随 PowerShell 安装的核心命令打包在模块中。在 Windows PowerShell 2.0 以及在更高版本的 PowerShell 中创建旧式会话的主机程序中,核心命令打包在管理单元 (PSSnapins) 中。 Microsoft.PowerShell.Core 是个例外,它始终是一个管理单元。此外,远程会话(例如由 New-PSSession
cmdlet 启动的会话)是包含核心管理单元的旧式会话。
有关使用核心模块创建更新样式会话的 CreateDefault2 方法的信息,请参阅 CreateDefault2 方法。
在 Windows PowerShell 2.0 中,模块对象的某些属性值(例如 ExportedCmdlets 和 NestedModules 属性值)在导入模块之前不会填充。
如果您尝试导入包含与 Windows PowerShell 3.0+ 不兼容的混合模式程序集的模块,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),这是 Microsoft 对通用信息模型 (CIM) 标准的实现。计算机还必须具有模块发现 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
和 Force 参数加载新版本的模块。这仅适用于根模块中函数的更改。 Import-Module
不会重新加载任何嵌套模块。此外,无法加载任何更新的类或枚举。
要获取嵌套模块中定义的更新模块成员,请使用 Remove-Module
删除该模块,然后再次导入该模块。
如果模块是使用 using
语句加载的,则必须启动一个新会话来导入类和枚举的更新定义。无法卸载在 PowerShell 中定义并使用 using
语句导入的类和枚举。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag