我正在将一个基于查询的组(Exchange 2003)升级为一个新的、“改进的”动态通讯组(2010)。
不管怎样,我们公司决定将每个人的员工 ID 存储在传呼机字段中,这样就很容易通过 ADUC 进行操作。该员工编号具有重要意义,因为所有员工都在一定范围内,而所有承包商都在非常不同的范围内。
基本上,新的 opath 语法似乎在我的寻呼机字段上使用字符串比较,即使它是一个数字。假设我的员工 ID 是 3004,那么从字符串检查的角度来看,它“小于”4。
Set-DynamicDistributionGroup -Identity "my-funky-new-group" -RecipientFilter "(pager -lt 4) -and (pager -like '*') -and (RecipientType -eq 'UserMailbox')
“
在 EMC 中显示以下内容:
((((((Pager -lt '4') -and (Pager -ne $null))) -and (RecipientType -eq 'UserMailbox'))) -and (-not(Name -like 'SystemMailbox{*')) -and (-not(Name -like 'CAS_{*')) -and (-not(RecipientTypeDetailsValue -eq 'MailboxPlan')) -and (-not(RecipientTypeDetailsValue -eq 'DiscoveryMailbox')) -and (-not(RecipientTypeDetailsValue -eq 'ArbitrationMailbox')))
这个群组最多应该有 3 名成员,对吗?不,我通过字符串比较得到了很多。我出现了,我的人数在 3000 人左右。
问题:有人知道一个巧妙的方法来强制进行整数检查吗?
该组上的只读 LDAP 过滤器看起来不错,但当然不能被编辑。
LDAP 表示(看,4 上没有引号!)——同样有趣的是它用(pager=4)的东西“填充”了床……
(&(pager<=4)(!(pager=4))(pager=*)(objectClass=user)(objectCategory=person)(mailNickname=*)(msExchHomeServerName=*)(!(name=SystemMailbox{*))(!(name=CAS_{*))!(msExchRecipientTypeDetails=16777216))(!(msExchRecipientTypeDetails=536870912))(!(msExchRecipientTypeDetails=8388608)))
如果没有解决方案,我想我的办法要么是找到一个实际上将被视为整数的未使用字段,要么最有可能每天早上用我自己的自动化程序用 powershell 构建这个列表——很差劲。
我知道有几种方法可以解决这个问题外部opath 过滤器(在另一个领域指定“全职”等),但宁愿交换来做提升,因为这是目前的环境。
任何见解都非常感谢-谢谢!
马特
答案1
与微软进行了交谈。
“您说的传呼机无法正常工作的原因是正确的,就像电话号码一样,它是一个 Unicode 字符串,为了使过滤器正常工作,我们创建的过滤器应该是一个大整数,遗憾的是,用户可用的大整数属性大多是系统属性,例如(uSNCreated 已更改等)。我也在我的实验室环境中尝试过它,但它似乎没有按预期工作,我想我们需要寻找其他选择。”
因此,目前,使用 Exchange 2010 SP1,似乎无法对除几个关键系统属性(IssueWarningQuota、MaxReceiveSize)之外的任何内容进行整数比较。其他所有内容都将被视为字符串比较。
支持人员建议的其他选项包括希望它们位于同一个 Exchange 存储、特定 OU 或其他一些标准中。由于这些在我们的环境中不起作用,我将不得不每晚通过 Powershell 构建这些 DL。