dsmod用户标题 - “此命令的目标对象”的值格式不正确

时间:2014-03-04 16:14:51

标签: active-directory dsquery

我想编辑我在CSV文件中列出的Active Directory上的大量用户标题字段。

如果我运行它,我可以获得与用户关联的每个属性:

dsquery * domainroot -filter "(&(objectCategory=Person)(objectClass=User)(sAMAccountName=%UsrFld%))" -attr * -limit 0

但是,如果我尝试执行以下操作来编辑“标题”字段,请使用:

dsquery * domainroot -filter "(&(objectCategory=Person)(objectClass=User)(sAMAccountName=%promptusername%))" -attr * -limit 0| dsmod user -title Disabled User

我收到以下错误:

dsmod failed:Value for 'Target object for this command' has incorrect format.

现在显然DSMOD告诉我,它无法将我语法的前半部分解释为编辑对象。我的问题是,如何使用我正在使用的查询编辑标题字段?

提前致谢!

1 个答案:

答案 0 :(得分:0)

这里的问题是dsquery的输出是用户对象的所有属性,而dsmod只是期望userDN。不幸的是我遇到了尝试将dsquery *与邮件字段一起使用,我让dsquery只输出distinguishedName的attr,但输出没有引号。

我的dsquery: dsquery * domainroot -filter“(&(objectcategory = person)(objectclass = user)(mail = somedude@contoso.com))” - custtr distinguishedName -L

输出是: CN = Some Dude,OU = BitInspector,OU = Bit Makers,OU = Mfgs,DC = Contoso,DC = Com

Dsmod期待输入的引号如下: “CN = Some Dude,OU = BitInspector,OU = Bit Makers,OU = Mfgs,DC = Contoso,DC = Com”,因为userDN中有空格,因此需要引号。

不幸的是我永远无法弄清楚如何在dsquery输出周围加上引号,所以我最终转到了PowerShell。