{"id":198,"date":"2008-10-06T13:22:53","date_gmt":"2008-10-06T13:22:53","guid":{"rendered":"https:\/\/www.wapshere.com\/missmiis\/?p=198"},"modified":"2009-04-05T07:44:11","modified_gmt":"2009-04-05T07:44:11","slug":"exchange-2007-provisioning","status":"publish","type":"post","link":"https:\/\/www.wapshere.com\/missmiis\/exchange-2007-provisioning","title":{"rendered":"Exchange 2007 Provisioning"},"content":{"rendered":"<p>Since finally getting around to enabling blog stats I can see the Exchange posts continue to be popular so, to add to the series, here is a step-by-step guide to basic Exchange 2007 provisioning with ILM 2007.<\/p>\n<p><!--more--><\/p>\n<h3>Set up the ILM server<\/h3>\n<p>In addition to the usual ILM requirements, you will need to install the following on your ILM server:<\/p>\n<ol>\n<li><a href=\"http:\/\/www.microsoft.com\/downloads\/details.aspx?FamilyId=10EE29AF-7C3A-4057-8367-C9C1DAB6E2BF&amp;displaylang=en\" target=\"_blank\">Powershell<\/a><\/li>\n<li><a href=\"http:\/\/www.microsoft.com\/downloadS\/details.aspx?FamilyID=6be38633-7248-4532-929b-76e9c677e802&amp;displaylang=en\" target=\"_blank\">Exchange 2007\u00c2\u00a0management tools<\/a><\/li>\n<\/ol>\n<h3>Configure the Exchange MA<\/h3>\n<p>Exchange mailboxes are provisioned using the regular AD management agent, with a couple of specific configurations.<\/p>\n<ol>\n<li>You must tick <strong>Enable Exchange 2007 provisioning<\/strong> on the Extensions tab, and<\/li>\n<li>You must have the following attributes selected on the <strong>Select Attributes<\/strong> tab:\n<ul>\n<li>homeMDB<\/li>\n<li>mail<\/li>\n<li>mailNickname<\/li>\n<li>mDBUseDefaults<\/li>\n<li>msExchMailboxSecurityDescriptor<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3>Source Data<\/h3>\n<p>You must flow the mail address and the mail alias (the bit before the &#8220;@&#8221;) into the metaverse from somewhere.<\/p>\n<p>I also find it simplest to flow in a value for homeMDB as well (and the provisioning code below assumes this to be the case).<\/p>\n<p>The homeMDB is where you set the mail server and mail database for the user&#8217;s mailbox. It will look something like this:<\/p>\n<pre>CN=<em>mail_db<\/em>,CN=First Storage Group,CN=InformationStore,CN=<em>server<\/em>,CN=Servers,\r\nCN=Exchange Administrative Group (FYDIBOHF23SPDLT),CN=Administrative Groups,\r\nCN=First Organization,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=mydomain,DC=com<\/pre>\n<p>If you only\u00c2\u00a0 have one server and mail database then populating this attribute will be a simple matter of flowing in a constant value.<\/p>\n<p>If you have multiple MDBs then you will have to decide how to populate homeMDB for different users. You might have a simple rule based on surname or employee number, or perhaps you could encorporate something like <a href=\"http:\/\/www.microsoft.com\/technet\/scriptcenter\/csc\/scripts\/email\/exch2007\/cscem032.mspx\" target=\"_blank\">this powershell script<\/a> to\u00c2\u00a0locate the smallest MDB.<\/p>\n<h3>Provisioning Code<\/h3>\n<p>The provisioning code is actually no different to Exchange 2003. Here is a code sample which creates the user and mailbox together.<\/p>\n<pre>Dim CSEntry As CSEntry = ExchangeUtils.CreateMailbox(MA, DN, _\r\n\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0   mventry(\"mail\").Value.Split(chr(\"@\"))(0), _\r\n                           mventry(\"homeMDB\").Value)\r\nCSEntry(\"unicodepwd\").Values.Add(mventry(\"userPassword\").Value)\r\nCSEntry(\"description\").Value = \"Account created \" + Today.ToString(\"d\")\r\nCSEntry(\"userAccountControl\").IntegerValue = ADS_UF_NORMAL_ACCOUNT\r\nCSEntry.CommitNewConnector()<\/pre>\n<h3>Troubleshooting<\/h3>\n<p>Not exhaustive by any means\u00c2\u00a0&#8211; but here are a couple of errors I encountered during testing.<\/p>\n<h4>Export error 1<\/h4>\n<p>Error stopped-dll-exception on Export step, and<br \/>\nMIIServer event 6801 in the Application Event Log with the message:<\/p>\n<pre>\"System.IO.FileNotFoundException: Could not load file or assembly\r\n'System.Management.Automation, Version=1.0.0.0, Culture=neutral,\r\nPublicKeyToken=31bf3856ad364e35' or one of its dependencies. The\r\nsystem cannot find the file specified.\"<\/pre>\n<p>This happened when I deliberately tried an export before installing\u00c2\u00a0powershell and the Exchange management tools.<\/p>\n<h4>Export error 2<\/h4>\n<p>Error completed-export-error with ma-extension-error on the Export step, and<br \/>\nMIIServer event 6801 in the Application Event Log with the message:<\/p>\n<pre>\u00c2\u00a0\"Microsoft.MetadirectoryServices.ExtensionException: Unable to find\r\n'192.168.126.150' computer information in domain controller '192.168.126.150:389'\r\nto perform the suitability check. Verify the fully qualified domain name.\"<\/pre>\n<p>I was provisioning Exchange mailboxes to a different domain and, depsite having a secondary DNS domain configured in the local domain, ILM was defaulting to using the ip address of the foreign DC. I changed the MA configuration to force it to hardcode the DNS name of the DC (Configure Directory Partitions, Domain controller connection settings) and then it was fine.<\/p>\n<p>I think this error has something to do with the Update-Recipient powershell component. I am guessing it gets the DC information from the MA and if, for some reason, the ip address is there instead of the domain name, the cmdlet fails.<\/p>\n<h3>Older versions of ILM\/MIIS<\/h3>\n<p>Only ILM 2007 FP1 has the Exchange 2007 support, so if you&#8217;re on an older version you need to upgrade. It is a very straight-forward operation &#8211; I have now done three in-place upgrades of production MIIS\/ILM installations and they have all gone without a hitch &#8211; so what are you waiting for?<\/p>\n<p>Just make sure you backup your MIIS database first! \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Since finally getting around to enabling blog stats I can see the Exchange posts continue to be popular so, to add to the series, here is a step-by-step guide to basic Exchange 2007 provisioning with ILM 2007.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"footnotes":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":[]},"categories":[26,34,19],"tags":[],"class_list":["post-198","post","type-post","status-publish","format-standard","hentry","category-exchange2007","category-ilm2007","category-newbie"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pkp1o-3c","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.wapshere.com\/missmiis\/wp-json\/wp\/v2\/posts\/198","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wapshere.com\/missmiis\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wapshere.com\/missmiis\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wapshere.com\/missmiis\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wapshere.com\/missmiis\/wp-json\/wp\/v2\/comments?post=198"}],"version-history":[{"count":6,"href":"https:\/\/www.wapshere.com\/missmiis\/wp-json\/wp\/v2\/posts\/198\/revisions"}],"predecessor-version":[{"id":818,"href":"https:\/\/www.wapshere.com\/missmiis\/wp-json\/wp\/v2\/posts\/198\/revisions\/818"}],"wp:attachment":[{"href":"https:\/\/www.wapshere.com\/missmiis\/wp-json\/wp\/v2\/media?parent=198"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wapshere.com\/missmiis\/wp-json\/wp\/v2\/categories?post=198"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wapshere.com\/missmiis\/wp-json\/wp\/v2\/tags?post=198"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}