<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>A Collection of Random Thoughts</title><link>http://blogs.technet.com/b/benw/</link><description>Tips, tricks, thoughts relating mostly to Microsoft Exchange server, but occasionally other things as well.</description><dc:language>en</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>Recent experience with Exchange 2007 and Cross-Forest account management</title><link>http://blogs.technet.com/b/benw/archive/2010/11/02/recent-experience-with-exchange-2007-and-cross-forest-account-management.aspx</link><pubDate>Tue, 02 Nov 2010 19:09:11 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3365525</guid><dc:creator>Ben Winzenz [MSFT]</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/benw/rsscomments.aspx?WeblogPostID=3365525</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/benw/commentapi.aspx?WeblogPostID=3365525</wfw:comment><comments>http://blogs.technet.com/b/benw/archive/2010/11/02/recent-experience-with-exchange-2007-and-cross-forest-account-management.aspx#comments</comments><description>&lt;p&gt;I wanted to share some lessons learned recently as a result of working a case where the goal was to create a new mail contact in a remote forest.&amp;#160; Existing contacts were able to be edited, so permissions didn’t appear to be the issue.&amp;#160; I was able to set up a cross-forest trust in my lab, and reproduced the problem.&amp;#160; This problem really only exists in Exchange 2007, as Exchange 2010 supports opening a Remote Powershell instance where you could connect directly to the remote forest from a server in the source forest.&lt;/p&gt;  &lt;p&gt;Here I am trying to create a new mail contact.&amp;#160; I tried to keep the parameters I used pretty simple.&amp;#160; By specifying the domain controller as a DC in the remote forest, I ensure that I am talking to that forest when I attempt to create the contact.&amp;#160; I’ve highlighted a few things that stood out to me.&lt;/p&gt;  &lt;p&gt;[PS] C:\WINDOWS\system32&amp;gt;&lt;strong&gt;New-MailContact -Name &amp;quot;Blah Test&amp;quot; -ExternalEmailAddress blahblah@blah.com -PrimarySmtpAddress blah@mydomain.com –DomainController &amp;lt;Remote Forest DC&amp;gt; -Verbose –OrganizationalUnit &amp;lt;Remote Forest OU&amp;gt;     &lt;br /&gt;&lt;/strong&gt;VERBOSE: New-MailContact : Beginning processing.    &lt;br /&gt;VERBOSE: New-MailContact : Searching objects &amp;quot;&amp;lt;Remote Forest OU&amp;gt;&amp;quot; of type &amp;quot;ExchangeOrganizationalUnit&amp;quot; under the root &amp;quot;$null&amp;quot;.    &lt;br /&gt;VERBOSE: New-MailContact : Previous operation run on domain controller &amp;lt;Remote ForestDC&amp;gt;.    &lt;br /&gt;VERBOSE: New-MailContact : Administrator Active Directory session settings are:&amp;#160; View Entire Forest: 'False', Default Scope: ‘&amp;lt;Source Forest&amp;gt;’, &lt;font style="background-color: #ffff00"&gt;Configuration Domain Controller: '&amp;lt;Source Forest DC&amp;gt;',     &lt;br /&gt;&lt;/font&gt;VERBOSE: New-MailContact : Applying RUS policy to the given recipient &amp;quot;&amp;lt;Remote Forest&amp;gt;/Contacts/Blah Test&amp;quot; with the home domain controller &amp;quot;&amp;lt;Remote Forest DC&amp;gt;&amp;quot;.    &lt;br /&gt;VERBOSE: New-MailContact : The RUS server that will apply policies on the specified recipient is &amp;quot;&amp;lt;Remote Forest MBX server&amp;gt;&amp;quot;.    &lt;br /&gt;VERBOSE: New-MailContact : Searching objects of type &amp;quot;ADRecipient&amp;quot; with filter &amp;quot;(&amp;amp;((!((Id Equal &amp;lt;Remote Forest&amp;gt;/Contacts/Blah Test)))(|((EmailAddresses Equal SMTP:blah@&amp;lt;Remote forest.com&amp;gt;)))))&amp;quot;, scope &amp;quot;SubTree&amp;quot; under the root &amp;quot;$null&amp;quot;.    &lt;br /&gt;VERBOSE: New-MailContact : Processing object &amp;quot;&amp;lt;Remote Forest&amp;gt;/Contacts/Blah Test&amp;quot;.    &lt;br /&gt;VERBOSE: Creating Mail Contact &amp;quot;Blah Test&amp;quot; with External E-mail Address &amp;quot;SMTP:blahblah@blah.com&amp;quot;, Organizational Unit &amp;quot;&amp;lt;Remote Forest&amp;gt;/contacts&amp;quot;.    &lt;br /&gt;VERBOSE: New-MailContact : The properties changed are: &amp;quot;{ DisplayName='Blah Test', AddressListMembership={ '\Default Global Address List' }, Alias='BlahTest', EmailAddresses={ 'SMTP:blah@&amp;lt;remote forest.com&amp;gt;' }, RawExternalEmailAddress='SMTP:blahblah@blah.com', PoliciesExcluded={ '{26491cfc-9e50-4857-861b-0cb8df22b5d7}' }, Id=’&amp;lt;Remote Forest&amp;gt;/Contacts/Blah Test', RawName='Blah Test', &lt;font style="background-color: #ffff00"&gt;ObjectCategory='&amp;lt;Source Forest&amp;gt;/Configuration/Schema/person' }&amp;quot;.     &lt;br /&gt;&lt;/font&gt;VERBOSE: New-MailContact : Saving object &amp;quot;&amp;lt;Remote Forest&amp;gt;/Contacts/Blah Test&amp;quot; of type &amp;quot;ADContact&amp;quot; and state &amp;quot;New&amp;quot;.    &lt;br /&gt;VERBOSE: New-MailContact : Previous operation run on domain controller ‘&amp;lt;Remote Forest DC&amp;gt;’. New-MailContact : Active Directory operation failed on &amp;lt;Remote Forest DC&amp;gt;. This error could have been caused by user input or by the Active Directory server being unavailable. Please retry at a later time. Additional information: Additional information: The global catalog verification failed. The global catalog is not available or does not support the operation. Some part of the directory is currently not available. Active directory response: 000020E1: SvcErr: DSID-032005F2, problem 5002 (UNAVAILABLE), data 0. At line:1 char:16 + New-MailContact&amp;#160; &amp;lt;&amp;lt;&amp;lt;&amp;lt; -Name &amp;quot;Blah Test&amp;quot; -ExternalEmailAddress blahblah@blah.com -PrimarySmtpAddress blah@&amp;lt;RemoteForest.com&amp;gt; –DomainController &amp;lt;Remote Forest DC&amp;gt; -Verbose –OrganizationalUnit &amp;lt;Remote Forest&amp;gt;/contacts    &lt;br /&gt;VERBOSE: New-MailContact : Ending processing.&lt;/p&gt;  &lt;p&gt;I was capturing a Netmon trace during this after disabling LDAP encryption (see , and this was the frame that showed the LDAP add request (creating the mail contact).&amp;#160; Note the highlighted part below.&lt;/p&gt;  &lt;p&gt;Frame: Number = 233, Captured Frame Length = 1035, MediaType = ETHERNET    &lt;br /&gt;+ Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[00-15-5D-41-BD-00],SourceAddress:[00-15-5D-41-BD-0B]    &lt;br /&gt;+ Ipv4: Src = 10.10.100.16, Dest = 10.10.0.200, Next Protocol = TCP, Packet ID = 13162, Total IP Length = 1021    &lt;br /&gt;+ Tcp: Flags=...AP..., SrcPort=33110, DstPort=LDAP(389), PayloadLen=981, Seq=1117411596 - 1117412577, Ack=4214889466, Win=64154    &lt;br /&gt;- Ldap: Add Request, MessageID: 119    &lt;br /&gt;&amp;#160; + SASLBuffer:&amp;#160; &lt;br /&gt;&amp;#160; - Parser: Add Request, MessageID: 119    &lt;br /&gt;&amp;#160;&amp;#160; + ParserHeader:&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160; + MessageID: 119    &lt;br /&gt;&amp;#160;&amp;#160; + OperationHeader: Add Request, 8(0x8)    &lt;br /&gt;&amp;#160;&amp;#160; - AddRequest: Entry: CN=Blah Test,OU=Contacts,DC=&amp;lt;remote forest&amp;gt;,DC=com    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; - Entry: CN=Blah Test,OU=Contacts,DC=&amp;lt;remote forest&amp;gt;,DC=com    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; + AsnOctetStringHeader:&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; OctetStream: CN=Blah Test,OU=Contacts,DC=&amp;lt;remote forest&amp;gt;,DC=com    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; - Attributes: 13 Partial Attributes    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; + SequenceHeader:&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; + PartialAttribute: CountryCode=( 0 )    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; + PartialAttribute: displayName=( Blah Test )    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; + PartialAttribute: showInAddressBook=( CN=Default Global Address List,CN=All Global Address Lists,CN=Address Lists Container,CN=&amp;lt;ORG Name&amp;gt;,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=&amp;lt;remote forest&amp;gt;,DC=com )    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; + PartialAttribute: mailNickname=( BlahTest )    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; + PartialAttribute: proxyAddresses=( SMTP:blah@&amp;lt;remote forest&amp;gt;.com )    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; + PartialAttribute: targetAddress=( SMTP:blahblah@blah.com )    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; + PartialAttribute: internetEncoding=( 1310720 )    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; + PartialAttribute: msExchPoliciesExcluded=( {26491cfc-9e50-4857-861b-0cb8df22b5d7} )    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; + PartialAttribute: msExchRecipientDisplayType=( 6 )    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; + PartialAttribute: distinguishedName=( CN=Blah Test,OU=Contacts,DC=&amp;lt;remote forest&amp;gt;,DC=com )    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; + PartialAttribute: msExchVersion=( 4535486012416 )    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; + PartialAttribute: objectCategory=( CN=person,CN=Schema,CN=Configuration,&lt;font style="background-color: #ffff00"&gt;DC=&amp;lt;source forest&amp;gt;,&lt;/font&gt;DC=com )    &lt;br /&gt;    &lt;br /&gt;In response to this, I got the LDAP error seen in the Powershell window.&lt;/p&gt;  &lt;p&gt;LDAP:Add Response, MessageID: 119, Status: Unavailable ErrorMessage: 000020E1: SvcErr: DSID-032005F2, problem 5002 (UNAVAILABLE), data 0&lt;/p&gt;  &lt;p&gt;If you see the same thing I did (well, since I’ve been nice and highlighted it), you probably know why the operation failed.&amp;#160; Yes indeed, the LDAP Add request is passing an attribute value that contains the source forest.&amp;#160; No wonder why the remote domain controller was responding with an error!&lt;/p&gt;  &lt;p&gt;Luckily, Powershell allows you to control some additional settings via $AdminSessionADSettings.&amp;#160; Checking the current settings, I found the following listed&lt;/p&gt;  &lt;p&gt;[PS] C:\WINDOWS\system32&amp;gt;$adminsessionadsettings   &lt;br /&gt;ViewEntireForest&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : False    &lt;br /&gt;DefaultScope&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : &amp;lt;source domain&amp;gt;    &lt;br /&gt;PreferredGlobalCatalog&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; :    &lt;br /&gt;ConfigurationDomainController : &amp;lt;souce domain DC&amp;gt;    &lt;br /&gt;PreferredDomainControllers&amp;#160;&amp;#160;&amp;#160; : {}&lt;/p&gt;  &lt;p&gt;On a whim, I changed the config DC to point to one in the remote forest by running the cmd&lt;/p&gt;  &lt;p&gt;$adminsessionadsettings.configurationdomaincontroller = ‘&amp;lt;remote forest DC&amp;gt;’&lt;/p&gt;  &lt;p&gt;[PS] C:\WINDOWS\system32&amp;gt;$adminsessionadsettings   &lt;br /&gt;ViewEntireForest&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : False    &lt;br /&gt;DefaultScope&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : &amp;lt;source domain&amp;gt;    &lt;br /&gt;PreferredGlobalCatalog&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; :    &lt;br /&gt;ConfigurationDomainController : &amp;lt;remote forest DC&amp;gt;    &lt;br /&gt;PreferredDomainControllers&amp;#160;&amp;#160;&amp;#160; : {}&lt;/p&gt;  &lt;p&gt;After making this change, I ran the cmdlet once again, expecting it to fail, but it succeeded.&lt;/p&gt;  &lt;p&gt;[PS] C:\WINDOWS\system32&amp;gt;New-MailContact -Name &amp;quot;Blah Test&amp;quot; -ExternalEmailAddress blahblah@blah.com -PrimarySmtpAddress blah@mydomain.com –DomainController &amp;lt;remote forest DC&amp;gt; -Verbose –OrganizationalUnit &amp;lt;remote forest OU&amp;gt;   &lt;br /&gt;VERBOSE: New-MailContact : Beginning processing.    &lt;br /&gt;VERBOSE: New-MailContact : Searching objects &amp;quot;&amp;lt;remote forest OU&amp;gt;&amp;quot; of type &amp;quot;ExchangeOrganizationalUnit&amp;quot; under the root &amp;quot;$null&amp;quot;.    &lt;br /&gt;VERBOSE: New-MailContact : Previous operation run on domain controller '&amp;lt;remote forest DC&amp;gt;'.    &lt;br /&gt;VERBOSE: New-MailContact : Administrator Active Directory session settings are:&amp;#160; View Entire Forest: 'False', Default Scope: '&amp;lt;source forest&amp;gt;', Configuration Domain Controller: '&amp;lt;remote forest DC&amp;gt;',    &lt;br /&gt;VERBOSE: New-MailContact : Applying RUS policy to the given recipient &amp;quot;&amp;lt;remote forest OU&amp;gt;/Blah Test&amp;quot; with the home domain controller &amp;quot;&amp;lt;remote forest DC&amp;gt;&amp;quot;.    &lt;br /&gt;VERBOSE: New-MailContact : The RUS server that will apply policies on the specified recipient is &amp;quot;&amp;lt;remote forest MBX server&amp;gt;&amp;quot;.    &lt;br /&gt;VERBOSE: New-MailContact : Searching objects of type &amp;quot;ADRecipient&amp;quot; with filter &amp;quot;(&amp;amp;((!((Id Equal &amp;lt;remote forest&amp;gt;/Contacts/Blah Test)))(|((EmailAddresses Equal SMTP:blah@&amp;lt;remote forest&amp;gt;)))))&amp;quot;, scope &amp;quot;SubTree&amp;quot; under the root &amp;quot;$null&amp;quot;.    &lt;br /&gt;VERBOSE: New-MailContact : Processing object &amp;quot;&amp;lt;remote forest OU&amp;gt;/Blah Test&amp;quot;.    &lt;br /&gt;VERBOSE: Creating Mail Contact &amp;quot;Blah Test&amp;quot; with External E-mail Address &amp;quot;SMTP:blahblah@blah.com&amp;quot;, Organizational Unit &amp;quot;&amp;lt;remote forest OU&amp;gt;&amp;quot;.    &lt;br /&gt;VERBOSE: New-MailContact : The properties changed are: &amp;quot;{ DisplayName='Blah Test', AddressListMembership={ '\All Contacts', '\Default Global Address List' }, Alias='BlahTest', EmailAddresses={ 'SMTP:blah@&amp;lt;remote forest&amp;gt;' }, RawExternalEmailAddress='SMTP:blahblah@blah.com', LegacyExchangeDN='/o=&amp;lt;ORG name&amp;gt;/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=BlahTest', PoliciesExcluded={ '{26491cfc-9e50-4857-861b-0cb8df22b5d7}' }, Id='&amp;lt;remote forest&amp;gt;/Contacts/Blah Test', RawName='Blah Test', &lt;font style="background-color: #ffff00"&gt;ObjectCategory='&amp;lt;remote forest&amp;gt;/Configuration/Schema/person' }&amp;quot;.     &lt;br /&gt;&lt;/font&gt;VERBOSE: New-MailContact : Saving object &amp;quot;&amp;lt;remote forest&amp;gt;/Contacts/Blah Test&amp;quot; of type &amp;quot;ADContact&amp;quot; and state &amp;quot;New&amp;quot;.    &lt;br /&gt;VERBOSE: New-MailContact : Previous operation run on domain controller '&amp;lt;remote forest DC&amp;gt;’.    &lt;br /&gt;VERBOSE: New-MailContact : Reading new object &amp;quot;&amp;lt;remote forest&amp;gt;/Contacts/Blah Test&amp;quot; of type &amp;quot;ADContact&amp;quot;.    &lt;br /&gt;VERBOSE: New-MailContact : Previous operation run on domain controller '&amp;lt;remote forest DC&amp;gt;'.    &lt;br /&gt;Name&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Alias&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; RecipientType    &lt;br /&gt;----&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -----&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -------------    &lt;br /&gt;Blah Test&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; BlahTest&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MailContact    &lt;br /&gt;VERBOSE: New-MailContact : Ending processing.&lt;/p&gt;  &lt;p&gt;This time, both Netmon and the verbose output from the cmdlet show that the Configuration partition being referenced to set the objectcategory is for the correct domain/forest, and the add request succeeds.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3365525" width="1" height="1"&gt;</description></item><item><title>Exchange 2007 and Export-Mailbox with the –IncludeFolders switch</title><link>http://blogs.technet.com/b/benw/archive/2010/07/26/exchange-2007-and-export-mailbox-with-the-includefolders-switch.aspx</link><pubDate>Mon, 26 Jul 2010 19:01:45 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3346917</guid><dc:creator>Ben Winzenz [MSFT]</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/benw/rsscomments.aspx?WeblogPostID=3346917</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/benw/commentapi.aspx?WeblogPostID=3346917</wfw:comment><comments>http://blogs.technet.com/b/benw/archive/2010/07/26/exchange-2007-and-export-mailbox-with-the-includefolders-switch.aspx#comments</comments><description>&lt;p&gt;You may have noticed that when you when you run the Export-Mailbox cmdlet, one of the switches available is –IncludeFolders.&amp;#160; With this switch, you can specify the folders to include in the export (duh!).&amp;#160; However, you may also notice that when you use the –IncludeFolders switch, it includes that folder &lt;u&gt;and&lt;/u&gt; all subfolders.&amp;#160; This may not be desirable, and may lead to the export taking a long time to complete, especially if there are a large number of sub-folders.&lt;/p&gt;  &lt;p&gt;If you don’t like this behavior, and are looking to export only certain folders (for example, just export the Inbox), I want to suggest a workaround.&amp;#160; You see, along with –IncludeFolders, there is another switch-ExcludeFolders.&amp;#160; Instead of specifying the list of folders to include, you specify the folders you want excluded.&amp;#160; Specifically, we tell the Export-Mailbox cmdlet that if it doesn’t match the “exact” path of the folder we want, it should be excluded.&amp;#160; Read on for more details.&lt;/p&gt;  &lt;p&gt;First, we define a variable to do our “search”.&amp;#160; The reason why we have to do this is that we are first running Get-MailboxFolderStatistics, and the folderpath it outputs to is in the form of “/Folderpath”, but Export-Mailbox expects a folder path of “\FolderPath”, so we have to convert the forward slashes to backslashes.&lt;/p&gt;  &lt;p&gt;&lt;i&gt;$r = [regex]'/';&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;Next, we define another variable.&amp;#160; This is used to store our “list” of folders to exclude.&amp;#160; We use the Get-MailboxFolderStatistics to get a list of all folders that we want to “exclude”.&amp;#160; For example, where the folder path is not like the “Inbox”, and not like the “Top of Information Store”.&amp;#160; We have to include “Top of Information Store” here because the Inbox is a folder underneath the Top of Information Store, and if it isn’t included, the Inbox won’t be exported either.&lt;/p&gt;  &lt;p&gt;From that output, we select only the FolderPath object (because that is all we need), we convert it to a String value (because right now, it is an Object), then change the “/” character to “\” and we store that as a variable.&amp;#160; &lt;/p&gt;  &lt;p&gt;This can be modified to include other folders as well.&amp;#160; Just keep adding things to the where statement, for example $_.folderpath –ne “/Sent Items”.&lt;/p&gt;  &lt;p&gt;&lt;i&gt;$exclude = Get-Mailbox &amp;quot;Mailbox Name&amp;quot; | Get-MailboxFolderStatistics | where {$_.folderpath -ne &amp;quot;/&amp;quot; -and $_.FolderPath -ne &amp;quot;/Inbox&amp;quot;} | Select-Object FolderPath | Foreach {$_.folderpath.tostring()} | foreach {$r.replace($_”,”\”,-1)}&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;The -1 at the end tells it to iterate through all folders in the list.&lt;/p&gt;  &lt;p&gt;OK – admittedly, that is a lot of work to get what you need, but it should work.&amp;#160; So now, you have a variable that contains an array of all the folders you want to “Exclude”.&amp;#160; You are ready to run the Export.&lt;/p&gt;  &lt;p&gt;This will perform the export for the 1 user you define.&amp;#160; You can also modify the above to run against all users.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;i&gt;Export-Mailbox &amp;quot;Mailbox Name&amp;quot; -FoldersExclude $exclude -TargetMailbox &amp;quot;Mailbox Name&amp;quot; -TargetFolder &amp;quot;Folder Name&amp;quot;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;In the below example, it is running against all users except the mailbox you are exporting to, and getting a list of all folders except the Inbox, Top of Information Store, and Deleted Items.&amp;#160; Since the –ExcludeFolders doesn’t care if a folder doesn’t exist in a mailbox, we’ll keep the size of the list to a manageable level by only including Unique folder names.&lt;/p&gt;  &lt;p&gt;&lt;i&gt;$exclude = Get-Mailbox | where {$_.name –ne “Mailbox Exporting To”} | Get-MailboxFolderStatistics | where {$_.folderpath -ne &amp;quot;/&amp;quot; -and $_.FolderPath -ne &amp;quot;/Inbox&amp;quot; –and $_.FolderPath –ne “/Deleted Items”} | Select-Object FolderPath | Foreach {$_.folderpath.tostring()} | foreach {$r.replace($_”,”\”,-1)} | Sort -Unique&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;Now we are going to get the list of mailboxes to export.&lt;/p&gt;  &lt;p&gt;&lt;i&gt;Get-Mailbox | where {$_.name –ne “Mailbox Exporting to”} | Export-Mailbox –ExcludeFolders $exclude –TargetMailbox “Mailbox Exporting To” –TargetFolder “Folder name”&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;Now since I don’t have a large lab with lots of mailboxes that have lots of data (and folders) in them, I haven’t verified how much time this method will save, but I believe the time savings here will be substantial.&amp;#160; If you try this method out, please let me know if it saves you time.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3346917" width="1" height="1"&gt;</description></item><item><title>Exchange 2010 DAG and MaxQuorumLogSize cluster setting</title><link>http://blogs.technet.com/b/benw/archive/2010/06/15/exchange-2010-dag-and-maxquorumlogsize-cluster-setting.aspx</link><pubDate>Tue, 15 Jun 2010 17:38:03 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3338354</guid><dc:creator>Ben Winzenz [MSFT]</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/benw/rsscomments.aspx?WeblogPostID=3338354</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/benw/commentapi.aspx?WeblogPostID=3338354</wfw:comment><comments>http://blogs.technet.com/b/benw/archive/2010/06/15/exchange-2010-dag-and-maxquorumlogsize-cluster-setting.aspx#comments</comments><description>&lt;p&gt;I wanted to get this information out here, as we’ve had a few customers run into this.&amp;#160; The issue does not appear to affect core cluster functionality, but does affect the appearance of the cluster.&lt;/p&gt;  &lt;p&gt;First, one of my colleagues, Tim McMichael, has a blog that details the different ExBPA rules that can be ignored for Windows 2008 clusters (both Exchange 2007 and Exchange 2010).&amp;#160; That blog is located here:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.technet.com/b/timmcmic/archive/2009/05/19/exbpa-incorrectly-flags-windows-2003-cluster-rules-on-windows-2008.aspx" href="http://blogs.technet.com/b/timmcmic/archive/2009/05/19/exbpa-incorrectly-flags-windows-2003-cluster-rules-on-windows-2008.aspx"&gt;http://blogs.technet.com/b/timmcmic/archive/2009/05/19/exbpa-incorrectly-flags-windows-2003-cluster-rules-on-windows-2008.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I’m not sure if the rules ever got updated for Exchange 2007, but they definitely were not updated for Exchange 2010 RTM (Oops!).&amp;#160; These rules will be fixed with Exchange 2010 SP1.&lt;/p&gt;  &lt;p&gt;Now, on to the issue.&lt;/p&gt;  &lt;p&gt;If you run ExBPA on Exchange 2010 RTM, one of the issues detected (under All Issues) is that the Quorum Log size is too small (see below screenshot from my lab)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-22-metablogapi/8446.image_5F00_701AADCE.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-22-metablogapi/5635.image_5F00_thumb_5F00_6A9C175D.png" width="922" height="134" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You’ll note that the recommendation is to change the current setting from 1024 to 4096.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://technet.microsoft.com/en-us/library/aa995830(EXCHG.80).aspx" href="http://technet.microsoft.com/en-us/library/aa995830(EXCHG.80).aspx"&gt;http://technet.microsoft.com/en-us/library/aa995830(EXCHG.80).aspx&lt;/a&gt; details the recommended change and where to modify this setting.&amp;#160; If you are astute, you’ll note that the text only discusses Windows 2000 and Windows 2003.&amp;#160; That’s because this setting no longer applies to Windows 2008.&amp;#160; Unfortunately, you won’t find anything currently documented about this (I’ve asked our friends over in Windows Clustering to please get something documented).&lt;/p&gt;  &lt;p&gt;You’ll also see the same recommendation if you run Test-SystemHealth (the Shell version of ExBPA)&lt;/p&gt;  &lt;p&gt;So, let’s say you are running Exchange 2010 in a Database Availability Group (DAG), and you decide to make the change.&amp;#160; Remember that for a DAG, you have to specify a Witness server during creation.&amp;#160; This results in the Quorum model being set to Node and File Share Majority, which will show as follows:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-22-metablogapi/7701.image_5F00_5AE89427.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-22-metablogapi/6712.image_5F00_thumb_5F00_75B167DB.png" width="976" height="36" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;As soon as you modify the MaxQuorumLogSize registry value to anything but the default of 1024, and refresh the Failover Cluster Management interface, you will notice that the Quorum model changes to Other.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-22-metablogapi/5238.image_5F00_7A17012E.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-53-22-metablogapi/5241.image_5F00_thumb_5F00_24EF6541.png" width="977" height="40" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;As stated previously, this doesn’t affect the actual functionality of the cluster, but if I was a customer, and encountered this situation, I sure wouldn’t be happy, especially seeing that a Quorum model of “Other” isn’t documented anywhere, and isn’t even shown as a valid Quorum model.&lt;/p&gt;  &lt;p&gt;The resolution to this is easy.&amp;#160; Change the MaxQuorumLogSize back to 1024.&amp;#160; No restarts required – just refresh the Failover Cluster Management interface.&amp;#160; The Quorum model should change back to “Node and File Share Majority (\\UNC of FSW)” as expected.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3338354" width="1" height="1"&gt;</description></item><item><title>Delegates not receiving meeting requests on Exchange 2007</title><link>http://blogs.technet.com/b/benw/archive/2009/07/28/delegates-not-receiving-meeting-requests-on-exchange-2007.aspx</link><pubDate>Tue, 28 Jul 2009 20:13:25 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3268792</guid><dc:creator>Ben Winzenz [MSFT]</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/benw/rsscomments.aspx?WeblogPostID=3268792</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/benw/commentapi.aspx?WeblogPostID=3268792</wfw:comment><comments>http://blogs.technet.com/b/benw/archive/2009/07/28/delegates-not-receiving-meeting-requests-on-exchange-2007.aspx#comments</comments><description>&lt;p&gt;I’ve run into this a few times now, and wanted to share more details on this issue.&amp;#160; The scenario in which this occurs is perhaps not quite so common, but then again, depending on how you have folks with Delegates set up, it could have more of an impact on your organization.&lt;/p&gt;  &lt;p&gt;In a scenario where there are multiple Exchange organizations (or multiple connected organizations, such as in a Notes –&amp;gt; Exchange co-existance scenario), and the delegate of one person sends a meeting request to someone in the other organization who also happens to have a delegate, and the delegate is configured to receive the meeting requests, the meeting request may not be delivered to the delegate.&lt;/p&gt;  &lt;p&gt;Let me see if I can simplify this with a diagram.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/benw/WindowsLiveWriter/DelegatesnotreceivingmeetingrequestsonEx_EFEE/delegate_4.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="delegate" border="0" alt="delegate" src="http://blogs.technet.com/blogfiles/benw/WindowsLiveWriter/DelegatesnotreceivingmeetingrequestsonEx_EFEE/delegate_thumb_1.jpg" width="451" height="265" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;This problem is seen because when a Delegate sends the meeting request, the Sent-By field is populated, and this field is what is used for the Sender address.&amp;#160; Unfortunately, this field gets populated as “SMTP:mailto:user@organizationA.com.”.&amp;#160; This is a problem because anything after the SMTP: is interpreted as the address, and when the mailto: is present, that is picked up as part of the address.&amp;#160; Colons are invalid characters in an smtp address, however, so when the message is processed, an invalid sender exception is thrown, and the message does not get delivered to the Delegate.&lt;/p&gt;  &lt;p&gt;Another side effect of this issue was that the “Messages queued for submission” performance counter would be incremented on the destination mailbox server, and if you have a monitoring solution in place (such as Microsoft Operations Manager, or System Center Operations Manager), alerts may be generated.&amp;#160; More information about this can be found in &lt;a href="http://support.microsoft.com/?id=953094"&gt;KB article 953094&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The good news is that this was fixed in Rollup 7 for Exchange 2007 SP1 (and would thus be included in both Rollup 8 and 9 and beyond since Rollups are cumulative), so unless you are behind on your rollups, hopefully you won’t encounter this situation.&amp;#160; It’s also worth noting that the fix (which works by simply stripping out the mailto: portion) needs to go on Hub Transport servers.&amp;#160; So make sure that your Hub Transport servers are running Rollup 7 or higher!&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3268792" width="1" height="1"&gt;</description></item><item><title>Exchange 2007 Sp1 Cluster Install/Recovery Issues</title><link>http://blogs.technet.com/b/benw/archive/2009/02/19/exchange-2007-sp1-cluster-install-recovery-issues.aspx</link><pubDate>Fri, 20 Feb 2009 02:25:19 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3204718</guid><dc:creator>Ben Winzenz [MSFT]</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/benw/rsscomments.aspx?WeblogPostID=3204718</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/benw/commentapi.aspx?WeblogPostID=3204718</wfw:comment><comments>http://blogs.technet.com/b/benw/archive/2009/02/19/exchange-2007-sp1-cluster-install-recovery-issues.aspx#comments</comments><description>&lt;p&gt;One of the problems that I’ve seen customers encounter several times now when creating a new Clustered Mailbox Server (CMS), or attempting to recover an existing CMS is a failure during setup when the Network name resource is brought online.&amp;#160; The specific error that is seen is as follows:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;The computer account '&amp;lt;Exchange Virtual Server Name&amp;gt;' was created on the domain controller \\&amp;lt;pdc emulator name&amp;gt;, but has not replicated to the desired domain controller (&amp;lt;local DC name&amp;gt;) after waiting approximately 60 seconds. Please wait for the account to replicate and re-run setup /newcms.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Most (if not all) of you probably already know, but the Cluster portion of setup is completely separate from installing the Mailbox role.&amp;#160; The Mailbox Role can be installed as part of the same instance of setup, but it will complete prior to the Clustered Mailbox Server portion of setup.&amp;#160; The issue encountered above appears to be isolated to Exchange 2007 clusters that are running on Windows 2003 only.&lt;/p&gt;  &lt;p&gt;The issue stems from how the Windows 2003 Cluster service works.&amp;#160; When Exchange setup runs, it makes a call into the Cluster API to create the computer account for the Exchange CMS.&amp;#160; It is important to note here that &lt;u&gt;Exchange&lt;/u&gt; is not what is creating the computer account, rather the Cluster service is.&amp;#160; At this point, what happens is that the Cluster service attempts to contact the PDC Emulator for the domain, and creates the computer account on that Domain Controller.&amp;#160; If the PDC Emulator FSMO role happens to be in a different Active Directory Site than the Active Directory Site where you are installing the Exchange cluster, then there may be a delay in getting that computer account replicated to a local Domain Controller.&amp;#160; This issue is also observed because Exchange setup will now use a Domain Controller in the local AD site rather than also automatically going to the PDC Emulator.&amp;#160; This change was first made in Sp1 for Exchange 2007.&amp;#160; So given the above, let’s consider the following chain of events.&lt;/p&gt;  &lt;p&gt;1. Exchange setup calls in to Cluster API to create the computer account for the CMS.   &lt;br /&gt;2. Cluster API contacts the DC holding the PDC Emulator role, and creates the computer account.    &lt;br /&gt;3. Exchange setup contacts a DC in the local AD site and checks for the existence of the CMS computer account.&lt;/p&gt;  &lt;p&gt;At this point, if either the computer account doesn’t exist, or if the computer account exists but is disabled on the local DC, then setup will fail with the above error.&amp;#160; Re-enabling the computer account on the local DC will not fix this issue, as the computer account was created or reset on the PDC Emulator, and the account on the local DC no longer matches what is on the PDC Emulator.&lt;/p&gt;  &lt;p&gt;Further complicating the issue is that when you re-run setup /newcms, the entire procedure appears to be repeated.&amp;#160; If you watch in Cluster Administrator, you will see that the group that was created for the CMS, along with all resources inside the group, is deleted.&amp;#160; Now at this point, the only resources that exist are the IP Address resource, and the Network Name resource.&amp;#160; The CMS group will then be re-created, and the IP address resource, and Network Name resource will also be re-created.&amp;#160; Re-creating the Network Name resource causes the computer account to be reset on the PDC Emulator, and causes it to be disabled on any other DC’s (that is my understanding here at least).&amp;#160; So you’re right back to square one.&lt;/p&gt;  &lt;p&gt;How do we get around this?&amp;#160; Pre-staging the computer account on the PDC Emulator, and allowing that to replicate to the local DC does not work, because the pre-staged account will be deleted and re-created by the Cluster service during setup.&amp;#160; I have thus found the following 2 workarounds that should allow setup to continue past this section.&lt;/p&gt;  &lt;p&gt;1. Move the PDC Emulator role to a Domain Controller in the local AD Site.&lt;/p&gt;  &lt;p&gt;Pros: Relatively easy to do, should not cause any additional issues with Active Directory.   &lt;br /&gt;Cons: Requires a functional design change to Active Directory Infrastructure.&amp;#160; May require approval of multiple teams.&lt;/p&gt;  &lt;p&gt;2. Block the Cluster service from communicating with the PDC Emulator.&lt;/p&gt;  &lt;p&gt;Pros: Works except in rare situations where the PDC Emulator is in a different AD site, but the same IP subnet.&amp;#160; Fairly easy to implement.   &lt;br /&gt;Cons: not “officially” supported/tested by the Exchange Product Group.&lt;/p&gt;  &lt;p&gt;Let’s talk a little more about workaround 2.&amp;#160; What does this involve?&amp;#160; Actually, just a few minor changes.&amp;#160; You need to modify the local Hosts file on the Exchange Server (located in C:\Windows\System32\Drivers\Etc – look for the file Hosts with no extension), and add the following entries to the bottom of the file.&lt;/p&gt;  &lt;p&gt;127.0.0.1&amp;#160;&amp;#160;&amp;#160; PDCEmulator.FQDN.com   &lt;br /&gt;127.0.0.1&amp;#160;&amp;#160;&amp;#160; PDCEmulatorNetBIOS&lt;/p&gt;  &lt;p&gt;Save the Hosts file, the run ipconfig /flushdns, and nbtstat –R&lt;/p&gt;  &lt;p&gt;Run setup again, and the operation should be successful.&amp;#160; What’s the difference you ask?&amp;#160; Well, if you prevent the Cluster service from communicating with the PDC Emulator, then it will fall back to using a local DC.&amp;#160; When it creates the computer account on a local DC, intra-site replication is almost instantaneous, so Exchange is able to find the correct computer account on the DC that setup chooses, and is able to go on past this portion of setup.&lt;/p&gt;  &lt;p&gt;As mentioned above, this issue can be encountered when setting up a new cluster (setup /newcms), or if you are recovering an existing cluster (setup /recoverCMS).&amp;#160; The second scenario would be especially common if you are testing your DR procedures, and performing a failover/activation to an SCR Target.&lt;/p&gt;  &lt;p&gt;This issue should not be present in Windows 2008, as the cluster service is smarter, and when the PDC Emulator is detected as being in a different site, the cluster service should automatically use a local DC for operations such as this.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3204718" width="1" height="1"&gt;</description></item><item><title>Disabling LDAP Encryption and Signing for Netmon on an Exchange server</title><link>http://blogs.technet.com/b/benw/archive/2008/12/15/disabling-ldap-encryption-and-signing-for-netmon-on-an-exchange-server.aspx</link><pubDate>Mon, 15 Dec 2008 19:45:59 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3169123</guid><dc:creator>Ben Winzenz [MSFT]</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/benw/rsscomments.aspx?WeblogPostID=3169123</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/benw/commentapi.aspx?WeblogPostID=3169123</wfw:comment><comments>http://blogs.technet.com/b/benw/archive/2008/12/15/disabling-ldap-encryption-and-signing-for-netmon-on-an-exchange-server.aspx#comments</comments><description>&lt;p&gt;It’s been a while since my last post, but I’ve been super busy.&amp;#160; I wanted to post something that I often have to do with customers.&lt;/p&gt;  &lt;p&gt;There may be times when in order to further troubleshoot a problem, you need to capture a Network Monitor trace.&amp;#160; Netmon is very helpful in finding delays, and LDAP errors.&amp;#160; However, there is one major hurdle.&amp;#160; Virtually all LDAP traffic is signed and sealed, and encrypted.&amp;#160; This unfortunately makes viewing the queries and responses impossible by default.&amp;#160; You would see something similar to the following.&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="400" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Protocol Name&lt;/td&gt;        &lt;td valign="top" width="200"&gt;Description&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;LDAP&lt;/td&gt;        &lt;td valign="top" width="200"&gt;LDAP: GSS-API Encrypted Payload&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;And that is all you will see.&amp;#160; Of course, this makes troubleshooting much harder, because you can’t see what queries are being issued, or what the Domain Controller is responding with.&amp;#160; Fortunately, there are ways to turn off LDAP encryption.&amp;#160; I have gathered together the following list of things that need to be done in order to ensure that all forms of LDAP encryption are disabled.&amp;#160; Some steps are only for Exchange 2003, and others are only for Exchange 2007.&amp;#160; Where specific to a version, I have included which version it applies to.&lt;/p&gt;  &lt;p&gt;Here are the steps to turn off LDAP encryption.&amp;#160; There are a few different places we have to do this in order to catch everything.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;These steps apply to both Exchange 2003 and Exchange 2007&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;1. Modify the Local Security Policy.&amp;#160; &lt;/p&gt;  &lt;p&gt;Under Computer Configuration, Windows Settings, Security Settings, Local Policies, Security Options.&amp;#160; Find the policy setting “Network Security: LDAP client signing requirements”.&amp;#160; Note that the default is set to “Negotiate signing”.&amp;#160; On the Domain Controller side, it is actually set to None by default, but since the client requests to negotiate, it will always be signed if supported.&amp;#160; Set this to None on the “client” (the Exchange server is the client in this case).&amp;#160; You should also check the Default Domain Controller group policy, as if the LDAP signing policy is set to Negotiate, or Require, you will need to modify the Domain Controller policy as well.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;2. Set the following registry key and value on the Exchange server.&amp;#160; If the AdminDebug key is not present, add it.&amp;#160; This registry value disables Encrypted LDAP Bind’s.&amp;#160; Normally, once a Bind request is issued, all LDAP traffic sent after that will be encrypted.&amp;#160; &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\AdminDebug&lt;/p&gt;    &lt;p&gt;New DWORD value: ADsOpenObjectFlags&lt;/p&gt;    &lt;p&gt;Data Value: 0x3&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Per KB 325465, the following values correspond with the following actions.&amp;#160; As you can see, by setting the value to 0x3, we disable both Signing and Encryption.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Value Data (Hexadecimal)&amp;#160; Disables&amp;#160; &lt;br /&gt;1&amp;#160; Signing&amp;#160; &lt;br /&gt;2&amp;#160; Encryption&amp;#160; &lt;br /&gt;3&amp;#160; Encryption and Signing&amp;#160; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;u&gt;This step is for Exchange 2007 only&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;3. Add the following registry key to disable LDAP encryption for the Exchange 2007 DSAccess process&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchange ADAccess &lt;/p&gt;    &lt;p&gt;New DWORD value: Disable LDAP Encryption &lt;/p&gt;    &lt;p&gt;Data Value: 0x1&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;u&gt;This step is for Exchange 2003 only&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;4. Per KB818479, to disable signing and encryption for traffic created by Exchange 2003 Admin tools, add the following value&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;HKEY_LOCAL_MACHINE\Software\Microsoft\Exchange&lt;/p&gt;    &lt;p&gt;New DWORD value: DebugLDAP&lt;/p&gt;    &lt;p&gt;Data Value: 0x1&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Once you have set all of these options, you should be good to go.&amp;#160; Get another Netmon trace, and you should now be able to view the contents of every LDAP frame.&amp;#160; On rare occasions, you may need to reboot to get all of these settings to be correctly read.&amp;#160; Also, don’t forget to undo any changes that are made once you are done.&amp;#160; Signing and Encryption of LDAP traffic is a good thing to have in place for security reasons, so only leave this disabled as long as you need to.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3169123" width="1" height="1"&gt;</description></item><item><title>Move Mailbox from a CSV Import file</title><link>http://blogs.technet.com/b/benw/archive/2008/06/02/move-mailbox-from-a-csv-import-file.aspx</link><pubDate>Mon, 02 Jun 2008 16:53:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3064881</guid><dc:creator>Ben Winzenz [MSFT]</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/benw/rsscomments.aspx?WeblogPostID=3064881</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/benw/commentapi.aspx?WeblogPostID=3064881</wfw:comment><comments>http://blogs.technet.com/b/benw/archive/2008/06/02/move-mailbox-from-a-csv-import-file.aspx#comments</comments><description>&lt;P&gt;A while back, I had promised to write another post detailing how to use Import-CSV and then run Move-Mailbox against the users in that CSV file.&amp;nbsp; Well, quite a bit of time has passed since then, and getting this figured out proved a little more difficult than I thought it would be.&amp;nbsp; I finally got it worked out, though.&lt;/P&gt;
&lt;P&gt;Here are the details of the setup.&amp;nbsp; You have users that you want to split up between several target databases.&amp;nbsp; In my CSV file, I have 3 columns, as outlined below (sample file)&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Name, Username, TargetDB&lt;/P&gt;
&lt;P&gt;A user, auser, "Server\Storage Group\Mailbox Database" &lt;BR&gt;B user, buser, "Server\Storage Group\Second Database" &lt;BR&gt;C user, cuser, "Server\Storage Group\Third Database"&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;The TargetDB column means that you will have to do a little bit of legwork in determining where you want to put the users, and populate that column, but it shouldn't take too much effort.&lt;/P&gt;
&lt;P&gt;Next, we'll start writing the script itself.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;################################################################## &lt;BR&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # &lt;BR&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Script to move mailboxes multithreaded from CSV import&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # &lt;BR&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # &lt;BR&gt;################################################################## &lt;/P&gt;
&lt;P&gt;write-output "Moving mailboxes from CSV import" &lt;/P&gt;
&lt;P&gt;#First we are going to import from your csv file &lt;BR&gt;#where the CSV file contains 3 columns.&amp;nbsp; Name, Username and TargetDB &lt;/P&gt;
&lt;P&gt;$users = import-csv c:\userimport.csv &lt;/P&gt;
&lt;P&gt;#Now we are going to filter the list down and get a &lt;BR&gt;#list of just the users on the first database &lt;/P&gt;
&lt;P&gt;$db1 = $users| where {$_.targetdb -like "*mailbox database"} | &lt;BR&gt;foreach { $_.name } | get-mailbox &lt;/P&gt;
&lt;P&gt;#getting a list of the users on the second target database &lt;/P&gt;
&lt;P&gt;$db2 = $users | where {$_.targetdb -like "*Second Database"} | &lt;BR&gt;foreach { $_.name } | get-mailbox &lt;/P&gt;
&lt;P&gt;#Repeat the above line for each additional database that you have.&lt;/P&gt;
&lt;P&gt;#Now we move each group of users to their respective databases &lt;/P&gt;
&lt;P&gt;$db1 | move-mailbox -targetdatabase "E2K7-2\First Storage Group\Mailbox Database" -confirm:$false -maxthreads:10 &lt;/P&gt;
&lt;P&gt;$db2 | move-mailbox -targetdatabase "E2K7-2\Second Storage Group\Second Database" -confirm:$false -maxthreads:10 &lt;/P&gt;
&lt;P&gt;#Repeat the above line for each additional mailbox database that you have&lt;/P&gt;
&lt;P&gt;write-output "Completed Mailbox moves from CSV file"&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;I first tried to get this working with just one command, but kept failing on the target database portion.&amp;nbsp; When I was creating my arrays, I had a separate array for the target database, but the problem I kept running into was that the value for the array was only being recognized as the last value in the CSV file.&amp;nbsp; So if Third Database was the last value for TargetDB, that was where all users ended up being moved.&amp;nbsp; After multiple failed attempts to correct that, I decided that the best way to approach this would be to filter the CSV and move all users with a common target database, then move on to the next group.&amp;nbsp; It still achieves the desired result of being able to take advantage of multi-threading, and it also does everything in one shot.&lt;/P&gt;
&lt;P&gt;If you have any suggestions for improvement, please feel free to pass on your suggestions.&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3064881" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/b/benw/archive/tags/exchange+2007/">exchange 2007</category><category domain="http://blogs.technet.com/b/benw/archive/tags/Powershell/">Powershell</category><category domain="http://blogs.technet.com/b/benw/archive/tags/Exchange/">Exchange</category></item><item><title>MOM Exchange Management Pack alerts</title><link>http://blogs.technet.com/b/benw/archive/2008/03/31/mom-exchange-management-pack-alerts.aspx</link><pubDate>Mon, 31 Mar 2008 17:12:40 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3022682</guid><dc:creator>Ben Winzenz [MSFT]</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/benw/rsscomments.aspx?WeblogPostID=3022682</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/benw/commentapi.aspx?WeblogPostID=3022682</wfw:comment><comments>http://blogs.technet.com/b/benw/archive/2008/03/31/mom-exchange-management-pack-alerts.aspx#comments</comments><description>&lt;p&gt;Part of my job involves supporting the Exchange Management Pack for Microsoft Operations Manager (MOM).&amp;#160; In doing so, we sometimes come across things that don't really make a lot of sense (or at least they don't to me).&amp;#160; Take the following scenario.&lt;/p&gt;  &lt;p&gt;With MOM, you can create Mailboxes that MOM then uses to make sure it can log on to at specified intervals.&amp;#160; This is performed via a simple MAPI logon.&amp;#160; The Exchange Management Pack has a script that performs this action, and it triggers by default every 15 minutes.&amp;#160; When you deploy and configure the Exchange Management Pack, you can choose to create a mailbox for the entire server (per-server monitoring), or you can create a separate mailbox for every single mailbox store.&lt;/p&gt;  &lt;p&gt;When the MAPI logon script runs, it logs an event based on the result.&amp;#160; The expected result is obviously a Success, but if it fails, there are several different reasons this could be occurring.&amp;#160; Many of these errors are easy to interpret, and have prescribed actions that can be done to troubleshoot/fix the issue.&lt;/p&gt;  &lt;p&gt;One event that may get logged is a MAPI logon failure because the logon timed out.&amp;#160; At first glance, that may not really make sense - if a logon is going to work, it is going to work.&amp;#160; Keep in mind, however, that MOM uses scripts to perform the tests, and we could simply be dealing with the script taking a long time to run.&amp;#160; This results in a sort of false-positive.&amp;#160; The MAPI logon doesn't actually fail, and no clients are reporting issues, yet you have this glaring error in your MOM console.&lt;/p&gt;  &lt;p&gt;The default timeout for the script itself is 30 seconds.&amp;#160; While this is sufficient in most cases, there may be circumstances where 30 seconds is insufficient, and is resulting in the script timing out (even if it is almost done...), which then results in the error being logged to MOM.&amp;#160; The solution is to modify the MAPI logon script itself and increase the timeout value.&amp;#160; In the script, you will find a line&lt;/p&gt;  &lt;p&gt;var TIME_OUT_THRESHOLD = 30000&lt;/p&gt;  &lt;p&gt;If you change the threshold to a higher value - 90000, the errors will go away because you are giving the script more time to run.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3022682" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/b/benw/archive/tags/Exchange/">Exchange</category><category domain="http://blogs.technet.com/b/benw/archive/tags/MOM/">MOM</category></item><item><title>Exchange 2007 Single Copy Cluster Changes</title><link>http://blogs.technet.com/b/benw/archive/2008/03/28/exchange-2007-single-copy-cluster-changes.aspx</link><pubDate>Fri, 28 Mar 2008 16:51:49 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3022654</guid><dc:creator>Ben Winzenz [MSFT]</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/benw/rsscomments.aspx?WeblogPostID=3022654</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/benw/commentapi.aspx?WeblogPostID=3022654</wfw:comment><comments>http://blogs.technet.com/b/benw/archive/2008/03/28/exchange-2007-single-copy-cluster-changes.aspx#comments</comments><description>&lt;p&gt;Single Copy Clusters are the continuation of how clustering was implemented with previous versions of Exchange.&amp;#160; It is a standard cluster implementation which utilizes Shared Storage (i.e. SAN) and allows all nodes of the cluster access to the shared storage.&amp;#160; One node of the cluster will &amp;quot;own&amp;quot; the resources for that cluster group, and all nodes of the cluster maintain communication to ensure that the resources don't get mistakenly taken over by another node.&amp;#160; A quorum is used to maintain ownership information.&lt;/p&gt;  &lt;p&gt;That being said, Exchange 2007 does make some slight changes to how you must implement the cluster.&amp;#160; I do want to note that setting up a cluster in Exchange 2007 is MUCH MUCH easier, but there are a few *gotchas*.&amp;#160; First, if you are familiar to clustering with Exchange 2003, you may be inclined to pre-create the Cluster Group for the Exchange Virtual Server, and pre-populate it with the Physical Disks you will be using.&amp;#160; Don't.&amp;#160; Instead, all you need to do is create your Physical Disk resources in the default Cluster Group.&lt;/p&gt;  &lt;p&gt;An overview of how to install Exchange 2007 Single Copy Cluster on Windows 2003 can be found here.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://technet.microsoft.com/en-us/library/bb124899.aspx"&gt;http://technet.microsoft.com/en-us/library/bb124899.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;and for instructions on how to install the Active Clustered Mailbox Role in a Single Copy Cluster, refer to&lt;/p&gt;  &lt;p&gt;&lt;a title="http://technet.microsoft.com/en-us/library/bb123969(EXCHG.80).aspx" href="http://technet.microsoft.com/en-us/library/bb123969.aspx"&gt;http://technet.microsoft.com/en-us/library/bb123969.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Once you have finished the Active Mailbox role, you will find that Exchange 2007 setup will create the new Exchange CMS group for you.&amp;#160; The only step that remains is that you need to finalize configuration of the cluster by moving the physical disk resources from the default Cluster Group into the new Exchange CMS cluster group, and then configuring the dependencies as appropriate.&amp;#160; In Exchange 2007, you will have a separate resource for each Storage Group/Mailbox Store, so it is important to make sure that you get the dependencies correct.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3022654" width="1" height="1"&gt;</description></item><item><title>Exchange 2007 SP1 Setup Domain Controller Requirements</title><link>http://blogs.technet.com/b/benw/archive/2007/12/03/exchange-2007-sp1-setup-domain-controller-requirements.aspx</link><pubDate>Mon, 03 Dec 2007 19:30:20 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:2605261</guid><dc:creator>Ben Winzenz [MSFT]</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/benw/rsscomments.aspx?WeblogPostID=2605261</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/benw/commentapi.aspx?WeblogPostID=2605261</wfw:comment><comments>http://blogs.technet.com/b/benw/archive/2007/12/03/exchange-2007-sp1-setup-domain-controller-requirements.aspx#comments</comments><description>&lt;p&gt;OK.&amp;nbsp; I've heard lots of complaints about Exchange 2007 and the fact that when you run setup, the pre-requisite checks will fail if you have multiple domains in your forest, and one of those domains doesn't have a Windows 2003 SP1+ domain controller.&amp;nbsp; That's fair enough.&amp;nbsp; Some of those child domains may not have an existing Exchange server, or may not even host exchange-enabled objects.&lt;/p&gt; &lt;p&gt;As many of you know, we changed the behavior of setup for Sp1, however the documentation still is being misinterpreted.&amp;nbsp; The new pre-requisite check will now check child domains during the /preparelegacyexchangepermissions portion of setup, and will look for the "Exchange Domain Servers" group.&amp;nbsp; If it finds that group present, then that domain must contain a Windows 2003 Sp1+ DC.&amp;nbsp; If you are in this situation, you have 2 options.&amp;nbsp; If you don't have any Exchange objects in that child domain, AND YOU ARE SURE OF THIS, then you can remove the Exchange Domain Servers group from that domain.&amp;nbsp; When you then run setup again, that domain will be skipped from the pre-requisite check.&lt;/p&gt; &lt;p&gt;See &lt;a title="http://msexchangeteam.com/archive/2007/11/01/447411.aspx" href="http://msexchangeteam.com/archive/2007/11/01/447411.aspx"&gt;http://msexchangeteam.com/archive/2007/11/01/447411.aspx&lt;/a&gt; for more details around this.&lt;/p&gt; &lt;p&gt;Alright, so now you know about the SP1 install requirements, and when a Windows 2003 Sp1+ DC is required.&amp;nbsp; The next question is, can I temporarily install a Windows 2003 SP1+ DC in a child domain that I am not ready to upgrade to Windows 2003 yet?&amp;nbsp; The answer is that this is not a good idea.&amp;nbsp; In fact, I'd go one step further and say that this will create huge problems.&amp;nbsp; Let's talk about why.&lt;/p&gt; &lt;p&gt;Exchange 2000/2003 stores exchange-related information in the Personal and Public property sets.&amp;nbsp; These property sets contain both Active Directory information (such as Street Address, phone number) AND Exchange information (msExchHomeServerName, proxyaddresses).&amp;nbsp; It was decided that it would be a good thing to have Exchange store it's attributes in a separate Exchange-specific property set, so Exchange 2007 creates two new property sets, Exchange Information and Exchange Personal Information.&amp;nbsp; When /preparelegacyexchangepermissions is run, part of it's operation is to move the existing Exchange attributes into the new Exchange property sets.&lt;/p&gt; &lt;p&gt;See &lt;a title="http://technet.microsoft.com/en-us/library/bb310768.aspx" href="http://technet.microsoft.com/en-us/library/bb310768.aspx"&gt;http://technet.microsoft.com/en-us/library/bb310768.aspx&lt;/a&gt; for more information about these property sets.&lt;/p&gt; &lt;p&gt;So what's the problem?&amp;nbsp; The problem is that these new Exchange property sets can only get replicated between Windows 2003 Sp1+ Domain Controllers.&amp;nbsp; If you introduce a temporary Windows 2003 Sp1 Domain Controller in a child domain just so you can run setup to install the first Exchange 2007 server, then you later remove it, the other Windows 2000 Domain Controllers in that domain do not know about the new Exchange property sets.&amp;nbsp; Since the Exchange attributes have already been moved to the new property sets, you can see how this could be disastrous for your company.&amp;nbsp; Imagine having mailboxes in a child domain and the domain controllers in that domain no longer have any knowledge of any Exchange attributes.&amp;nbsp; Not Good.&lt;/p&gt; &lt;p&gt;The moral of the story here is to make sure that you understand the pre-requisites and don't shoot yourself in the foot by trying to work around the setup requirements.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=2605261" width="1" height="1"&gt;</description></item></channel></rss>