過去兩天左右,我一直在抨擊我的頭,並且沒有太大的成功 - 無論我嘗試什麼。 當我運行查詢以檢索以特定結尾結束的共享卷時,我會在ADSIEdit中正常工作 - 但不能在我的VBScript中。真奇怪,因爲我使用完全相同的查詢。當ADSIEdit返回正確的行數時,VBScript返回0行
有Adsiedit查詢配置,像這樣:
- 名稱:測試
- 根的搜索:DC =廣告,DC =服務器,DC = com的
- 查詢字符串:(&(objectCategory =體積)(objectClass = volume)(cn = K_ *))
查詢範圍:子樹搜索。
- 搜索結果:共有11條記錄,其中CN與K_
- 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
希望有人可以提供幫助。我已經read countless topics就可以了,但每個人都失敗:(
編輯:我想我已經把它釘在一個信任/權限問題上當我在AD機器上運行adfind(或dsquery)時,它返回正確的行數不過,如果我在客戶機上運行它,它返回行的金額錯誤,現在的問題是,如何我該怎麼辦來解決它
服務器:a。?
D:\Tests>adfind -c -f "(&(objectCategory=volume)(objectClass=volume)(uNCName=*\5
cOst-gro))"
AdFind V01.45.00cpp Joe Richards ([email protected]) 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 ([email protected]) 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 ([email protected]) March 2011
Using server: ad.server.com:389
Directory: Windows Server 2003
Base DN: DC= DC=ad,DC=server,DC=com
1 Objects returned
在您的查詢中,您想要使用(uNCName = * \ 5cOst-gro)。 * \ 5對你的想法有什麼影響。我不知道是否有逃避的問題。 – geoffc 2011-05-11 16:33:49
@geoffc \ 5c是反斜槓(\\)的替代品,我從ADSIEdit那裏獲得了它。換句話說,它會在這種情況下搜索* \ Ost-gro(例如,一個成功的命中將是ad.server.com \ shares \ Ost-gro) – Exodus 2011-05-11 17:38:56
#Exodus所以我不知道是否逃避帳戶的差異ADSIEdit與VBScript。 – geoffc 2011-05-11 19:08:28