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

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

我正在尝试编写一个脚本,从 AD 中的用户字段(OfficeNumber)中获取一个字段,然后将其移动到另一个用户字段(HomeNumber),并以 800 号码为准。因此,我们实际上正在做的是在 AD 中设置一键拨号。

示例用户 John Doe - 在常规选项卡下,电话号码旁边的 OfficeNumber 字段,他的分机号为 1234。在电话选项卡中,我们有家庭字段,即 PowerShell 中的 HomeNumber 字段,对于 John Doe 来说,此选项卡下为空白。

我想要做的是使用办公室号码填充 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

总体思路如下:

  1. 运行 get-aduser 来枚举您想要的帐户。也许可以使用过滤器来仅获取具有 OfficeNumber 的帐户。将此结果保存到变量中。例如 $users。

  2. 使用 foreach($user in $users) 块循环遍历用户列表。

  3. 在 foreach 块中,获取 Officenumber,添加 1-800 号码,并将其保存到新变量中。然后将该变量写入 HomeNumber 属性。

答案2

使用 PowerShell 执行此操作可能是最好和最快的。如前所述,使用 get-aduserer 并循环列表,为每个用户添加 800。

如果您在使用 PowerShell 时遇到问题,可以使用第三方工具来帮助您解决。例如,您可以使用名为阿达克斯。您需要做的就是选择您想要的所有用户(在管理控制台中执行搜索,它类似于 ADUC 但功能更强大,只需选择您需要的用户),然后您可以通过输入“800%officeNumber%”批量修改 HomeNumber 属性,这样就可以了。

尽管它是一个付费工具,但您可以下载并使用免费试用版,因此如果这是一次性工作,则无需花费任何费用。

相关内容