Article ID: 912918 - Last Review: March 27, 2009 - Revision: 18.2 Users cannot send e-mail messages from a mobile device or from a shared mailbox in Exchange 2000 Server and in Exchange Server 2003On This PageSYMPTOMSWhen you try to send an e-mail message in Microsoft Exchange
2000 Server or in Microsoft Exchange Server 2003, you cannot send the e-mail
message. Additionally, you may receive one of the following error messages or
one of the following non-delivery reports (NDRs). Error messages
NDRs
Products affectedThis issue is known to affect the following third-party products:
Other third-party products that use service accounts to send e-mail messages may also be affected. If you are running a third-party product that is affected by this issue, we recommend that you contact the vendor for help with resolving this issue. However, it has been confirmed that the following third-party products are not affected by this issue:
CAUSEThis issue may occur if one of the following conditions is
true:
SECURITY CONCERNSBefore the Store.exe file versions that are listed in the
"Cause" section, granting the Full Mailbox Access permission implicitly granted
permission to send as the mailbox owner. This meant that another account that
has the Full Mailbox Access permission could send e-mail messages that appeared
as if they were sent by the mailbox owner. Many Microsoft Exchange customers have requested that the Send As permission be separated from the Full Mailbox Access permission for the following two reasons:
RESOLUTIONAll accounts that are granted partial or full access to a mailbox, except those mentioned in the "Cause" section, must now be explicitly granted the Send As permission for the mailbox owner account in order to send mail as the mailbox owner. This includes application service accounts that perform functions such as sending e-mail messages for mobile device users. The Send As permission applies to the identity of an Active Directory user object, not to mailbox contents that are stored in a database. Therefore, the Send As permission must be granted to the service account on each user object that owns a mailbox. When e-mail messages are sent, they are not sent from a particular mailbox or database, but from a user. The user may be the mailbox owner or any other account that has the Send As permission. You cannot grant the Send As permission on a server that is running Exchange Server or on a database object and achieve the effect of granting the Send As permission for all mailboxes in the database. Granting the Send As permission on an Exchange database object gives you permission to the database itself. The permission is inherited by all mailboxes in the database. However, it does not give you permission to the users who have Send As permissions and who have mailboxes in the database. Note Granting the Receive As permission on an Exchange database is the functional equivalent of granting the Full Mailbox Access permission to all mailboxes in the database. This differs from the behavior of the Send As permission. How to grant the Send As permissions for one accountTo explicitly grant another account permission to send as a mailbox owner, follow these steps:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersSystem The default value for this registry entry is 120 minutes (two
hours). If you modify this registry entry, you must restart the Microsoft
Exchange Information Store service. Value name: Mailbox Cache Age Limit Value type: REG_DWORD Radix: Decimal Value data: The mailbox information cache age limit in minutes. Note If you set the time-out values to a very low value, you may affect the performance of the server. How to grant the Send As permission for multiple accountsA sample script is provided at the end of this article that will search an Active Directory service domain for accounts that have the Full Mailbox Access permission without the Send As permission for a mailbox. These are the characteristics of a service or resource account that will be affected by this security change. The script can generate an export file that you can review, edit, and then re-import to grant the Send As permission to accounts that require this permission.You can also grant the Send As permission by inheritance on every user object in an Active Directory domain or in a container. If you grant the Send As permission by this method, you may grant permissions for objects that you did not intend. Additionally, you may lose permissions for objects that are moved from the container. Therefore, this method is not preferred and may have security implications that should be carefully considered before you implement it. If you grant Send As permission by using this method, the accounts that have inherited the Send As permission will become invisible to the script that is referenced at the end of the article. To process these accounts by using the script at a later date, you must remove the inherited Send As permission first. To grant the Send As permission for a single account on all user accounts in an Active Directory domain or container by using inheritance, follow these steps:
Special rules for adminSDHolder protected accountsIf you use the script to grant the Send As permission for a mailbox owner that is also a domain administrator, the Send As permission will not be effective. We strongly recommend that you do not mailbox-enable user accounts that have domain administrator rights or that are adminSDHolder protected.The adminSDHolder object is a template for accounts that have broad Active Directory administrative rights. To prevent unintended elevation of privileges, any account that is protected by the adminSDHolder object must have permissions that match those that are listed on the adminSDHolder object itself. If you change the rights or the permissions on the adminSDHolder object for a protected account, a background task will undo the change within several minutes. For example, if you grant the Send As permission on a domain administrator object for an application service account, the background task will automatically revoke the permission. Therefore, you cannot grant the Send As permission to an application service account for an account that is protected by the adminSDHolder object unless you change the adminSDHolder object itself. If you do change the adminSDHolder object, the access permissions for all protected accounts will change. You should only change the adminSDHolder object after a complete review of the security implications that may occur with the change. To associate a mailbox with an account that is protected by the adminSDHolder object, follow these steps:
907434
(http://support.microsoft.com/kb/907434/
)
The "Send As" right is removed from a user object after you configure the "Send As" right in the Active Directory Users and Computers snap-in in Exchange Server
318180
(http://support.microsoft.com/kb/318180/
)
AdminSDHolder thread affects transitive members of distribution groups
817433
(http://support.microsoft.com/kb/817433/
)
Delegated permissions are not available and inheritance is automatically disabled
306398
(http://support.microsoft.com/kb/306398/
)
AdminSDHolder object affects delegation of control for past administrator accounts
Special tasks for BlackBerry Enterprise ServerTask 1: Make sure that the BlackBerry Enterprise Server is running as a separate, unique accountMake sure that the BlackBerry Enterprise Server is running as a separate account that is specifically created for administrative tasks. By default, this account is called "BESAdmin."If you have a separate account for administering the BlackBerry Enterprise Server, go to task 2. If you do not have a separate account, create a separate account. Then, use this account to perform administrative tasks. For instructions about how to do this, visit one of the following BlackBerry Web sites, depending on the version of BlackBerry Enterprise Server that you are running. BlackBerry Enterprise Server 4.0 or BlackBerry Enterprise Server 4.1If you are running BlackBerry Enterprise Server 4.0 or BlackBerry Enterprise Server 4.1, see the BlackBerry Enterprise Server Installation Guide. To obtain this guide, click the following BlackBerry link:http://na.blackberry.com/eng/deliverables/2751/BESX_Install_Guide_427146_11.pdf
(http://na.blackberry.com/eng/deliverables/2751/besx_install_guide_427146_11.pdf)
BlackBerry Enterprise Server 3.6If you are running BlackBerry Enterprise Server 3.6, see the BlackBerry Enterprise Server 2000/2003 Installation and Getting Started Guide. To obtain this guide, click the following BlackBerry link:http://na.blackberry.com/eng/deliverables/1568/2000_2003_Installation_Guide.pdf
(http://na.blackberry.com/eng/deliverables/1568/2000_2003_installation_guide.pdf)
Task 2: Make sure that the BlackBerry Enterprise Server service account has the appropriate permissionsVerify that the BlackBerry Enterprise Server service account has the appropriate permissions.Note If the account is in a domain, make sure that the account is a member of only the Domain Users group. On a domain controller, the account should be member of the Built-in Administrators group.
Task 3: Clear the cache on the BlackBerry Enterprise ServerTo clear the permissions cache in the Exchange store, restart the Blackberry-related services, and then restart the Microsoft Exchange Information Store. After you restart the Exchange store, you must restart the RIM Blackberry-related services to grant the "BESAdmin" account the newly-added Send As permission on the Exchange store.MORE INFORMATIONExchange mailbox and folder access permissions are split
between Active Directory and Microsoft Exchange databases. However, both kinds
of permissions are set in the Active Directory user management console, but
different permissions are stored in two separate locations. Generally, if a permission is set on the Security page for an object, it is an Active Directory permission. If it is set on the Exchange Advanced Mailbox Rights page, it is an Exchange database permission. The msExchMailboxSecurityDescriptor Active Directory attribute is a backup copy of a subset of the effective mailbox rights. It is used internally by Exchange for a variety of purposes. Additionally, the msExchMailboxSecurityDescriptor attribute is updated to match current effective rights if administrators use supported interfaces to assign rights. However, if the msExchMailboxSecurityDescriptor attribute is modified directly by an administrator, the changes will not be propagated to the Exchange store, and the changes will not take effect. It is not guaranteed to be synchronized with actual mailbox rights. You should not use the msExchMailboxSecurityDescriptor attribute to read or write mailbox rights. For more information, click the following article number to view the article in the Microsoft Knowledge Base: 310866
(http://support.microsoft.com/kb/310866/
)
How to set Exchange Server 2003 and Exchange 2000 Server mailbox rights on a mailbox that exists in the information store
The Full Mailbox Access permission is an Exchange database store permission. The Send As permission is an Active Directory permission. Before the Exchange Store.exe file changes that are described in this article, the Exchange system did not consult the setting for the Send As permission if the sender already had the Full Mailbox Access permission. Inclusion of the Send As permission with the Full Mailbox Access permission has enabled Exchange server administrators to grant themselves effective Send As permissions for any mailbox on a server that they administer. By separating the Send As permission from the Full Mailbox Access permission, Active Directory administrators can now block this process because the Send As permission is an Active Directory permission and not an Exchange store permission. Therefore, the process is not necessarily under the control of Exchange administrators. Mailbox ownersA mailbox owner is defined as the Active Directory user account whose msExchMailboxGUID attribute carries the globally unique identifier (GUID) for a particular mailbox. Only one account in a whole forest is permitted to carry the GUID for a particular mailbox. If you try to set a second owner with the same GUID, Active Directory will reject the change with an error.When you mailbox-enable an account or when you connect a disconnected mailbox to an Active Directory account, the mailbox GUID is automatically set on that account. It is rarely necessary or recommended for administrators to set mailbox GUIDs directly. Associated external accountsA common Exchange configuration is to install Exchange in a resource forest. A resource forest is a forest in a different forest from the user accounts that will have mailboxes in the system. This presents a problem because the msExchMailboxGUID attribute can only be set on objects in the same forest as the Exchange server.The solution to this problem is to mailbox-enable an account in the Exchange server forest. Then, you link this mailbox-enabled account to one in another forest or in a Microsoft Windows NT 4 domain. You can do this by granting the Associated External Account permission. Only a single account can be granted the Associated External Account permission. The account that is selected must be from a different forest. When you set the Associated External Account permission, you are writing the SID value for the external account to the msExchMasterAccountSID attribute of the mailbox owner. Therefore, this is not a permission at all, but a convenient way to control the value of the msExchMasterAccountSID attribute. After the msExchMasterAccountSID attribute has been set, the external account that owns the SID will be granted Exchange access as if it were the actual mailbox owner account. Note This applies only to Exchange access, not to all Active Directory access. Additionally, you should mark the mailbox owner account as Disabled for logons after you set the Associated External Account permission so that all permissions work as expected. For more information, click the following article number to view the article in the Microsoft Knowledge Base: 300456
(http://support.microsoft.com/kb/300456/
)
Client permissions and delegations do not persist after being assigned in Exchange 2000
Delegation scenariosA delegate is a user who has been granted partial access to another mailbox and the right to send e-mail messages on behalf of that mailbox owner. A common delegation scenario is to grant delegate access to an administrative assistant for an executive's calendar. The delegate can typically read and update the calendar. Additionally, the delegate can reply to any e-mail messages on behalf of the executive.You can use the following two interfaces to grant the Send on Behalf Of and delegate permissions:
<Delegate's Name> on behalf of <Mailbox Owner> In
some cases, you may be unable to set the publicDelegates attribute in Outlook.
For more information, click the following article number to view the article in the Microsoft Knowledge Base:
329622
(http://support.microsoft.com/kb/329622/
)
"Send on behalf" permission is not assigned to a user after you delegate access in Outlook
If you grant delegate access to your mailbox, the delegate can use the Send on Behalf Of permission even if you do not grant access to any one of your mailbox folders. The fundamental permission that a delegate has is the Send on Behalf Of permission. Permissions to access your mailbox folders are separate and must be granted in addition to delegation permissions. Typically, delegates will use Outlook to access individual folders to which you have given them permission. To do this, click Open on the File menu in Outlook, and then click Other User's Folder. Alternatively, delegates can open your mailbox by listing it as an additional mailbox in the Advanced tab of their Outlook profiles. This method causes your mailbox to appear in the delegate's Outlook folder tree. Additionally, this method allows for access to all folders in your mailbox for which a delegate has been granted permissions. You may want your delegate to sometimes have the Send on Behalf Of permission and at other times have the Send As permission. To configure a delegate with these two permissions, follow these steps:
Regardless of whether the delegates have opened your folders or your whole mailbox as a secondary mailbox, all e-mail messages that they send from you will use the Send on Behalf Of permission as long as their own mailbox is the primary mailbox for the current Outlook profile. When delegates want to send an e-mail message as you, they should log on to your mailbox by using a separate Outlook profile that opens only your mailbox. E-mail messages that the delegates send while they are logged on to this profile will automatically be sent from you. Finding accounts that have the Full Mailbox Access permission without the Send As permissionThe sample script that is described in this section can search one Active Directory domain at a time for user accounts where the Full Mailbox Access permission has been granted to a mailbox without the Send As permission.Important Before you change permissions, see the "About mailbox owners with delegates" section. The script has the following three modes:
Permissions that are required for the scriptYou must run the script while you are logged on with an administrative account that is from the same forest that the mailbox owner accounts are from. The script may not work with an account that has cross-forest administrative permissions. The script may also not work when you run it from a workstation that is joined to a different forest than the forest to which the mailbox owner accounts are joined.Given these conditions, you can run the script with multiple administrative accounts in a single logon session by using the RunAs.exe command. This procedure may be useful if you have segmented Active Directory and Exchange Server permissions, and you have no single account that can administer all Exchange servers or all Active Directory domains. You can open a command prompt to run the script as each administrative account. Consider the following example: RunAs.exe /user:domain\account CMD.EXE Note You should not run multiple copies of the script at the same time
against the same domain.The fields in the export file are as follows. The fields are described in the order in which they are presented in the export file.
"""Mailbox Owner""" """Domain\NoSendAs""" """No Send As User""" """Has Delegates""" """Enabled""" [additional fields omitted] Administrative workstation configuration for the scriptThis script uses Exchange management interfaces to communicate with Exchange servers. Therefore, this script must be run from an Exchange server or from a workstation with Exchange System Administrator installed.Editing the export fileThe export file is formatted as Unicode plain text so that character sets from multiple languages can be accommodated. Some text editors may be unable to correctly view or edit the file or may save the file as ANSI or ASCII text. The Notepad utility for Windows Server 2003, Windows XP, and Microsoft Windows 2000 can correctly handle Unicode text files. Additionally, Microsoft Office Excel can correctly handle Unicode text files.The output file is in a tab-delimited format with triple quotation marks around the values for each field. The triple quotation marks are used to make importing and exporting from Excel more deterministic. In Excel, the triple quotation marks will become single quotation marks, and will revert to triple quotation marks when the file is saved again as Unicode text. See the following instructions to correctly open and save an export file in Excel. You can also filter an export file without using Excel by using the Find.exe utility or the Findstr.exe utility. These utilities are included with Windows. They let you search for words in a file and output only lines that contain those words or only lines that do not contain those words. For example, if you want to make a list in the file of all the mailbox owners that have delegates, use either of these commands to create a file that contains only lines with the string "Has Delegates": Find.exe "Has Delegates" OriginalFile.txt > HasDelegates.txt As another example, suppose that you filter out all
the mailbox owners with delegates. The /V switch outputs all lines that do not match the search words. You
can use any of these commands to generate a file that excludes all "Has
Delegates" lines:Findstr.exe /C:"Has Delegates" OriginalFile.txt > HasDelegates.txt Find.exe "No Delegates" OriginalFile.txt > NoDelegates.txt
You can also use these commands to generate a file
that lists all the accounts where an application service account has Full
Mailbox Access permission but does not have the Send As permission. The /I switch makes the command case-insensitive: Find.exe /V "Has Delegates" OriginalFile.txt > NoDelegates.txt Findstr.exe /C:"No Delegates" OriginalFile.txt > NoDelegates.txt Findstr.exe /V /C:"Has Delegates" OriginalFile.txt > NoDelegates.txt Find.exe /I "domain\ServiceAccount" OriginalFile.txt > ServiceAccount.txt
Note If you use the Find.exe utility to generate a filtered file, you must remove
the header lines that the Find.exe utility will create at the top of the file. Findstr.exe /I /C:"domain\ServiceAccount" OriginalFile.txt > ServiceAccount.txt Do not use wildcard file names (*.*) with the Findstr.exe utility. If you do use wildcard characters, each line in the output file will be prefaced by the file name. You should examine the output file carefully after you filter by using Find.exe or Findstr.exe to verify that your filter captured or excluded the accounts that you intended. In the following example, the user who has the logon name "NoSendAs" has the Full Mailbox Access permission, but not the Send As permission for the "Mailbox Owner" mailbox. About mailbox owners that have delegatesA delegate who has Full Mailbox Access (also known as a "super-delegate") usually should not be granted the Send As permission. When the super-delegate logs directly on to the mailbox owner's mailbox, the delegate can send as the owner. When the delegate uses Outlook's delegation features (Additional Mailboxes to Open or Open Other User's Folder), messages are sent on behalf of the owner.Grant the Send As permission to a super-delegate only if you want the delegate always to send as the mailbox owner and never to send on behalf of the mailbox owner. We recommend that you search the export file for the text "Has Delegates," and then determine whether any one of the super-delegates that are listed are actually delegates of the mailbox owner. Only super-delegates are listed in the export file. Ordinary delegates do not have the Full Mailbox Access permission. Additionally, when you grant the Send As permission to an ordinary delegate, the delegate will always send as the mailbox owner. This is true even when the ordinary delegate does not have the Full Mailbox Access permission. If you do grant Send As permissions to a delegate when you did not intend to, you can easily revoke the permission later. How to open an export file in Excel
How to save an export file after you edit the file in Excel
Script syntaxThis is a text mode script, and it should be run in a command prompt window, not from the Run dialog box. To open a command prompt window, click Start, click Run, type CMD in the Open box, and then click OK.Error log and export files will be saved to the current command prompt directory. You must have permissions to create files in this directory. To obtain command line help, enter the following command: CSCRIPT AddSendAs.vbs CSCRIPT AddSendAs.vbs [domain controller name] –Export Example: CSCRIPT AddSendAs.vbs CORP-DC-1 –Export To import an edited export file, enter the following command: CSCRIPT AddSendAs.vbs [domain controller name] –Import [filename] Example: CSCRIPT AddSendAs.vbs CORP-DC-1 –Import "Send_As_Export_H_MM_SS.txt" How to grant the Send As permission for each mailbox in the domain for all users who already have the Full Mailbox Access permission for a mailboxNote If you have delegates who also have the Full Mailbox Access permission in your organization, you should not use the SetAll mode. If you do use the SetAll mode in this situation, delegates will be granted the Send As permission. This behavior can cause all e-mail messages that they send to use the Sent As permission instead of the Sent on Behalf Of permission. You can correct this behavior by removing the Send As permission that was mistakenly granted to the delegate:CSCRIPT AddSendAs.vbs [domain controller name] –SetAll Example: CSCRIPT AddSendAs.vbs CORP-DC-1 –SetAll Errors that you experience while you are running the script will be saved to the Send_As_Errors_H_MM_SS.txt file. The error file name will match the hours_minutes_seconds time stamp of any associated export file. Script modificationsThere may be accounts in your organization that have permissions on many objects, but you do not want to alter the permissions. To reduce the size of the export file, you can filter these accounts by modifying the FMA_EXCLUSIVE_LIST variable that is located near the top of the script. By default, this variable lists a few accounts that should be suppressed in the script output. You can add more accounts by using the following format.There is another editable variable, FMA_EXCLUSIVE_EXSVC, that has the default value "\Exchange Services" & OUTPUT_DELIMITER. "Exchange Services" is the name of an account that is granted permissions through the Active Directory Connector in Exchange Server 5.5 and in Exchange 2000 migration and co-existence scenarios. This account is created in multiple domains, and it may appear repeatedly in the export file if it is not suppressed. The FMA_EXCLUSIVE_EXSVC variable accepts only one account as its value. The account name is not case-sensitive. The account must start with a backslash character (\) and should not include the domain to which the account belongs. The account will be suppressed for all domains in which it exists. If you have used third-party migration tools or directory synchronization methods, a different account may exist in multiple domains that has widely-granted permissions to user mailboxes. In this scenario, you can substitute the name of that account for "\Exchange Services." Tips and caveats
Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure. However, they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements. For more information about the support options that are available from Microsoft, visit the following Microsoft Web site: http://support.microsoft.com/default.aspx?scid=fh;[LN];CNTACTMS
(http://support.microsoft.com/default.aspx?scid=fh;%5Bln%5D;cntactms)
The third-party products that this article discusses are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, about the performance or reliability of these products. | Article Translations
|
Back to the top
