【问题标题】:How to Modify Custom Attribute X of all users/groups in an OU?如何修改 OU 中所有用户/组的自定义属性 X?
【发布时间】:2014-12-13 02:04:55
【问题描述】:

我需要更改 Exchange 中约 500 个邮箱的自定义属性 1 和 2。
与邮箱关联的用户帐户分布在 AD 内的 10-15 个 OU 中,每个不同的 OU 需要不同的自定义属性。

理想情况下,我不想为每个邮箱运行两次以下命令

Set-Mailbox user@domain.com -CustomAttribute1 "X"

须藤

获取 AD 中给定 OU 中所有用户、电子邮件组、联系人、房间的列表
将每个自定义属性 1 更改为 X
将每个自定义属性 2 更改为 X

【问题讨论】:

  • 对于任何给定的 OU,您是否需要为 OU 中的每个邮箱设置自定义属性,或者除了邮箱的 OU 之外是否还有一些有效的选择标准?
  • 自定义属性的标准将是每个用户/组所在的 OU 名称的缩短版本。例如OU LUCAS 中的所有用户都将 LUC 作为其属性1

标签: powershell exchange-server custom-attributes


【解决方案1】:

使用 LDAP 过滤器:

(|
  (objectCategory=person)
  (&
    (objectCategory=group)
    (!
      (groupType:1.2.840.113556.1.4.803:=2147483648)
    )
  )
  (msExchResourceMetaData=ResourceType:Room)
)

以上匹配以下对象类型:

  • 用户和联系人:(objectCategory=person)
  • 分发组:(&(objectCategory=group)(!(groupType:1.2.840.113556.1.4.803:=2147483648)))(技术上这意味着:不是安全组的组)
  • 房间资源:(msExchResourceMetaData=ResourceType:Room)

您可以使用Get-ADObject 选择与该过滤器匹配的AD 对象,并使用Set-ADObject 修改它们的属性:

$ou   = 'OU=some unit,DC=example,DC=com'
$fltr = '(|(objectCategory=person)' +
          '(&(objectCategory=group)' +
            '(!(groupType:1.2.840.113556.1.4.803:=2147483648)))' +
          '(msExchResourceMetaData=ResourceType:Room))'

Get-ADObject -LDAPFilter $fltr -SearchBase $ou -SearchScope Subtree |
  Set-ADObject -Replace @{
    'extensionAttribute1' = 'X'
    'extensionAttribute2' = 'X'
  }

我不完全确定属性名称,因为我手头没有 Exchange。您必须在这里使用他们的 LDAP 名称,而不是任何花哨的别名。

【讨论】:

  • 有了这个,我如何将自定义属性 1 值分配给它返回的每个对象?
  • 是否有可以在 Exchange 管理控制台中运行的过滤器?
猜你喜欢
  • 1970-01-01
  • 2020-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多