我在不同的机器上有两种不同的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更新为最新的修订值。怎么做?
答案 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…}