# Set-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/set-packageupdaterule/
Locale: en-US
Module Name: PackageUpdateInfo
ms.date: 06/22/2026
PlatyPS schema version: 2024-05-01
title: Set-PackageUpdateRule
type: docs
-->



## 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>]
```

### ByInputObject

```
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

```powershell
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

```powershell
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

```powershell
$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

```powershell
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.

```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 checks for the rule being changed.

```yaml
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.

```yaml
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.

```yaml
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: ''
```

### -InputObject

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.

```yaml
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.

```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

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

```yaml
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

```yaml
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

```yaml
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

```yaml
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.

```yaml
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.

```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

### 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

## RELATED LINKS

- [packageupdateinfo.andibellstedt.com/docs/commands/set-packageupdaterule](https://packageupdateinfo.andibellstedt.com/docs/commands/set-packageupdaterule/)
