You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Active Directory中创建计算机对象时直接禁用的实现问题

解决创建AD计算机对象时直接禁用的属性问题

我来帮你搞定这个问题!你遇到的报错其实是因为对AD属性的底层逻辑理解有偏差,咱们一步步理清楚:

为什么用-OtherAttributes设置Enabled会报错?

你说得没错,Enabled确实在AD管理工具里能看到,但它不是AD数据库中实际存储的原生属性——它是一个「构造属性」,是系统通过userAccountControl这个核心属性计算出来的友好展示值。所以你没法直接通过-OtherAttributes来设置它,这就是报错“指定的目录服务属性或值不存在”的原因。

正确的实现方法:直接操作userAccountControl

要在创建计算机对象时直接禁用,你需要修改userAccountControl的值:

  • 计算机对象的默认userAccountControl值是4096(对应WORKSTATION_TRUST_ACCOUNT)
  • 禁用账户需要加上2(对应ACCOUNTDISABLE),最终值为4098

示例命令(PowerShell)

直接指定-UserAccountControl参数:

New-ADComputer -Name "TestPC01" -SamAccountName "TestPC01$" -UserAccountControl 4098 -Path "OU=Computers,DC=yourdomain,DC=com"

如果一定要用-OtherAttributes参数,也可以直接传入userAccountControl:

New-ADComputer -Name "TestPC01" -SamAccountName "TestPC01$" -OtherAttributes @{'userAccountControl'=4098} -Path "OU=Computers,DC=yourdomain,DC=com"

补充说明

你之前能通过其他方法实现禁用,大概率是先创建计算机对象,再用Set-ADComputer -Enabled $false来修改——这是可行的,因为Set-ADComputer会自动把Enabled的设置转换成对应的userAccountControl值。但在创建阶段,必须直接操作底层的userAccountControl属性才行。

内容的提问来源于stack exchange,提问作者Adam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:11:55