查看 Windows PowerShell 中的 PowerShellGet 模块

已完成

PowerShellGet 模块包括用于访问和发布 PowerShell 库中的项的 cmdlet。 Windows Management Framework 5.0(包含在 Windows 10 和 Windows Server 2016 内)中已对本模块进行了介绍。 可以升级旧版 Windows 操作系统,以将 Windows Management Framework 5.0 或更高版本包含在内,从而获取 PowerShellGet 模块。 或者,如果无法更新到 Windows Management Framework 5.0,可以在具有 Windows PowerShell 4.0 的系统上使用用于 PowerShellGet 的 .msi 安装程序。

首次使用 PowerShellGet 模块中的 cmdlet 时,系统会提示你安装 NuGet 提供程序。 NuGet 是一个包管理器,可以在 Windows 上获取和安装包。 PowerShellGet 模块中的 cmdlet 使用 NuGet 中的功能与 PowerShell 库进行交互。

下表列出了用于在 PowerShell 库中查找内容的两个最常见 cmdlet。

表 1:用于在 PowerShell 库中查找内容的 Cmdlet

Cmdlet 说明
Find-Module 使用此 cmdlet 在 PowerShell 库中搜索 Windows PowerShell 模块。 最简单的用法是根据模块名进行搜索,但也可以根据命令名、版本、DscResource 和 RoleCapability 进行搜索。
Find-Script 使用此 cmdlet 在 PowerShell 库中搜索 Windows PowerShell 脚本。 最简单的用法是根据脚本名进行搜索,但也可以根据版本进行搜索。

补充阅读:还可以在 PowerShell 库中搜索模块和脚本。

TLS 1.2

PowerShell 库需要使用传输层安全性 (TLS) 1.2 来帮助保护通信。 默认情况下,Windows 10 和 Windows Server 2016 不支持在 Windows PowerShell 中使用 TLS 1.2。 因此,需要启用 TLS 1.2 才能下载 PowerShell 库内容。

若要为当前 PowerShell 提示启用 TLS 1.2,请运行以下命令:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 

若要在计算机上永久解决此问题,需要创建注册表项。 可以运行以下两个命令来创建必要的密钥:

Set-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NetFramework\v4.0.30319'-Name 'SchUseStrongCrypto' -Value '1' -Type DWord
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NetFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord

可以通过创建自己的 NuGet 源为组织实现专用 PowerShell 库。 可以使用文件共享或基于 Web 的应用程序创建 NuGet 源。 拥有专用 PowerShell 库以后,必须使用 Register-PSRepository cmdlet 并指定源位置才能注册 NuGet 源。 注册存储库后,用户可以进行搜索,就像 PowerShell 库一样。

补充阅读:有关创建 NuGet 源的详细信息,请参阅托管自己的 NuGet 源