Update-Module

从联机库中下载指定模块的最新版本,并将其安装到本地计算机。

语法

Update-Module
      [[-Name] <String[]>]
      [-RequiredVersion <String>]
      [-MaximumVersion <String>]
      [-Credential <PSCredential>]
      [-Scope <String>]
      [-Proxy <Uri>]
      [-ProxyCredential <PSCredential>]
      [-Force]
      [-AllowPrerelease]
      [-AcceptLicense]
      [-PassThru]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

说明

cmdlet Update-Module 从联机库安装模块的最新版本。 系统会提示在安装更新之前确认更新。 汇报仅针对使用 Install-Module的本地计算机上安装的模块安装。 Update-Module 搜索 $env:PSModulePath 已安装的模块。

这是 Microsoft.PowerShell.PSResourceGet 中 cmdlet 的代理 Update-PSResource cmdlet。 有关详细信息,请参阅 Update-PSResource

示例

示例 1:更新所有模块

此示例将所有已安装的模块更新为联机库中的最新版本。

Update-Module

示例 2:按名称更新模块

此示例将特定模块更新为联机库中的最新版本。

Update-Module -Name SpeculationControl

Update-Module 使用 Name 参数更新特定模块 SpeculationControl

示例 3:查看 what-if Update-Module 运行

此示例执行一个 What-if 方案,以显示在运行 时 Update-Module 会发生什么情况。 命令未运行。

Update-Module -WhatIf

What if: Performing the operation "Update-Module" on target "Version '2.8.0' of module
  'Carbon', updating to version '2.8.1'".
What if: Performing the operation "Update-Module" on target "Version '1.0.10' of module
  'SpeculationControl', updating to version '1.0.14'".

Update-Module 使用 WhatIf 参数显示运行后 Update-Module 会发生什么情况。

示例 4:将模块更新到指定的版本

在此示例中,模块更新为特定版本。 版本必须存在于联机库中,否则会显示错误。

Update-Module -Name SpeculationControl -RequiredVersion 1.0.14

Update-Module 使用 Name 参数指定模块 SpeculationControlRequiredVersion 参数指定版本 1.0.14

示例 5:在不进行确认的情况下更新模块

此示例不请求确认将模块更新到联机库中的最新版本。 如果已安装模块, 则 Force 参数将重新安装模块。

Update-Module -Name SpeculationControl -Force

Update-Module 使用 Name 参数指定模块 SpeculationControlForce 参数在不请求用户确认的情况下更新模块。

参数

-AcceptLicense

如果包需要许可协议,请在安装期间自动接受许可协议。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AllowPrerelease

允许使用标记为预发行的较新的模块更新模块。

代理 cmdlet 将此参数映射到 的Update-PSResource预发布参数。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

在运行 Update-Module之前提示你进行确认。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

指定有权更新模块的用户帐户。

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Force

强制更新每个指定的模块,而不提示请求确认。 如果已安装模块, 则 Force 会重新安装该模块。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MaximumVersion

代理 cmdlet 使用此参数的值来创建 NuGet 版本搜索字符串,以便与 Update-PSResourceVersion 参数一起使用。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Name

指定要更新的一个或多个模块的名称。 Update-Module 搜索 $env:PSModulePath 要更新的模块。 如果在 中 $env:PSModulePath 找不到指定模块名称的匹配项,则会发生错误。

在模块名称中接受通配符。 如果将通配符添加到指定名称,并且找不到匹配项,则不会发生错误。

Type:String[]
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:True

-PassThru

返回一个代表你所处理的项目的对象。 默认情况下,此 cmdlet 将不产生任何输出。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Proxy

代理 cmdlet 会忽略此参数,因为它不受 支持 Update-PSResource

Type:Uri
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ProxyCredential

代理 cmdlet 会忽略此参数,因为它不受 支持 Update-PSResource

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-RequiredVersion

代理 cmdlet 使用此参数的值来创建 NuGet 版本搜索字符串,以便与 Update-PSResourceVersion 参数一起使用。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Scope

指定模块的安装范围。 此参数的可接受值为 AllUsersCurrentUser。 如果未指定 Scope ,则会在 CurrentUser 作用域中安装更新。

AllUsers 范围需要提升的权限,并在计算机所有用户都可以访问的位置安装模块:

$env:ProgramFiles\PowerShell\Modules

CurrentUser 不需要提升的权限,会在只有计算机的当前用户可访问的位置安装模块:

$HOME\Documents\PowerShell\Modules

如果未定义 作用域 ,则根据 PowerShellGet 版本设置默认值。

  • 在 PowerShellGet 2.0.0 及更高版本中,默认值为 CurrentUser,它不需要提升安装。
  • 在 PowerShellGet 1.x 版本中,默认值为 AllUsers,这需要提升安装。
Type:String
Accepted values:CurrentUser, AllUsers
Position:Named
Default value:CurrentUser
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

显示运行后 Update-Module 会发生什么情况。 cmdlet 未运行。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

输入

String[]

String

PSCredential

Uri

输出

Object

备注

PowerShell 包含以下别名 Update-Module

  • 所有平台:
    • upmo

对于 PowerShell 6.0 及更高版本,默认安装范围始终为 CurrentUserCurrentUser$HOME\Documents\PowerShell\Modules 的模块更新不需要提升的权限。 AllUsers$env:ProgramFiles\PowerShell\Modules 的模块更新需要提升的权限。

PowerShell 库不再支持传输层安全性 (TLS) 版本 1.0 和 1.1。 必须使用 TLS 1.2 或更高版本。 使用以下命令可以确定使用的是 TLS 1.2:

[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12

Update-Module 在 PowerShell 3.0 或更高版本的 PowerShell 上运行,在 Windows 7 或 Windows 2008 R2 及更高版本的 Windows 上运行。

如果使用 未安装Install-Module使用 Name 参数指定的模块,则会发生错误。

只能通过运行 Update-Module 在从联机库 Install-Module安装的模块上运行。

如果 Update-Module 尝试更新正在使用的二进制文件, Update-Module 则返回一个错误,用于识别问题进程。 停止进程后,系统会通知用户重试 Update-Module