Skip to content

Get-ModulesWithUpdate

SYNOPSIS

Get a list of installed PowerShell modules that have updates available in their source repository.

SYNTAX

Get-ModulesWithUpdate [[-Name] <System.Collections.Generic.List`1[System.String]>] [-PassThru]
 [<CommonParameters>]

DESCRIPTION

This function retrieves a list of installed PowerShell modules and checks for updates available in their source repository (e.g.: PowerShell Gallery or MAR).

If a pre-release version is installed, it checks the repository for a newer pre-release version or an equivalent (or higher) stable version. Otherwise, it only checks for stable updates.

EXAMPLES

EXAMPLE 1

Get-ModulesWithUpdate
This command retrieves all installed PowerShell modules and checks for updates in their source repository.

EXAMPLE 2

Get-ModulesWithUpdate -PassThru
This command checks all installed modules for updates. It returns PSModuleInfo objects to the pipeline and displays
console output about available updates.

EXAMPLE 3

Get-ModulesWithUpdate -Name 'Pester', 'PSScriptAnalyzer' -PassThru | Update-PSResource
This command checks specific modules for updates, displays console output about available updates, and pipes the
results to Update-PSResource.

PARAMETERS

-Name

The module name or list of module names to check for updates. Wildcards and arrays are allowed. All modules ('*') are checked by default.

Type: System.Collections.Generic.List`1[System.String]
Parameter Sets: (All)
Aliases:

Required: False
Position: 1
Default value: @('*')
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: True

-PassThru

Display console output while returning module objects to the pipeline. When specified, the function will show available updates in the console and also return module objects for further processing.

Type: SwitchParameter
Parameter Sets: (All)
Aliases:

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

CommonParameters

This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -Verbose, -WarningAction, -WarningVariable, and -ProgressAction. For more information, see about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216).

INPUTS

OUTPUTS

System.Management.Automation.PSObject

NOTES

This function uses Microsoft.PowerShell.PSResourceGet cmdlets for improved performance and functionality over the PowerShellGet module's cmdlets. The required module will be automatically installed if not present.

Scope Priority: The function prioritizes CurrentUser scope modules over AllUsers scope modules, which matches PowerShell's own behavior for importing or updating modules. When a module is installed in both scopes, it checks for updates against the CurrentUser version since that's what PowerShell would load by default. Use -Verbose to see which version and scope is being used for each module.

To Do: - Batch and "paginate" online checks to speed up. Find-PSResource can return multiple results in one request. - Add parameter for specifying specific repositories to check.