Active Directory PowerShell脚本select字段并添加到另一个字段

我试图想出一个脚本,从AD中的一个用户(OfficeNumber),并将其移动到另一个用户字段(HomeNumber)进行800号码的字段。 所以基本上我们正在做的是在AD中设置一键式拨号。

示例用户John Doe – 在电话号码(OfficeNumber字段)旁边的常规选项卡下,他有一个扩展名1234.在电话选项卡中,我们有Home字段,它是PowerShell中的HomeNumber字段,在John的John母鹿。

我想要做的是用Office号码填写HomeNUmber字段,但是后面跟着一个800号码。 所以它会看起来像这样:'8001239876 ,,, 1,1234'

我知道如何使用set-aduser命令手动更新这些字段,但是我想为OU中的所有用户执行批量脚本。 谢谢!

编辑:这是我想出的代码:

Import-Module ActiveDirectory Clear-Host # Getting telephone number value from all users into specific location to $users variable $users = Get-ADUser -Filter * -SearchBase "dc=domain,dc=com" -Properties telephoneNumber,homephone # Defining phone number $phoneNumber = "8008251234,,,1," # Creating cycle and digging into users one by one foreach ($user in $users) { # Creating variable which will contain predefined phone number and adds value of Telephone Number field $homePhone = $phoneNumber + $user.telephoneNumber # Setting Home Number field with new variable in cycle (for each user) Set-ADUser -Identity $user.SamAccountName -HomePhone $homePhone } 

总体思路如下:

  1. 运行get-aduser来枚举所需的帐户。 也许使用filter来获得只有OfficeNumber帐户。 将这个结果保存到一个variables。 $用户为例。

  2. 使用foreach($ users中的$ user)块来遍历用户列表。

  3. 在该foreach块的内部,获取官方编号,预先安装您的1-800号码,并将其保存到一个新的variables。 然后将该variables写入HomeNumber属性。

用PowerShell做它可能是最好和最快的。 如前所述,使用get-aduseer并循环列表,为每个用户添加一个800。

如果您在使用PowerShell时遇到问题,可以使用第三方工具来帮助您。 你可以,例如使用称为Adaxes的解决scheme。 所有你需要做的是select你想要的所有用户(在pipe理控制台中进行search,类似于ADUC,但function更强大,只需select你需要的用户),然后你可以修改HomeNumber属性批量通过把' 800%officeNumber%“,它会做的。

尽pipe这是一个付费工具,但您可以下载并使用免费试用版,所以如果是一次性工作,它不会花费任何费用。