首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试使用Powershell搜索LDAP时出错

尝试使用Powershell搜索LDAP时出错
EN

Stack Overflow用户
提问于 2012-02-06 21:59:57
回答 2查看 4.6K关注 0票数 2

上面的内容提供了:

PS C:\EndurAutomation\powershell\bin> C:\EndurAutomation\powershell\bin\ets_update_constring.ps1异常使用"0“参数调用"FindAll”:“发生操作错误。”At C:\EndurAutomation\powershell\bin\ets_update_constring.ps1:20 char:30 + $result = $ldapSearch.FindAll <<<< () + CategoryInfo : NotSpecified:(:) [],MethodInvocationException + FullyQualifiedErrorId : DotNetMethodException

代码语言:javascript
复制
$ldapDN = "dc=<masked>,dc=<masked>"
$ldapURI = "ldap://<masked>/$ldapDN"


$env = "sqlplus -S <masked> ``@env.sql > env.list"
Invoke-Expression $env
$envData = (Get-Content "env.list")

$envFilter = "(|"
foreach ($env in $envData) {
    $envFilter += "(cn=$env)"
}
$envFilter += ")"

$ldapEntry = New-Object System.DirectoryServices.DirectoryEntry($ldapUR, $null, $null,         [System.DirectoryServices.AuthenticationTypes]::Anonymous)
$ldapSearch = New-Object System.DirectoryServices.DirectorySearcher($ldapEntry)
$ldapSearch.PageSize = 1000
$ldapSearch.Filter = $envFilter

$result = $ldapSearch.FindAll($envFilter)
EN

回答 2

Stack Overflow用户

发布于 2012-02-06 22:04:14

您已经设置了$ldapSearch.Filter = $envFilter,因此不需要通过再次传入过滤器来调用FindAll。试着在你的最后一行代码中这样做,因为它仍然会内置你的过滤器:

代码语言:javascript
复制
$result = $ldapSearch.FindAll()
票数 1
EN

Stack Overflow用户

发布于 2013-04-08 20:03:29

我认为这是一个打字错误:

代码语言:javascript
复制
$ldapEntry = New-Object System.DirectoryServices.DirectoryEntry(
        **$ldapUR**, $null, $null, 
        [System.DirectoryServices.AuthenticationTypes]::Anonymous
    )

试一试

代码语言:javascript
复制
$ldapURI 

而不是

代码语言:javascript
复制
$ldapUR
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9161219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档