วิธีการตั้งค่า Exchange Server 2000 และสิทธิ์ในกล่องจดหมาย 2003 ในเวลาสร้างกล่องจดหมาย

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 304935 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

บทความนี้แสดงวิธีการปรับเปลี่ยนสิทธิ์ของกล่องจดหมายบน Microsoft Exchange Server 2000 หรือกล่องจดหมาย 2003 ในเวลาเดียวกันเปิดการใช้ที่คุณกล่องจดหมายงานวัตถุผู้ใช้ที่อยู่ในบริการไดเรกทอรี Active Directory ของ Microsoft โดยทางโปรแกรม

บทความนี้ประกอบด้วยรหัสตัวอย่างที่แสดงวิธีการตั้งค่าสิทธิ์ของกล่องจดหมาย Exchange 2000 หรือกล่องจดหมาย 2003 ก่อนที่ จะถูกสร้างขึ้นสำหรับผู้ใช้ใน Exchange 2000 กล่องจดหมายที่แท้จริง หรือการจัดเก็บข้อมูล 2003 แต่หลัง จากที่วัตถุผู้ใช้ได้ถูกเปิดใช้กล่องจดหมายใน Active Directory

หมายเหตุ:รหัสนี้มีไม่มีผลหากกล่องจดหมายที่มีอยู่แล้วใน Exchange 2000 หรือเก็บข้อมูล 2003 ในอย่างอื่น นั้นไม่มีผลกับสิทธิ์ของกล่องจดหมายที่แท้จริงในกล่องจดหมายของผู้ใช้ถ้ากล่องจดหมายของผู้ใช้ที่มีอยู่ถูกเข้าถึงสำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการสิทธิ์ของกล่องจดหมายกล่องจดหมาย Exchange 2000 ทั้งก่อน และหลัง จากที่ได้ถูกสร้างขึ้นในการเก็บข้อมูล คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
310866วิธีการตั้งค่าสิทธิ์ในกล่องจดหมาย Exchange 2000 กล่องจดหมายที่มีอยู่ในเก็บข้อมูล

ข้อมูลเพิ่มเติม

กล่องจดหมายมีสองส่วนใน Exchange 2000 หรือองค์กร 2003 ในระบบโดเมน Microsoft Windows 2000 หรือ Microsoft Windows Server 2003
  • ผู้ใช้เปิดกล่องจดหมายใช้ Active Directory: นี่คือเพียงเป็นวัตถุผู้ใช้ใน Active Directory คุณสมบัติที่เกี่ยวข้องกับจดหมายและคุณสมบัติที่เกี่ยวข้องกับกล่องจดหมายหลายถูกตั้งค่าบนวัตถุนี้ผู้ใช้
  • โฟลเดอร์กล่องจดหมายในเก็บข้อมูล Exchange: นี่คือตำแหน่ง ที่เก็บจดหมายที่แท้จริงของผู้ใช้ และมีการตั้งค่าคุณสมบัติต่าง ๆ ที่อยู่เฉพาะกับกล่องจดหมาย
สิทธิ์ในกล่องจดหมายจัดเก็บไว้ในคุณสมบัติตัวบอกเกี่ยวกับความปลอดภัยที่อยู่บนกล่องจดหมายในเก็บข้อมูล ไม่ยังแอตทริบิวต์ใน Active Directory ผู้ใช้วัตถุ เรียกการmsExchMailboxSecurityDescriptor. คุณลักษณะนี้ถูกออกแบบมาเพื่อสะท้อนถึงสิทธิ์ในกล่องจดหมายกล่องจดหมายของผู้ใช้เท่านั้น

ข้อมูลภาพรวมอย่างรวดเร็วของกระบวนการเปิดใช้กล่องจดหมาย Exchange 2000 หรือ 2003

ต่อไปนี้เป็นขั้นตอนต่าง ๆ ที่โดยปกติดำเนินการสร้าง Exchange 2000 หรือผู้ใช้ที่เปิดใช้กล่องจดหมาย 2003 ใน Active Directory:
  1. ผู้ดูแลโดเมนที่สร้างวัตถุผู้ใช้ Active Directory และเปิดใช้งานบัญชีผู้ใช้ จากที่ "Active Directory ผู้ใช้และคอมพิวเตอร์" (ADUnC) สแนปอินหรือ จากรหัสที่ใช้ Active Directory Services อินเทอร์เฟซ (ADSI)
  2. เปิดใช้ผู้ดูแลของโดเมนแล้วกล่องจดหมายงานผู้ใช้นี้ จาก ADUnC หรือโดยทางโปรแกรม ผ่านอินเทอร์เฟซ IMailboxStore ในวัตถุข้อมูลการร่วมมือกันสำหรับการแลกเปลี่ยนการจัดการ (CDOEXM) การเชื่อมโยงกับเอกสารประกอบสำหรับอินเทอร์เฟซ IMailboxStore จะรวมอยู่ในส่วน "อ้างอิง" ของบทความนี้ ไม่สนับสนุนการใดวิธีการอื่นที่ไม่ใช่ CDOEXM ที่ใช้ในการเปิดใช้โดยทางโปรแกรมกล่องจดหมายงานวัตถุผู้ใช้

    ตรวจสอบ approaches สองเหล่านี้ให้แน่ใจว่าการmsExchMailboxSecurityDescriptorแอตทริบิวต์และคุณลักษณะอื่น ๆ หลายถูกตั้งค่าอย่างถูกต้องบนวัตถุผู้ใช้เมื่อเปิดใช้ดังกล่าวกล่องจดหมายงานนี้ ขั้นตอนนี้ basically กำหนดชุดย่อยของแอตทริบิวต์ของจดหมายและแอตทริบิวต์ของกล่องจดหมายขนาดเล็กบนวัตถุผู้ใช้ที่อยู่ใน Active Directory ณจุดนี้ กล่องจดหมายของผู้ใช้ยังไม่พร้อมสำหรับการเข้าถึง
  3. ผู้รับการปรับปรุง Service (RUS) ที่รันใน Exchange 2000 หรือเซิร์ฟเวอร์ 2003 ขึ้นอยู่กับเมื่อคุณมีการจัดกำหนดการให้รัน stamps ทั้งหมดที่เหลือเกี่ยวข้อง กับจดหมาย และเกี่ยวข้อง กับกล่องจดหมายคุณลักษณะบนวัตถุนี้ผู้ใช้ ณจุดนี้ กล่องจดหมายของผู้ใช้ไม่ได้ถูกสร้างใน Exchange 2000 หรือการจัดเก็บข้อมูล 2003 อย่างไรก็ตาม ผู้ใช้จะเสร็จสมบูรณ์กล่องจดหมายเปิดใช้งาน ขณะนี้ กล่องจดหมายไม่พร้อมที่จะสามารถเข้าถึง
  4. เมื่อผู้ใช้เข้าถึงกล่องจดหมายแรก หรือ เมื่อมีการกำหนดเส้นทางข้อความแรกไปยังกล่องจดหมาย กล่องจดหมายที่แท้จริงถูกสร้างใน Exchange 2000 หรือเก็บข้อมูล 2003 ณจุดนี้ เมื่อ Exchange สร้างกล่องจดหมายสำหรับผู้ใช้ สิทธิ์กล่องจดหมายที่ถูกตั้งค่าบนตัวอธิบายความปลอดภัยของกล่องจดหมายในเก็บ This is based on the access control entries (ACEs) that are set on themsExchMailboxSecurityDescriptorแอตทริบิวต์

The msExchMailboxSecurityDesciptor attribute

This attribute exists on the user object in Active Directory. It stores a partial copy of the user's mailbox security descriptor. This attribute is not back-linked to the user's mailbox security descriptor.

In other words, if you modify this attribute directly, you do not update the actual mailbox security descriptor on the user's mailbox in the Exchange information store, unless you set this attribute before the actual mailbox has been created in the information store.

In fact, if there is a conflict between the security descriptor that is reflected by themsExchMailboxSecurityDescriptorattribute on the user object in Active Directory and the security descriptor that is stored on the user's mailbox in the information store, Exchange fixes themsExchMailboxSecurityDescriptorattribute to reflect the security descriptor on the user's mailbox. If you modify the security descriptor of the user's mailbox from ADUnC or through the CDOEXM IExchangeMailbox interface, themsExchMailboxSecurityDescriptorattribute is updated automatically to reflect these changes.

Limitations of using the msExchMailboxSecurityDescriptor attribute

  • The changes that you make on this attribute are reflected on the security descriptor of the user's mailbox only when you set this attribute before the mailbox is created in the information store. Note that the Exchange 2000 and 2003 mailbox for a mailbox-enabled user in Active Directory is created in an Exchange store when the user first accesses the mailbox or when any mail is sent to this user.
  • Another limitation of this attribute is that the attribute does not reflect any of the inherited ACEs on the actual mailbox's security descriptor. Hence, reading this directory attribute is not the most accurate approach to read a user's mailbox rights.

Advantages of using the msExchMailboxSecurityDescriptor attribute

  • This attribute is defined on a user object in Active Directory. Therefore, it can be accessed using any API that is compliant with Lightweight Directory Access Protocol (LDAP), such as the ADSI APIs or the LDAP APIs.
  • Because this code does not require CDOEXM, you can run it from a server that does not have the Microsoft Exchange 2000 and 2003 System Management Tools installed. But, again, you must set the mailbox rights before the user's mailbox is created in the information store. Also, you can read the mailbox rights at any time on this user's mailbox. But keep in mind the limitations that are mentioned in this article. (See the "Limitations of Using themsExchMailboxSecurityDescriptorAttribute" section.)
If you do not set themsExchMailboxSecurityDescriptorattribute on the mailbox-enabled user before the actual mailbox is created in the information store, the actual security descriptor property on the mailbox in the information store does not include an ACE with the following:
  • กระบวนการTrusteeคุณสมบัติที่กำหนดSelf
  • กระบวนการAccess Maskคุณสมบัติที่กำหนดFull Mailbox Access
  • กระบวนการReadpermission set toอนุญาตให้
  • กระบวนการACE Typeการตั้งค่าเป็นอนุญาตให้
If this is the case, the user may experience problems when the user tries to access public folders or any resources that are outside the local Exchange server. This is one of the reasons why the IMailboxStore interface in the CDOEXM library is the only supported mechanism to programmatically mailbox-enable an Active Directory user against an Exchange 2000 or 2003 store.Here is a sample that shows you how to use ADSI and CDOEXM to make a mailbox-enabled user object in Active Directory. Then you manually set themsExchMailboxSecurityDescriptorinterface to include an ACE with the trustee specified in the code. The sole purpose of this sample is to show you how to set this attribute before the user's mailbox has been accessed and created in the information store if the attribute was not set correctly in the past.

Setting up the Visual Basic environment to run the Visual Basic sample

  1. Start Microsoft Visual Basic 6.0 on the Exchange 2000 or 2003 server.
  2. Create a New Standard EXE Project. เมื่อต้องการทำเช่นนั้น คลิกใหม่ในการแฟ้ม:เมนู และคลิกสองครั้งที่แล้วEXE มาตรฐาน.
  3. ในการProjectเมนู คลิกอ้างอิง:แล้ว เลือกไลบรารีชนิด DS ที่ใช้งานอยู่และCDO Microsoft สำหรับการจัดการการแลกเปลี่ยน.
  4. ในมุมมองต้นทางของฟอร์ม พิมพ์ หรือวางรหัสต่อไปนี้เพื่อที่จะแทนForm_Load()subroutine
  5. การเปลี่ยนแปลงค่าที่กำหนดไว้สำหรับตัวแปรsUserADsPathเส้นทางของ LDAP สำหรับวัตถุผู้ใช้ Active Directory ที่สิทธิ์กล่องจดหมายที่คุณต้องการดู หรือแก้ไข
หมายเหตุ::ตัวอย่างนี้แสดงวิธีการที่อ่านสำเนาของสิทธิ์ของกล่องจดหมายที่เก็บอยู่ในนั้นmsExchMailboxSecurityDescriptorแอตทริบิวต์ ดังกล่าวยังแสดงวิธี การปรับเปลี่ยนสิทธิ์ของกล่องจดหมาย และเพิ่ม ACE ข้อสำหรับการเข้าถึงกล่องจดหมายเต็มSelface เป็นทรัสตีที่

โค้ด Visual Basic

'********************************************************************
'*
'* Function AddAce(dacl, TrusteeName, gAccessMask, gAceType,
'*            gAceFlags, gFlags, gObjectType, gInheritedObjectType)
'*
'* Purpose: Adds an ACE to a DACL
'* Input:       dacl            Object's Discretionary Access Control List
'*              TrusteeName     SID or Name of the trustee user account
'*              gAccessMask     Access Permissions
'*              gAceType        ACE Types
'*              gAceFlags       Inherit ACEs from the owner of the ACL
'*              gFlags          ACE has an object type or inherited object type
'*              gObjectType     Used for Extended Rights
'*              gInheritedObjectType
'*
'* Output:  Object - New DACL with the ACE added
'*
'********************************************************************

Function AddAce(dacl, TrusteeName, gAccessMask, gAceType, gAceFlags, gFlags, gObjectType, gInheritedObjectType)
    Dim Ace1
    ' Create a new ACE object
    Set Ace1 = CreateObject("AccessControlEntry")
    Ace1.AccessMask = gAccessMask
    Ace1.AceType = gAceType
    Ace1.AceFlags = gAceFlags
    Ace1.Flags = gFlags
    Ace1.Trustee = TrusteeName
    'Check to see if ObjectType needs to be set
    If CStr(gObjectType) <> "0" Then
       Ace1.ObjectType = gObjectType
    End If

    'Check to see if InheritedObjectType needs to be set
    If CStr(gInheritedObjectType) <> "0" Then
        Ace1.InheritedObjectType = gInheritedObjectType
    End If
    dacl.AddAce Ace1

    ' Destroy objects
    Set Ace1 = Nothing
End Function


Private Sub Form_Load()
Dim objContainer As IADsContainer
Dim objUser As IADsUser
Dim objMailbox As CDOEXM.IMailboxStore
Dim oSecurityDescriptor As SecurityDescriptor
Dim dacl As AccessControlList
Dim ace As AccessControlEntry

' ********************************************************************
' You must change this variable according to your environment
'

sContainerADsPath = "LDAP://domain.com/cn=Users,DC=domain,DC=com"
sUserLoginName = "testUser"
sUserFirstName = "Test"
sUserLastName = "User"
sMBXStoreDN = "CN=Mailbox Store (ExServer),CN=First Storage Group," & _
   "CN=InformationStore,CN=ExServer,CN=Servers,CN=AdminGP," & _
   "CN=Administrative Groups,CN=Microsoft,CN=Microsoft Exchange," & _
   "CN=Services,CN=Configuration,DC=domain,DC=com"
sTrustee = "domainName\userName"
' ********************************************************************

' Get directory container object object
Set objContainer = GetObject(sContainerADsPath)

' Create the user object in the target container in Active Directory
Set objUser = objContainer.Create("User", "CN=" & sUserFirstName & " " & _
              sUserLastName)
objUser.Put "samAccountName", sUserLoginName
objUser.Put "givenName", sUserFirstName
objUser.Put "sn", sUserLastName
objUser.SetInfo
objUser.SetPassword "password"
objUser.SetInfo

' Mailbox-enable the user object by using the CDOEXM::IMailboxStore 
' interface
' This also sets the msExchMailboxSecurityDescriptor appropriately
Set objMailbox = objUser
objMailbox.CreateMailbox sMBXStoreDN
objUser.SetInfo

'**************************************************************************
'  The msExchMailboxSecurityDescriptor attribute is a backlink attribute 
'   from the Exchange Mailbox in the Web store to the directory. What this
'   implies is that the mailbox rights are stored on the actual mailbox in
'   the Web store and this directory attribute reflects these mailbox 
'   rights.
'  By default, changing this attribute does not affect the mailbox rights 
'   in the store. This attribute can only be modified before the actual 
'   mailbox in the store is created. If it is set before the mailbox in 
'   the Web store is created, Exchange will use the DACL set on this 
'   attribute as the DACL for mailbox rights on the mailbox in the store.
'   Therefore, it can only be set before the mailbox-creation time.
'  On installing Exchange 2000 SP2 on the Exchange Server where this code
'   is being run, that would enable modifying the actual mailbox rights 
'   even after mailbox creation.
'**************************************************************************

' Get the copy Mailbox Security Descriptor (SD) stored on the
' msExchMailboxSecurityDescriptor attribute
objUser.GetInfoEx Array("msExchMailboxSecurityDescriptor"), 0
Set oSecurityDescriptor = objUser.Get("msExchMailboxSecurityDescriptor")

' Extract the Discretionary Access Control List (ACL) using the 
' IADsSecurityDescriptor interface
Set dacl = oSecurityDescriptor.DiscretionaryAcl

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'  The following block of code demonstrates reading all the ACEs on a 
'  DACL for the Exchange 2000 mailbox.
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Debug.Print "Here are the existing ACEs the mailbox's DACL - "

' Enumerate all the access control entries (ACEs) in the ACL using 
' the IADsAccessControlList interface, thus displaying the current 
' mailbox rights
Debug.Print "Trustee, AccessMask, ACEType, ACEFlags, Flags, ObjectType, InheritedObjectType"
Debug.Print "-------  ----------  -------  --------  -----  ----------" & _
            " -------------------"
Debug.Print

For Each ace In dacl
' Display all the ACEs' properties by using the IADsAccessControlEntry 
' interface
    Debug.Print ace.Trustee & ", " & ace.AccessMask & ", " & _ 
      ace.AceType & ", " & ace.AceFlags & ", " & ace.Flags & ", " & _
      ace.ObjectType & ", " & ace.InheritedObjectType
Next

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'  The following block of code demonstrates adding a new ACE to the DACL 
'  for the Exchange 2000 mailbox with the Trustee specified in sTrustee, 
'  giving allow "Full Control" over this mailbox.
'  This is the same task that is performed by ADUnC when selecting Add, 
'  specifying the Trustee, and checking the "Full Mailbox Access" Rights 
'  checkbox under the Mailbox Rights in the Exchange Advanced tab on the 
'  properties of a user.
'  Similarly, you could remove ACEs from this ACL as well using the 
'  IADsAccessControlEntry interfaces.
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

' Template: AddAce(TrusteeName, gAccessMask, gAceType, gAceFlags, gFlags, gObjectType, gInheritedObjectType)
' Setting the Access Mask to 131075 enables "full mailbox access" and 
' "read" privileges
AddAce dacl, sTrustee, 131075, _
       ADS_ACETYPE_ACCESS_ALLOWED, ADS_ACEFLAG_INHERIT_ACE, 0, 0, 0

' Add the modified DACL back onto the Security Descriptor
oSecurityDescriptor.DiscretionaryAcl = dacl

' Save New SD onto the user
objUser.Put "msExchMailboxSecurityDescriptor", oSecurityDescriptor

' Commit changes from the property cache to the Information Store
objUser.SetInfo

MsgBox "Done viewing and modifying the copy of the Mailbox Security Descriptor"

End Sub
				

รหัสของสคริปต์ Visual Basic

Dim objContainer
Dim objUser
Dim objMailbox
Dim oSecurityDescriptor
Dim dacl
Dim ace

' ********************************************************************
' You must change this variable according to your environment
'

sContainerADsPath = "LDAP://domain.com/cn=Users,DC=domain,DC=com"
sUserLoginName = "testUser"
sUserFirstName = "Test"
sUserLastName = "User"
sMBXStoreDN = "CN=Mailbox Store (ExServer),CN=First Storage Group," & _
   "CN=InformationStore,CN=ExServer,CN=Servers,CN=AdminGP," & _
   "CN=Administrative Groups,CN=Microsoft,CN=Microsoft Exchange," & _
   "CN=Services,CN=Configuration,DC=domain,DC=com"
sTrustee = "domainName\userName"
' ********************************************************************

' Get directory container object object
Set objContainer = GetObject(sContainerADsPath)

' Create the user object in the target container in Active Directory
Set objUser = objContainer.Create("User", "CN=" & sUserFirstName & " " & _
              sUserLastName)
objUser.Put "samAccountName", sUserLoginName
objUser.Put "givenName", sUserFirstName
objUser.Put "sn", sUserLastName
objUser.SetInfo
objUser.SetPassword "password"
objUser.SetInfo

' Mailbox enable the user object by using the CDOEXM::IMailboxStore 
' interface
' This also sets the msExchMailboxSecurityDescriptor appropriately
Set objMailbox = objUser
objMailbox.CreateMailbox sMBXStoreDN
objUser.SetInfo

'**************************************************************************
'  The msExchMailboxSecurityDescriptor attribute is a backlink attribute 
'   from the Exchange Mailbox in the Web Store to the directory. What this
'   implies is that the mailbox rights are stored on the actual mailbox in
'   the Web store and this directory attribute reflects these mailbox 
'   rights.
'  By default, changing this attribute does not affect the mailbox rights 
'   in the store. This attribute can only be modified before the actual 
'   mailbox in the store is created. If it is set before the mailbox in 
'   the Web store is created, Exchange will use the DACL set on this 
'   attribute as the DACL for mailbox rights on the mailbox in the store.
'   Therefore, it can only be set before the mailbox creation time.
'  On installing Exchange 2000 SP2 on the Exchange Server where this code
'   is being run, that would enable modifying the actual mailbox rights 
'   even after mailbox creation.
'**************************************************************************

' Get the copy Mailbox Security Descriptor (SD) stored on the
' msExchMailboxSecurityDescriptor attribute
objUser.GetInfoEx Array("msExchMailboxSecurityDescriptor"), 0
Set oSecurityDescriptor = objUser.Get("msExchMailboxSecurityDescriptor")

' Extract the Discretionary Access Control List (ACL) using the 
' IADsSecurityDescriptor interface
Set dacl = oSecurityDescriptor.DiscretionaryAcl

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'  The following block of code demonstrates reading all the ACEs on a 
'  DACL for the Exchange 2000 mailbox.
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Wscript.echo "Here are the existing ACEs the mailbox's DACL - "

' Enumerate all the access control entries (ACEs) in the ACL using 
' the IADsAccessControlList interface, thus displaying the current 
' mailbox rights
Wscript.echo "Trustee, AccessMask, ACEType, ACEFlags, Flags, ObjectType, InheritedObjectType"
Wscript.echo "-------  ----------  -------  --------  -----  ----------" & _
            " -------------------"
Wscript.echo

For Each ace In dacl
' Display all the ACEs' properties using the IADsAccessControlEntry 
' interface
    Wscript.echo ace.Trustee & ", " & ace.AccessMask & ", " & _ 
      ace.AceType & ", " & ace.AceFlags & ", " & ace.Flags & ", " & _
      ace.ObjectType & ", " & ace.InheritedObjectType
Next

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'  The following block of code demonstrates adding a new ACE to the DACL 
'  for the Exchange 2000 mailbox with the Trustee specified in sTrustee, 
'  giving allow "Full Control" over this mailbox.
'  This is the same task that is performed by ADUnC when selecting Add, 
'  specifying the Trustee, and checking the "Full Mailbox Access" Rights 
'  checkbox under the Mailbox Rights in the Exchange Advanced tab on the 
'  properties of a user.
'  Similarly, you could remove ACEs from this ACL as well using the 
'  IADsAccessControlEntry interfaces.
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

' Template: AddAce(TrusteeName, gAccessMask, gAceType, gAceFlags, gFlags, gObjectType, gInheritedObjectType)
' Setting the Access Mask to 131075 enables "full mailbox access" and 
' "read" priviledges
AddAce dacl, sTrustee, 131075, _
       ADS_ACETYPE_ACCESS_ALLOWED, ADS_ACEFLAG_INHERIT_ACE, 0, 0, 0

' Add the modified DACL back onto the Security Descriptor
oSecurityDescriptor.DiscretionaryAcl = dacl

' Save New SD onto the user
objUser.Put "msExchMailboxSecurityDescriptor", oSecurityDescriptor

' Commit changes from the property cache to the information store
objUser.SetInfo

MsgBox "Done viewing and modifying the copy of the Mailbox Security Descriptor"


'********************************************************************
'*
'* Function AddAce(dacl, TrusteeName, gAccessMask, gAceType,
'*            gAceFlags, gFlags, gObjectType, gInheritedObjectType)
'*
'* Purpose: Adds an ACE to a DACL
'* Input:       dacl            Object's Discretionary Access Control List
'*              TrusteeName     SID or Name of the trustee user account
'*              gAccessMask     Access Permissions
'*              gAceType        ACE Types
'*              gAceFlags       Inherit ACEs from the owner of the ACL
'*              gFlags          ACE has an object type or inherited object type
'*              gObjectType     Used for Extended Rights
'*              gInheritedObjectType
'*
'* Output:  Object - New DACL with the ACE added
'*
'********************************************************************

Function AddAce(dacl, TrusteeName, gAccessMask, gAceType, gAceFlags, gFlags, gObjectType, gInheritedObjectType)
    Dim Ace1
    ' Create a new ACE object
    Set Ace1 = CreateObject("AccessControlEntry")
    Ace1.AccessMask = gAccessMask
    Ace1.AceType = gAceType
    Ace1.AceFlags = gAceFlags
    Ace1.Flags = gFlags
    Ace1.Trustee = TrusteeName
    'Check to see if ObjectType needs to be set
    If CStr(gObjectType) <> "0" Then
       Ace1.ObjectType = gObjectType
    End If

    'Check to see if InheritedObjectType needs to be set
    If CStr(gInheritedObjectType) <> "0" Then
        Ace1.InheritedObjectType = gInheritedObjectType
    End If
    dacl.AddAce Ace1

    ' Destroy objects
    Set Ace1 = Nothing
End Function
				

ข้อมูลอ้างอิง

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับIMailboxStore::CreateMailbox CDOEXMเยี่ยมชมเว็บไซต์ของ Microsoft สำหรับนักพัฒนาเครือข่าย (MSDN) ต่อไปนี้:
.aspx http://msdn.microsoft.com/en-us/library/aa487558 (EXCHG.65)
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับอินเทอร์เฟซที่เกี่ยวกับการรักษาความปลอดภัยใน ADSI ไปที่ MSDN เว็บไซต์ต่อไปนี้:
.aspx http://msdn.microsoft.com/en-us/library/aa772161 (VS.85)
Adssecurity.dll เป็นส่วนหนึ่งของ Kit ทรัพยากรของ Active Directory Service อินเทอร์เฟซ (ADSI) 2.5 การดาวน์โหลดชุด ADSI 2.5 ทรัพยากร ไปที่เว็บไซต์ต่อไปนี้ของ Microsoft Regsvr32 ใช้ในการลงทะเบียน ADsSecurity.dll
http://technet.microsoft.com/en-us/library/cc749949.aspx
สำหรับ informationabout เพิ่มเติม เกี่ยวข้องบัญชีภายนอก คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
278888วิธีการเชื่อมโยงกับกล่องจดหมาย Exchange 2000 หรือในกล่องจดหมาย Exchange 2003 กับบัญชีผู้ใช้ Windows NT 4.0

คุณสมบัติ

หมายเลขบทความ (Article ID): 304935 - รีวิวครั้งสุดท้าย: 10 มกราคม 2554 - Revision: 2.0
ใช้กับ
  • Microsoft Exchange Server 2003 Standard Edition
  • Microsoft Exchange 2000 Server Standard Edition
  • Microsoft Windows Server 2003 Standard Edition
  • Microsoft Windows 2000 Server
Keywords: 
kbdswadsi2003swept kbhowto kbmt KB304935 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:304935

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com