About this documentation
This is the official documentation site for PackageUpdateInfo, a PowerShell module that helps you staying up to date with your installed modules by checking all locally installed PowerShell modules and reporting which ones need an update.
About the module
PackageUpdateInfo was born from a real-world need: keeping track of module updates across many installed PowerShell modules is tedious and easy to forget. This module bridges that gap by automatically checking all installed modules against the PowerShell Gallery and presenting a clear overview of available updates.
Key design principles:
- Cross-platform — supports Windows, Linux, and macOS
- Cross-edition compatibility — supports PowerShell Desktop (5.1+) and Core (7.x)
- Configurable — customize update check intervals, version sensitivity rules, and exclusions
- Pipeline-friendly — integrates naturally with PowerShell’s pipeline architecture
- Notification support — optional BurntToast desktop notifications on Windows
Resources
Contributing
Contributions are welcome. If you find issues, errors, or have suggestions for improvements, please open an issue or pull request on the GitHub repository.
1 - Overview
PackageUpdateInfo helps you keep installed PowerShell modules up to date. It compares
local module versions with versions from configured online repositories (for
example PSGallery) and reports when newer versions are available.
What does PackageUpdateInfo do?
The module can:
- Query locally installed modules.
- Discover current online versions.
- Compare versions with configurable sensitivity (major, minor, build, revision).
- Show rich output including repository, release notes, author, and project links.
- Export results for later import and fast startup workflows.
Why use PackageUpdateInfo?
Convenience
- Quickly identify outdated modules without manually checking each one.
- Export and import update information for offline or delayed review.
- Run update checks in background jobs.
- Use optional toast notifications on Windows.
Automation
- Schedule update checks using your profile, scheduled tasks, or startup routines.
- Enforce an update-check interval to reduce unnecessary repository queries.
- Keep custom rules per module pattern for update sensitivity.
- Reuse previously exported data for low-latency shell startup.
Flexibility
- Include or exclude module name patterns.
- Define rule scope and precedence with default and custom rules.
- Works on Windows, Linux, and macOS.
- Supports Windows PowerShell 5.1 and PowerShell 7+.
Prerequisites
- Windows PowerShell 5.1 or PowerShell 7+.
- PowerShellGet access to your target repository (for example PSGallery).
- Optional: BurntToast module for toast notifications on Windows.
Installation
Install for all users (requires administrative rights):
Install-Module PackageUpdateInfo
Install for the current user:
Install-Module PackageUpdateInfo -Scope CurrentUser
Quick start
Run an interactive check:
Get-PackageUpdateInfo
Show only modules that need an update:
Get-PackageUpdateInfo -ShowOnlyNeededUpdate
Force a check even if the configured update interval has not expired:
Get-PackageUpdateInfo -Force
Use toast notifications (Windows with BurntToast):
Get-PackageUpdateInfo -ShowToastNotification
Practical automation pattern
Export update data in a background job and import it on shell startup:
Start-Job -ScriptBlock { Get-PackageUpdateInfo -ShowOnlyNeededUpdate -ShowToastNotification | Export-PackageUpdateInfo } | Out-Null
Import-PackageUpdateInfo
This keeps startup interactive while still surfacing recent update information.
Next steps
- Continue with Operational best practices for tuning, rule design, and automation.
- Continue with Troubleshooting for common errors and recovery flows.
2 - Operational best practices
This page describes recommended operating patterns for PackageUpdateInfo in
interactive shells, profiles, and automation.
Start with default behavior
Reset settings before introducing custom tuning, especially on shared systems:
Set-PackageUpdateSetting -Reset
Inspect current configuration and rules:
Get-PackageUpdateSetting
Get-PackageUpdateRule -IncludeDefaultRule
Use update intervals to reduce noise
Get-PackageUpdateInfo respects UpdateCheckInterval. If the last effective
check is still within the configured interval, the cmdlet returns early.
Set an interval that matches your environment:
Set-PackageUpdateSetting -UpdateCheckInterval (New-TimeSpan -Hours 6)
Use -Force only for ad-hoc verification runs:
Get-PackageUpdateInfo -Force
Prefer non-blocking shell startup
A practical profile pattern is:
Start-Job -ScriptBlock {
Get-PackageUpdateInfo -ShowOnlyNeededUpdate | Export-PackageUpdateInfo
} | Out-Null
Import-PackageUpdateInfo
Why this works well:
- Startup remains fast because import reads cached data.
- The expensive online check runs in the background.
- You still get useful update visibility in each session.
Scope checks explicitly when needed
Use scope parameters when permissions differ between user and system modules:
Get-PackageUpdateInfo -CurrentUser
Get-PackageUpdateInfo -AllUsers
Use -Repository in environments with multiple configured repositories:
Get-PackageUpdateInfo -Repository PSGallery
Design rules carefully
Use broad excludes only when intentional. Excluding large patterns can hide
important updates.
Create focused custom rules for high-churn modules:
Add-PackageUpdateRule -IncludeModuleForChecking "Az.*" -ReportChangeOnMajor $true -ReportChangeOnMinor $true -ReportChangeOnBuild $false -ReportChangeOnRevision $false
Review rule precedence by listing all rules:
Get-PackageUpdateRule -IncludeDefaultRule | Sort-Object Id
Use export/import intentionally
Default export and import paths are platform-specific and include PowerShell
edition and major version in the filename. This helps avoid mixing data from
different runtimes.
Common export options:
Get-PackageUpdateInfo | Export-PackageUpdateInfo -OutputFormat XML
Get-PackageUpdateInfo | Export-PackageUpdateInfo -OutputFormat JSON
Get-PackageUpdateInfo | Export-PackageUpdateInfo -OutputFormat CSV
Recommended guidance:
- Use XML when you want to preserve typed objects for re-import.
- Use JSON or CSV for external reporting and integration.
- Use
-IncludeTimeStamp for historical tracking.
Keep notifications useful
Use toast notifications only where they add value:
- On Windows hosts with BurntToast installed.
- On sessions where interactive alerts are expected.
For servers, CI, and non-interactive shells, prefer exported reports over toast
notifications.
3 - Troubleshooting
Use this guide when PackageUpdateInfo does not return expected results, skips
checks, or fails to import and export data.
Get actionable diagnostics first
Run with verbose output:
Get-PackageUpdateInfo -Verbose
Validate settings and rules:
Get-PackageUpdateSetting
Get-PackageUpdateRule -IncludeDefaultRule
Check is skipped unexpectedly
Symptom:
- You see a warning that update checks are skipped because the check interval
is not expired.
Cause:
UpdateCheckInterval and recent LastCheck or LastSuccessfulCheck are
preventing a new online check.
Resolution:
Get-PackageUpdateInfo -Force
Or reduce the interval:
Set-PackageUpdateSetting -UpdateCheckInterval (New-TimeSpan -Minutes 30)
Configuration file is missing or corrupted
Symptom:
Get-PackageUpdateSetting warns that the module configuration file was not
found, then throws.
Cause:
- Configuration file path does not exist or contains invalid JSON.
Resolution:
Set-PackageUpdateSetting -Reset
Get-PackageUpdateSetting
No modules are returned
Symptom:
Get-PackageUpdateInfo returns nothing even though modules are installed.
Common causes:
- Include and exclude rules filter all modules.
-CurrentUser or -AllUsers filters out the modules you expect.- Repository filtering excludes the relevant modules.
Resolution steps:
Get-PackageUpdateRule -IncludeDefaultRule
Get-PackageUpdateInfo -Force
Get-PackageUpdateInfo -CurrentUser -Force
Get-PackageUpdateInfo -AllUsers -Force
Export fails with path errors
Symptom:
- Export reports invalid path or directory issues.
Cause:
-Path points to a directory or a non-existing location without -Force.
Resolution:
Get-PackageUpdateInfo | Export-PackageUpdateInfo -Path "$HOME\PackageUpdateInfo\updates.xml" -Force
Import returns no data
Symptom:
Import-PackageUpdateInfo returns nothing.
Common causes:
- The file is empty or too small to contain records.
-InputFormat does not match the exported format.- Wrong file path for current runtime and edition.
Resolution:
Import-PackageUpdateInfo -InputFormat XML -Verbose
Import-PackageUpdateInfo -Path "$HOME\PackageUpdateInfo\updates.json" -InputFormat JSON
Toast notifications do not appear
Symptom:
-ShowToastNotification is used, but no toast appears.
Common causes:
- BurntToast is not installed.
- Host platform does not support Windows toast notifications.
- No module in the result has
NeedUpdate = $true.
Resolution:
Install-Module BurntToast -Scope CurrentUser
Get-PackageUpdateInfo -ShowOnlyNeededUpdate -ShowToastNotification -Force
Rules cannot be added or modified
Symptom:
- Adding a rule fails with duplicate Id, include, or exclude values.
Cause:
- Existing custom rules already contain the same identifiers or patterns.
Resolution:
Get-PackageUpdateRule
Add-PackageUpdateRule -IncludeModuleForChecking "MyModule.*"
Set-PackageUpdateRule -Id 1 -ReportChangeOnRevision $false
Remove-PackageUpdateRule -Id 1
Repository and network issues
Symptom:
- Online version lookup fails or is incomplete.
Common causes:
- Repository is not registered or unreachable.
- Temporary network issues.
Resolution:
Get-PSRepository
Find-Module PackageUpdateInfo -Repository PSGallery
Get-PackageUpdateInfo -Repository PSGallery -Force
Recovery flow
If behavior remains inconsistent, use this reset sequence:
Set-PackageUpdateSetting -Reset
Get-PackageUpdateInfo -Force | Export-PackageUpdateInfo
Import-PackageUpdateInfo
4 - Module commands reference
Within here, you can find a reference for all commands in the module. This reference is designed to help you quickly find the command you need and understand how to use it effectively.
By clicking on a command, you will be taken to a detailed page that provides comprehensive information about the command, including its syntax, parameters, examples, and any additional notes or tips for usage.
4.1 - Add-PackageUpdateRule
SYNOPSIS
Adds a custom rule that controls how module updates are reported.
SYNTAX
__AllParameterSets
Add-PackageUpdateRule [[-Id] <int>] [[-IncludeModuleForChecking] <string[]>]
[[-ExcludeModuleFromChecking] <string[]>] [[-ReportChangeOnMajor] <bool>]
[[-ReportChangeOnMinor] <bool>] [[-ReportChangeOnBuild] <bool>] [[-ReportChangeOnRevision] <bool>]
[[-SettingObject] <Configuration>] [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]
ALIASES
This cmdlet has the following aliases,
DESCRIPTION
This command creates a custom update rule for the current PackageUpdateInfo configuration.
Each rule defines when an update should be considered relevant for reporting based on changes in the major, minor, build, or revision portion of a module version.
Rules can also scope reporting to specific modules by including or excluding module names, which makes it possible to suppress noisy revision-only updates or focus checks on selected modules.
If no settings object is provided, the command uses the current module configuration and stores the new rule there.
EXAMPLES
EXAMPLE 1
PS C:\> Add-PackageUpdateRule -IncludeModuleForChecking "MyModule" -ReportChangeOnMajor $true -ReportChangeOnMinor $true -ReportChangeOnBuild $true -ReportChangeOnRevision $false
Adds a rule that reports major, minor, and build updates for MyModule while suppressing revision-only changes.
EXAMPLE 2
PS C:\> Add-PackageUpdateRule -ExcludeModuleFromChecking "PowerShellGet","PSScriptAnalyzer" -ReportChangeOnRevision $false
Adds a rule that excludes two modules from update checking and suppresses revision updates for the remaining modules.
EXAMPLE 3
PS C:\> Add-PackageUpdateRule -Id 99 -IncludeModuleForChecking "MyModule" -PassThru
Adds a rule with a specific identifier and returns the created rule object.
EXAMPLE 4
PS C:\> $settings = Get-PackageUpdateSetting; Add-PackageUpdateRule -SettingObject $settings -ExcludeModuleFromChecking "MyModule"
Adds a rule to an existing settings object without using the default module configuration.
PARAMETERS
-Confirm
Prompts for confirmation before saving the new rule.
Type: SwitchParameter
DefaultValue: ''
SupportsWildcards: false
Aliases:
- cf
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-ExcludeModuleFromChecking
One or more module names that should be excluded from update checking by this rule.
Type: String[]
DefaultValue: ''
SupportsWildcards: false
Aliases:
- Exclude
- ExcludeModule
ParameterSets:
- Name: (All)
Position: 2
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-Id
The unique identifier for the rule.
Type: Int32
DefaultValue: 0
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: 0
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-IncludeModuleForChecking
One or more module names that should be included in update checking by this rule.
If omitted, the rule applies to all modules.
Type: String[]
DefaultValue: ''
SupportsWildcards: false
Aliases:
- Include
- IncludeModule
ParameterSets:
- Name: (All)
Position: 1
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-PassThru
Returns the created rule object from the pipeline.
Type: SwitchParameter
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-ReportChangeOnBuild
Indicates whether a change in the build version part should trigger an update report.
This means ‘Get-PackageUpdateSetting’ will report an update only when the build version of a module changes.
Major Minor Build Revision
0 0 1 0
Type: Boolean
DefaultValue: True
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: 5
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-ReportChangeOnMajor
Indicates whether a change in the major version part should trigger an update report.
This means ‘Get-PackageUpdateSetting’ will report an update only when the major version of a module changes.
Major Minor Build Revision
1 0 0 0
Type: Boolean
DefaultValue: True
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: 3
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-ReportChangeOnMinor
Indicates whether a change in the minor version part should trigger an update report.
This means ‘Get-PackageUpdateSetting’ will report an update only when the minor version of a module changes.
Major Minor Build Revision
0 1 0 0
Type: Boolean
DefaultValue: True
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: 4
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-ReportChangeOnRevision
Indicates whether a change in the revision version part should trigger an update report.
This means ‘Get-PackageUpdateSetting’ report update need, when the revision version of a module change.
Major Minor Build Revision
1 0 0 0
Type: Boolean
DefaultValue: True
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: 6
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-SettingObject
A settings object from Get-PackageUpdateSetting that should receive the new rule.
If omitted, the current module settings are used.
Type: Configuration
DefaultValue: ''
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: 7
IsRequired: false
ValueFromPipeline: true
ValueFromPipelineByPropertyName: true
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-WhatIf
Displays what would happen if the command were to run without changing any configuration.
Type: SwitchParameter
DefaultValue: ''
SupportsWildcards: false
Aliases:
- wi
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
CommonParameters
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable,
-InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable,
-ProgressAction, -Verbose, -WarningAction, and -WarningVariable. For more information, see
about_CommonParameters.
PackageUpdate.Configuration
OUTPUTS
PackageUpdate.ModuleRule
NOTES
Version : 1.1.0.0
Author : Andi Bellstedt
Date : 2026-06-21
Keywords : PackageUpdateInfo, Update, Module, Rule
4.2 - Export-PackageUpdateInfo
SYNOPSIS
Exports PackageUpdateInfo objects to an XML, JSON, or CSV file.
SYNTAX
__AllParameterSets
Export-PackageUpdateInfo [[-Path] <string>] -InputObject <Info[]> [-OutputFormat <string>]
[-Encoding <string>] [-Force] [-Append] [-IncludeTimeStamp] [-PassThru] [-WhatIf] [-Confirm]
[<CommonParameters>]
ALIASES
This cmdlet has the following aliases,
DESCRIPTION
Writes PackageUpdateInfo objects produced by Get-PackageUpdateInfo to a structured data file for persistence, reporting, or later automation.
The cmdlet supports XML, JSON, and CSV output formats, optional timestamping, and append mode for extending an existing file.
It also supports creating the target directory when needed and can pass the exported objects back through the pipeline.
EXAMPLES
EXAMPLE 1
PS C:\> Get-PackageUpdateInfo | Export-PackageUpdateInfo
Exports the current PackageUpdateInfo objects to the default XML file.
EXAMPLE 2
PS C:\> Get-PackageUpdateInfo | Export-PackageUpdateInfo -OutputFormat JSON -Path .\updates.json -IncludeTimeStamp -PassThru
Exports the data as JSON, includes a timestamp for each record, and passes the objects through the pipeline.
EXAMPLE 3
PS C:\> Get-PackageUpdateInfo | Export-PackageUpdateInfo -OutputFormat CSV -Path .\updates.csv -Append -Force
Appends the exported data to a CSV file and creates the target directory if it does not exist.
EXAMPLE 4
PS C:\> Get-PackageUpdateInfo | Export-PackageUpdateInfo -Path C:\Temp\PackageUpdateInfo.xml -Encoding utf8
Exports the current data to a custom XML file using UTF-8 encoding.
PARAMETERS
-Append
Adds exported information to an existing file instead of replacing its current contents.
This is supported for JSON and CSV output and is ignored for XML output.
Type: SwitchParameter
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-Confirm
If this switch is enabled, you will be prompted for confirmation before executing any operation that changes state.
Type: SwitchParameter
DefaultValue: ''
SupportsWildcards: false
Aliases:
- cf
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-Encoding
The file encoding to use when creating or updating the export file.
Type: String
DefaultValue: default
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-Force
Creates the parent directory for the target file when it does not already exist and the specified path is outside the default location.
Type: SwitchParameter
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-IncludeTimeStamp
Adds a TimeStamp property to each exported record so that the export captures the time of export for each entry.
Type: SwitchParameter
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
One or more PackageUpdateInfo objects to export.
This parameter accepts pipeline input from Get-PackageUpdateInfo and similar commands.
Type: Info[]
DefaultValue: ''
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: Named
IsRequired: true
ValueFromPipeline: true
ValueFromPipelineByPropertyName: true
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
The output format used for the export.
Supported values are “XML”, “JSON”, and “CSV”.
Type: String
DefaultValue: XML
SupportsWildcards: false
Aliases:
- Format
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-PassThru
Sends the exported objects to the pipeline after writing them to disk.
Type: SwitchParameter
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-Path
The destination file path for the exported data.
Specify a file path rather than a directory path.
Default path value is:
Linux: “$HOME/.config/powershell/PackageUpdateInfo/PackageUpdateInfo_$($PSEdition)$($PSVersionTable.PSVersion.Major).xml”)
Windows: “$HOME\AppData\Local\Microsoft\Windows\PowerShell\PackageUpdateInfo$($PSEdition)_$($PSVersionTable.PSVersion.Major).xml”
Type: String
DefaultValue: ''
SupportsWildcards: false
Aliases:
- FullName
- FilePath
ParameterSets:
- Name: (All)
Position: 0
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-WhatIf
If this switch is enabled, no actions are performed, but informational messages are displayed that explain what would happen if the command were to run.
Type: SwitchParameter
DefaultValue: ''
SupportsWildcards: false
Aliases:
- wi
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
CommonParameters
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable,
-InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable,
-ProgressAction, -Verbose, -WarningAction, and -WarningVariable. For more information, see
about_CommonParameters.
PackageUpdate.Info[]
OUTPUTS
PackageUpdate.Info
NOTES
Version : 1.1.0.0
Author : Andi Bellstedt
Date : 2026-06-21
Keywords : PackageUpdateInfo, Update, Module, Export
4.3 - Get-PackageUpdateInfo
SYNOPSIS
Retrieve update information for installed PowerShell modules and identify modules that have newer versions available online.
SYNTAX
DefaultSet1 (Default)
Get-PackageUpdateInfo [-Name <string[]>] [-Repository <string[]>] [-ShowOnlyNeededUpdate]
[-ShowToastNotification] [-Force] [<CommonParameters>]
CurrentUser
Get-PackageUpdateInfo [-Name <string[]>] [-Repository <string[]>] [-ShowOnlyNeededUpdate]
[-ShowToastNotification] [-CurrentUser] [-Force] [<CommonParameters>]
AllUsers
Get-PackageUpdateInfo [-Name <string[]>] [-Repository <string[]>] [-ShowOnlyNeededUpdate]
[-ShowToastNotification] [-AllUsers] [-Force] [<CommonParameters>]
ALIASES
This cmdlet has the following aliases,
DESCRIPTION
Get-PackageUpdateInfo inspects locally installed PowerShell modules, compares their installed versions
with the versions available in one or more configured repositories, and returns detailed update information.
The command can filter the results to modules that need updates, restrict the search to current-user or
all-users module paths, and optionally display Windows toast notifications when updates are available.
It also honors the module’s update-check rules and the configured update-check interval unless you explicitly
force a fresh check.
The checking is done via PowerShellGet v2 or v3, depending on the availability of the Microsoft.PowerShell.PSResourceGet module in the system.
EXAMPLES
EXAMPLE 1
PS C:\> Get-PackageUpdateInfo
Retrieves update information for all modules that are discovered from the configured include rules and available repositories.
The output shows the installed version, the latest online version, and whether an update is needed.
Output can look like:
Name Repository VersionInstalled VersionOnline NeedUpdate Path
PSReadline PSGallery 1.2 1.2 False C:\Program Files\WindowsPowerShell\Modules\PSReadline
Pester PSGallery 4.4.0 4.4.2 True C:\Program Files\WindowsPowerShell\Modules\Pester
EXAMPLE 2
PS C:\> Get-PackageUpdateInfo -ShowOnlyNeededUpdate
Returns only those modules where a newer version is available online, making it easier to focus on modules that actually need attention.
This will filter output to show only modules where NeedUpdate is True
Output can look like:
Name Repository VersionInstalled VersionOnline NeedUpdate Path
Pester PSGallery 4.4.0 4.4.2 True C:\Program Files\WindowsPowerShell\Modules\Pester
EXAMPLE 3
PS C:\> "Pester", "PSReadline" | Get-PackageUpdateInfo
Accepts module names from the pipeline and returns update information for each requested module. This also works with objects that expose a Name property, such as modules returned by Get-Module.
EXAMPLE 4
PS C:\> Get-PackageUpdateInfo -CurrentUser -ShowOnlyNeededUpdate
Checks only modules installed in the current user profile and displays only those modules that have a newer version available online.
PARAMETERS
-AllUsers
Restricts the search to modules installed in shared all-users or system module locations.
Keep in mind, that admin rights are required to update those modules.
Type: SwitchParameter
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: AllUsers
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-CurrentUser
Restricts the search to modules installed in the current user profile location.
This is helpful if you’re running without admin rights, which you should always do as your default work preference.
Type: SwitchParameter
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: CurrentUser
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-Force
Bypasses the configured update-check interval and performs a fresh comparison immediately.
Type: SwitchParameter
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-Name
One or more module names to inspect.
When this parameter is omitted, the function uses the configured include rules to determine which modules should be checked.
Type: String[]
DefaultValue: ''
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: true
ValueFromPipelineByPropertyName: true
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-Repository
One or more PowerShell repositories to query for available module versions.
If omitted, the command uses the repositories available on the local system.
Type: String[]
DefaultValue: ''
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-ShowOnlyNeededUpdate
Suppresses modules that are already up to date from the output and returns only modules where an update is available.
Type: SwitchParameter
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-ShowToastNotification
Displays Windows toast notifications for modules that have updates available when the system supports this feature.
Type: SwitchParameter
DefaultValue: False
SupportsWildcards: false
Aliases:
- ToastNotification
- Notify
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
CommonParameters
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable,
-InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable,
-ProgressAction, -Verbose, -WarningAction, and -WarningVariable. For more information, see
about_CommonParameters.
System.String[]
OUTPUTS
PackageUpdate.Info
NOTES
Version : 1.2.0.0
Author : Andi Bellstedt
Date : 2026-06-21
Keywords : PackageUpdateInfo, Update, Module
4.4 - Get-PackageUpdateRule
SYNOPSIS
Retrieve one or more package update rules used to control module update checks and reporting.
SYNTAX
ShowAll (Default)
Get-PackageUpdateRule [-IncludeModuleForChecking <string>] [-ExcludeModuleFromChecking <string>]
[-IncludeDefaultRule] [-SettingObject <Configuration>] [<CommonParameters>]
ById
Get-PackageUpdateRule -Id <int[]> [-SettingObject <Configuration>] [<CommonParameters>]
ALIASES
This cmdlet has the following aliases,
DESCRIPTION
Retrieves the custom rules that define how modules are handled during update checks and reporting.
You can filter rules by identifier, by module inclusion or exclusion patterns, or include the default rule
from the active settings object to compare custom behavior with the built-in fallback behavior.
EXAMPLES
EXAMPLE 1
PS C:\> Get-PackageUpdateRule
Retrieve all custom rules currently configured for package update handling.
EXAMPLE 2
PS C:\> Get-PackageUpdateRule -Id 1, 2
Retrieve the custom rules that have the specified identifiers.
EXAMPLE 3
PS C:\> Get-PackageUpdateRule -ExcludeModuleFromChecking 'Pester'
Retrieve the custom rules that exclude Pester from update checking.
EXAMPLE 4
PS C:\> Get-PackageUpdateRule -IncludeModuleForChecking 'PackageManagement' -IncludeDefaultRule
Retrieve the custom rules that include PackageManagement for update checking and also return the default rule.
PARAMETERS
-ExcludeModuleFromChecking
Filters the returned rules to those that exclude the specified module name from update checking.
Type: String
DefaultValue: ''
SupportsWildcards: false
Aliases:
- Exclude
- ExcludeModule
ParameterSets:
- Name: ShowAll
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-Id
Specifies one or more rule identifiers to retrieve.
Type: Int32[]
DefaultValue: ''
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: ById
Position: Named
IsRequired: true
ValueFromPipeline: true
ValueFromPipelineByPropertyName: true
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-IncludeDefaultRule
Adds the default rule from the supplied or active settings object to the output in addition to any custom rules.
Type: SwitchParameter
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: ShowAll
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-IncludeModuleForChecking
Filters the returned rules to those that include the specified module name for update checking.
By default, all modules are included when no filter is supplied.
Default value is: “*”
Type: String
DefaultValue: ''
SupportsWildcards: false
Aliases:
- Include
- IncludeModule
ParameterSets:
- Name: ShowAll
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-SettingObject
Specifies a settings object returned by Get-PackageUpdateSetting.
If this parameter is omitted, the command uses the current module settings object.
Type: Configuration
DefaultValue: ''
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: true
ValueFromPipelineByPropertyName: true
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
CommonParameters
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable,
-InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable,
-ProgressAction, -Verbose, -WarningAction, and -WarningVariable. For more information, see
about_CommonParameters.
System.Int32[]
PackageUpdate.Configuration
OUTPUTS
PackageUpdate.ModuleRule
NOTES
Version : 1.1.0.0
Author : Andi Bellstedt
Date : 2026-06-21
Keywords : PackageUpdateInfo, Update, Module, Rule
4.5 - Get-PackageUpdateSetting
SYNOPSIS
Retrieves the PackageUpdateInfo configuration from the module settings file.
SYNTAX
__AllParameterSets
Get-PackageUpdateSetting [[-Path] <string>] [<CommonParameters>]
ALIASES
This cmdlet has the following aliases,
DESCRIPTION
Reads the PackageUpdateInfo configuration file and returns the current module behavior settings as a PackageUpdate.Configuration object.
The returned object includes the default and custom update rules, the update check interval, and the timestamps of the last and last successful checks.
EXAMPLES
EXAMPLE 1
PS C:\> Get-PackageUpdateSetting
Retrieves the current PackageUpdateInfo settings from the default configuration file.
EXAMPLE 2
PS C:\> Get-PackageUpdateSetting -Path "C:\temp\PackageUpdateInfo.json"
Reads the PackageUpdateInfo configuration from a specific settings file.
EXAMPLE 3
PS C:\> Get-PackageUpdateSetting | Select-Object -ExpandProperty UpdateCheckInterval
Returns the configured update check interval from the current settings.
PARAMETERS
-Path
The full path to the settings file to read.
This parameter is optional.
If it is omitted, the function uses the default module settings path:
Linux: “$HOME/.config/powershell/PackageUpdateInfo/PackageUpdateInfo_$($PSEdition)$($PSVersionTable.PSVersion.Major).json”
Windows: “$HOME\AppData\Local\Microsoft\Windows\PowerShell\PackageUpdateInfo$($PSEdition)_$($PSVersionTable.PSVersion.Major).json”
Type: String
DefaultValue: $script:ModuleSettingPath
SupportsWildcards: false
Aliases:
- FullName
- FilePath
ParameterSets:
- Name: (All)
Position: 0
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
CommonParameters
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable,
-InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable,
-ProgressAction, -Verbose, -WarningAction, and -WarningVariable. For more information, see
about_CommonParameters.
OUTPUTS
PackageUpdate.Configuration
NOTES
Version : 1.1.0.0
Author : Andi Bellstedt
Date : 2026-06-21
Keywords : PackageUpdateInfo, Update, Module, Setting
4.6 - Import-PackageUpdateInfo
SYNOPSIS
Imports package update information from a previously exported data file.
SYNTAX
__AllParameterSets
Import-PackageUpdateInfo [[-Path] <string>] [-ShowToastNotification] [-InputFormat <string>]
[-Encoding <string>] [-WhatIf] [-Confirm] [<CommonParameters>]
ALIASES
This cmdlet has the following aliases,
DESCRIPTION
Imports package update information from a data file that was previously exported by Export-PackageUpdateInfo.
The command reads records from XML, JSON, or CSV files and converts them into PackageUpdateInfo objects for further use,
display, or processing.
When requested, it can also show Windows toast notifications for modules that require an update.
EXAMPLES
EXAMPLE 1
PS C:\> Import-PackageUpdateInfo
Imports the default package update information file for the current PowerShell environment.
EXAMPLE 2
PS C:\> Import-PackageUpdateInfo -Path C:\temp\packageupdateinfo.xml
Imports update information from a specific XML file.
EXAMPLE 3
PS C:\> Import-PackageUpdateInfo -Path .\updates.json -InputFormat JSON
Imports update information from a JSON file that uses the specified input format.
EXAMPLE 4
PS C:\> Import-PackageUpdateInfo -Path .\updates.csv -InputFormat CSV -ShowToastNotification
Imports update information from a CSV file and displays toast notifications for modules that need updates.
PARAMETERS
-Confirm
If this switch is enabled, you will be prompted for confirmation before executing any operations that change state.
Type: SwitchParameter
DefaultValue: ''
SupportsWildcards: false
Aliases:
- cf
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-Encoding
Specifies the file encoding used when reading the input file.
Type: String
DefaultValue: default
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
Specifies the format of the imported data file.
Supported values are “XML”, “JSON”, and “CSV”.
Type: String
DefaultValue: XML
SupportsWildcards: false
Aliases:
- Format
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-Path
The file path to the data file to import.
Specify a valid file path.
If omitted, the command uses the default module data file for the current PowerShell edition and version.
Default paths are:
Linux: “$HOME/.config/powershell/PackageUpdateInfo/PackageUpdateInfo_$($PSEdition)$($PSVersionTable.PSVersion.Major).xml”
Windows: “$HOME\AppData\Local\Microsoft\Windows\PowerShell\PackageUpdateInfo$($PSEdition)_$($PSVersionTable.PSVersion.Major).xml”
Type: String
DefaultValue: ''
SupportsWildcards: false
Aliases:
- FullName
- FilePath
ParameterSets:
- Name: (All)
Position: 0
IsRequired: false
ValueFromPipeline: true
ValueFromPipelineByPropertyName: true
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-ShowToastNotification
Displays Windows toast notifications with release-note information for modules that require an update.
Type: SwitchParameter
DefaultValue: False
SupportsWildcards: false
Aliases:
- ToastNotification
- Notify
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-WhatIf
If this switch is enabled, no actions are performed but informational messages will be displayed that explain what would happen if the command were to run.
Type: SwitchParameter
DefaultValue: ''
SupportsWildcards: false
Aliases:
- wi
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
CommonParameters
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable,
-InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable,
-ProgressAction, -Verbose, -WarningAction, and -WarningVariable. For more information, see
about_CommonParameters.
System.String
OUTPUTS
PackageUpdate.Info
NOTES
Version : 1.1.0.0
Author : Andi Bellstedt
Date : 2026-06-21
Keywords : PackageUpdateInfo, Update, Module, Info
4.7 - Remove-PackageUpdateRule
SYNOPSIS
Removes one or more custom update-handling rules from the package update configuration.
SYNTAX
ById (Default)
Remove-PackageUpdateRule -Id <int[]> [-Force] [-PassThru] [-SettingObject <Configuration>] [-WhatIf]
[-Confirm] [<CommonParameters>]
Remove-PackageUpdateRule -InputObject <ModuleRule[]> [-Force] [-PassThru]
[-SettingObject <Configuration>] [-WhatIf] [-Confirm] [<CommonParameters>]
ALIASES
This cmdlet has the following aliases,
DESCRIPTION
Removes existing custom rules that define how specific PowerShell modules should be handled during update checks and reporting.
The command can remove rules by rule Id, by piping in rule objects from Get-PackageUpdateRule,
or by updating a settings object that contains the rule collection.
When rules are removed, the updated configuration is written back to the settings file so the change persists.
Use -PassThru to return the removed rule objects to the pipeline.
EXAMPLES
EXAMPLE 1
PS C:\> Get-PackageUpdateRule | Remove-PackageUpdateRule
Removes all custom update rules from the current module settings.
EXAMPLE 2
PS C:\> Remove-PackageUpdateRule -Id 12
Removes the custom rule with Id 12 from the current configuration.
EXAMPLE 3
$rules = Get-PackageUpdateRule -Name "Microsoft.PowerShell.Utility"
PS C:\> $rules | Remove-PackageUpdateRule -PassThru
Removes the matching rules and returns the removed rule objects to the pipeline.
EXAMPLE 4
$settings = Get-PackageUpdateSetting
PS C:\> Remove-PackageUpdateRule -Id 3 -SettingObject $settings -Force
Removes a specific rule without prompting and writes the updated settings back to disk.
PARAMETERS
-Confirm
If this switch is enabled, you will be prompted for confirmation before executing any operations that change state.
Type: SwitchParameter
DefaultValue: ''
SupportsWildcards: false
Aliases:
- cf
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-Force
Suppresses the confirmation prompt and removes the rule immediately.
Type: SwitchParameter
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-Id
The Id of the rule to remove.
Accepts one or more rule identifiers.
Type: Int32[]
DefaultValue: ''
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: ById
Position: Named
IsRequired: true
ValueFromPipeline: true
ValueFromPipelineByPropertyName: true
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
One or more rule objects to remove.
These are typically returned by Get-PackageUpdateRule.
Type: ModuleRule[]
DefaultValue: ''
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: ByInputObject
Position: Named
IsRequired: true
ValueFromPipeline: true
ValueFromPipelineByPropertyName: true
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-PassThru
Returns the removed rule object(s) to the pipeline for further processing.
Type: SwitchParameter
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-SettingObject
The configuration object that contains the rule collection.
If this parameter is not supplied, the command uses the current module settings from Get-PackageUpdateSetting.
Type: Configuration
DefaultValue: ''
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: true
ValueFromPipelineByPropertyName: true
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-WhatIf
If this switch is enabled, no actions are performed but informational messages will be displayed that explain what would happen if the command were to run.
Type: SwitchParameter
DefaultValue: ''
SupportsWildcards: false
Aliases:
- wi
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
CommonParameters
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable,
-InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable,
-ProgressAction, -Verbose, -WarningAction, and -WarningVariable. For more information, see
about_CommonParameters.
System.Int32[]
PackageUpdate.ModuleRule[]
PackageUpdate.Configuration
OUTPUTS
PackageUpdate.ModuleRule
NOTES
Version : 1.1.0.0
Author : Andi Bellstedt
Date : 2026-06-21
Keywords : PackageUpdateInfo, Update, Module, Rule
4.8 - Set-PackageUpdateRule
SYNOPSIS
Updates an existing PackageUpdateInfo rule that controls how module version changes are reported.
SYNTAX
ById (Default)
Set-PackageUpdateRule -Id <int> [-IncludeModuleForChecking <string[]>]
[-ExcludeModuleFromChecking <string[]>] [-ReportChangeOnMajor <bool>] [-ReportChangeOnMinor <bool>]
[-ReportChangeOnBuild <bool>] [-ReportChangeOnRevision <bool>] [-SettingObject <Configuration>]
[-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]
Set-PackageUpdateRule -InputObject <ModuleRule[]> [-IncludeModuleForChecking <string[]>]
[-ExcludeModuleFromChecking <string[]>] [-ReportChangeOnMajor <bool>] [-ReportChangeOnMinor <bool>]
[-ReportChangeOnBuild <bool>] [-ReportChangeOnRevision <bool>] [-SettingObject <Configuration>]
[-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]
ALIASES
This cmdlet has the following aliases,
DESCRIPTION
This cmdlet modifies an existing update rule stored in the PackageUpdateInfo configuration so that update checks can be narrowed or expanded for specific modules.
You can use it to include or exclude modules from update detection, control which version parts trigger an update report, and persist those rule changes back to the active settings file.
The command works with a rule identified by Id or with a rule object supplied through InputObject, and it can return the updated rule when -PassThru is specified.
EXAMPLES
EXAMPLE 1
PS C:\> Set-PackageUpdateRule -Id 3 -IncludeModuleForChecking 'MyModule' -ReportChangeOnMajor $true -ReportChangeOnMinor $true -ReportChangeOnBuild $true -ReportChangeOnRevision $false -PassThru
Updates rule 3 so that MyModule is evaluated explicitly and only major, minor, and build changes are reported as update needs.
EXAMPLE 2
PS C:\> Get-PackageUpdateRule -Id 7 | Set-PackageUpdateRule -ExcludeModuleFromChecking 'AzureTools' -ReportChangeOnRevision $false
Takes the rule with Id 7 from the pipeline and suppresses revision-based update reporting for AzureTools while keeping the rule stored in the current settings.
EXAMPLE 3
$rule = Get-PackageUpdateRule -Id 12
PS C:\> Set-PackageUpdateRule -InputObject $rule -IncludeModuleForChecking 'PowershellGet','PSReadLine' -ReportChangeOnMinor $false -ReportChangeOnBuild $false
Loads an existing rule object, expands the included modules, and updates the rule so that only major and revision changes are treated as actionable updates.
EXAMPLE 4
PS C:\> Set-PackageUpdateRule -Id 5 -ReportChangeOnMajor $false -ReportChangeOnMinor $false -ReportChangeOnBuild $false -ReportChangeOnRevision $true -WhatIf
Shows the effect of changing rule 5 to report only revision-based updates without actually writing the change to disk.
PARAMETERS
-Confirm
Prompts for confirmation before the cmdlet writes changed rule data back to the settings file.
Type: SwitchParameter
DefaultValue: ''
SupportsWildcards: false
Aliases:
- cf
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-ExcludeModuleFromChecking
One or more module names that should be excluded from update checks for the rule being changed.
Type: String[]
DefaultValue: ''
SupportsWildcards: false
Aliases:
- Exclude
- ExcludeModule
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-Id
The numeric identifier of the rule to modify.
Type: Int32
DefaultValue: 0
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: ById
Position: Named
IsRequired: true
ValueFromPipeline: true
ValueFromPipelineByPropertyName: true
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-IncludeModuleForChecking
One or more module names that should be included in update checks for the rule being changed.
When omitted, the rule keeps the default behavior of evaluating all modules.
Type: String[]
DefaultValue: ''
SupportsWildcards: false
Aliases:
- Include
- IncludeModule
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
The rule object to update.
This is useful when you already have a rule from Get-PackageUpdateRule and want to change it without referring to its Id.
Type: ModuleRule[]
DefaultValue: ''
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: ByInputObject
Position: Named
IsRequired: true
ValueFromPipeline: true
ValueFromPipelineByPropertyName: true
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-PassThru
Returns the updated rule object to the pipeline after the change has been written to the settings file.
Type: SwitchParameter
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-ReportChangeOnBuild
Controls whether a change in the build version part causes the rule to report that an update is needed.
Report when build version changed for a module
This means ‘Get-PackageUpdateSetting’ report update need,
only when the build version version of a module change.
Major Minor Build Revision
0 0 1 0
Type: Boolean
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-ReportChangeOnMajor
Controls whether a change in the major version part causes the rule to report that an update is needed.
Report when major version changed for a module
This means ‘Get-PackageUpdateSetting’ report update need,
only when the major version version of a module change.
Major Minor Build Revision
1 0 0 0
Type: Boolean
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-ReportChangeOnMinor
Controls whether a change in the minor version part causes the rule to report that an update is needed.
Report when minor version changed for a module
This means ‘Get-PackageUpdateSetting’ report update need,
only when the minor version version of a module change.
Major Minor Build Revision
0 1 0 0
Type: Boolean
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-ReportChangeOnRevision
Controls whether a change in the revision version part causes the rule to report that an update is needed.
Report when revision part changed for a module
This means ‘Get-PackageUpdateSetting’ report update need,
only when the revision version version of a module change.
Major Minor Build Revision
0 0 0 1
Type: Boolean
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-SettingObject
The PackageUpdateInfo configuration object to update.
When omitted, the cmdlet uses the current module settings from Get-PackageUpdateSetting.
Type: Configuration
DefaultValue: ''
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: true
ValueFromPipelineByPropertyName: true
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-WhatIf
Shows what would happen if the command were to run without applying any changes.
Type: SwitchParameter
DefaultValue: ''
SupportsWildcards: false
Aliases:
- wi
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
CommonParameters
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable,
-InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable,
-ProgressAction, -Verbose, -WarningAction, and -WarningVariable. For more information, see
about_CommonParameters.
System.Int32
PackageUpdate.ModuleRule[]
PackageUpdate.Configuration
OUTPUTS
PackageUpdate.ModuleRule
NOTES
Version : 1.1.0.0
Author : Andi Bellstedt
Date : 2026-06-21
Keywords : PackageUpdateInfo, Update, Module, Rule
4.9 - Set-PackageUpdateSetting
SYNOPSIS
Configures update-check behavior and reporting preferences for PackageUpdateInfo.
SYNTAX
SetBehaviour
Set-PackageUpdateSetting [-ExcludeModuleFromChecking <string[]>]
[-IncludeModuleForChecking <string[]>] [-ReportChangeOnMajor <bool>] [-ReportChangeOnMinor <bool>]
[-ReportChangeOnBuild <bool>] [-ReportChangeOnRevision <bool>] [-UpdateCheckInterval <timespan>]
[-LastCheck <datetime>] [-LastSuccessfulCheck <datetime>] [-InputObject <Configuration>]
[-Path <string>] [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]
ResetBehaviour
Set-PackageUpdateSetting [-Reset] [-Path <string>] [-PassThru] [-WhatIf] [-Confirm]
[<CommonParameters>]
ALIASES
This cmdlet has the following aliases,
DESCRIPTION
Configures how PackageUpdateInfo evaluates installed PowerShell modules for available updates.
Use this command to control which modules are included in or excluded from update checks,
decide which version changes should trigger update notifications, define how often update checks are performed,
and reset the stored settings to their defaults.
The configuration is persisted to a JSON settings file and can be applied either directly or by passing an existing configuration object.
EXAMPLES
EXAMPLE 1
PS C:\> Set-PackageUpdateSetting -ExcludeModuleFromChecking "MyLocalOnlyModule"
Put the module “MyLocalOnlyModule” on the exclude list for update checking.
By design, this should be considered only for modules not available in a online gallery.
This capability is designed to avoid unnecessary update checks, for modules not existing in a online gallery.
You’ll not get any update information for module ‘MyLocalOnlyModule’ anymore!
If you have worries/issues on performance, due to a large number of modules installed, you better follow the practice to put the ‘checking mechansim’ in you PSProfile as a job routine every time you start a shell.
Doing so is described in the ‘practical-usage’ on the github project page:
https://github.com/AndiBellstedt/PackageUpdateInfo#practical-usage
EXAMPLE 2
PS C:\> Set-PackageUpdateSetting -ExcludeModuleFromChecking "Az.*"
Put all Az. modules on the exclude list for update checking.
This should be considered as a bad practice, because you’ll not get any update information for all Az. modules anymore.
(and they might change quite often)
If you have worries/issues on performance, due to a large number of modules installed, you better follow the practice to put the ‘checking mechansim’ in you PSProfile as a job routine every time you start a shell.
Doing so is described in the ‘practical-usage’ on the github project page:
https://github.com/AndiBellstedt/PackageUpdateInfo#practical-usage
EXAMPLE 3
PS C:\> Set-PackageUpdateSetting -IncludeModuleForChecking "*" -ReportChangeOnMajor $true -ReportChangeOnMinor $true -ReportChangeOnBuild $true -ReportChangeOnRevision $true -UpdateCheckInterval "01:00:00"
Restores the default update-check behavior and notification thresholds while keeping the configured update interval at one hour.
EXAMPLE 4
PS C:\> Set-PackageUpdateSetting -Reset
Resets the package update settings to the built-in defaults.
EXAMPLE 5
PS C:\> Get-PackageUpdateSetting | Set-PackageUpdateSetting -PassThru
Updates the current configuration object in memory and returns it to the pipeline for further processing.
PARAMETERS
-Confirm
Prompts for confirmation before executing any operation that changes state.
Type: SwitchParameter
DefaultValue: ''
SupportsWildcards: false
Aliases:
- cf
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-ExcludeModuleFromChecking
The names of modules to exclude from update checking in the default rule.
Type: String[]
DefaultValue: ''
SupportsWildcards: false
Aliases:
- Exclude
- ExcludeModule
ParameterSets:
- Name: SetBehaviour
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-IncludeModuleForChecking
The names of modules to include in update checking in the default rule.
By default, all modules are included.
Default value is: “*”
Type: String[]
DefaultValue: ''
SupportsWildcards: false
Aliases:
- Include
- IncludeModule
ParameterSets:
- Name: SetBehaviour
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
A configuration object returned by Get-PackageUpdateSetting that should be updated in place.
Type: Configuration
DefaultValue: ''
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: SetBehaviour
Position: Named
IsRequired: false
ValueFromPipeline: true
ValueFromPipelineByPropertyName: true
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-LastCheck
The timestamp when the last update-check cycle for modules started.
Type: DateTime
DefaultValue: ''
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: SetBehaviour
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-LastSuccessfulCheck
The timestamp when the last update-check cycle completed successfully.
Type: DateTime
DefaultValue: ''
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: SetBehaviour
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-PassThru
Returns the updated settings object to the pipeline for further processing.
Type: SwitchParameter
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-Path
The full path to the settings file that should be read from or written to.
If this parameter is omitted, the command uses the module’s default settings path:
Linux: “$HOME/.config/powershell/PackageUpdateInfo/PackageUpdateSetting_$($PSEdition)$($PSVersionTable.PSVersion.Major).json”
Windows: “$HOME\AppData\Local\Microsoft\Windows\PowerShell\PackageUpdateSetting$($PSEdition)_$($PSVersionTable.PSVersion.Major).json”
Type: String
DefaultValue: ''
SupportsWildcards: false
Aliases:
- FullName
- FilePath
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-ReportChangeOnBuild
Indicates whether a change in the build version of a module should trigger an update notification in the default rule.
This means Get-PackageUpdateSetting reports an update need only when the build version number of a module changes.
Major Minor Build Revision
0 0 1 0
Type: Boolean
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: SetBehaviour
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-ReportChangeOnMajor
Indicates whether a change in the major version of a module should trigger an update notification in the default rule.
This means Get-PackageUpdateSetting reports an update need only when the major version number of a module changes.
Major Minor Build Revision
1 0 0 0
Type: Boolean
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: SetBehaviour
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-ReportChangeOnMinor
Indicates whether a change in the minor version of a module should trigger an update notification in the default rule.
This means Get-PackageUpdateSetting reports an update need only when the minor version number of a module changes.
Major Minor Build Revision
0 1 0 0
Type: Boolean
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: SetBehaviour
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-ReportChangeOnRevision
Indicates whether a change in the revision part of a module version should trigger an update notification in the default rule.
This means Get-PackageUpdateSetting reports an update need only when the revision number of a module changes.
Major Minor Build Revision
1 0 0 0
Type: Boolean
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: SetBehaviour
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-Reset
Resets the module configuration to its default behavior.
Type: SwitchParameter
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: ResetBehaviour
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-UpdateCheckInterval
The minimum time span that must pass before a new module update check is performed.
Default value is: “01:00:00”
Type: TimeSpan
DefaultValue: ''
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: SetBehaviour
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-WhatIf
Shows what would happen if the command were to run without actually performing any changes.
Type: SwitchParameter
DefaultValue: ''
SupportsWildcards: false
Aliases:
- wi
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
CommonParameters
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable,
-InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable,
-ProgressAction, -Verbose, -WarningAction, and -WarningVariable. For more information, see
about_CommonParameters.
PackageUpdate.Configuration
OUTPUTS
PackageUpdate.Configuration
NOTES
Version : 1.1.0.0
Author : Andi Bellstedt
Date : 2026-06-21
Keywords : PackageUpdateInfo, Update, Module, Setting
4.10 - Show-PackageUpdateReleaseNote
SYNOPSIS
Displays release notes for one or more PowerShell modules.
SYNTAX
ByPackageUpdeInfoObject
Show-PackageUpdateReleaseNote [[-InputObject] <Info[]>] [-WhatIf] [-Confirm] [<CommonParameters>]
ByModuleObject
Show-PackageUpdateReleaseNote [[-Module] <psmoduleinfo[]>] [-WhatIf] [-Confirm] [<CommonParameters>]
ALIASES
This cmdlet has the following aliases,
DESCRIPTION
Retrieves and displays release notes for module information objects produced by Get-PackageUpdateInfo or Import-PackageUpdateInfo, or for module objects returned by Get-Module.
When release notes are available as a URL, the cmdlet attempts to resolve and retrieve the content so that the notes can be presented directly to the caller.
EXAMPLES
EXAMPLE 1
PS C:\> Get-PackageUpdateInfo | Show-PackageUpdateReleaseNote
Retrieves release notes for each module returned by Get-PackageUpdateInfo.
EXAMPLE 2
PS C:\> Get-Module PackageUpdateInfo | Show-PackageUpdateReleaseNote
Retrieves release notes for the PackageUpdateInfo module from the current PowerShell session.
EXAMPLE 3
PS C:\> Get-PackageUpdateInfo -Name PackageUpdateInfo | Show-PackageUpdateReleaseNote
Displays the release notes for a specific module using the output from Get-PackageUpdateInfo.
EXAMPLE 4
PS C:\> Get-PackageUpdateInfo | Show-PackageUpdateReleaseNote -WhatIf
Shows which modules would be processed for release note retrieval without performing the operation.
PARAMETERS
-Confirm
If this switch is enabled, you will be prompted for confirmation before executing any operations that change state.
Type: SwitchParameter
DefaultValue: ''
SupportsWildcards: false
Aliases:
- cf
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
One or more PackageUpdateInfo objects from Get-PackageUpdateInfo or Import-PackageUpdateInfo that contain release note information.
Type: Info[]
DefaultValue: ''
SupportsWildcards: false
Aliases:
- Input
ParameterSets:
- Name: ByPackageUpdeInfoObject
Position: 0
IsRequired: false
ValueFromPipeline: true
ValueFromPipelineByPropertyName: true
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-Module
One or more module objects from Get-Module that contain release notes metadata or a release notes URL.
Type: PSModuleInfo[]
DefaultValue: ''
SupportsWildcards: false
Aliases:
- ModuleName
ParameterSets:
- Name: ByModuleObject
Position: 0
IsRequired: false
ValueFromPipeline: true
ValueFromPipelineByPropertyName: true
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-WhatIf
If this switch is enabled, no actions are performed but informational messages will be displayed that explain what would happen if the command were to run.
Type: SwitchParameter
DefaultValue: ''
SupportsWildcards: false
Aliases:
- wi
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
CommonParameters
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable,
-InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable,
-ProgressAction, -Verbose, -WarningAction, and -WarningVariable. For more information, see
about_CommonParameters.
PackageUpdate.Info[]
System.Management.Automation.PSModuleInfo[]
OUTPUTS
PackageUpdate.ReleaseNote
NOTES
Version : 1.1.0.0
Author : Andi Bellstedt
Date : 2026-06-21
Keywords : PackageUpdateInfo, Update, Module, ReleaseNote