如何通过PowerShell将手机号写入AD的mobile其他属性?
实现AD用户「其他手机号」属性写入的PowerShell脚本修改方案
AD用户属性中,「Mobile」字段的主值对应LDAP属性mobile,而你要写入的「其他」手机号对应的是多值LDAP属性otherMobile。你之前尝试-OtherAttribute参数失败,是因为应该直接通过-Add(追加)或-Replace(覆盖)参数操作这个属性。
以下是修改后的完整脚本,重点完善了选择「Mobile Number」分支的逻辑,实现将手机号写入「其他」属性:
Function AddNumberToAD { [CmdletBinding()] param( [Parameter(Mandatory=$true)] [Alias('UserInfo')] [string]$UserNameToAdd, [Parameter(Mandatory=$true)] [Alias('PhoneNumber')] [string]$UsersPhoneNumberToAdd ) $user = EmailToName $UserNameToAdd oneEmptyLine $usersRealName = Get-ADUser -Identity $user -Properties Name $title = 'Assign Number' Write-Host "Users Name: ", $usersRealName.Name write-Host "Username: ", $user Write-Host "Email: ",$UserNameToAdd Write-Host "Phone Number to be Added: ",$UsersPhoneNumberToAdd $question = 'Assign Phone Number as?' $choices = @( [System.Management.Automation.Host.ChoiceDescription]::new("&Mobile Number", "Verizon Wireless Number (写入「其他」手机号)") [System.Management.Automation.Host.ChoiceDescription]::new("&Telephone Number", "Teams Phone Number") [System.Management.Automation.Host.ChoiceDescription]::new("&Cancel", "Exit Function") ) $decision = $Host.UI.PromptForChoice($title, $question, $choices, 2) if ($decision -eq 0) { Write-Host "将手机号写入用户AD的「其他」Mobile属性..." -ForegroundColor Green # 使用otherMobile属性写入「其他」手机号,-Add用于追加新号码 Set-ADUser $user -Add @{otherMobile=$UsersPhoneNumberToAdd} # 如果需要覆盖所有已有的「其他」手机号,替换为以下行: # Set-ADUser $user -Replace @{otherMobile=$UsersPhoneNumberToAdd} } elseif($decision -eq 1) { Write-Host "Setting user Telephone Number to Active Directory..." -ForegroundColor Green Set-ADUser $user -Add @{telephonenumber=$UsersPhoneNumberToAdd} } Elseif($decision -eq 2) { Return } Else { Write-Host "Invalid input recieved..." -ForegroundColor Red } }
关键说明:
otherMobile是AD中专门存储「其他手机号」的多值属性,支持同时保存多个号码- 使用
-Add参数会在现有「其他」手机号列表中追加新号码;若需要清空原有列表并设置新号码,改用-Replace参数 - 脚本中已在选项描述里补充了「写入「其他」手机号」的提示,方便操作时区分
内容的提问来源于stack exchange,提问作者Glen Newell
相关产品推荐
相关产品推荐

