Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

XADM: Security Descriptors That You Retrieve from Exchange 2000 by Using ActiveX Data Objects and the Exchange 2000 OLEDB Provider May Be Empty


View products that this article applies to.

This article was previously published under Q316952

↑ Back to the top


Symptoms

With the Web Storage System's security model, you can manage item security descriptors by using Microsoft ActiveX Data Objects (ADO) with the Exchange 2000 OLEDB provider (Exoledb). In Exchange 2000 Server Service Pack 1 (SP1) and later, this functionality may not work and a security descriptor that you retrieve from Exchange 2000 Server may be empty.

↑ Back to the top


Resolution

To resolve this problem, obtain the latest service pack for Microsoft Exchange 2000 Server. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:
301378 XGEN: How to Obtain the Latest Exchange 2000 Server Service Pack
The English version of this fix should have the following file attributes or later:

Component: Exoledb

File nameVersion
Store.exe6.0.4721.2
Jcb.dll6.0.4721.2
Exoledb.dll6.0.4721.2
Excdo.dll6.0.4721.2
Mdbsz.dll6.0.4721.2
Davex.dll6.0.4721.2
Exprox.dll6.0.4721.2

↑ Back to the top


Status

Microsoft has confirmed that this is a problem in Microsoft Exchange 2000 Server. This problem was first corrected in Microsoft Exchange 2000 Server Service Pack 3.

↑ Back to the top


More information

The following Microsoft Visual Basic sample retrieves the security descriptor for a given item in the "MyFolder" public folder:
...
const strFolderURL = "http://MyServer/public/Myfolder"

Dim con As ADODB.Connection
Dim rec As ADODB.Recordset
Dim strSQLQuery As String
Dim strSD As String
dim strDAVDisplayName as String

If con.State = adStateOpen Then rec.Close
con.Close
End If

con.Provider = "ExOLEDB.Datasource"
con.ConnectionString = strFolderURL
con.Open strSQLQuery = "select ""DAV:displayname"",""http://schemas.microsoft.com/exchange/security/descriptor"" from """ + strFolderURL + """"
rec.Open strSQLQuery, con
If rec.RecordCount > 0 Then rec.MoveFirst
strDAVDisplayName = rec.Fields("DAV:displayname")
strSD = rec.Fields("http://schemas.microsoft.com/exchange/security/descriptor")
End If
...
For the RTM version of Exchange 2000 Server, "strSD" contains the Extensible Markup Language (XML)-formatted security descriptor for the first item in the "MyFolder" public folder that matches the preceding query. In Exchange 2000 Server SP1 and later, this functionality does not work; you receive a run-time error "94" with an "Invalid use of Null" message instead of the expected XML-formatted security descriptor.

↑ Back to the top


Keywords: KB316952, kbfix, kbexchange2000sp3fix, kbexchange2000presp3fix, kbbug

↑ Back to the top

Article Info
Article ID : 316952
Revision : 5
Created on : 10/26/2006
Published on : 10/26/2006
Exists online : False
Views : 488