在过去两天左右的时间里,我一直在努力解决这个问题,但没有取得太大的成功——不管我尝试什么。当我运行查询以检索以特定结尾结尾的共享卷时,我让它在 ADSIEdit 中正常工作 - 但在我的 VBScript 中却没有。真的很奇怪,因为我使用的是完全相同的查询。
ADSIEdit 查询配置如下:
- 名称:测试
- 搜索根:DC=ad,DC=server,DC=com
- 查询字符串:(&(objectCategory=volume)(objectClass=volume)(cn=K_*))
查询范围:子树搜索。
- 搜索结果:cn以K_开头的11条记录
- VbScript 结果:1 条记录 (!?!?)
如果我将查询字符串更改为(最后一部分)(uNCName=*\5cOst-gro)),这就是我真正想要的(我给出的第一个查询字符串是出于测试目的),在 ADSIEdit 中我会返回 7 行 -在我的 VBScript 中没有!
这是我的(当前)VBScript 代码:
Set objDomain = getObject("LDAP://RootDSE")
Set objSysInfo = CreateObject("ADSystemInfo")
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand = CreateObject("ADODB.Command")
Set objCommand.ActiveConnection = objConnection
strDNSDomain = objDomain.Get("defaultNamingContext")
objCommand.CommandText = "Select Name, uNCName, ManagedBy from "_
& "'LDAP://DC=ad,DC=server,DC=com'" _
& " where objectClass='volume' and uNCName = '*\5cOst-gro'"
'The below is not working either!
'objCommand.CommandText = "<LDAP://DC=ad,DC=server,DC=com>;"_
' & "(&(objectCategory=volume)(objectClass=volume)(uNCName=*\5cOst-gro));"_
' & "name,uNCName;subtree"
Set objRecordSet = objCommand.Execute( , , adCmdTableDirect)
avarGetRowsArray = objRecordset.GetRows(intNumRows, BkMrk) ' returns 0 too
objRecordSet.MoveFirst ' Doesn't help
If objRecordSet.Supports(adApproxPosition)=True Then
nrRecords=objRecordSet.RecordCount
End If
if not objRecordSet.EOF Then
do While Not objRecordSet.EOF
MsgBox "Match found! " & objRecordSet.Fields("name").Value, vbOKOnly, "Match found"
objRecordSet.MoveNext
Loop
Else
MsgBox "No matches found. " & UBound(avarGetRowsArray), vbOKOnly, "No matches!"
end If
希望有人可以提供帮助。我已经阅读了无数关于它的主题,但每一个都失败了:(
编辑:我认为我已经将其归结为信任/许可问题。当我在 AD 机器上运行 adfind(或 dsquery)时,它返回正确的行数。但是,如果我在客户端机器上运行它,它会返回错误的行数。现在的问题是,我该如何解决呢?
服务器:
D:\Tests>adfind -c -f "(&(objectCategory=volume)(objectClass=volume)(uNCName=*\5
cOst-gro))"
AdFind V01.45.00cpp Joe Richards (joe@joeware.net) March 2011
Using server: ad.server.com:389
Directory: Windows Server 2003
Base DN: DC=ad,DC=server,DC=com
7 Objects returned
D:\Tests>
客户:
C:\tests>adfind -c -f "(&(objectCategory=volume)(objectClass=volume)(uNCName=*\5
cOst-gro))"
AdFind V01.45.00cpp Joe Richards (joe@joeware.net) March 2011
Using server: ad.server.com:389
Directory: Windows Server 2003
Base DN: DC= DC=ad,DC=server,DC=com
0 Objects returned
C:\tests>adfind -c -f "(&(objectCategory=volume)(objectClass=volume)(cn=K_*))"
AdFind V01.45.00cpp Joe Richards (joe@joeware.net) March 2011
Using server: ad.server.com:389
Directory: Windows Server 2003
Base DN: DC= DC=ad,DC=server,DC=com
1 Objects returned