【Install-Module : 需要使用 NuGet 提供程序来与基于 NuGet 的存储库交互。请确保已安装 NuGet 提供程序“2.8.5.201”或更高版本。】
需要使用 NuGet 提供程序来与基于 NuGet 的存储库交互。请确保已安装 NuGet 提供程序“2.8.5.201”或更高版本。
需要使用 NuGet 提供程序来继续操作
需要使用 NuGet 提供程序“2.8.5.201”或更高版本来与基于 NuGet 的存储库交互。
必须在“C:Program FilesPackageManagementProviderAssemblies”或“C:UsersAdministratorAppDataLocalPackageManagementProviderAssemblies”中提供 NuGet 提供程序。
也可以通过运行 'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force' 安装NuGet 提供程序。是否要让 PowerShellGet 立即安装并导入 NuGet 提供程序?
powershell执行Install-Module命令报这个错时,一般是tls小于1.2导致的,一般在低版本系统比如2008R2、2012R2、2016上遇到。
主要用下面这句powershell命令检测,如果结果是True,代表满足≥tls1.2,如果是False,代表不满足
代码语言:javascript复制[System.Net.ServicePointManager]::SecurityProtocol.HasFlag([Net.SecurityProtocolType]::Tls12)
临时解决办法执行以下3选1命令,仅对当前窗口有效
代码语言:javascript复制[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12
代码语言:javascript复制Install-Module -Name DotNetVersionLister -Scope CurrentUser -Force
代码语言:javascript复制[System.Net.ServicePointManager]::SecurityProtocol.HasFlag([Net.SecurityProtocolType]::Tls12)
if(([System.Net.ServicePointManager]::SecurityProtocol.HasFlag([Net.SecurityProtocolType]::Tls12)) -eq $false){
[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12
}
[System.Net.ServicePointManager]::SecurityProtocol.HasFlag([Net.SecurityProtocolType]::Tls12)
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
如果不支持tls1.2,执行命令会卡在Downloading,支持的话,会执行完成到下一行
想永久对任何后面新打开的powershell窗口都生效的话,采用如下方案:
查看$PROFILE变量,我们搞全局设置,因此要选$PROFILE.AllUsersAllHosts(C:WindowsSystem32WindowsPowerShellv1.0profile.ps1)
代码语言:javascript复制$PROFILE | Get-Member -Type NoteProperty|ft -AutoSize
检查配置文件是否存
代码语言:javascript复制Test-Path -Path $PROFILE.AllUsersAllHosts
如果不存在则创建
代码语言:javascript复制Set-ExecutionPolicy Unrestricted -force
if (!(Test-Path -Path $PROFILE.AllUsersAllHosts)) {
New-Item -ItemType File -Path $PROFILE.AllUsersAllHosts -Force
}
创建后打开
代码语言:javascript复制notepad $PROFILE.AllUsersAllHosts
打开后添加这句命令并保存
代码语言:javascript复制[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
以上就设置好powershell配置文件级别的tls1.2了