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