0

我有一个简单的 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

谁能告诉我为什么会这样,以及如何纠正它?

谢谢你。

4

1 回答 1

2

您的函数调用语法错误。

(SidToAdUser S-1-5-21-968173855-142910291-87512543-670313).department

在 powershell 中,函数参数在函数名之后指定为以空格分隔的值,而不是用括号括起来。

于 2014-05-21T12:49:13.283 回答