安装或更新PowerShellGet
如何安装 PowerShellGet 和 PSResourceGet
先决条件
确保安装了高于 1.0.0.1 的 PowerShellGet 和 PackageManagement 版本。
最新的PowerShellGet稳定版本是 2.2.5
1 | PS>Find-Module -Name PowerShellGet -AllVersions |
最新的PackageManagement稳定版本是 1.4.8.1
1 | PS>Find-Module -Name packagemanagement |
如果运行 Windows PowerShell 5.1
和 PowerShellGet 1.0.0.1,则参考[update PowerShellGet for WindowsPowerShell5.1](#update PowerShellGet for WindowsPowerShell5.1)
若要访问 PowerShell 库,必须使用传输层安全性 (TLS) 1.2 或更高版本。 使用以下命令在 PowerShell 会话中启用 TLS 1.2。
1 | [Net.ServicePointManager]::SecurityProtocol = |
如果运行的是 PowerShell 6.0 或更高版本,则已安装较新版本的 PowerShellGet 和 PackageManagement 。 如有必要,可以升级到较新版本,也可以安装预览版。 应始终安装最新的稳定版本。
==使用以下命令查看已安装的版本==
1 | PS>Get-Module PowerShellGet, PackageManagement -ListAvailable |
安装最新的稳定版本
1 | Install-Module PowerShellGet -Force -AllowClobber |
安装 Microsoft.PowerShell.PSResourceGet
Microsoft.PowerShell.PSResourceGet 是 PowerShell 的新包管理解决方案。 使用此模块,不再需要使用 PowerShellGet 和 PackageManagement。 但是,它可以与现有的 PowerShellGet 模块并行安装。 若要与现有 PowerShellGet 版本并行安装 Microsoft.PowerShell.PSResourceGet,请打开任何 PowerShell 控制台并运行:
1 | Install-Module Microsoft.PowerShell.PSResourceGet -Repository PSGallery |
Microsoft.PowerShell.PSResourceGet 已预装 PowerShell 7.4 及更高版本。
update PowerShellGet for WindowsPowerShell5.1
Windows PowerShell 5.1
预安装了 1.0.0.1 版 PowerShellGet 和 PackageManagement。 此版本的 PowerShellGet 功能有限,必须更新才能使用 PowerShell 库。 若要获得支持,必须更新到最新版本。
先决条件
PowerShellGet 需要 .NET Framework 4.5 或更高版本。
若要访问 PowerShell 库,必须使用传输层安全性 (TLS) 1.2 或更高版本。 使用以下命令在 PowerShell 会话中启用 TLS 1.2。
1
2
3[Net.ServicePointManager]::SecurityProtocol =
[Net.ServicePointManager]::SecurityProtocol -bor
[Net.SecurityProtocolType]::Tls12将此命令添加到 PowerShell 配置文件脚本,以确保为每个 PowerShell 会话配置 TLS 1.2。
安装最新版本的 PowerShellGet
PowerShellGet 模块包含用于安装和更新模块的 cmdlet:
Install-Module
安装最新版(非预发行版)模块。Update-Module
如果模块版本比当前安装的模块更新,则安装最新的 (非预发行版) 版本。 但是,==仅当以前的版本是使用Install-Module
安装的,此 cmdlet 才有效==。
若要更新Windows预装的PowerShellGet
,必须使用 Install-Module
。 从 PowerShell 库安装新版本后,可使用 Update-Module
安装较新版本。
Windows PowerShell 5.1 附带了 PowerShellGet
版本 1.0.0.1,其中不包括 NuGet
提供程序。 使用 PowerShell 库时,PowerShellGet
需要该提供程序。
注意:必须以管理员身份运行安装过程
可通过以下两种方式:
使用
Install-PackageProvider
在安装其他模块之前安装NuGet
运行以下命令以安装 NuGet 提供程序。
1
Install-PackageProvider -Name NuGet -Force
安装提供程序后,应能够在 PowerShell 库中使用任何 PowerShellGet cmdlet。
让
Install-Module
提示你安装 NuGet 提供程序以下命令尝试在没有 NuGet 提供程序的情况下安装更新的 PowerShellGet 模块。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24Install-Module PowerShellGet -AllowClobber -Force
# 示例
PS>Install-Module PowerShellGet -AllowClobber -Force
PS>Get-Module PowerShellGet, PackageManagement -ListAvailable
目录: C:\Program Files\WindowsPowerShell\Modules
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Script 1.4.8.1 PackageManagement {Find-Package, Get-Package, Get-PackageProvider, Get-Packa...
Binary 1.0.0.1 PackageManagement {Find-Package, Get-Package, Get-PackageProvider, Get-Packa...
Script 2.2.5 PowerShellGet {Find-Command, Find-DSCResource, Find-Module, Find-RoleCap...
Script 1.0.0.1 PowerShellGet {Install-Module, Find-Module, Save-Module, Update-Module...}
PS>Get-PackageProvider
Name Version DynamicOptions
---- ------- --------------
msi 3.0.0.0 AdditionalArguments
msu 3.0.0.0
NuGet 3.0.0.1 Destination, ExcludeVersion, Scope, SkipDependencies, Headers, FilterOnTag, Contains, AllowPrerelea...
PowerShellGet 2.2.5.0 PackageManagementProvider, Type, Scope, AllowClobber, SkipPublisherCheck, InstallUpdate, NoPathUpda...
Programs 3.0.0.0 IncludeWindowsInstaller, IncludeSystemComponentInstall-Module
提示你安装 NuGet 提供程序。 键入 Y 以安装该提供程序。
安装 PowerShellGet 后
安装新版本的 PowerShellGet 后,应打开新的 PowerShell 会话。 使用 PowerShellGet cmdlet 时,PowerShell 会自动加载最新版本的模块。
我们还建议将 PowerShell 库注册为受信任的存储库。 请使用以下命令:
1 | Set-PSRepository -Name PSGallery -InstallationPolicy Trusted |