在 PowerShell 中安装 NuGet 包
NuGet 是来自 .NET framework
的包管理工具,它类似于 PowerShellGet
,支持多个命令和包以与 PowerShell 一起使用的 MSI 包。
例如,我们可能需要 NuGet 来运行特定的脚本。但是,在 Windows PowerShell 中安装 NuGet 包时,我们可能会遇到错误。
本文将了解发生错误的原因以及安装适用于 PowerShell 的 NuGet 提供程序的分步指南。
了解 PowerShell 中的 NuGet 安装挑战
以管理员身份打开 PowerShell。运行命令 Install-Module PowerShellGet -Force
安装 NuGet 包。
当要求确认安装 NuGet 提供程序时,按 Y 键并按 Enter。
Install-Module PowerShellGet -Force
执行后,如果你在安装 NuGet 包时遇到了这些问题,我们可能需要做额外的步骤才能成功安装包。
- 警告:无法从 URI 下载。
- 警告:无法下载可用提供商列表。检查互联网连接。
- 找不到包提供程序
NuGet
。它可能尚未导入。
本文的下一部分将讨论正确安装 NuGet 包的分步过程。
查找 PowerShell 版本
我们必须首先找到系统上运行的 PowerShell 版本。
为此,我们可以使用 GetHost
cmdlet 或导出 $PSVersionTable
变量。
Get-Host | Select-Object Version
$PSVersionTable
输出:
Version
-------
5.1.22000.282
默认情况下,PowerShell 5.1 启用 SSL 和 TLS 以实现安全 HTTP 连接,我们需要在其中升级以安装 NuGet 包。
PowerShell 中的传输层安全协议
要检查系统上支持的安全协议,我们可以使用下面的代码片段。
[Net.ServicePointManager]::SecurityProtocol
输出:
Ssl3, Tls
默认定义的安全协议是 SSL 3.0 和 TLS 1.0。
不幸的是,这两种安全协议都已弃用。因此,在撰写本文时,仅批准了 TLS 1.2 和 TLS 1.3。
正确安装 NuGet 包的解决方法
我们将在系统上启用 TLS 1.2。运行这两个 cmdlet 以设置 .NET
框架强加密注册表项。
然后,重新启动 PowerShell 并检查是否添加了安全协议 TLS 1.2。安装 PowerShellGet 模块。
第一个 cmdlet 在 64 位 .Net
框架(版本 4 及更高版本)上设置强加密。
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NetFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord
第二个 cmdlet 在 32 位 .Net
框架(版本 4 及更高版本)上设置强加密。
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NetFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord
重新启动 PowerShell 并检查 TLS 版本现在是否已更新。
[Net.ServicePointManager]::SecurityProtocol
输出:
Tls, Tls11, Tls12
另一种解决方法是手动重新分配安全协议命令。
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
输出:
Tls12
安装 TLS 1.2 后,重新运行包安装程序,这一次应该可以完美运行。
Install-Module PowerShellGet -Force
相关文章
在 Windows PowerShell 中获取命令行参数
发布时间:2024/03/04 浏览次数:358 分类:编程语言
-
本文将解释我们如何使用 PowerShell 的参数函数处理命令行参数,参数如何工作,我们如何使用 PowerShell 参数将值传递给参数,以及定义参数的基本方法是什么。
Windows PowerShell 中的 Base64 编码
发布时间:2024/03/04 浏览次数:332 分类:编程语言
-
本文将展示如何编码和解码 base64 字符串。Windows PowerShell 当前版本没有本机命令,因此我们将向你展示如何执行此操作的替代方法。
在 Windows PowerShell 中写入输出
发布时间:2024/03/04 浏览次数:259 分类:编程语言
-
本文将向你展示如何在 Windows PowerShell 中编写或打印输出。本文还将区分多个 write cmdlet 并解释它们的意义。
在 Windows PowerShell 中设置 PATH 环境变量
发布时间:2024/03/04 浏览次数:350 分类:编程语言
-
本文将展示在 Windows PowerShell 中设置路径环境变量的正确方法。本文还展示了如何在持久性和非持久性方法中设置变量。
在 Windows PowerShell 中打印环境变量
发布时间:2024/03/04 浏览次数:869 分类:编程语言
-
本文将讨论什么是环境变量以及如何使用多个 Windows PowerShell 命令打印它们。
在 PowerShell 中注释代码
发布时间:2024/03/04 浏览次数:363 分类:编程语言
-
本文将展示在 Windows PowerShell 中注释代码的多种方法。本文还介绍了注释代码时的一些最佳实践。
在 PowerShell 中执行 LDAP 查询
发布时间:2024/03/04 浏览次数:304 分类:编程语言
-
本文将深入了解如何使用 Active Directory 过滤器和 LDAP 过滤器。