安装PowerShell的包管理器

如果你运行的是 PowerShell 6.0 或更高版本,说明你已经安装了更新版 的 PowerShellGetPackageManagement 。 你应该确保你运行的是这些模块的最新版本。

如果你用的是PowerShell 7.4或更高版本,你还安装了 Microsoft.PowerShell.PSResourceGetMicrosoft.PowerShell.PSResourceGet 是 PowerShell 的新包管理解决方案。 有了这个模块,你就不需要再使用 PowerShellGetPackageManagement。 它是与现有 的PowerShellGetPackageManagement 模块并排安装的。

Windows PowerShell 自带 PowerShellGetPackageManagement 版本 1.0.0.1。 如果你运行的是 Windows PowerShell 5.1,必须升级到最新版本的 PowerShellGet 和 PackageManagement。 PowerShellGet v1.x 的所有版本均已不再支持。

请按照以下说明安装或更新到这些模块的最新版本。

步骤1:启用TLS 1.2

要访问PowerShell画廊,您必须使用传输层安全(TLS)1.2或更高版本。 请使用以下命令在你的PowerShell会话中启用TLS 1.2。

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

将此命令添加到你的PowerShell配置文件脚本中,确保每个PowerShell会话都配置TLS 1.2。 有关配置文件的详细信息,请参阅 about_Profiles

步骤2:检查已安装的版本

要检查当前安装的模块版本,请执行以下命令:

$Names = @('PowerShellGet', 'PackageManagement', 'Microsoft.PowerShell.PSResourceGet')
Get-Module -Name $Names -ListAvailable

在新安装的Windows系统上运行Windows PowerShell 5.1时,你应该会得到以下输出:

    Directory: C:\Program Files\WindowsPowerShell\Modules


ModuleType Version  Name               ExportedCommands
---------- -------  ----               ----------------
Binary     1.0.0.1  PackageManagement  {Find-Package, Get-Package, ...
Script     1.0.0.1  PowerShellGet      {Install-Module, Find-Module, ...

如果 PowerShellGet 版本比 1.0.0.1 它更新,你可以 检查更新安装最新版本

如果你仍在运行版本 1.0.0.1,必须按照步骤让 PowerShellGet 安装更新后的NuGet提供者和 nuget.exe 命令行工具。 继续执行下一步。

步骤3:检查更新

要检查PowerShell画廊中模块的最新版本,请执行以下命令:

$Names = @('PowerShellGet', 'PackageManagement', 'Microsoft.PowerShell.PSResourceGet')
Find-Module -Name $Names -Repository PSGallery

你应该得到类似以下结果的结果:

Version   Name                                Repository   Description
-------   ----                                ----------   -----------
1.4.8.1   PackageManagement                   PSGallery    PackageManagement (a.k.a. OneGet) is a n…
2.2.5     PowerShellGet                       PSGallery    PowerShell module with commands for disc…
1.1.1     Microsoft.PowerShell.PSResourceGet  PSGallery    PowerShell module with commands for disc…

步骤4:更新NuGet组件(如有需要)

PowerShellGet 命令要求更新后的 NuGet 提供者才能与 PowerShell 画廊协作。 这些 Publish-* 命令用于使用 nuget.exedotnet.exe 发布资源。 如果这两个工具都不可用,PowerShellGet 安装 nuget.exe。 如果你还在运行PowerShellGet版本1.0.0.1,它Find-Module会提示你安装NuGet提供者。 输入 Y 来安装该服务提供者。

NuGet provider is required to continue
PowerShellGet requires NuGet provider version '2.8.5.201' or newer to interact with NuGet
-based repositories. The NuGet provider must be available in 'C:\Program Files\PackageMan
agement\ProviderAssemblies' or 'C:\Users\user1\AppData\Local\PackageManagement\ProviderAs
semblies'. You can also install the NuGet provider by running 'Install-PackageProvider -N
ame NuGet -MinimumVersion 2.8.5.201 -Force'. Do you want PowerShellGet to install and imp
ort the NuGet provider now?
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): Y
VERBOSE: Installing NuGet provider.

当你回答 Y时,PowerShellGet会安装NuGet提供者和 nuget.exe 命令行工具(如有必要)。

步骤5:安装最新版本

要安装这些模块的最新版本,请执行以下作:

Install-Module PowerShellGet -Repository PSGallery -Force -AllowClobber
Install-Module Microsoft.PowerShell.PSResourceGet -Repository PSGallery

注释

安装 PowerShellGet时,它会自动安装最新版本 的PackageManagement