How to Troubleshoot Installer Error Message "User does not have mailbox, please change username or create mailbox for the user" or "Failed to verify SMSMSE user has mailbox"

Article:HOWTO42319  |  Created: 2011-02-14  |  Updated: 2014-06-26  |  Article URL http://www.symantec.com/docs/HOWTO42319
Article Type
How To


Subject


During the installation of Symantec Mail Security for Microsoft Exchange (SMSMSE) the installer prompts for credentials for the service account used by SMSMSE.  The installer validates if this service account has an exchange mailbox.  When this validation fails one of the following error messages is displayed:

Failed to verify SMSMSE user has mailbox
User does not have mailbox, please change username or create mailbox for the user


The remainder of this article describes troubleshooting steps that can lead to a solution.  Before embarking on these steps see if one of the related articles below is causing the issue.

 

Verification of the mailbox is a two step process.  The first step invokes the executable execMonadCmdLet.exe in the following way from the installer:

ExecMonadCmdLet.exe "C:\Program Files\Microsoft\Exchange Server\V14\bin\exshell.psc1" .\CheckMailBox.ps1 "<domain>\<serviceAccount>"

If the EXE returns a non-zero result code then the error message "Failed to verify SMSMSE user has mailbox" is reported.  The Powershell script CheckMailBox.ps1 runs the following Powershell commands:

md  "HKLM:\SOFTWARE\Wow6432Node\Symantec"
md  "HKLM:\SOFTWARE\Wow6432Node\Symantec\SMSMSE-Install"
$error.clear()
Get-Mailbox "<username>"
print $error[0]

Set-ItemProperty -path "HKLM:\SOFTWARE\Wow6432Node\Symantec\SMSMSE-Install" -name "IsMailboxUser" -value "Yes"

NOTE: The value of <username> is the sevice account name.

The error message "User does not have mailbox, please change username or create mailbox for the user" is displayed by the installer when the value of the registry key HKLM\SOFTWARE\Wow6432Node\Symantec\SMSMSE-Install is not present or the value is not Yes.

1. Use the installation log to determine the exact error.

Open the installation log SMSMSE65_Setup.log (default location is %TEMP%) and search for CheckMailbox.ps1 and find a line like this:

"ExecMonadCmdLet.exe" "C:\Program Files\Microsoft\Exchange Server\V14\bin\exshell.psc1" .\CheckMailBox.ps1 \""benexchange2010\administrator""

The following is an example where the verification succeeded:

"ExecMonadCmdLet.exe" "C:\Program Files\Microsoft\Exchange Server\V14\bin\exshell.psc1" .\CheckMailBox.ps1 \""benexchange2010\administrator""
fnCheckMailbox  SUCCESS
Yes
returning success

 This shows the installer running the command.  The next line shows that the EXE succeeded with a zero return code.  The Yes is the value read from the registry key HKLM\SOFTWARE\Wow6432Node\Symantec\SMSMSE-Install.  In this case the Powershell script CheckMailBox.ps1 was able to verify that the user benexchange2010\administrator has a mailbox.

The following is an example where the installer reports a non-zero error return from the ExecMonadCmdLet.exe process:

"ExecMonadCmdLet.exe" "C:\Program Files\Microsoft\Exchange Server\V14\bin\exshell.psc1" .\CheckMailBox.ps1 \""symantec\administrator""
fnCheckMailbox: Process Execution  Failed, exit code : 100
DisplayMessageBox

The following is an example where the ExecMonadCmdLet.exe program runs successfully but the Powershell script CheckMailBox.ps1 is unable to verify that the user has a mailbox:

"ExecMonadCmdLet.exe" "C:\Program Files\Microsoft\Exchange Server\V14\bin\exshell.psc1" .\CheckMailBox.ps1 \""benexchange2010\administrator""
fnCheckMailbox  SUCCESS
No
DisplayMessageBox

 2. If the installer reports a non-zero error from the program ExecMonadCmdLet.exe run the following steps.

a. Run the installer until the error message is displayed.

b. Copy the following files from the directory C:\Users\Administrator\AppData\Local\Temp\{03E91804-3466-4F92-9248-98E506733B8B}:

ExecMonadCmdLet.exe

CheckMailBox.ps1

to the Microsoft Exchange bin directory, typically C:\Program Files\Microsoft\Exchange Server\V14\bin.

NOTE:  The directory {03E91804-3466-4F92-9248-98E506733B8B}  is where the installer extracts the installations files.  This is specified by the TEMP environment variable.  An easy way to locate this is by typing %TEMP% into the windows explorer address bar.

c. Open a command prompt and cd to the Microsoft Exchange bin directory.

d. Run the following command from the command prompt:

 

 

 

 

ExecMonadCmdLet.exe exshell.psc1 .\CheckMailBox.ps1 "<service account name>"

 

 

replace <service account name> with the name of the SMSMSE service account.  For example the following is the command to check the user adminuser1 in the domain testdomain:

 

 

 

 

ExecMonadCmdLet.exe exshell.psc1 .\CheckMailBox.ps1 "testdomain\adminuser1"

 

 

e. Get the error and start troubleshooting.

When the program runs successfully the following is displayed:

 

 

 

 

C:\Program Files\Microsoft\Exchange Server\V14\Bin>ExecMonadCmdLet.exe exshell.psc1 CheckMailBox.ps1 "exchange2010.internal\administrator"
ExecMonadCmdLet : Value cannot be null.
Parameter name: value
ExecMonadCmdLet : tracing set to off
ExecMonadCmdLet : argument 0 exshell.psc1
ExecMonadCmdLet : argument 1 CheckMailBox.ps1
ExecMonadCmdLet : argument 2 exchange2010.internal\administrator
CheckMailBox.ps1 exchange2010.internal\administrator
results
Administrator
System.Management.Automation.PSObject

 

 

 

The following is an example where the program does not run successfully and reports an error messsage:

ExecMonadCmdLet : Value cannot be null.
Parameter name: value
ExecMonadCmdLet : tracing set to off
ExecMonadCmdLet : argument 0 exshell.psc1
ExecMonadCmdLet : argument 1 .\CheckMailBox.ps1
ExecMonadCmdLet : argument 2 SignatureCraft\SEP
.\CheckMailBox.ps1 SignatureCraft\SEP
ExecMonadCmdLet : Done with RunspaceConfiguration.Create
ExecMonadCmdLet : Done with RunspaceFactory.CreateRunspace
ExecMonadCmdLet : command =
.\CheckMailBox.ps1 SignatureCraft\SEP
ExecMonadCmdLet : Done with new RunspaceInvoke
ExecMonadCmdLet : command =
.\CheckMailBox.ps1 SignatureCraft\SEP
ExecMonadCmdLet : myCommand =
ExecMonadCmdLet : .\CheckMailBox.ps1 SignatureCraft\SEP
ExecMonadCmdLet : Exception : System.Management.Automation.CmdletInvocationException: Value cannot be null.
Parameter name: parameters ---> System.ArgumentNullException: Value cannot be null.
Parameter name: parameters
   at Microsoft.Exchange.Configuration.Tasks.TaskVerboseStringHelper.FormatUserSpecifiedParameters(PropertyBag parameters)
   at Microsoft.Exchange.Configuration.Tasks.Task.LogCmdletIterationEvent()
   at Microsoft.Exchange.Configuration.Tasks.Task.BeginProcessing()
   at System.Management.Automation.Cmdlet.DoBeginProcessing()
   at System.Management.Automation.CommandProcessorBase.DoBegin()
   --- End of inner exception stack trace ---
   at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate)
   at System.Management.Automation.PipelineNode.Execute(Array input, Pipe outputPipe, ArrayList& resultList, ExecutionContext context)
   at System.Management.Automation.StatementListNode.ExecuteStatement(ParseTreeNode statement, Array input, Pipe outputPipe, ArrayList& resultList, ExecutionContext context)

 

 3. If the installer log shows success running the EXE but is unable to verify the mailbox use Powershell to troubleshoot.

a. Open an Exchange Management Shell.
b. Run the following commands:

md  "HKLM:\SOFTWARE\Wow6432Node\Symantec"
md  "HKLM:\SOFTWARE\Wow6432Node\Symantec\SMSMSE-Install"
$error.clear()
Get-Mailbox "<username>"
print $error[0]

Set-ItemProperty -path "HKLM:\SOFTWARE\Wow6432Node\Symantec\SMSMSE-Install" -name "IsMailboxUser" -value "Yes"

NOTE: The value of <username> is the sevice account name.
NOTE:  If the md commands report errors that the registry entries already exist they can be ignored.

Troubleshoot any errors reported.  Troubleshoot if the Get-Mailbox command fails.

 




Article URL http://www.symantec.com/docs/HOWTO42319


Terms of use for this information are found in Legal Notices