Blackberry deployment notes for Windows 2008 Domain Controllers
if you have large number of BB devices you might get:
[40206] (12/22 08:58:11.625):{0x1A38} MailboxManager::SubsystemInitialize – Using MAPI profile ‘BlackBerryServer’
[50000] (12/22 08:58:11.672):{0x394} Controller: This BES Agent is under control of BlackBerry Agent Controller
[20137] (12/22 08:58:11.719):{0x1A38} MailboxManager::SubsystemInitialize – g_pSession->OpenMsgStore (0x80040111)
[40000] (12/22 08:58:11.719):{0x1A38} Setting PR_PROFILE_CONNECT_FLAGS CONNECT_IGNORE_NO_PF true
[40206] (12/22 08:58:11.719):{0x1A38} MailboxManager::SubsystemInitialize – Using MAPI profile ‘BlackBerryServer’
[20137] (12/22 08:58:11.797):{0x1A38} MailboxManager::SubsystemInitialize – g_pSession->OpenMsgStore (0x80040111)
[10277] (12/22 08:58:11.797):{0x1A38} BlackBerry Messaging Agent MERC74 Agent 1 failed to start. Error code 5305
[50106] (12/22 08:58:11.797):{0x1A38} Stopping BlackBerry Mailbox Agent 1 for Server
[40000] (12/22 09:44:49.654):{0x4EC} CDO initializing failure in CDO helper 1046a930 (2)
[30001] (12/22 09:44:49.764):{0x4EC} CDOCalendar::Initialize – Code = 800406f9, WCode = 04f9, Code meaning = IDispatch error #1273,
[30002] (12/22 09:44:49.764):{0x4EC} Server = mercmbx11, Mailbox = Description = The information store could not be opened. [MAPI 1.0 – [MAPI_E_LOGON_FAILED(80040111)]]
[30180] (12/22 09:44:49.764):{0x4EC} {saskit} CDOCalendar::Initialize – Error in call m_spCalendarFolder = m_spCDOSession->GetDefaultFolder
[40000] (12/22 09:44:49.764):{0x4EC} CDO initializing failure in CDO helper 1046a930 (4)
[30181] (12/22 15:04:32.463):{0x1A38} Performing system health check (BlackBerry Mailbox Agent 1 – BESX Version 4.1.6.11)
[30038] (12/22 15:04:32.463):{0x1A38} Worker Thread: *** No Response *** Thread Id=0x1350, Handle=0x7B0, WaitCount=6, WorkingTime=68 min, LastActivity=68 min, Event: NEW_MB_PCKT_RESCAN, User: , Server: , Activity: MAPISendertoRIMSender – RIM_HrGWResolveProxy
[30038] (12/22 15:04:32.463):{0x1A38} Worker Thread: *** No Response *** Thread Id=0x1564, Handle=0x1664, WaitCount=6, WorkingTime=68 min, LastActivity=68 min, Event: NEW_MB_PCKT_RESCAN, User: , Server: , Activity: MAPISendertoRIMSender – RIM_HrGWResolveProxy
[50020] (12/22 15:04:32.463):{0x1A38} Some worker threads have been blocked for 6 health checks
In addition, it is likely that if this article applies, the BlackBerry Manager will return an error when opened regarding
here is a guide for deployment of BB servers in 2008 Domain controllers environment
http://www.blackberry.com/btsc/viewContent.do?externalId=KB17325&sliceId=1
MUST READ
Netapp storage best practices for Exchange 2010
the Exchange 2010 Configurator Script
Hi There,
I often win points on EE by answering lots of web services question, and also spending lots of troubleshooting EWS on EE, of course I win points, but after all users experience have been degraded and admins suffered.
If you read my previous article http://www.experts-exchange.com/articles/Software/Server_Software/Email_Servers/Exchange/Exchange-2007-2010-Web-services-and-Autodiscover-Ultimate-Troubleshooting-Guide.html you will find that there are lot of configuration that must be done on the Exchange web services including (OWA, ECP,EWS,EAS,OAB) for outlook and Exchange to work smoothly.
I always find lot of people running into troubles configuring their Exchange server and using the poweshell, so I created this nice powershell script that will answer you very simple questions and configure Exchange web services including (OWA, ECP, OAB, AES, Internal SCP, EWS)
Here is the script notes:
Internal domain name entered in the FQDN format.
Server name entered in netbios format.
Autodiscover and webmail URLs are entered in FQDN format with no HTTP or HTTPS.
Internal name are set to server FQDN thus the certificate has to include the server name as well.
If you have multiple servers you will need to run the script for each server.
Other than this attached the script file along with the script itself here for your reference, you can use and customize this script to meet your need, use the script at your own responsibility blab la bla (legal stuff ), and your comment and feedback are welcome on e14(at)Ingazat(dot)com.
##################################################################################
#Add exchange 2010 snap in for mailbox creation
Add-PSSnapin Microsoft.Exchange.Management.Powershell.E2010 -ea silentlyContinue
write-Host “Welcome to the Exchange configurator, This script will help you to configure the Exchange web services to avoid common missing
and wrong configuration, This script is created by Mahmoud Magdy (http://busbar.blogspot.com)m
you can reach me by email on e14(at)ingazat(dot)com use this script under your own responsibility”
write-Host “The Configurator will list the current system configuration for your reference the config will be saved to c:\e14systemconfig.txt”
$systemconfig = @(Get-OwaVirtualDirectory
fl name,internalurl,externalurl)
$systemconfig = $systemconfig + @(Get-ecpVirtualDirectory
fl name,internalurl,externalurl)
$systemconfig = $systemconfig + @(Get-oabVirtualDirectory
fl name,internalurl,externalurl)
$systemconfig = $systemconfig + @(Get-WebServicesVirtualDirectory
fl name,internalurl,externalurl)
$systemconfig = $systemconfig + @(Get-ActiveSyncVirtualDirectory
fl name,internalurl,externalurl)
$systemconfig = $systemconfig + @(Get-ClientAccessServer
fl Name,AutoDiscoverServiceInternalUri)
$systemconfig
out-file c:\e14systemconfig.txt
write-Host “The Configurator will start asking you some questions then will configure your environment”
$InternalDomainname = Read-Host “What is the name of the Internal domain name”
$Servername = Read-Host “What is the name of the Internal server name”
$Externalwebmail = Read-Host “what is the url used by users to acces OWA Externally e.g mail.domain.com
please don’t include https://”
$InternalAutodiscover = Read-Host “what is the url used by users to acces autodiscover internal URL
(this will be retrieved from AD SCP please don’t include https://”
$InternalURL = $servername + “.” + $internaldomainname
$ServernameURL = “https://” + $InternalURL
$httpsExternalwebmail = “https://” + $Externalwebmail
$owaextURL = $httpsExternalwebmail + “/owa”
$owaintURL = $ServernameURL + “/owa”
$ecpextURL = $httpsExternalwebmail + “/ecp”
$ecpintURL = $ServernameURL + “/ecp”
$EWSexternalURL = $httpsExternalwebmail + “/EWS/Exchange.asmx”
$EWSInternalURL = $ServernameURL + “/EWS/Exchange.asmx”
$oabextURL = $httpsExternalwebmail + “/oab”
$oabintURL = $ServernameURL + “/oab”
$EASexturl = $httpsExternalwebmail + “/Microsoft-Server-ActiveSync”
$EASinturl = $ServernameURL + “/Microsoft-Server-ActiveSync”
$Autodiscogerinternalurl = $InternalAutodiscover + “/Autodiscover/Autodiscover.xml”
$Autodiscogerinternalurl = “https://” + $Autodiscogerinternalurl
write-Host “The Configurator will start Configuring your System now”
get-owavirtualdirectory -server $servername
set-owavirtualdirectory -ExternalUrl $owawextURL -InternalUrl $owawintURL
get-ecpVirtualDirectory -server $servername
set-ecpVirtualDirectory -ExternalUrl $ecpextURL -InternalUrl $ecpintURL
get-oabVirtualDirectory -server $servername
set-oabVirtualDirectory -ExternalUrl $oabextURL -InternalUrl $oabintURL
get-WebServicesVirtualDirectory -server $servername
set-WebServicesVirtualDirectory -ExternalUrl $EWSexternalURL -InternalUrl $EWSInternalURL
get-ActiveSyncVirtualDirectory -server $servername
set-ActiveSyncVirtualDirectory -ExternalUrl $EASexturl -InternalUrl $EASinturl
Get-ClientAccessServer -Identity $Servername
Set-ClientAccessServer -AutoDiscoverServiceInternalUri $Autodiscogerinternalurl
write-Host “The Configurator is done you might want to run this script on other servers”
#########################################################################
save the code above to scriptname.ps1 and run it by double click on it, you can run this PS from windows powershell (I added the Exchange snapin) or the Exchange management shell.
I hope to win less points on EE from EWS and win more points from this article
Exchange 2010 using C# and ASP.net to create mailboxes using remote shell connect
here is a nice code snippest:
SecureString password = new SecureString();
string str_password = “pass”;
string username = “userr”;
string liveIdconnectionUri = “http://exchange.Domain.local/Powershell?serializationLevel=Full”;
foreach (char x in str_password)
{
password.AppendChar(x);
}
PSCredential credential = new PSCredential(username, password);
// Set the connection Info
WSManConnectionInfo connectionInfo = new WSManConnectionInfo((new Uri(liveIdconnectionUri)), “http://schemas.microsoft.com/powershell/Microsoft.Exchange”,
credential);
connectionInfo.AuthenticationMechanism = AuthenticationMechanism.Default;
// create a runspace on a remote path
// the returned instance must be of type RemoteRunspace
Runspace runspace = System.Management.Automation.Runspaces.RunspaceFactory.CreateRunspace(connectionInfo);
PowerShell powershell = PowerShell.Create();
PSCommand command = new PSCommand();
command.AddCommand(“Enable-Mailbox”);
command.AddParameter(“Identity”, usercommonname);
command.AddParameter(“Alias”, userlogonname);
command.AddParameter(“Database”, “MBX_SBG_01”);
powershell.Commands = command;
try
{
// open the remote runspace
runspace.Open();
// associate the runspace with powershell
powershell.Runspace = runspace;
// invoke the powershell to obtain the results
return = powershell.Invoke();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
// dispose the runspace and enable garbage collection
runspace.Dispose();
runspace = null;
// Finally dispose the powershell and set all variables to null to free
// up any resources.
powershell.Dispose();
powershell = null;
}
‘Group is too large to display. communicator can not be used for groups with more than 100 members
you might receive this message in OCS 2007 Client when you try to expand a group in OC.
first you have to know that OCS client is hard coded with a maximum of 150 members to display, if you want users to display more than the default 100 limit then create the following client side policy and restart the OCS Client:
Open Registry:
go to
HKLM\Software\Policies\Microsoft\Communicator.\
Create a Key: MaxDLExpansion (DWORD)
and type 150 as the value.
More KBs:
http://support.microsoft.com/kb/945542
http://social.technet.microsoft.com/Forums/en/ocsaddressbook/thread/09a20c42-0e04-4f64-9aa7-dc3f1f4a1cd4
Thanks to Jeff for that great hint
Outlook 2007 may crash when you create a new mail when it is connected to Exchane 2010 servers
Issue:
Outlook users in online or Cachedm mode connected to Exchange 2010 creating a new email message get outlook crashed and might get:
Faulting application OUTLOOK.EXE, version 12.0.6504.5000, time stamp 0x49e7f47e, faulting module EMSMDB32.DLL, version 12.0.6504.5001, time stamp 0x49fea4b0, exception code 0xc0000005, fault offset 0x0003adfa, process id 0x2a6c, application start time 0x01ca3097445ad092.
Solution:
Make sure that your users have the msExchQueryBaseDn attribute wit hthe search base DN, make sure that you don’t use Exchange 2007 Address List segregation in Exchange 2010 environment.
to add the basedn from powershell use this cmdlet:
get-mailbox -resultsize unlimited
Foreach { $dn = “LDAP://” + $_.distinguishedname;$obj = [ADSI]$dn;$obj.msExchQueryBaseDN = “DC=Domain,DC=local”;$obj.setinfo()}
How Exchange 2010 Message Tracking are indexed
Exchange 2010 has a optimziation for the message tracking logs as they are faster, this is indicated here:
http://technet.microsoft.com/en-us/library/bb124926.aspx
http://msexchangeteam.com/archive/2010/01/13/453792.aspx
but they are not documents, if you wonder how message tracking are indexed they are indexed by Exchange 2010 using message ID and address information to allow much faster search and lookup in the tracking console.
the content is under publishing but this is an insider info, more detail will be provided as I get them.
Regards
Unable to moun Exchange 2010 DB, replication service stops.
you might get this error:
Microsoft.Exchange.Configuration.MonadDataProvider.CommandExecutionException: Unexpected error [0x79596503] while executing command ‘mount-database’. —> System.InvalidCastException: Specified cast is not valid.
how to solve this:
to solve this issue delete the EnableVSSWriter from the registry and restart the server.
Exchange 2010/2007 Virtual Directory Default Permissions
virtual
Directory |
Authentication
Configured |
NTFS permissions
|
Autodiscover
|
Anonymous
|
Authentication Users
(read, Read and Execute)
|
Basic Auth.
|
System (Full Control)
|
|
Windows Auth.
|
Administrators (Full Control)
|
|
ECP
|
Anonymous
|
Authentication Users (read)
|
Basic Auth.
|
System (Full Control)
|
|
Administrators (Full Control)
|
||
EWS
|
Anonymous
|
Authentication Users (read)
|
Windows Auth.
|
System (Full Control)
|
|
Administrators (Full Control)
|
||
EAS
|
Basic Auth.
|
Authentication Users (read)
|
System (Full Control)
|
||
Administrators (Full Control)
|
||
OAB
|
Windows Auth.
|
System (Full Control)
|
Organization Management
(Traverse, Read & Execute,
Read Attribute, Read Extended Attribute)
|
||
View only organizations Managenet
(Traverse, Read & Execute
, Read Attribute, Read Extended Attribute)
|
||
Administrators (Full Control)
|
||
IIS_IUSR (Traverse, Read &
Execute, Read Attribute,
Read Extended Attribute)
|
||
OWA
|
Basic Auth.
|
Authentication Users (read)
|
System (Full Control)
|
||
Administrators (Full Control)
|
||
PowerShell
|
Anonymous
|
Authentication Users (read)
|
System (Full Control)
|
||
Administrators (Full Control)
|
||
RPC
|
Basic Auth
|
|
Windows Auth.
|
Exchange 2010 AD Topology Services error DSC_E_NO_SUITABLE_CDC, also Transport service is not starting and setup cannot complete
as the topic says you might get that error DSC_E_NO_SUITABLE_CDC also the setup cannot continue since the transport service cannot reach the start state, if you get those errors then diable IPV6 from the registry here is how:
1. Click Start
, type regedit in the Start Search box, and then click regedit.exe in the Programs list.
2. In the User Account Control dialog box, click Continue.
3. In Registry Editor, locate and then click the following registry subkey:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\
4. Double-click DisabledComponents to modify the DisabledComponents entry.
Note If the DisabledComponents entry is unavailable, you must create it. To do this, follow these steps:
1. In the Edit menu, point to New, and then click DWORD (32-bit) Value.
2. Type DisabledComponents, and then press ENTER.
3. Double-click DisabledComponents.
5. Type any one of the following values to configure the IPv6 protocol, and then click OK:
1. Type 0 to enable all IPv6 components.
Note The value “0” is the default setting.
2. Type 0xffffffff to disable all IPv6 components, except the IPv6 loopback interface. This value also configures Windows Vista to use Internet Protocol version 4 (IPv4) instead of IPv6 in prefix policies.