# Add-PackageUpdateRule

LLMS index: [llms.txt](/llms.txt)

---

<!-- This file is auto-generated using PlatyPS + HUGO Workflow automation. Avoid editing directly! Original Front-Matter:
date: 2026-06-22
document type: cmdlet
external help file: PackageUpdateInfo-Help.xml
flagTranslation: Primary
HelpUri: https://packageupdateinfo.andibellstedt.com/docs/commands/add-packageupdaterule/
Locale: en-US
Module Name: PackageUpdateInfo
ms.date: 06/22/2026
PlatyPS schema version: 2024-05-01
title: Add-PackageUpdateRule
type: docs
-->



## 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

```powershell
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

```powershell
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

```powershell
PS C:\> Add-PackageUpdateRule -Id 99 -IncludeModuleForChecking "MyModule" -PassThru
```

Adds a rule with a specific identifier and returns the created rule object.

### EXAMPLE 4

```powershell
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.

```yaml
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.

```yaml
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.

```yaml
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.

```yaml
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.

```yaml
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

```yaml
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

```yaml
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

```yaml
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

```yaml
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.

```yaml
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.

```yaml
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](https://go.microsoft.com/fwlink/?LinkID=113216).

## INPUTS

### PackageUpdate.Configuration

## OUTPUTS

### PackageUpdate.ModuleRule

## NOTES

Version   : 1.1.0.0
Author    : Andi Bellstedt
Date      : 2026-06-21
Keywords  : PackageUpdateInfo, Update, Module, Rule

## RELATED LINKS

- [packageupdateinfo.andibellstedt.com/docs/commands/add-packageupdaterule](https://packageupdateinfo.andibellstedt.com/docs/commands/add-packageupdaterule/)
