New-EOPProtectionPolicyRule

This cmdlet is available only in the cloud-based service.

Use the New-EOPProtectionPolicyRule cmdlet to create rules for Exchange Online Protection (EOP) protections in preset security policies. The rules specify recipient conditions and exceptions for the protection, and also allow you to turn on and turn off the associated preset security policies.

Note: Unless you manually removed a rule using the Remove-EOPProtectionPolicyRule cmdlet, we don't recommend using this cmdlet to create rules. To create the rule, you need to specify the existing individual security policies that are associated with the preset security policy. We never recommend creating these required individual security policies manually. Turning on the preset security policy for the first time in the Microsoft Defender portal automatically creates the required individual security policies, but also creates the associated rules using this cmdlet. So, if the rules already exist, you don't need to use this cmdlet to create them.

For information about the parameter sets in the Syntax section below, see Exchange cmdlet syntax.

Syntax

New-EOPProtectionPolicyRule
   [-Name] <String>
   [-Priority <Int32>]
   -AntiPhishPolicy <AntiPhishPolicyIdParameter>
   -HostedContentFilterPolicy <HostedContentFilterPolicyIdParameter>
   -MalwareFilterPolicy <MalwareFilterPolicyIdParameter>
   [-Comments <String>]
   [-Confirm]
   [-Enabled <Boolean>]
   [-ExceptIfRecipientDomainIs <Word[]>]
   [-ExceptIfSentTo <RecipientIdParameter[]>]
   [-ExceptIfSentToMemberOf <RecipientIdParameter[]>]
   [-RecipientDomainIs <Word[]>]
   [-SentTo <RecipientIdParameter[]>]
   [-SentToMemberOf <RecipientIdParameter[]>]
   [-WhatIf]
   [<CommonParameters>]

Description

For more information about preset security policies in PowerShell, see Preset security policies in Exchange Online PowerShell.

Important

Different types of recipient conditions or different types of recipient exceptions are not additive; they're inclusive. For more information, see Profiles in preset security policies.

You need to be assigned permissions before you can run this cmdlet. Although this topic lists all parameters for the cmdlet, you may not have access to some parameters if they're not included in the permissions assigned to you. To find the permissions required to run any cmdlet or parameter in your organization, see Find the permissions required to run any Exchange cmdlet.

Examples

Example 1

New-EOPProtectionPolicyRule -Name "Standard Preset Security Policy" -AntiPhishPolicy "Standard Preset Security Policy1622650005393" -HostedContentFilterPolicy "Standard Preset Security Policy1622650006407" -MalwareFilterPolicy "Standard Preset Security Policy1622650007658" Priority 1

This example creates the rule for the Standard preset security policy. No restrictions are placed on who the Defender for Office 365 protections apply to. If the rule already exists, the command will fail.

Parameters

-AntiPhishPolicy

The AntiPhishPolicy parameter specifies the existing anti-phishing policy that's associated with the preset security policy.

If you ever turned on the preset security policy in the Microsoft Defender portal, the name of the anti-phishing policy will be one of the following values:

  • Standard Preset Security Policy<13-digit number>. For example, Standard Preset Security Policy1622650005393.
  • Strict Preset Security Policy<13-digit number>. For example, Strict Preset Security Policy1642034844713.

You can find the anti-phishing policy that's used by the Standard or Strict preset security policies by running the following commands: Get-AntiPhishPolicy | Where-Object -Property RecommendedPolicyType -eq -Value "Standard" or AntiPhishPolicy | Where-Object -Property RecommendedPolicyType -eq -Value "Strict".

Type:AntiPhishPolicyIdParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online, Exchange Online Protection

-Comments

The Comments parameter specifies informative comments for the rule, such as what the rule is used for or how it has changed over time. The length of the comment can't exceed 1024 characters.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online, Exchange Online Protection

-Confirm

The Confirm switch specifies whether to show or hide the confirmation prompt. How this switch affects the cmdlet depends on if the cmdlet requires confirmation before proceeding.

  • Destructive cmdlets (for example, Remove-* cmdlets) have a built-in pause that forces you to acknowledge the command before proceeding. For these cmdlets, you can skip the confirmation prompt by using this exact syntax: -Confirm:$false.
  • Most other cmdlets (for example, New-* and Set-* cmdlets) don't have a built-in pause. For these cmdlets, specifying the Confirm switch without a value introduces a pause that forces you acknowledge the command before proceeding.
Type:SwitchParameter
Aliases:cf
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online, Exchange Online Protection

-Enabled

The Enabled parameter specifies whether the rule is enabled. Valid values are:

  • $true: The rule is enabled. The State value of the rule is Enabled. This is the default value.
  • $false: The rule is disabled. The State value of the rule is Disabled.

After you create the rule, you turn on or turn off the preset security policy using one of the following commands:

  • Turn off: Disable-EOPProtectionPolicyRule.
  • Turn on: Enable-EOPProtectionPolicyRule.
Type:Boolean
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online, Exchange Online Protection

-ExceptIfRecipientDomainIs

The ExceptIfRecipientDomainIs parameter specifies an exception that looks for recipients with email addresses in the specified domains. You can specify multiple domains separated by commas.

Type:Word[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online, Exchange Online Protection

-ExceptIfSentTo

The ExceptIfSentTo parameter specifies an exception that looks for recipients in messages. You can use any value that uniquely identifies the recipient. For example:

  • Name
  • Alias
  • Distinguished name (DN)
  • Canonical DN
  • Email address
  • GUID

You can enter multiple values separated by commas. If the values contain spaces or otherwise require quotation marks, use the following syntax: "Value1","Value2",..."ValueN".

Type:RecipientIdParameter[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online, Exchange Online Protection

-ExceptIfSentToMemberOf

The ExceptIfSentToMemberOf parameter specifies an exception that looks for messages sent to members of groups. You can use any value that uniquely identifies the group. For example:

  • Name
  • Alias
  • Distinguished name (DN)
  • Canonical DN
  • Email address
  • GUID

You can enter multiple values separated by commas. If the values contain spaces or otherwise require quotation marks, use the following syntax: "Value1","Value2",..."ValueN".

If you remove the group after you create the rule, no exception is made for messages that are sent to members of the group.

Type:RecipientIdParameter[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online, Exchange Online Protection

-HostedContentFilterPolicy

The HostedContentFilterPolicy parameter specifies the existing anti-spam policy that's associated with the preset security policy.

If you ever turned on the preset security policy in the Microsoft Defender portal, the name of the anti-spam policy will be one of the following values:

  • Standard Preset Security Policy<13-digit number>. For example, Standard Preset Security Policy1622650006407.
  • Strict Preset Security Policy<13-digit number>. For example, Strict Preset Security Policy1642034847393.

You can find the anti-spam policy that's used by the Standard or Strict preset security policies by running the following commands: Get-HostedContentFilterPolicy | Where-Object -Property RecommendedPolicyType -eq -Value "Standard" or Get-HostedContentFilterPolicy | Where-Object -Property RecommendedPolicyType -eq -Value "Strict".

Type:HostedContentFilterPolicyIdParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online, Exchange Online Protection

-MalwareFilterPolicy

The HostedContentFilterPolicy parameter specifies the existing anti-malware policy that's associated with the preset security policy.

If you ever turned on the preset security policy in the Microsoft Defender portal, the name of the anti-malware policy will be one of the following values:

  • Standard Preset Security Policy<13-digit number>. For example, Standard Preset Security Policy1622650007658.
  • Strict Preset Security Policy<13-digit number>. For example, Strict Preset Security Policy1642034871908.

You can find the anti-malware policy that's used by the Standard or Strict preset security policies by running the following commands: Get-MalwareFilterPolicy | Where-Object -Property RecommendedPolicyType -eq -Value "Standard" or Get-MalwareFilterPolicy | Where-Object -Property RecommendedPolicyType -eq -Value "Strict".

Type:MalwareFilterPolicyIdParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online, Exchange Online Protection

-Name

The Name parameter specifies a unique name for the rule. The maximum length is 64 characters.

By default, the rules are named Standard Preset Security Policy or Strict Preset Security Policy. Since you don't need to create rules other than those used by the Standard preset security policy or the Strict preset security policy, we highly recommend that you use the default rule names for clarity and consistency.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online, Exchange Online Protection

-Priority

The Priority parameter specifies a priority value for the rule that determines the order of rule processing. A lower integer value indicates a higher priority, the value 0 is the highest priority, and rules can't have the same priority value.

The default value for the rule that's associated with the Strict preset security policy is 0, and the default value for the rule that's associated with the Standard preset security policy is 1.

When you create the policy, you must use the default value.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online, Exchange Online Protection

-RecipientDomainIs

The RecipientDomainIs parameter specifies a condition that looks for recipients with email addresses in the specified domains. You can specify multiple domains separated by commas.

Type:Word[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online, Exchange Online Protection

-SentTo

The SentTo parameter specifies a condition that looks for recipients in messages. You can use any value that uniquely identifies the recipient. For example:

  • Name
  • Alias
  • Distinguished name (DN)
  • Canonical DN
  • Email address
  • GUID

You can enter multiple values separated by commas. If the values contain spaces or otherwise require quotation marks, use the following syntax: "Value1","Value2",..."ValueN".

Type:RecipientIdParameter[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online, Exchange Online Protection

-SentToMemberOf

The SentToMemberOf parameter specifies a condition that looks for messages sent to members of distribution groups, dynamic distribution groups, or mail-enabled security groups. You can use any value that uniquely identifies the group. For example:

  • Name
  • Alias
  • Distinguished name (DN)
  • Canonical DN
  • Email address
  • GUID

You can enter multiple values separated by commas. If the values contain spaces or otherwise require quotation marks, use the following syntax: "Value1","Value2",..."ValueN".

If you remove the group after you create the rule, no action is taken on messages that are sent to members of the group.

Type:RecipientIdParameter[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online, Exchange Online Protection

-WhatIf

The WhatIf switch simulates the actions of the command. You can use this switch to view the changes that would occur without actually applying those changes. You don't need to specify a value with this switch.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online, Exchange Online Protection