Update Module - PowerShell


Overview

Update-Module is a PowerShell command that checks for available updates for installed PowerShell modules and installs them if available. It enables users to maintain up-to-date modules, ensuring access to the latest features and security patches.

Syntax

Update-Module [-Name] <string[]> [-Repository <string[]>]
[-Force] [-WhatIf] [-Confirm] [-ThrottleLimit <int>] [-Credential <PSCredential>]
[-Verbose] [-Debug] [-ErrorAction <ActionPreference>]
[-ErrorVariable <string>] [-OutVariable <string>]
[-OutBuffer <bool>]

Options/Flags

  • -Name: Specifies the name(s) of the modules to update. Supports wildcards and accepts multiple values.
  • -Repository: Updates modules from the specified repository(ies). Supports multiple values.
  • -Force: Suppresses confirmation prompts and forces module installation.
  • -WhatIf: Performs a simulation of the command without actually updating any modules.
  • -Confirm: Prompts for confirmation before updating modules.
  • -ThrottleLimit: Sets the maximum number of concurrent module updates.
  • -Credential: Specifies the credentials to use when accessing a private repository.
  • -Verbose: Outputs detailed progress information during module update.
  • -Debug: Outputs diagnostic information, useful for troubleshooting.
  • -ErrorAction: Specifies the action to take when an error occurs.
  • -ErrorVariable: Stores the error object(s) in the specified variable for later handling.
  • -OutVariable: Stores the updated module objects in the specified variable.
  • -OutBuffer: Buffers all output to the specified variable, enabling its later retrieval in a single object.

Examples

Simple module update:

Update-Module -Name PSReadLine

Update multiple modules from a specific repository:

Update-Module -Name PSReadLine,PSSession -Repository PSGallery

Force installation without confirmation:

Update-Module -Name SomeModule -Force

Simulate command without updating:

Update-Module -WhatIf -Name SomeModule

Common Issues

  • “The specified module is not installed”: Ensure the module is installed before updating.
  • “Access denied”: Use -Credential to provide credentials when accessing private repositories.
  • “Update operation failed”: Check network connectivity and firewall settings. Re-run the command or contact the repository owner for assistance.

Integration

Combining with Install-Module:

Install-Module -Name ModuleA | Update-Module

Using with Script Blocks:

$modules = Get-Module -ListAvailable
Update-Module $modules | Where-Object { $_.Updated }
  • Get-Module: Lists installed PowerShell modules.
  • Install-Module: Installs new PowerShell modules.
  • Remove-Module: Uninstalls PowerShell modules.