<?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 : Exchange</title><link>http://blogs.technet.com/benw/archive/tags/Exchange/default.aspx</link><description>Tags: Exchange</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Move Mailbox from a CSV Import file</title><link>http://blogs.technet.com/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>benw</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.technet.com/benw/comments/3064881.aspx</comments><wfw:commentRss>http://blogs.technet.com/benw/commentrss.aspx?PostID=3064881</wfw:commentRss><wfw:comment>http://blogs.technet.com/benw/rsscomments.aspx?PostID=3064881</wfw:comment><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/benw/archive/tags/exchange+2007/default.aspx">exchange 2007</category><category domain="http://blogs.technet.com/benw/archive/tags/Powershell/default.aspx">Powershell</category><category domain="http://blogs.technet.com/benw/archive/tags/Exchange/default.aspx">Exchange</category></item><item><title>MOM Exchange Management Pack alerts</title><link>http://blogs.technet.com/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>benw</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.technet.com/benw/comments/3022682.aspx</comments><wfw:commentRss>http://blogs.technet.com/benw/commentrss.aspx?PostID=3022682</wfw:commentRss><wfw:comment>http://blogs.technet.com/benw/rsscomments.aspx?PostID=3022682</wfw:comment><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/benw/archive/tags/Exchange/default.aspx">Exchange</category><category domain="http://blogs.technet.com/benw/archive/tags/MOM/default.aspx">MOM</category></item><item><title>Exchange 2007 Cluster Setup - Did it complete?</title><link>http://blogs.technet.com/benw/archive/2007/08/06/exchange-2007-cluster-setup-did-it-complete.aspx</link><pubDate>Tue, 07 Aug 2007 06:30:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:1715259</guid><dc:creator>benw</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.technet.com/benw/comments/1715259.aspx</comments><wfw:commentRss>http://blogs.technet.com/benw/commentrss.aspx?PostID=1715259</wfw:commentRss><wfw:comment>http://blogs.technet.com/benw/rsscomments.aspx?PostID=1715259</wfw:comment><description>&lt;P&gt;As you no doubt know by now, Exchange 2007 introduces different types of clustering.&amp;nbsp; It still retains the traditional Single Copy cluster where all data is stored in a central location (i.e. SAN).&amp;nbsp; It also introduces the concept of Cluster Continuous Replication, or CCR, where centralized storage is not required, rather each server contains a separate copy of the data.&amp;nbsp; This is achieved by an initial "seeding", and is then maintained by replication of log files.&amp;nbsp; Service Pack 1 for Exchange 2007 includes &lt;STRIKE&gt;yet a third type of cluster&lt;/STRIKE&gt; a new technology for managing server failures, called Standby Continuous Replication, or SCR, but we'll leave that for another post.&lt;/P&gt;
&lt;P&gt;[edit] as was pointed out to me, SCR isn't actually a clustered solution, as it does not use Windows clustering.&amp;nbsp; I've thus modified the original post to reflect that.&amp;nbsp; However, it can be used as the target for an Exchange 2007 cluster.&amp;nbsp; More details to come when I post about SCR.&lt;/P&gt;
&lt;P&gt;For today, I've installed a new CCR cluster, but I didn't allow it to complete.&amp;nbsp; Let's have a look at the setup log.&amp;nbsp; This is located in the c:\ExchangeSetupLogs directory.&amp;nbsp; The one that contains the most information is ExchangeSetup.log.&amp;nbsp; Since this log file contains a lot of information, I'll only post part of it.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;[8/3/2007 4:46:12 PM] [0] Starting Microsoft Exchange 2007 Setup&lt;BR&gt;[8/3/2007 4:46:12 PM] [0] **********************************************&lt;BR&gt;[8/3/2007 4:46:12 PM] [0] Setup version: 8.0.685.24.&lt;BR&gt;[8/3/2007 4:46:12 PM] [0] Logged on user: E12CCR\Administrator.&lt;BR&gt;[8/3/2007 4:46:12 PM] [0] Command Line Parameter Name='mode', Value='Install'.&lt;BR&gt;[8/3/2007 4:46:12 PM] [0] Command Line Parameter Name='sourcedir', Value='D:\i386'.&lt;BR&gt;[8/3/2007 4:46:12 PM] [0] Command Line Parameter Name='fromsetup', Value=''.&lt;BR&gt;[8/3/2007 4:46:12 PM] [0] ExSetupUI was started with the following command: '-mode:install -sourcedir:D:\i386 /FromSetup'.&lt;BR&gt;[8/3/2007 4:46:17 PM] [0] Setup is choosing the domain controller to use&lt;BR&gt;[8/3/2007 4:46:18 PM] [0] Setup is choosing a local domain controller...&lt;BR&gt;[8/3/2007 4:46:20 PM] [0] Setup has chosen the local domain controller e12dc.E12CCR.com for initial queries&lt;BR&gt;[8/3/2007 4:46:21 PM] [0] PrepareAD has been run, and has replicated to this domain controller; so setup will use e12dc.E12CCR.com&lt;BR&gt;[8/3/2007 4:46:21 PM] [0] Setup is choosing a global catalog...&lt;BR&gt;[8/3/2007 4:46:21 PM] [0] Setup has chosen the global catalog server e12dc.E12CCR.com.&lt;BR&gt;[8/3/2007 4:46:21 PM] [0] Setup will use the domain controller 'e12dc.E12CCR.com'.&lt;BR&gt;[8/3/2007 4:46:21 PM] [0] Setup will use the global catalog 'e12dc.E12CCR.com'.&lt;BR&gt;[8/3/2007 4:46:21 PM] [0] Exchange configuration container for the organization is 'CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=E12CCR,DC=com'.&lt;BR&gt;[8/3/2007 4:46:21 PM] [0] Exchange organization container for the organization is 'CN=First Organization,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=E12CCR,DC=com'.&lt;BR&gt;[8/3/2007 4:46:21 PM] [0] This machine is part of a Windows failover cluster.&lt;BR&gt;[8/3/2007 4:46:21 PM] [0] This server is not an active node for any Clustered Mailbox servers.&lt;BR&gt;[8/3/2007 4:46:21 PM] [0] Setup will search for an Exchange Server object for the local machine with name 'E12CCR2-N1'.&lt;BR&gt;[8/3/2007 4:46:21 PM] [0] No Exchange Server with identity 'E12CCR2-N1' was found.&lt;BR&gt;[8/3/2007 4:46:36 PM] [0] The following roles are unpacked: &lt;BR&gt;[8/3/2007 4:46:36 PM] [0] The following roles are installed: &lt;BR&gt;[8/3/2007 4:46:36 PM] [0] The local server does not have any Exchange files installed.&lt;BR&gt;[8/3/2007 4:46:36 PM] [0] Setup will use the path 'D:\i386' for installing Exchange.&lt;BR&gt;[8/3/2007 4:46:36 PM] [0] The server is cluster type: 'None'.&lt;BR&gt;[8/3/2007 4:46:36 PM] [0] The requested cluster type: 'None'.&lt;BR&gt;[8/3/2007 4:46:36 PM] [0] The installation mode is set to: 'Install'.&lt;BR&gt;[8/3/2007 4:46:36 PM] [0] An Exchange organization with name 'First Organization' was found in this forest.&lt;BR&gt;[8/3/2007 4:46:36 PM] [0] Active Directory Initialization status : 'True'.&lt;BR&gt;[8/3/2007 4:46:36 PM] [0] Schema Update Required Status : 'False'.&lt;BR&gt;[8/3/2007 4:46:36 PM] [0] Organization Configuration Update Required Status : 'False'.&lt;BR&gt;[8/3/2007 4:46:36 PM] [0] Domain Configuration Update Required Status : 'False'.&lt;BR&gt;[8/3/2007 4:46:37 PM] [0] Applying default role selection state 
&lt;P&gt;This simply shows an overview of the setup choices that have been made.&lt;/P&gt;
&lt;P&gt;[8/3/2007 4:52:39 PM] [1] Setup launched task 'test-setuphealth -DomainController 'e12dc.E12CCR.com' -DownloadConfigurationUpdates $false -ExchangeVersion '8.0.685.24' -Roles 'ClusterMailbox' -ScanType 'PrecheckInstall' -SetupRoles 'AdminTools','Mailbox','ClusterMailbox' -CmsName 'CCR-EVS2' -CmsDataPath 'E:\Exchsrvr\MDBData' -CmsIPAddress '10.10.201.230' -CmsSharedStorage $false -CreatePublicDB $false'&lt;/P&gt;
&lt;P&gt;This is showing the pre-requisite check tests that are being performed, and shows that the setup roles that have been selected are AdminTools, Mailbox, ClusterMailbox.&amp;nbsp; Most of the rest of the log file just shows the progress of each role, so I won't bore you with that.&amp;nbsp; Let's get on to the interesting part.&amp;nbsp; Once the mailbox role finishes installing, setup runs the new-ClusteredMailboxServer to create the actual cluster.&amp;nbsp; One nice thing is that you don't have to worry about creating the Exchange group in Cluster Admin as you had to do with Exchange 2003.&amp;nbsp; Setup now creates it for you automatically.&amp;nbsp; Ok - here is the failure.&amp;nbsp; Note the section in Bold.&lt;/P&gt;
&lt;P&gt;[8/6/2007 5:36:17 PM] [1] Processing component 'Mailbox System Attendant Dependent Tasks' (Configuring tasks dependent on System Attendant service).&lt;BR&gt;[8/6/2007 5:36:17 PM] [1] Executing 'start-ClusteredMailboxServer -Identity:$RoleName', handleError = False&lt;BR&gt;[8/6/2007 5:36:17 PM] [2] Launching sub-task '$error.Clear(); start-ClusteredMailboxServer -Identity:$RoleName'.&lt;BR&gt;[8/6/2007 5:36:18 PM] [2] Beginning processing.&lt;BR&gt;[8/6/2007 5:36:18 PM] [2] Administrator Active Directory session settings are: View Entire Forest: 'True', Configuration Domain Controller: 'e12dc.E12CCR.com', Preferred Global Catalog: 'e12dc.E12CCR.com', Preferred Domain Controllers: '{ e12dc.E12CCR.com }'&lt;BR&gt;[8/6/2007 5:36:18 PM] [2] Searching objects "ccr-evs2" of type "Server" under the root "$null".&lt;BR&gt;[8/6/2007 5:36:18 PM] [2] Previous operation run on domain controller 'e12dc.E12CCR.com'.&lt;BR&gt;[8/6/2007 5:36:18 PM] [2] Start-ClusteredMailboxServer is trying to start clustered mailbox server ccr-evs2.&lt;BR&gt;[8/6/2007 5:37:05 PM] [2] Start-ClusteredMailboxServer finished starting (bringing online) clustered mailbox server ccr-evs2.&lt;BR&gt;&lt;STRONG&gt;[8/6/2007 5:37:05 PM] [2] [ERROR] Unexpected Error&lt;BR&gt;[8/6/2007 5:37:05 PM] [2] [ERROR] Clustered mailbox server 'ccr-evs2' is not in a started (online) state (Failed). The cluster resource 'First Storage Group/Mailbox Database (ccr-evs2)' is in state (Failed).&lt;BR&gt;&lt;/STRONG&gt;[8/6/2007 5:37:05 PM] [2] Ending processing.&lt;BR&gt;[8/6/2007 5:37:05 PM] [1] The following 1 error(s) occurred during task execution:&lt;BR&gt;[8/6/2007 5:37:05 PM] [1] 0. ErrorRecord: Clustered mailbox server 'ccr-evs2' is not in a started (online) state (Failed). The cluster resource 'First Storage Group/Mailbox Database (ccr-evs2)' is in state (Failed).&lt;BR&gt;[8/6/2007 5:37:05 PM] [1] 0. ErrorRecord: Microsoft.Exchange.Management.Tasks.NewCmsNotOnline: Clustered mailbox server 'ccr-evs2' is not in a started (online) state (Failed). The cluster resource 'First Storage Group/Mailbox Database (ccr-evs2)' is in state (Failed).&lt;BR&gt;[8/6/2007 5:37:05 PM] [1] [ERROR] Clustered mailbox server 'ccr-evs2' is not in a started (online) state (Failed). The cluster resource 'First Storage Group/Mailbox Database (ccr-evs2)' is in state (Failed).&lt;BR&gt;[8/6/2007 5:37:05 PM] [1] Setup is halting task execution because of one or more errors in a critical task.&lt;BR&gt;[8/6/2007 5:37:05 PM] [1] Finished executing component tasks.&lt;BR&gt;[8/6/2007 5:37:05 PM] [1] Ending processing.&lt;BR&gt;[8/6/2007 5:40:48 PM] [0] End of Setup 
&lt;P&gt;The Setup UI will now show that setup has completed with an error.&amp;nbsp; Ok, so let's re-run setup to allow it to complete.&amp;nbsp; What's that?&amp;nbsp; The Setup UI only allows you to Add or Remove roles.&amp;nbsp; Oh yeah - since this was set up as a Cluster, you can't have any other roles on it, and you can't de-select the Active Cluster role.&amp;nbsp; Now at this point, I can actually go in to Cluster Admin, and verify that all the resources are online.&amp;nbsp; In the above case where my First Storage Group/Mailbox Databases (ccr-evs2) was in a failed state, I simply brought it online, and it came online just fine.&amp;nbsp; Since all the resources are online, you might think that everything is hunky dory.&amp;nbsp; Not so, my friend.&amp;nbsp; We've got a BIG problem.&amp;nbsp; The System Attendant Object was never fully provisioned.&amp;nbsp; If you leave your cluster running in the above state, you'll see lots of issues related to many tasks that the System Attendant Mailbox is used for.&amp;nbsp; In my above setup, if we look at the System Attendant object using ADSIEdit, we will find that there are no proxy addresses (BAD BAD BAD), and msExchPoliciesIncluded is not set.&amp;nbsp; This will cause massive problems with Free/Busy, and you'll see NDR's being generated for any messages sent to your System Attendant mailbox (duh - it doesn't have an e-mail address) 
&lt;P&gt;OK - so how do you fix it?&amp;nbsp; Well, before we get there, there is one more thing you need to look at that will tell you if setup encountered any problems that need to be fixed.&amp;nbsp; Open up the registry, and navigate to 
&lt;P&gt;HKEY_LOCAL_MACHINE\Software\Microsoft\Exchange\v8.0 
&lt;P&gt;and see which subkeys exist.&amp;nbsp; You should see a separate key for Each role that is installed.&amp;nbsp; For the above cluster, if setup had completed successfully, you would only see the following keys. 
&lt;P&gt;v8.0&lt;BR&gt;&amp;nbsp;&amp;nbsp; AdminTools&lt;BR&gt;&amp;nbsp;&amp;nbsp; MailboxRole&lt;BR&gt;&amp;nbsp;&amp;nbsp; Setup 
&lt;P&gt;In my case, however, I saw one more (bolded) 
&lt;P&gt;v8.0&lt;BR&gt;&amp;nbsp;&amp;nbsp; AdminTools&lt;BR&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp; ClusteredMailboxServer&lt;/STRONG&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp; MailboxRole&lt;BR&gt;&amp;nbsp;&amp;nbsp; Setup&lt;/P&gt;
&lt;P&gt;Viewing that key showed a Value with a name of "WaterMark" that contained a hex string.&amp;nbsp; This Watermark is very important!&amp;nbsp; It is how setup&amp;nbsp;notes where it left off, and what still needs to be completed.&lt;/P&gt;
&lt;P&gt;Ok - now on to the resolution.&amp;nbsp; If you experience a failure during setup (clustered or not), the best way to resolve it in almost all cases is to run setup from the command prompt.&amp;nbsp; The command-line version of setup is called from setup.com.&amp;nbsp; For my cluster issue, since the Mailbox role completed, I don't have to actually run setup and select a role to install, rather I need to re-setup the cluster.&amp;nbsp; The command I used was&lt;/P&gt;
&lt;P&gt;setup.com /newcms /cmsname:ccr-evs2 /cmsipaddress:10.10.21.230 /cmsdatapath:e:\exchsrvr\mdbdata&lt;/P&gt;
&lt;P&gt;When this command is run on an existing cluster with this same name, all setup will do is determine if there are any actions that have not been completed.&amp;nbsp; In other words, it checks for a Watermark.&amp;nbsp; In my case, it picked up at about 75% or so, and ran through to completion successfully.&amp;nbsp; Inspecting the setup log after completion shows the following tasks (which I'd consider fairly important!)&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;[8/6/2007 5:51:55 PM] [1] Executing 'enable-SystemAttendantMailbox -Identity:$RoleFqdnOrName -DomainController $RoleDomainController', handleError = True&lt;BR&gt;&lt;/STRONG&gt;[8/6/2007 5:51:55 PM] [2] Launching sub-task '$error.Clear(); enable-SystemAttendantMailbox -Identity:$RoleFqdnOrName -DomainController $RoleDomainController'.&lt;BR&gt;[8/6/2007 5:51:55 PM] [2] Beginning processing.&lt;BR&gt;[8/6/2007 5:51:55 PM] [2] Searching objects "ccr-evs2" of type "ADSystemAttendantMailbox" under the root "First Organization".&lt;BR&gt;[8/6/2007 5:51:55 PM] [2] Previous operation run on domain controller 'e12dc.E12CCR.com'.&lt;BR&gt;[8/6/2007 5:51:55 PM] [2] Processing object "Microsoft System Attendant".&lt;BR&gt;&lt;STRONG&gt;[8/6/2007 5:51:55 PM] [2] Applying RUS policy to the given recipient "Microsoft System Attendant" with the home domain controller "e12dc.E12CCR.com".&lt;BR&gt;[8/6/2007 5:52:17 PM] [2] The RUS server that will apply policies on the specified recipient is "CCR-EVS2.E12CCR.com".&lt;/STRONG&gt;&lt;BR&gt;[8/6/2007 5:52:17 PM] [2] Saving object "Microsoft System Attendant" of type "ADSystemAttendantMailbox" and state "Changed".&lt;BR&gt;[8/6/2007 5:52:17 PM] [2] Previous operation run on domain controller 'e12dc.E12CCR.com'.&lt;BR&gt;[8/6/2007 5:52:17 PM] [2] Ending processing. 
&lt;P&gt;If you aren't installing a cluster, you may still see a Watermark value for one of the other roles (ClientAccess, HubTransport, Mailbox, UnifiedMessaging, etc. 
&lt;P&gt;If you have a watermark for one of those roles, you need to note which role has a watermark, then run the following 
&lt;P&gt;setup.com /roles:mb (or insert the name of the role that shows the watermark) 
&lt;P&gt;This will allow setup to process that role, and based on the watermark in the registry, it will continue where it left off.&amp;nbsp; Once setup completes successfully, the watermark value will be removed. 
&lt;P&gt;I'm hoping and expecting that Service Pack 1 for Exchange 2007 will be able to handle issues like this one much better, as it should include&amp;nbsp;a "Reinstall" option.&amp;nbsp; If not, you can always fall back to the trusty command-line options.&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=1715259" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/benw/archive/tags/exchange+2007/default.aspx">exchange 2007</category><category domain="http://blogs.technet.com/benw/archive/tags/Exchange/default.aspx">Exchange</category><category domain="http://blogs.technet.com/benw/archive/tags/CCR/default.aspx">CCR</category><category domain="http://blogs.technet.com/benw/archive/tags/cluster/default.aspx">cluster</category></item><item><title>Exchange 2003, ISA and attachment size</title><link>http://blogs.technet.com/benw/archive/2007/05/03/exchange-2003-isa-and-attachment-size.aspx</link><pubDate>Thu, 03 May 2007 21:33:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:878284</guid><dc:creator>benw</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/benw/comments/878284.aspx</comments><wfw:commentRss>http://blogs.technet.com/benw/commentrss.aspx?PostID=878284</wfw:commentRss><wfw:comment>http://blogs.technet.com/benw/rsscomments.aspx?PostID=878284</wfw:comment><description>&lt;P&gt;I've seen a few of these reports recently and worked on one personally, so I thought I would mention this in case anyone else has run into this issue and wasn't sure how to fix it.&lt;/P&gt;
&lt;P&gt;The environment:&lt;BR&gt;ISA server 200x using a Web Publishing Rule to publish OWA on an Exchange 2003 server.&lt;/P&gt;
&lt;P&gt;The problem:&lt;BR&gt;When using OWA externally, files larger than 50kb cannot be attached.&amp;nbsp; The symptom is that the attachment screen will simply go blank.&amp;nbsp; If you wait long enough, you may eventually see a timeout error, but that could be a long time (30 minutes or more).&amp;nbsp; Attaching the same file from inside the network works fine.&lt;/P&gt;
&lt;P&gt;The apparent solution:&lt;BR&gt;On the Exchange 2003 server, there is a setting within the IIS metabase that needs to be modified.&amp;nbsp; Specifically, the&amp;nbsp;parameter UploadReadAheadSize needs to be set.&lt;/P&gt;
&lt;P&gt;Why does this need to be changed?&lt;/P&gt;
&lt;P&gt;I don't know.&amp;nbsp; I'm not an ISA expert, nor am I am IIS expert.&amp;nbsp; The above-mentioned&amp;nbsp;parameter is not set by default, and IIS will use the default schema value of 49152 bytes (48kb).&amp;nbsp; It is worth noting that this&amp;nbsp;parameter apparently does not *always* need to be modified.&amp;nbsp; You should thus only modify this attribute if you are encountering this issue.&lt;/P&gt;
&lt;P&gt;This&amp;nbsp;parameter can be modified using adsutil.vbs, which is included by default with IIS, and exists in the inetpub\adminscripts directory.&amp;nbsp; It can also be modified by editing the metabase.xml file in the \winnt\system32\inetsrv directory.&lt;/P&gt;
&lt;P&gt;First, verify that no value is set.&lt;/P&gt;
&lt;P&gt;C:\inetpub\adminscripts&amp;gt;adsutil get w3svc/UploadReadAheadSize&lt;/P&gt;
&lt;P&gt;You should get back a response&lt;/P&gt;
&lt;P&gt;The parameter "UploadReadAheadSize" is not set at this node.&lt;/P&gt;
&lt;P&gt;To modify this parameter, run the following command&lt;/P&gt;
&lt;P&gt;C:\inetpub\adminscripts&amp;gt;adsutil set w3svc/UploadReadAheadSize "&amp;lt;Size in bytes&amp;gt;"&lt;/P&gt;
&lt;P&gt;For example, if you want to change this value to 20mb, you would put in "20000000" as the size.&lt;/P&gt;
&lt;P&gt;The response should be&lt;/P&gt;
&lt;P&gt;UploadReadAheadSize&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : (INTEGER) 20000000&lt;/P&gt;
&lt;P&gt;Once you make this change, it should be effective immediately.&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=878284" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/benw/archive/tags/ISA/default.aspx">ISA</category><category domain="http://blogs.technet.com/benw/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.technet.com/benw/archive/tags/Exchange/default.aspx">Exchange</category></item></channel></rss>