脚本帮助 - 需要获取 AD 帐户的电话号码,然后将其添加到受信任域中的联系人

脚本帮助 - 需要获取 AD 帐户的电话号码,然后将其添加到受信任域中的联系人

我有在另一个受信任的域中创建为联系人的域帐户,以便他们可以在其 Exchange GAL 中看到它们。

我需要一种方法来从 DomainA 中的 UserA(用户帐户)中提取电话号码字段并将其导入到 DomainB 中的 UserA(联系人)中。

我明白其中的逻辑,只是代码(vbscript/powershell/whatever)让我难以理解。

我认为的逻辑是:

  1. 连接到源 AD (ou/subtree)
  2. 从 OU 和子容器中提取用户帐户,包括名字、姓氏、显示名称和电话号码
  3. 连接到目标 AD (ou/subtree)
  4. 根据显示名称验证/匹配上面#2中的摘录中的联系人
  5. 使用摘录中的电话号码更新电话字段
  6. 记录成功和失败

有谁可以帮忙吗?

答案1

问题是如何将一侧的帐户与另一侧的帐户进行匹配。这样就可以进行提取。

关于如何在导入时进行匹配,您有什么想法吗?两者中是否有像 employeeID 这样的公共字段?否则可能需要复杂的多字段匹配。

   get-aduser -filter * -searchbase "ou=users,dc=adomain,dc=com" -properties Telephonenumber|select displayname, givenname, sn, telephonenumber|export-csv phones.csv

import-csv phones.csv| foreach { 
  get-aduser -displayname $_.displayname -searchbase "ou=contacts dc=Bdomain,dc=com"  | set-aduser -telephoneNumber $_.telephonenumber
}

答案2

只要域 A 中的所有显示名称确实与域 B 中的显示名称匹配,以下步骤就可以解决问题。

在域 A 中运行:

Get-ADUser -filter * -properties TelephoneNumber,DisplayName | select DisplayName,TelephoneNumber | export-csv users.csv

在域 B 中运行:

Import-CSV users.csv | ForEach { get-aduser -filter "displayname -eq '$($_.displayname)'" | set-aduser -replace @{telephonenumber="$($_.TelephoneNumber)"} }

相关内容