将Powershell更新到最新版本

时间:2020-03-04 11:08:58

标签: powershell

我在不同的机器上有两种不同的Powershell版本。本地有以下之一:

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      17763  1007  

虚拟机具有以下内容:

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      17763  771

如您所见,除了“修订”值之外,它具有相同的“主要次要构建”值。我不确定它是否在命令失败之后:

    Register-PSRepository -Name $RepoKeyName -SourceLocation $RepoKeyValue -PublishLocation $RepoKeyValue -InstallationPolicy Trusted -Verbose

以上代码段在本地计算机上运行正常,但在vm计算机上运行不正常,并且在vm计算机上失败,出现以下错误:

parameter 'SourceLocation' is an invalid Web Uri. Please ensure that it meets the Web Uri requirements.

这就是为什么我要将vm机器中的powershell更新为最新的修订值。怎么做?

2 个答案:

答案 0 :(得分:2)

如果您有 Microsoft 的 winget 应用程序,您可以运行以下命令更新到最新版本的 PowerShell:

winget install PowerShell

答案 1 :(得分:0)

您永远不能按需更新 Windows PowerShell 安装(除了过去,如果您升级到新的 major 版本);版本是Windows更新的一部分。

相比之下,PowerShell [Core] 6+版本 可以按需更新-从v7.0开始,PowerShell [Core]不随Windows一起提供,需要手动安装

但是,您可以更新定义了Register-PSRepository命令的PowerShellGet module

虽然通常只运行Update-Module PowerShellGet,但从捆绑 PowerShellGet模块从{{ 3}}:

  • 打开一个提升的会话(以管理员身份运行)。

  • 执行以下操作(添加-Verbose以获取详细信息):

    Install-Module PowerShellGet -Force
    

-Force用于启用安装,即使已经安装了该名称的模块也是如此。您可能仍然会看到有关下载NuGet软件包提供程序的提示。

在最初切换到图库安装的版本后,您将可以使用
Update-Module PowerShellGet用于将来的版本。


您可以使用PowerShell Gallery cmdlet发现给定命令的来源模块;例如:

PS> (Get-Command Register-PSRepository).Module

ModuleType Version    PreRelease Name                                ExportedCommands
---------- -------    ---------- ----                                ----------------
Script     2.1.4                 PowerShellGet                       {Find-Command, Find-DscResource, Find-Module, Find-RoleCapability…}