如何安装 PowerShell 模块?


安装 PowerShell 模块有两种方法:在线和离线。

在线方法

此方法就像在 Unix 系统中通过 Yum 下载在线软件包一样。

我们首先需要使用 **Find-Module** 命令搜索互联网上可用的软件包。如果您不知道完整的模块名称,可以使用通配符。所有软件包都从 PowerShell 库下载 (https://www.powershellgallery.com/)

例如,如果您想要 **Vmware PowerCLI** 模块并且您不知道完整的模块名称,只需在通配符 (*) 内使用名称的一部分。

Find-Module *vmware* | Select Name, Version, Repository
Name                            Version          Repository
----                            -------          ----------
VMware.VimAutomation.Sdk       12.0.0.15939651    PSGallery
VMware.VimAutomation.Core      12.0.0.15939655    PSGallery
VMware.VimAutomation.Common    12.0.0.15939652    PSGallery
VMware.VimAutomation.Cis.Core  12.0.0.15939657    PSGallery
VMware.Vim                     7.0.0.15939650     PSGallery
VMware.VimAutomation.Vds       12.0.0.15940185    PSGallery
VMware.VimAutomation.Srm       11.5.0.14899557    PSGallery
VMware.VimAutomation.License   12.0.0.15939670    PSGallery
VMware.VimAutomation.vROps     12.0.0.15940184    PSGallery
VMware.VimAutomation.Cloud     12.0.0.15940183    PSGallery
VMware.ImageBuilder            7.0.0.15902843     PSGallery
VMware.VimAutomation.Nsxt      12.0.0.15939671    PSGallery
VMware.PowerCLI                12.0.0.15947286    PSGallery
VMware.VimAutomation.Horiz...  7.12.0.15718406    PSGallery
VMware.VimAutomation.Storage   12.0.0.15939648    PSGallery
VMware.DeployAutomation        7.0.0.15902843     PSGallery
VMware.VimAutomation.Vmc       12.0.0.15947287    PSGallery
VMware.VumAutomation           6.5.1.7862888      PSGallery
VMware.VimAutomation.Stora...  1.3.0.0            PSGallery
VMware.VimAutomation.Security  12.0.0.15939672    PSGallery
VMware.VimAutomation.Hcx       12.0.0.15939647    PSGallery
VMware.VimAutomation.HA        6.5.4.7567193      PSGallery
VMware.VimAutomation.PCloud    10.0.0.7893924     PSGallery
VMware.CloudServices           12.0.0.15947289    PSGallery
VMware.VimAutomation.Workl... 12.0.0.15947288     PSGallery

现在我们有了一个可用的 **VMware** 模块列表,我们需要其中 **Vmware.PowerCLI** 模块。要安装模块,我们将使用 **Install-Module** cmdlet。

Find-Module Vmware.PowerCLI | Install-Module
Untrusted repository
You are installing the modules from an untrusted repository. If you trust this repository, change its InstallationPolicy value by running the SetPSRepository cmdlet.
Are you sure you want to install the modules from 'https://www.powershellgalle ry.com/api/v2/'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"):

您可以使用 **Get-Module** 命令检查模块是否已安装。

PS C:\WINDOWS\system32> Get-Module -Name *vmware* -ListAvailable |
Select Name, Version

Name                         Version
----                         -------
VMware.CloudServices          12.0.0.15947289
VMware.DeployAutomation       7.0.0.15902843
VMware.DeployAutomation       6.5.1.5299608
VMware.ImageBuilder           7.0.0.15902843
VMware.ImageBuilder           6.5.1.5299608
vmware.powercli               12.0.0.15947286
VMware.Vim                    7.0.0.15939650
VMware.VimAutomation.Cis.Core 6.5.1.5374323
VMware.VimAutomation.Cloud    12.0.0.15940183
VMware.VimAutomation.Cloud    6.5.1.5375799
VMware.VimAutomation.Common   6.5.1.5335010

此方法的优点是,它还会安装依赖模块。

离线方法

在服务器没有网络连接的情况下,您需要从服务器或具有活动网络连接的桌面(从 PowerShell 库)离线下载软件包,并将软件包复制到离线服务器。

您可以从 PowerShell 库下载软件包 https://www.powershellgallery.com/,对于此示例,请搜索软件包“**Vmware.PowerCLI**”,如果软件包存在,您将获得软件包名称。

当您单击此软件包时,您将获得如下所示的 **手动下载选项卡**。

您下载的软件包将采用 **Nupkg** 格式(Nuget 软件包)。此软件包是 **ZIP** 格式文件,一些浏览器(如 Internet Explorer)会自动将其转换为 **ZIP**,但您也可以将其扩展名重命名为 **ZIP**。您也可以使用 **7-Zip** 直接将 **Nupkg** 内容提取到文件夹中。文件夹的内容如下所示。

上述文件/文件夹内容的说明。

  • **_rels 文件夹** - 包含列出依赖项的 .rels 文件。

  • **Package 文件夹** - 包含 NuGet 特定的数据。

  • **[Content_Types]** - 描述 NuGet 扩展文件如何与 PowerShellGet 一起使用。

  • **<name>.nuspec** - 包含大部分元数据

有关更多详细信息,请参阅 Microsoft 关于离线安装方法的文章。

https://docs.microsoft.com/en-us/powershell/scripting/gallery/how-to/working-withpackages/manual-download?view=powershell-7

解压缩文件夹后,文件夹名称将类似于 **<Modulename.Version>**,从该文件夹名称中删除版本,现在文件夹名称将变为模块名称。

根据上述文章,我们需要从文件夹中删除 Nuget 特定的元素,但我们可以直接将整个解压缩的文件夹复制/粘贴到 Powershell 模块路径。以下是 Powershell 的模块路径。

PS C:\WINDOWS\system32> $env:PSModulePath -split ';'
C:\Users\admin\Documents\WindowsPowerShell\Modules
C:\Program Files\WindowsPowerShell\Modules
C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules\
C:\Program Files\PoSHServer\modules\
C:\Windows\System32\WindowsPowerShell\v1.0\Modules

我们将在这里选择“**C:\Program Files\WindowsPowerShell\Modules**”模块文件夹并将解压缩的文件夹复制到那里。现在重新打开或打开一个新的 PowerShell 会话,并检查复制的新模块是否已正确加载,您会看到 **vmware.powercli** 模块。

PS C:\WINDOWS\system32> Get-Module -Name *vmware* -ListAvailable | Select
Name,Version
Name                            Version
----                            -------
VMware.CloudServices             12.0.0.15947289
VMware.DeployAutomation          7.0.0.15902843
VMware.DeployAutomation          6.5.1.5299608
VMware.ImageBuilder              7.0.0.15902843
VMware.ImageBuilder              6.5.1.5299608
vmware.powercli                  12.0.0.15947286
VMware.Vim                       7.0.0.15939650
VMware.VimAutomation.Cis.Core    6.5.1.5374323
VMware.VimAutomation.Cloud       12.0.0.15940183
VMware.VimAutomation.Cloud       6.5.1.5375799
VMware.VimAutomation.Common      6.5.1.5335010
VMware.VimAutomation.Core        6.5.1.5374329
VMware.VimAutomation.HA          6.0.0.5314477
VMware.VimAutomation.Hcx         12.0.0.15939647
VMware.VimAutomation.HorizonView 7.12.0.15718406
VMware.VimAutomation.HorizonView 7.1.0.5307191

此方法不会安装依赖模块。您需要根据需要下载依赖模块并单独安装它们。

更新于: 2020-12-18

733 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告