我有一个简单的 Powershell 函数来根据用户的 SID 执行 Active Directory LDAP 查找:
function SidToAdUser($sid) {[adsi]("LDAP://<SID=" + $sid + ">")}
如果我希望从返回的 User 对象中读取属性,则可以通过中间变量访问它:
$ad = SidToAdUser("S-1-5-21-968173855-142910291-87512543-670313")
$ad.department
但是,尝试直接从函数的返回值访问它,如下所示:
SidToAdUser("S-1-5-21-968173855-142910291-87512543-670313").department
引发错误:
format-default : The following exception occurred while retrieving member "distinguishedName": "An invalid dn syntax has been specified.
"
+ CategoryInfo : NotSpecified: (:) [format-default], ExtendedTypeSystemException
+ FullyQualifiedErrorId : CatchFromBaseGetMember,Microsoft.PowerShell.Commands.FormatDefaultCommand
谁能告诉我为什么会这样,以及如何纠正它?
谢谢你。