2

我想编辑我在 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 告诉我它不能将我的语法的前半部分解释为要编辑的对象。我的问题是,如何使用我正在使用的查询编辑标题字段?

提前致谢!

4

1 回答 1

0

这里的问题是 dsquery 的输出是用户对象的所有属性,而 dsmod 只需要 userDN。不幸的是,我在尝试将 dsquery * 与邮件字段一起使用时遇到了这种情况,我让 dsquery 只输出了 distinctName 的属性,但输出没有引号。

我的 dsquery:dsquery * domainroot -filter "(&(objectcategory=person)(objectclass=user)(mail=somedude@contoso.com))" -attr distinctName -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。

于 2015-02-19T18:03:08.713 回答