2017-07-06 84 views
0

我有一个脚本,它匹配一个基于csv中的电子邮件的联系人,我可以使用get-adobject -ldapfilter找到联系人,但是当我尝试将联系人添加为管理员时,添加失败,声明它找不到联系人。目录中明确显示它找不到的联系人。添加管理器属性失败

这条线将查找联系人:

$rmanager = Get-ADObject -SearchBase 'OU=workplace,OU=Contacts,DC=office,DC=com' -ldapfilter "(&(objectclass=contact)(name=$fname*)(name=*$lname))" 

问题接触的一个例子被人发现......

PS C:\temp> Get-ADObject -SearchBase 'OU=workplace,OU=Contacts,DC=office,DC=com' -ldapfilter "(&(objectclass=contact)(name=$fname*)(name=*$lname))" 

DistinguishedName Name ObjectClass ObjectGUID 
----------------- ---- ----------- ---------- 
CN=Nick Hill,OU=workplace,OU=Contacts,DC=office,DC=com Nick Hill contact b649bd7e-aac9-4d4b-8203-b6a79f35b91 

然而,与设置ADUser便有此行会失败说明它找不到明确存在的联系人...

get-aduser -f {mail -eq $username} |set-aduser -Manager "$rmanager" 



set-aduser : Identity info provided in the extended attribute: 'Manager' could not be resolved. Reason: 'Cannot find an object with identity: 'CN=Nick Hill,OU=Workplace,OU=Contacts,DC=office,DC=com' under: 'DC=Office,DC=com'.'. 
+0

用户对象不是联系对象。 –

+0

比尔,这是同一个问题,只是提问不同,因为我没有得到对方的答案。 – 200mg

+0

我的确在其他问题的评论中回答了你的问题。 –

回答

1

我刚刚测试过它,它的工作原理如下:

a。获取专有名称联系人:

$contactDN = Get-ADObject -LDAPFilter "(&(objectClass=contact)(givenName=firstname)(sn=lastname))" 
    | Select-Object -ExpandProperty DistinguishedName 

b。获取用户对象并替换manager属性:

Get-ADUser username | Get-ADObject | Set-ADObject -Replace @{"manager" = $contactDN} 
+0

谢谢Bill,我错过了get-adobject部分,这对我也很有用! – 200mg