Làm th? nào đ? thi?t l?p Exchange Server 2000 và 2003 h?p thư quy?n lúc sáng t?o h?p thư

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 304935 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang này

TÓM T?T

Bài vi?t này cho b?n th?y làm th? nào đ? l?p tr?nh ch?nh s?a h?p thư quy?n trên m?t Microsoft Exchange Server 2000 ho?c h?p thư 2003 đ?ng th?i cho r?ng b?n h?p thư-phép đ?i tư?ng ngư?i dùng trong d?ch v? thư m?c Microsoft Active Directory.

Bài vi?t này bao g?m các m?u m? đó cho b?n th?y làm th? nào đ? thi?t l?p quy?n h?p thư cho m?t Exchange 2000 ho?c h?p thư 2003 trư?c khi h?p thư th?c t? đ? đư?c t?o ra cho ngư?i s? d?ng trong Exchange 2000 ho?c lưu tr? thông tin năm 2003 nhưng sau khi đ?i tư?ng ngư?i dùng đư?c kích ho?t h?p thư trong Active Directory.

Chú ý M? này không có hi?u l?c n?u h?p thư đ? t?n t?i trong Exchange 2000 ho?c lưu tr? thông tin năm 2003. Nói cách khác, nó không ?nh hư?ng quy?n th?c t? h?p thư vào h?p thư c?a ngư?i dùng n?u h?p thư c?a ngư?i dùng đ? đư?c truy c?p.Đ? bi?t thêm thông tin v? làm th? nào đ? h?p thư quy?n vào h?p thư Exchange 2000 c? trư?c và sau khi nó đ? đư?c t?o ra trong các c?a hàng thông tin, nh?p vào s? bài vi?t sau đây đ? xem bài vi?t trong cơ s? ki?n th?c Microsoft:
310866Làm th? nào đ? thi?t l?p Exchange 2000 h?p thư quy?n trên m?t h?p thư mà t?n t?i trong các c?a hàng thông tin

THÔNG TIN THÊM

M?t h?p thư có hai ph?n trong m?t trao đ?i 2000 ho?c t? ch?c năm 2003 trong Microsoft Windows 2000 ho?c Microsoft Windows Server 2003 môi trư?ng tên mi?n.
  • Active Directory kích ho?t h?p thư ngư?i s? d?ng: đây là ch? là m?t đ?i tư?ng ngư?i dùng trong Active Directory. M?t vài thư liên quan đ?n tài s?n và tài s?n liên quan đ?n h?p thư đư?c đ?t trên đ?i tư?ng ngư?i dùng này.
  • Thư m?c h?p thư trong kho thông tin Exchage: đây là v? trí nơi ngư?i s? d?ng th?c t? thư đư?c lưu tr? và nơi nhi?u thu?c tính c? th? đ?i v?i h?p thư đư?c thi?t l?p.
Quy?n h?p thư đư?c lưu tr? trên m?t b?t đ?ng s?n mô t? b?o m?t đư?c đ?t trên h?p thư trong kho thông tin. Đó c?ng là m?t thu?c tính vào đ?i tư?ng ngư?i dùng thư m?c ho?t đ?ng, đư?c g?i là các msExchMailboxSecurityDescriptor. Thu?c tính này đư?c thi?t k? ch? đ? ph?n ánh các quy?n h?p thư vào h?p thư c?a ngư?i dùng.

M?t t?ng quan nhanh chóng c?a quá tr?nh t?o đi?u ki?n cho h?p thư Exchange 2000 ho?c 2003

Dư?i đây là các bư?c mà thư?ng đư?c th?c hi?n đ? t?o ra trao đ?i 2000 ho?c 2003 kích ho?t h?p thư ngư?i dùng trong Active Directory:
  1. M?t qu?n tr? tên mi?n t?o ra đ?i tư?ng ngư?i dùng thư m?c ho?t đ?ng và cho phép các tài kho?n ngư?i dùng, ho?c t? các "ho?t đ?ng thư m?c ngư?i dùng và máy tính" (ADUnC)-theo ho?c t? m? có s? d?ng Active Directory d?ch v? giao di?n (ADSI).
  2. Cho ngư?i qu?n tr? vùng sau đó h?p thư-phép ngư?i s? d?ng này, ho?c là t? ADUnC ho?c l?p tr?nh thông qua giao di?n IMailboxStore trong nghiên c?u khoa h?c Data Objects cho trao đ?i qu?n l? (CDOEXM). M?t liên k?t đ?n tài li?u hư?ng d?n cho giao di?n IMailboxStore đư?c bao g?m trong ph?n "Tham kh?o" c?a bài vi?t này. B?t k? phương pháp khác v?i CDOEXM đư?c s? d?ng đ? l?p tr?nh h?p thư-enable đ?i tư?ng ngư?i dùng không đư?c h? tr?.

    Hai phương pháp đ?m b?o r?ng các msExchMailboxSecurityDescriptor thu?c tính và m?t s? các thu?c tính khác đư?c thi?t l?p đúng trên đ?i tư?ng ngư?i dùng khi h? h?p thư-b?t nó. Bư?c này, v? cơ b?n, đ?t m?t t?p h?p con nh? c?a thu?c tính thư và các thu?c tính h?p thư trên đ?i tư?ng ngư?i dùng trong Active Directory. T?i th?i đi?m này, ngư?i s? d?ng h?p thư là không đư?c nêu ra đ? s?n sàng đ? truy c?p.
  3. Nh?n C?p Nh?t d?ch v? (Nga) ch?y trên Exchange 2000 ho?c 2003 server, tùy thu?c vào khi nó đư?c l?p bi?u đ? ch?y, tem t?t c? các c?n l?i thư liên quan và liên quan đ?n h?p thư thu?c tính đ?i tư?ng ngư?i dùng này. T?i th?i đi?m này, h?p thư c?a ngư?i dùng đ? không đư?c nêu ra đư?c t?o trong Exchange 2000 ho?c 2003 thông tin lưu tr?. Tuy nhiên, ngư?i s? d?ng là hoàn toàn kích ho?t h?p thư. Bây gi?, h?p thư s?n sàng đ? đư?c truy c?p.
  4. Khi ngư?i s? d?ng đ?u tiên truy c?p h?p thư hay khi thông báo đ?u tiên đư?c đ?nh tuy?n đ?n h?p thư, h?p thư th?c t? đư?c t?o ra trong Exchange 2000 ho?c lưu tr? thông tin năm 2003. T?i th?i đi?m này, khi Exchange t?o h?p thư cho ngư?i s? d?ng, quy?n h?p thư đư?c đ?t trên mô t? b?o m?t c?a h?p thư trong các c?a hàng. Đi?u này d?a trên các truy c?p m?c đi?u khi?n (ACEs) đư?c đ?t trên các msExchMailboxSecurityDescriptor thu?c tính.

Thu?c tính msExchMailboxSecurityDesciptor

Thu?c tính này t?n t?i trên đ?i tư?ng ngư?i dùng trong Active Directory. Nó lưu gi? m?t b?n sao m?t ph?n c?a mô t? b?o m?t c?a ngư?i dùng h?p thư. Thu?c tính này không ph?i là liên k?t tr? l?i v?i mô t? b?o m?t c?a ngư?i dùng h?p thư.

Nói cách khác, n?u b?n s?a đ?i các thu?c tính này tr?c ti?p, b?n không C?p Nh?t mô t? b?o m?t th?c t? h?p thư vào h?p thư c?a ngư?i dùng trong kho thông tin Exchage, tr? khi b?n đ?t thu?c tính này trư?c khi h?p thư th?c t? đ? đư?c t?o ra trong các c?a hàng thông tin.

Trong th?c t?, n?u có m?t cu?c xung đ?t gi?a mô t? b?o m?t đư?c ph?n ánh b?i các msExchMailboxSecurityDescriptor thu?c tính vào đ?i tư?ng ngư?i dùng trong Active Directory và mô t? b?o m?t đư?c lưu tr? trên h?p thư c?a ngư?i s? d?ng trong các c?a hàng thông tin, trao đ?i b?n s?a l?i các msExchMailboxSecurityDescriptor thu?c tính đ? ph?n ánh mô t? b?o m?t vào h?p thư c?a ngư?i dùng. N?u b?n s?a đ?i mô t? b?o m?t c?a h?p thư c?a ngư?i dùng t? ADUnC ho?c thông qua giao di?n CDOEXM IExchangeMailbox, các msExchMailboxSecurityDescriptor thu?c tính đư?c c?p nh?t t? đ?ng đ? ph?n ánh nh?ng thay đ?i này.

Nh?ng h?n ch? c?a vi?c s? d?ng các thu?c tính msExchMailboxSecurityDescriptor

  • Nh?ng thay đ?i b?n th?c hi?n trên thu?c tính này đư?c ph?n ánh trên mô t? b?o m?t c?a h?p thư c?a ngư?i s? d?ng ch? khi b?n đ?t thu?c tính này trư?c khi h?p thư đư?c t?o ra trong các c?a hàng thông tin. Lưu ? r?ng Exchange 2000 và 2003 h?p thư cho ngư?i dùng kích ho?t h?p thư trong Active Directory đư?c t?o ra trong m?t c?a hàng trao đ?i khi ngư?i s? d?ng đ?u tiên truy c?p h?p thư hay khi b?t k? thư đư?c g?i đ?n ngư?i dùng này.
  • Gi?i h?n m?t s? thu?c tính này là r?ng các thu?c tính không ph?n ánh b?t k? ACEs đư?c th?a k? trên mô t? b?o m?t h?p thư th?c t?. Do đó, đ?c thu?c tính thư m?c này không ph?i là cách ti?p c?n chính xác nh?t đ? đ?c m?t ngư?i s? d?ng h?p thư quy?n.

L?i th? c?a vi?c s? d?ng các thu?c tính msExchMailboxSecurityDescriptor

  • Thu?c tính này đư?c đ?nh ngh?a trên m?t đ?i tư?ng ngư?i dùng trong Active Directory. V? v?y, nó có th? đư?c truy c?p b?ng cách s? d?ng b?t k? API là tương thích v?i Lightweight Directory Access giao th?c (LDAP) mà, ch?ng h?n như các API ADSI ho?c các API LDAP.
  • B?i v? m? này không yêu c?u CDOEXM, b?n có th? ch?y nó t? m?t máy ch? mà không có Microsoft Exchange 2000 và 2003 công c? qu?n l? h? th?ng cài đ?t. Tuy nhiên, m?t l?n n?a, b?n ph?i thi?t l?p quy?n h?p thư trư?c khi h?p thư c?a ngư?i dùng đư?c t?o ra trong các c?a hàng thông tin. Ngoài ra, b?n có th? đ?c các h?p thư quy?n b?t k? lúc nào vào h?p thư c?a ngư?i dùng này. Tuy nhiên, ghi nh? nh?ng h?n ch? đư?c đ? c?p trong bài vi?t này. (Xem các "h?n ch? c?a vi?c s? d?ng các msExchMailboxSecurityDescriptor Thu?c tính"ph?n.)
N?u b?n không đ?t các msExchMailboxSecurityDescriptor thu?c tính trên h?p thư cho phép ngư?i s? d?ng trư?c khi h?p thư th?c t? đư?c t?o ra trong các c?a hàng thông tin, b?t đ?ng s?n mô t? b?o m?t th?c t? trên h?p thư trong kho thông tin không bao g?m m?t ACE v?i nh?ng đi?u sau đây:
  • Các ?y thác b?t đ?ng s?n thi?t l?p đ? T?
  • Các Truy c?p Mask b?t đ?ng s?n thi?t l?p đ? Truy c?p h?p thư đ?y đ?
  • Các Đọc s? cho phép thi?t l?p đ? Cho phép
  • Các ACE lo?i thi?t l?p đ? Cho phép
N?u đây là trư?ng h?p, ngư?i dùng có th? g?p v?n đ? khi ngư?i dùng c? g?ng truy c?p thư m?c công c?ng ho?c b?t k? tài nguyên nào đư?c bên ngoài máy ch? Exchange đ?a phương. Đây là m?t trong nh?ng l? do t?i sao giao di?n IMailboxStore trong thư vi?n CDOEXM là cơ ch? đư?c h? tr? duy nh?t đ? bay v?i t?c đ? l?p tr?nh h?p thư-enable là ngư?i dùng thư m?c ho?t đ?ng ch?ng l?i m?t Exchange 2000 ho?c c?a hàng năm 2003.Đây là m?t m?u cho b?n th?y làm th? nào đ? s? d?ng ADSI và CDOEXM làm cho m?t đ?i tư?ng ngư?i dùng kích ho?t h?p thư trong Active Directory. Sau đó b?n đ?t th? công các msExchMailboxSecurityDescriptor giao di?n đ? bao g?m m?t ACE v?i ?y thác đư?c ch? r? trong các m?. M?c đích duy nh?t c?a m?u này là đ? cho b?n th?y làm th? nào đ? thi?t l?p các thu?c tính này trư?c khi h?p thư c?a ngư?i dùng đ? đư?c truy c?p và t?o ra trong các c?a hàng thông tin n?u các thu?c tính không đư?c đ?t đúng trong quá kh?.

Thi?t l?p môi trư?ng Visual Basic ch?y m?u Visual Basic

  1. B?t đ?u Microsoft Visual Basic 6.0 trên Exchange 2000 ho?c máy ch? năm 2003.
  2. T?o m?t d? án m?i EXE tiêu chu?n. Đ? làm đi?u này, b?m M?i trên các Tệp tr?nh đơn, và sau đó double-click Tiêu chu?n EXE.
  3. Trên các Dự án tr?nh đơn, nh?p vào Tham khảo, và ch?n Thư vi?n DS ki?u ho?t đ?ngMicrosoft CDO cho qu?n l? Exchange.
  4. Trong giao di?n m? ngu?n c?a các h?nh th?c, g? hay dán đo?n m? sau v? v?y mà nó s? thay th? các Form_Load() chương tr?nh con.
  5. Thay đ?i giá tr? đư?c đ?t trên các bi?n sUserADsPath đư?ng d?n LDAP cho đ?i tư?ng ngư?i dùng thư m?c ho?t đ?ng h?p thư mà quy?n l?i b?n mu?n xem ho?c s?a đ?i.
CHÚ Ý: M?u này cho b?n th?y làm th? nào đ? đ?c các b?n sao c?a các quy?n h?p thư đư?c lưu tr? trên các msExchMailboxSecurityDescriptor thu?c tính. Nó c?ng cho th?y b?n làm th? nào đ? s?a đ?i các quy?n h?p thư và thêm m?t ACE cho h?p thư đ?y đ? quy?n truy c?p vào các T? ACE như là s? ?y thác.

M? 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
				

M? Visual Basic Script

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
				

THAM KH?O

Để biết thêm thông tin về CDOEXM IMailboxStore::CreateMailbox, ghé thăm Web site sau c?a Microsoft Developer Network (MSDN):
http://MSDN.Microsoft.com/en-US/Library/aa487558 (EXCHG.65) .aspx
Đ? bi?t thêm chi ti?t v? giao di?n b?o m?t liên quan trong ADSI, truy c?p vào MSDN Web site sau:
http://MSDN.Microsoft.com/en-US/Library/aa772161 (VS.85) .aspx
Adssecurity.dll là m?t ph?n c?a ho?t đ?ng thư m?c d?ch v? giao di?n (ADSI) 2.5 Resource Kit. Đ? t?i v? ADSI 2.5 Resource kit, ghé thăm Web site sau c?a Microsoft. S? d?ng Regsvr32 đăng k? ADsSecurity.dll.
http://technet.Microsoft.com/en-US/Library/cc749949.aspx
Cho bi?t thêm informationabout tài kho?n liên k?t bên ngoài, nh?p vào s? bài vi?t sau đây đ? xem bài vi?t trong cơ s? ki?n th?c Microsoft:
278888Làm th? nào đ? g?n m?t h?p thư Exchange 2000 ho?c m?t h?p thư Exchange 2003 v?i m?t tài kho?n Windows NT 4.0

Thu?c tính

ID c?a bài: 304935 - L?n xem xét sau cùng: 27 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft Exchange Server 2003 Standard Edition
  • Microsoft Exchange 2000 Server Standard Edition
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows 2000 Server
T? khóa: 
kbdswadsi2003swept kbhowto kbmt KB304935 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:304935

Cung cấp Phản hồi

 

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