Skip to main content

New-XdrConfigurationCriticalAssetManagementClassification

SYNOPSIS

Creates a new Critical Asset Management classification rule in Microsoft Defender XDR.

SYNTAX

Simple (Default)

New-XdrConfigurationCriticalAssetManagementClassification -RuleName <String> -RuleDescription <String>
-AssetType <String> -CriticalityLevel <Object> -Property <String> -Operator <String> -Value <String[]>
[-Disabled] [-PassThru] [-ProgressAction <ActionPreference>] [-WhatIf] [-Confirm] [<CommonParameters>]

Advanced

New-XdrConfigurationCriticalAssetManagementClassification -RuleName <String> -RuleDescription <String>
-AssetType <String> -CriticalityLevel <Object> -RuleDefinition <Hashtable> [-Disabled] [-PassThru]
[-ProgressAction <ActionPreference>] [-WhatIf] [-Confirm] [<CommonParameters>]

DESCRIPTION

Creates a custom Critical Asset Management classification rule to identify and classify critical assets in your organization. Rules can target Devices, Identities, or CloudResources and use property-based conditions to match assets.

Use Get-XdrConfigurationCriticalAssetManagementClassificationSchema to discover available properties and their types for building rule conditions.

EXAMPLES

EXAMPLE 1

New-XdrConfigurationCriticalAssetManagementClassification -RuleName "Executive Accounts" `
-RuleDescription "Identifies executive user accounts" `
-AssetType Identities `
-CriticalityLevel VeryHigh `
-Property "Job Title" `
-Operator Equals `
-Value "CEO", "CFO", "CTO"

Creates a Very High criticality rule for executive accounts using the friendly name.

EXAMPLE 2

New-XdrConfigurationCriticalAssetManagementClassification -RuleName "Domain Controllers" `
-RuleDescription "Identifies domain controller servers" `
-AssetType Devices `
-CriticalityLevel 1 `
-Property "Device Role" `
-Operator Equals `
-Value "DomainController"

Creates a High criticality rule for domain controllers using numeric level.

EXAMPLE 3

# Discover available properties for Devices, then create a rule
Get-XdrConfigurationCriticalAssetManagementClassificationSchema -AssetType Devices |
Select-Object -ExpandProperty properties

New-XdrConfigurationCriticalAssetManagementClassification -RuleName "Windows Servers" ` -RuleDescription "Windows Server devices" ` -AssetType Devices ` -CriticalityLevel High ` -Property "OS Platform" ` -Operator Equals ` -Value "Windows" ` -PassThru

Discovers schema properties, then creates a rule and returns the full rule object.

EXAMPLE 4

$rule = @
conditionType = "Operational"
logicalOperator = "AND"
conditions = @(
@
conditionType = "Simple"
predicate = @
property = "Device Type"
operator = "Equals"
value = @("Server")

,
@
conditionType = "Simple"
predicate = @
property = "Tags"
operator = "Contains"
value = @("Production")


)

New-XdrConfigurationCriticalAssetManagementClassification -RuleName "Production Servers" `
-RuleDescription "Production server devices" `
-AssetType Devices `
-CriticalityLevel High `
-RuleDefinition $rule

Creates a rule with multiple conditions using AND logic.

EXAMPLE 5

# Full workflow: Create, verify, check affected assets, then clean up
$newRule = New-XdrConfigurationCriticalAssetManagementClassification `
-RuleName "Test Rule" `
-RuleDescription "Temporary test rule" `
-AssetType Devices `
-CriticalityLevel Low `
-Property "Tags" `
-Operator Contains `
-Value "Test" `
-PassThru

View the created rule with affected assets

Get-XdrConfigurationCriticalAssetManagementClassification -RuleId $newRule.ruleId -IncludeAffectedAssets

Clean up test rule

$newRule | Remove-XdrConfigurationCriticalAssetManagementClassification -Force

Demonstrates a complete workflow of creating, verifying, and removing a rule.

PARAMETERS

-RuleName

The display name for the new classification rule. Must be unique.

Type: String
Parameter Sets: (All)
Aliases:

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

-RuleDescription

A description explaining what the rule identifies and its purpose.

Type: String
Parameter Sets: (All)
Aliases:

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

-AssetType

The type of assets this rule applies to. Valid values are:

  • Devices: Target device/endpoint assets
  • Identities: Target user/identity assets
  • CloudResources: Target cloud resource assets
Type: String
Parameter Sets: (All)
Aliases:

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

-CriticalityLevel

The criticality level to assign to matching assets. Accepts either numeric values or friendly names:

  • 0 or 'VeryHigh': Very High criticality
  • 1 or 'High': High criticality
  • 2 or 'Medium': Medium criticality
  • 3 or 'Low': Low criticality
Type: Object
Parameter Sets: (All)
Aliases:

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

-Property

The property name to filter on. Use Get-XdrConfigurationCriticalAssetManagementClassificationSchema to see available properties for each asset type.

Type: String
Parameter Sets: Simple
Aliases:

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

-Operator

The comparison operator. Valid values are:

  • Equals: Exact match
  • NotEquals: Does not match
  • Contains: Contains the value (for string properties)
  • NotContains: Does not contain the value
Type: String
Parameter Sets: Simple
Aliases:

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

-Value

The value(s) to match against. Can be a single value or an array of values.

Type: String[]
Parameter Sets: Simple
Aliases:

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

-RuleDefinition

Advanced: A complete rule definition hashtable for complex rules with multiple conditions. When specified, Property, Operator, and Value parameters are ignored.

Example structure: @ conditionType = "Operational" logicalOperator = "AND" # or "OR" conditions = @( @ conditionType = "Simple" predicate = @ property = "Property Name" operator = "Equals" value = @("value1", "value2")

)

Type: Hashtable
Parameter Sets: Advanced
Aliases:

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

-Disabled

If specified, creates the rule in a disabled state.

Type: SwitchParameter
Parameter Sets: (All)
Aliases:

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

-PassThru

When specified, returns the full rule object after creation. By default, only the ruleId is returned.

Type: SwitchParameter
Parameter Sets: (All)
Aliases:

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

-WhatIf

Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Parameter Sets: (All)
Aliases: wi

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

-Confirm

Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Parameter Sets: (All)
Aliases: cf

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

-ProgressAction

The ProgressAction parameter is a common parameter, not a cmdlet parameter. For more information, see about_CommonParameters.

Type: ActionPreference
Parameter Sets: (All)
Aliases: proga

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

CommonParameters

This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.

INPUTS

OUTPUTS

PSCustomObject

Returns an object containing the ruleId of the newly created rule.

NOTES

  • Rule names must be unique within the tenant
  • Use Get-XdrConfigurationCriticalAssetManagementClassificationSchema to discover available properties
  • Rules are always created in an enabled state (the -Disabled parameter is currently ignored by the API). To disable a rule after creation, use Set-XdrConfigurationCriticalAssetManagementClassification -Enabled $false
  • Predefined rules cannot be created; this cmdlet only creates user-defined rules