当“/”是CN的一部分时,powershell无法处理LDAP用户

时间:2013-04-02 06:47:32

标签: powershell escaping ldap

我一直在创建一个powershell脚本,用户directorysearcher列出一个特定的组成员,而不是构建一个只包含其SAN属性的数组:

$UserSANList = foreach ($UserDN in $UsersDNList){
    $objSrcDomainUser = New-Object System.DirectoryServices.DirectoryEntry("LDAP://$strSrcDomainServer/$UserDN", $strSrcUser, $strSrcPass)
    $objSrcDomainUser.Properties["samaccountname"].Value
}

我一直在尝试使用几个不同的用户名运行此代码以确保它有效(因为powershell应该格式化LDAP查询它不应该是一个大问题) 它适用于我正在尝试的每个特殊字符,但每当我尝试在CN中使用“/”时(例如:LDAP:// dc / CN = a / bc,ou = ou1,dc = dc1,dc = domain )我收到以下错误:

Cannot index into a null array.
At C:\****.ps1:258 char:31
+     $objSrcDomainUser.Properties[ <<<< "samaccountname"].Value
+ CategoryInfo          : InvalidOperation: (samaccountname:String) [], RuntimeException
+ FullyQualifiedErrorId : NullArray

如果删除“/”字符,一切似乎都有效, 我有一种感觉,因为我正在使用特定的DC,但是 - 因为这段代码是为了连接到远程域而没有与当前域的信任关系,所以我必须使用它。

是否还有其他人碰到同样的事情?

提前感谢任何答案

0 个答案:

没有答案