出于脚本可移植性的原因,我需要在 PowerShell 脚本中动态加载管理单元。这很容易在 PowerShell v2 中使用该Load-Module
功能完成。我需要在一台机器上运行这个特定的脚本,由于各种原因,我不想安装 PowerShell v2,但有 v1。
PowerShell v1 中是否有Load-Module
等价物?
出于脚本可移植性的原因,我需要在 PowerShell 脚本中动态加载管理单元。这很容易在 PowerShell v2 中使用该Load-Module
功能完成。我需要在一台机器上运行这个特定的脚本,由于各种原因,我不想安装 PowerShell v2,但有 v1。
PowerShell v1 中是否有Load-Module
等价物?
你的意思是Import-Module
?如果是这样,那么它取决于模块是如何定义的。如果它是一个管理单元 DLL,则需要在 V1 机器上安装管理单元,然后您将使用Add-PSSnapin
. 如果它在.psm1
文件中,那么您需要将文件重命名为.ps1
,然后您可以尝试点源它,例如. .\mymodule.ps1
. 但是,如果它使用任何 v2 功能(如 Export-ModuleMember),则需要将其注释掉。v1 不知道如何处理.psd1
文件。
Import-Module
加载模块,模块是 V2 独有的功能。
PowerShell V1 有“管理单元”,用 .NET 语言(C#,VB,...)而不是 PowerShell 脚本编写,并加载到会话中Add-PSSnapin
(V2 也支持管理单元,但模块有一个超集管理单元功能所以坚持使用模块,除非无法升级到 V2)。