PowerShell创建AD用户时ipPhone属性无法设置问题求助
AD用户创建脚本中ipPhone属性无法设置的解决方法
问题原因
New-ADUser cmdlet的内置参数里没有-ipPhone选项,而-Mobile是官方提供的标准参数,所以直接写-ipPhone "$ipPhone"不会被识别,自然无法生效。
两种解决办法
方法1:创建用户时通过-OtherAttributes指定ipPhone
在New-ADUser命令里用-OtherAttributes参数传递非内置属性,代码示例:
$Mobile = Read-Host "输入手机号" $ipPhone = Read-Host "输入IP电话号" New-ADUser ` -Mobile "$Mobile" ` -OtherAttributes @{'ipPhone'="$ipPhone"} ` # 补充其他必填参数,比如-Name、-SamAccountName等
通过哈希表形式传入ipPhone属性及对应值,创建用户时就能直接设置该属性。
方法2:创建用户后用Set-ADUser补设ipPhone
如果习惯分步操作,可先创建用户,再单独设置ipPhone属性:
$Mobile = Read-Host "输入手机号" $ipPhone = Read-Host "输入IP电话号" $userName = "目标用户名" # 替换为实际用户名或SamAccountName # 先创建用户 New-ADUser -Name $userName -Mobile "$Mobile" # 补充其他必填参数 # 再设置ipPhone属性 Set-ADUser -Identity $userName -Replace @{'ipPhone'="$ipPhone"}
-Replace参数兼容性更强,不管属性是否已有值都能覆盖更新;若属性原本为空,也可以用-Add参数替代。
注意事项
- 确保执行脚本的账号拥有AD用户创建和属性修改的权限
ipPhone属性值需符合AD格式要求(通常为字符串类型的电话号码)
内容的提问来源于stack exchange,提问作者user20510778
相关产品推荐
相关产品推荐

