Set-ClientAccessRule
注意
从 2022 年 10 月开始,我们已为所有未使用这些规则的现有Exchange Online组织禁用了对客户端访问规则的访问。 2024 年 9 月,所有Exchange Online组织都将终止对客户端访问规则的支持。 有关详细信息,请参阅更新:弃用 Exchange Online 中的客户端访问规则。
此 cmdlet 仅在 2019 Exchange Server 和基于云的服务中有效。 一些参数和设置可能只适用于某个特定的环境。
使用 Set-ClientAccessRule cmdlet 修改现有客户端访问规则。 客户端访问规则有助于根据连接的属性控制对组织的访问。
有关以下语法部分的参数设置的详细信息,请参阅 Exchange cmdlet 语法。
语法
Set-ClientAccessRule
[-Identity] <ClientAccessRuleIdParameter>
[-Action <ClientAccessRulesAction>]
[-AnyOfAuthenticationTypes <MultiValuedProperty>]
[-AnyOfClientIPAddressesOrRanges <MultiValuedProperty>]
[-AnyOfProtocols <MultiValuedProperty>]
[-AnyOfSourceTcpPortNumbers <MultiValuedProperty>]
[-Confirm]
[-DomainController <Fqdn>]
[-Enabled <Boolean>]
[-ExceptAnyOfAuthenticationTypes <MultiValuedProperty>]
[-ExceptAnyOfClientIPAddressesOrRanges <MultiValuedProperty>]
[-ExceptAnyOfProtocols <MultiValuedProperty>]
[-ExceptAnyOfSourceTcpPortNumbers <MultiValuedProperty>]
[-ExceptUserIsMemberOf <MultiValuedProperty>]
[-ExceptUsernameMatchesAnyOfPatterns <MultiValuedProperty>]
[-Name <String>]
[-Priority <Int32>]
[-Scope <ClientAccessRulesScope>]
[-UserIsMemberOf <MultiValuedProperty>]
[-UsernameMatchesAnyOfPatterns <MultiValuedProperty>]
[-UserRecipientFilter <String>]
[-WhatIf]
[<CommonParameters>]
说明
客户端访问规则类似于邮件流规则 (也称为) 与组织的客户端连接的传输规则。 使用条件和异常根据连接的属性以及允许或阻止连接的操作来标识连接。
注意:并非所有协议都支持身份验证类型筛选器,甚至支持身份验证类型筛选器的协议也不支持所有身份验证类型。 以下列表中介绍了支持的组合。 在同一规则中混合使用协议和身份验证类型时,请谨慎。
支持身份验证类型筛选器的协议:
- ExchangeActiveSync:BasicAuthentication、OAuthAuthentication 和 CertificateBasedAuthentication。
- ExchangeAdminCenter:BasicAuthentication 和 AdfsAuthentication。
- IMAP4:BasicAuthentication 和 OAuthAuthentication。
- OutlookWebApp:BasicAuthentication 和 AdfsAuthentication。
- POP3:BasicAuthentication 和 OAuthAuthentication。
- RemotePowerShell:BasicAuthentication 和 NonBasicAuthentication。
不支持身份验证类型筛选器的 Protcols:
- ExchangeWebServices
- OfflineAddressBook
- OutlookAnywhere
- PowerShellWebServices
- REST
- UniversalOutlook
您必须先获得权限,然后才能运行此 cmdlet。 虽然本主题中列出了此 cmdlet 的所有参数,但如果这些参数并未包含在分配给您的权限中,那么您将无法使用这些参数。 若要查找在贵组织中运行任何 cmdlet 或参数所需的权限,请参阅 Find the permissions required to run any Exchange cmdlet。
示例
示例 1
Set-ClientAccessRule "Allow IMAP4" -AnyOfClientIPAddressesOrRanges @{Add="172.17.17.27/16"}
本示例将 IP 地址范围 172.17.17.27/16 添加到名为“允许 IMAP4”的现有客户端访问规则,而不会影响现有 IP 地址值。
参数
-Action
Action 参数指定客户端访问规则的操作。 此参数的有效值是 AllowAccess 和 DenyAccess。
Type: | ClientAccessRulesAction |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online, Exchange Online Protection |
-AnyOfAuthenticationTypes
此参数仅在基于云的服务中有效。
AnyOfAuthenticationTypes 参数指定基于客户端的身份验证类型的客户端访问规则的条件。
PasswordQuality 参数指定设备密码所需的最小密码质量分级。密码质量是指示密码安全性和复杂性的数值。质量值越高表示密码越安全。
- AdfsAuthentication
- BasicAuthentication
- CertificateBasedAuthentication
- NonBasicAuthentication
- OAuthAuthentication
若要输入多个值并覆盖任何现有条目,请使用以下语法: Value1,Value2,...ValueN
。 如果值包含空格或需要引号,请使用以下语法: "Value1","Value2",..."ValueN"
。
若要在不影响任何现有条目的情况下添加或删除一个或多个值,请使用以下语法: @{Add="Value1","Value2"...; Remove="Value3","Value4"...}
。
注意:请参阅说明部分,了解哪些身份验证类型可用于哪些协议。
Type: | MultiValuedProperty |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2013, Exchange Server 2016, Exchange Online, Exchange Online Protection |
-AnyOfClientIPAddressesOrRanges
AnyOfClientIPAddressesOrRanges 参数指定基于客户端 IPv4 或 IPv6 地址的客户端访问规则的条件。 有效值包含:
- 单个 IP 地址:例如,192.168.1.1 或 2001:DB8::2AA:FF:C0A8:640A。
- IP 地址范围:例如,192.168.0.1-192.168.0.254 或 2001:DB8::2AA:FF:C0A8:640A-2001:DB8::2AA:FF:C0A8:6414。
- 无类域间路由 (CIDR) IP 地址范围:例如 192.168.3.1/24 或 2001:DB8::2AA:FF:C0A8:640A/64。
若要输入多个值并覆盖任何现有条目,请使用以下语法: Value1,Value2,...ValueN
。 如果值包含空格或需要引号,请使用以下语法: "Value1","Value2",..."ValueN"
。
若要在不影响任何现有条目的情况下添加或删除一个或多个值,请使用以下语法: @{Add="Value1","Value2"...; Remove="Value3","Value4"...}
。
有关 IPv6 地址和语法的详细信息,请参阅此 Exchange 2013 主题: IPv6 地址基础知识。
Type: | MultiValuedProperty |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online, Exchange Online Protection |
-AnyOfProtocols
AnyOfProtocols 参数指定基于客户端的协议的客户端访问规则的条件。
PasswordQuality 参数指定设备密码所需的最小密码质量分级。密码质量是指示密码安全性和复杂性的数值。质量值越高表示密码越安全。
- ExchangeActiveSync
- ExchangeAdminCenter
- ExchangeWebServices
- IMAP4
- OfflineAddressBook
- OutlookAnywhere
- OutlookWebApp
- POP3
- PowerShellWebServices
- RemotePowerShell
- REST
- UniversalOutlook (邮件和日历应用)
注意:在 Exchange 2019 中,唯一支持的值是 ExchangeAdminCenter 和 RemotePowerShell。
若要输入多个值并覆盖任何现有条目,请使用以下语法: Value1,Value2,...ValueN
。 如果值包含空格或需要引号,请使用以下语法: "Value1","Value2",..."ValueN"
。
若要在不影响任何现有条目的情况下添加或删除一个或多个值,请使用以下语法: @{Add="Value1","Value2"...; Remove="Value3","Value4"...}
。
Type: | MultiValuedProperty |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online, Exchange Online Protection |
-AnyOfSourceTcpPortNumbers
保留此参数以供 Microsoft 内部使用。
Type: | MultiValuedProperty |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2013 |
-Confirm
Confirm 开关指定是否显示确认提示。 此开关对 cmdlet 造成的影响取决于在你继续操作之前 cmdlet 是否需要确认。
- 破坏性 cmdlet (例如,Remove-* cmdlet) 具有内置的暂停,该暂停会强制你在继续操作之前确认命令。 对于这些 cmdlet,您可以使用此确切语法跳过确认提示:
-Confirm:$false
。 - 大多数其他 cmdlet (例如,New-* 和 Set-* cmdlet) 没有内置暂停。 对于这些 cmdlet,指定不含值的 Confirm 开关会引入暂停,从而强制要求你先确认命令,然后再继续操作。
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online, Exchange Online Protection |
-DomainController
此参数只在本地 Exchange 中可用。
DomainController 参数指定此 cmdlet 从 Active Directory 读取数据或向其写入数据时使用的域控制器。 可以使用完全限定的域名 (FQDN) 来标识域控制器。 例如,dc01.contoso.com。
Type: | Fqdn |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2013, Exchange Server 2016, Exchange Server 2019 |
-Enabled
Enabled 参数指定客户端访问规则为启用还是禁用状态。 此参数的有效值为 $true 或 $false。
Type: | Boolean |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online, Exchange Online Protection |
-ExceptAnyOfAuthenticationTypes
此参数仅在基于云的服务中有效。
ExceptAnyOfAuthenticationTypes 参数指定基于客户端的身份验证类型的客户端访问规则的例外。
PasswordQuality 参数指定设备密码所需的最小密码质量分级。密码质量是指示密码安全性和复杂性的数值。质量值越高表示密码越安全。
- AdfsAuthentication
- BasicAuthentication
- CertificateBasedAuthentication
- NonBasicAuthentication
- OAuthAuthentication
若要输入多个值并覆盖任何现有条目,请使用以下语法: Value1,Value2,...ValueN
。 如果值包含空格或需要引号,请使用以下语法: "Value1","Value2",..."ValueN"
。
若要在不影响任何现有条目的情况下添加或删除一个或多个值,请使用以下语法: @{Add="Value1","Value2"...; Remove="Value3","Value4"...}
。
注意:请参阅说明部分,了解哪些身份验证类型可用于哪些协议。
Type: | MultiValuedProperty |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2013, Exchange Server 2016, Exchange Online, Exchange Online Protection |
-ExceptAnyOfClientIPAddressesOrRanges
ExceptAnyOfClientIPAddressesOrRanges 参数指定基于客户端 IPv4 或 IPv6 地址的客户端访问规则的例外。 有效值包含:
- 单个 IP 地址:例如,192.168.1.1 或 2001:DB8::2AA:FF:C0A8:640A。
- IP 地址范围:例如,192.168.0.1-192.168.0.254 或 2001:DB8::2AA:FF:C0A8:640A-2001:DB8::2AA:FF:C0A8:6414。
- 无类域间路由 (CIDR) IP 地址范围:例如 192.168.3.1/24 或 2001:DB8::2AA:FF:C0A8:640A/64。
若要输入多个值并覆盖任何现有条目,请使用以下语法: Value1,Value2,...ValueN
。 如果值包含空格或需要引号,请使用以下语法: "Value1","Value2",..."ValueN"
。
若要在不影响任何现有条目的情况下添加或删除一个或多个值,请使用以下语法: @{Add="Value1","Value2"...; Remove="Value3","Value4"...}
。
有关 IPv6 地址和语法的详细信息,请参阅此 Exchange 2013 主题: IPv6 地址基础知识。
Type: | MultiValuedProperty |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online, Exchange Online Protection |
-ExceptAnyOfProtocols
此参数仅在基于云的服务中有效。
ExceptAnyOfProtocols 参数指定基于客户端的协议的客户端访问规则的例外。
PasswordQuality 参数指定设备密码所需的最小密码质量分级。密码质量是指示密码安全性和复杂性的数值。质量值越高表示密码越安全。
- ExchangeActiveSync
- ExchangeAdminCenter
- ExchangeWebServices
- IMAP4
- OfflineAddressBook
- OutlookAnywhere
- OutlookWebApp
- POP3
- PowerShellWebServices
- RemotePowerShell
- REST
- UniversalOutlook (邮件和日历应用)
若要输入多个值并覆盖任何现有条目,请使用以下语法: Value1,Value2,...ValueN
。 如果值包含空格或需要引号,请使用以下语法: "Value1","Value2",..."ValueN"
。
若要在不影响任何现有条目的情况下添加或删除一个或多个值,请使用以下语法: @{Add="Value1","Value2"...; Remove="Value3","Value4"...}
。
Type: | MultiValuedProperty |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2013, Exchange Server 2016, Exchange Online, Exchange Online Protection |
-ExceptAnyOfSourceTcpPortNumbers
保留此参数以供 Microsoft 内部使用。
Type: | MultiValuedProperty |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2013 |
-ExceptUserIsMemberOf
保留此参数以供 Microsoft 内部使用。
Type: | MultiValuedProperty |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2013 |
-ExceptUsernameMatchesAnyOfPatterns
此参数仅在基于云的服务中有效。
ExceptUsernameMatchesAnyOfPatterns 参数指定客户端访问规则的例外,该规则基于用户帐户名称的格式 <Domain>\<UserName>
(例如 contoso.com\jeff
,) 。 此参数接受文本和通配符 (*) (,例如 , *jeff*
但不能 jeff*
) 。 非字母数字字符不需要转义字符。
若要输入多个值并覆盖任何现有条目,请使用以下语法: Value1,Value2,...ValueN
。 如果值包含空格或需要引号,请使用以下语法: "Value1","Value2",..."ValueN"
。
若要在不影响任何现有条目的情况下添加或删除一个或多个值,请使用以下语法: @{Add="Value1","Value2"...; Remove="Value3","Value4"...}
。
Type: | MultiValuedProperty |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online, Exchange Online Protection |
-Identity
Identity 参数指定要修改的客户端访问规则。 可以使用唯一标识客户端访问规则的任何值。 例如:
- 名称
- 可分辨名称 (DN)
- GUID
Type: | ClientAccessRuleIdParameter |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online, Exchange Online Protection |
-Name
Name 参数指定客户端访问规则的唯一名称。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online, Exchange Online Protection |
-Priority
Priority 参数指定客户端访问规则的优先级值。 整数值越小,优先级越高,优先级越高的规则先于优先级较低的规则。 默认值为 1。
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online, Exchange Online Protection |
-Scope
Scope 参数指定客户端访问规则的范围。 有效值包含:
- 用户:该规则仅适用于最终用户连接。
- 全部:该规则适用于) (最终用户和中间层应用的所有连接。
Type: | ClientAccessRulesScope |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2016, Exchange Server 2019, Exchange Online, Exchange Online Protection |
-UserIsMemberOf
保留此参数以供 Microsoft 内部使用。
Type: | MultiValuedProperty |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2013 |
-UsernameMatchesAnyOfPatterns
此参数仅在基于云的服务中有效。
UsernameMatchesAnyOfPatterns 参数指定基于用户帐户名称的客户端访问规则的条件,格式 <Domain>\<UserName>
(例如 contoso.com\jeff
) 。 此参数接受文本和通配符 (*) (,例如 , *jeff*
但不能 jeff*
) 。 非字母数字字符不需要转义字符。
若要输入多个值并覆盖任何现有条目,请使用以下语法: Value1,Value2,...ValueN
。 如果值包含空格或需要引号,请使用以下语法: "Value1","Value2",..."ValueN"
。
若要在不影响任何现有条目的情况下添加或删除一个或多个值,请使用以下语法: @{Add="Value1","Value2"...; Remove="Value3","Value4"...}
。
Type: | MultiValuedProperty |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online, Exchange Online Protection |
-UserRecipientFilter
此参数仅在基于云的服务中有效。
UserRecipientFilter 参数指定客户端访问规则的条件,该规则使用 OPATH 筛选器语法基于一组有限的收件人属性来标识用户。 客户端访问规则不支持可用收件人属性的完整列表。
可以将以下属性与此参数一起使用:
- 城市
- Company
- CountryOrRegion (ISO 3166-1 alpha-2 国家/地区代码。)
- CustomAttribute1 到 CustomAttribute15
- 部门
- 办公室
- PostalCode
- StateOrProvince
- StreetAddress
此参数的基本语法为 "Property -ComparisonOperator 'Value'"
:
- 属性是上述列表中的可筛选属性之一, (例如
City
或CustomAttribute1
) 。 - ComparisonOperator 是一个 OPATH 比较运算符, (例如
-eq
用于等于和-like
字符串比较) 。 有关比较运算符的详细信息,请参阅 about_Comparison_Operators。 - Value 是要搜索的属性值。 将文本值和变量括在单引号 (
'Value'
或'$Variable'
) 。 如果变量值包含单引号,则需要识别 (转义) 单引号才能正确展开变量。 例如,使用'$($User -Replace "'","''")'
而不是'$User'
。 不要将整数或系统值括在引号 (例如,改用500
、$true
、$false
或$null
) 。 - 将整个 OPATH 筛选器括在双引号“”中。 如果筛选器包含系统值 (,例如
$true
、$false
或$null
) ,请改用单引号 ' 。 虽然此参数是 (不是系统块) 的字符串,但也可以使用大括号 { },但前提是筛选器不包含变量。
例如:
"City -eq 'Redmond'"
"CountryOrRegion -eq 'SG'"
.
可以使用逻辑运算符 -and
和 -or
将多个搜索条件链接在一起。 例如:
"CustomAttribute1 -eq 'AllowOWA' -and CountryOrRegion -eq AU'"
"(CountryOrRegion -eq 'US' -and Department -eq 'Sales') -or Department -eq 'Research'"
.
有关 Exchange 中的 OPATH 筛选器语法的详细信息,请参阅 其他 OPATH 语法信息。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online, Exchange Online Protection |
-WhatIf
WhatIf 开关模拟命令操作。 可以使用此开关在不实际应用将会发生的更改的情况下预览这些更改。 不必为此开关指定值。
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online, Exchange Online Protection |
输入
Input types
若要了解此 cmdlet 接受的输入类型,请参阅 cmdlet 的输入和输出类型。 如果 cmdlet 的"输入类型"字段为空,则表明此 cmdlet 不接受输入数据。
输出
Output types
若要了解此 cmdlet 接受的返回类型(亦称为"输出类型"),请参阅 cmdlet 的输入和输出类型。 如果"输出类型"字段为空,则表明此 cmdlet 不返回任何数据。