<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3920347219421157797</id><updated>2012-01-27T13:10:27.839-08:00</updated><category term='AD LDS / ADAM'/><category term='Office 365'/><category term='SCOM'/><category term='SQL'/><category term='Windows Server General'/><category term='Outlook'/><category term='Trend Micro'/><category term='Security'/><category term='Windows Client General'/><category term='Citrix'/><category term='Scripting'/><category term='IIFP / MIIS / ILM / FIM'/><category term='Miscellaneous Posts'/><category term='Exchange 2007/2010'/><category term='Active Directory'/><category term='Linux'/><category term='Terminal Services'/><category term='Networking'/><category term='Hardware'/><category term='Forefront'/><category term='Applications'/><category term='Backup Exec'/><category term='OCS/Lync'/><category term='Exchange 2000/2003'/><category term='Viruses'/><category term='F5 BIG-IP'/><title type='text'>Clint Boessen's Blog</title><subtitle type='html'>Lots of Hints, Tips and Tricks for IT Professionals....</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default?start-index=101&amp;max-results=100'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>461</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-4969318067665195006</id><published>2012-01-22T22:04:00.001-08:00</published><updated>2012-01-22T22:16:26.080-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Server General'/><title type='text'>Add Driver Packages to Boot Image Wizard Not Responding</title><content type='html'>Hi had an issue today with a WDS Server on Windows Server 2008 R2 SP1.  Whenever I went to add a driver package to a boot image the "Add Driver Packages to Boot Image Wizard" would freeze when trying to mount the image and come up with not responding.&lt;br /&gt;&lt;br /&gt;When running the wizard again the following error would be received:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-size:78%;" &gt;Error Occurred while trying to execute this command.&lt;br /&gt;Error Code: 0xc1420127&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In which I needed to browse to "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WIMMount\Mounted Images" and delete any keys below this to run the wizard again.&lt;br /&gt;&lt;br /&gt;To resolve the problem I ran the following command to Uninitialize the server.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;&lt;b&gt;wdsutil /Uninitialize-Server&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-4d3Bt-tWLbc/Txz6uDfeEZI/AAAAAAAABzw/S9RmDzOf4tw/s1600/WDSIssue.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 55px;" src="http://1.bp.blogspot.com/-4d3Bt-tWLbc/Txz6uDfeEZI/AAAAAAAABzw/S9RmDzOf4tw/s400/WDSIssue.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5700706897462432146" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Opening the WDS Console allowed me to run the configuration wizard again.  After running the configuration wizard and re-configuring the server I then ran the "Add Driver Packages to Boot Image Wizard" which completed successfully.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/--MByxE1RGAA/Txz7E-n7FDI/AAAAAAAABz8/OGqWK3EdA3U/s1600/adddriverpackagetobootimagewizard.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 356px;" src="http://1.bp.blogspot.com/--MByxE1RGAA/Txz7E-n7FDI/AAAAAAAABz8/OGqWK3EdA3U/s400/adddriverpackagetobootimagewizard.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5700707291292701746" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-4969318067665195006?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/4969318067665195006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2012/01/add-driver-packages-to-boot-image.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/4969318067665195006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/4969318067665195006'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2012/01/add-driver-packages-to-boot-image.html' title='Add Driver Packages to Boot Image Wizard Not Responding'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-4d3Bt-tWLbc/Txz6uDfeEZI/AAAAAAAABzw/S9RmDzOf4tw/s72-c/WDSIssue.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-4156249663211618483</id><published>2012-01-19T20:47:00.000-08:00</published><updated>2012-01-19T22:22:48.865-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Outlook'/><title type='text'>Outlook 2007 Connection Issues over Outlook Anywhere</title><content type='html'>I have seen a problem with Outlook 2007 numerous times where Outlook 2007 cannot connect to Exchange when setting up a new profile.  This problem is client related, not server related.  For example if the same user experiencing the issue tries to connect to Exchange remotely via Outlook Anywhere from a different PC using the same version of Outlook, it works fine.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The issue only occurs when creating a new Outlook Profile remotely via Outlook Anywhere (RPC over HTTPS).  If the profile is already created and the user has used the profile in the past inside the network over direct MAPI you are reading the wrong blog post.&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;I am still unaware what causes this problem however I do have two working resolution.  If I find the root cause in the future, I am sure to come back and update this post for everyone :)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-size:180%;" &gt;&lt;strong&gt;Symptoms&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A user tries to create a new Outlook Profile remotely through Outlook Anywhere but experiences the following error:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-size:78%;" &gt;The connection to Microsoft Exchange is unavailable.  Outlook must be online or connected to complete this action.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-XOWjkZinqRM/Txj8xwDRWiI/AAAAAAAABzY/CCjCJmdLXS8/s1600/connectionproblem.PNG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5699583260079774242" style="width: 400px; height: 138px; cursor: pointer;" border="0" alt="" src="http://3.bp.blogspot.com/-XOWjkZinqRM/Txj8xwDRWiI/AAAAAAAABzY/CCjCJmdLXS8/s400/connectionproblem.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Note: This error is very generic and can also be caused when there is server side problems with Outlook Anywhere in which all users are effected.  Only read this post if you are receiving this error only for an external user trying to create their outlook profile over Outlook Anywhere.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-size:180%;" &gt;&lt;strong&gt;Resolution 1&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If the user connects to the internal network either by bringing their PC/Laptop into the office or initiating a VPN connection the Outlook client connects to exchange using direct RPC MAPI and sets up the Outlook Profile as normal.  If the user then brings the PC/Laptop outside the network either by disconnecting the VPN or moving the PC to another external network and connects using Outlook Anywhere (RPC over HTTP), Outlook Anywhere now works fine.  The profile was created inside the network hence the issue of creating the profile over Outlook Anywhere never occured.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-size:180%;" &gt;&lt;strong&gt;Resolution 2&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In the event you have a user in a remote site, perhaps another country and you have no VPN connectivity setup the task of creating the Outlook Profile on the internal network using RPC MAPI calls is made difficult.  However I have a work around here...&lt;br /&gt;&lt;br /&gt;What I did was create the users profile on another PC running Outlook 2007.  I used a virtual machine with Outlook 2007 installed and created the users profile using Outlook Anywhere as I did not have access to the internal network.  When the profile is created and working correctly, export the following registry key to a .reg file.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-4ua0EcT1SHY/TxkBMUiVluI/AAAAAAAABzk/O-T0878RG8o/s1600/regexport.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5699588114596861666" style="width: 400px; height: 188px; cursor: pointer;" border="0" alt="" src="http://2.bp.blogspot.com/-4ua0EcT1SHY/TxkBMUiVluI/AAAAAAAABzk/O-T0878RG8o/s400/regexport.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Next go to the PC experiencing the Outlook 2007 issue and import the .reg file you have created by double clicking the file.  This will import the Outlook Profile created on the remote workstation.  As Outlook is no longer trying to create the Outlook profile over Outlook Anywhere, it will simply load the profile as normal allowing the user to work remotely over Outlook Anywhere.&lt;br /&gt;&lt;br /&gt;Don't worry about Operating Systems - Performing this registry import/export from another PC with different operating system is fine.  I exported my registry content from a Windows XP PC with Outlook 2007 installed and imported it on a Windows 7 PC with Outlook 2007 installed.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-size:180%;" &gt;&lt;strong&gt;Additional Information&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I have troubleshooted this issue numerous times and have looked at many things such as debug logging with Outlook, launching Outlook in safe mode etc, nothing provides detailed information useful to diagnosing the root cause.&lt;br /&gt;&lt;br /&gt;This issue is not related to the Windows user profile or User Account.  For example if the user recreates his profile or another user account on the PC experiencing the issue, the problem reoccurs.  We can immediately rule out the users local user hive, it is definitely with the Outlook installation on the PC... so we should be looking at areas such as the local machine registry (HKLM) and the Outlook installation, are all the files correct?&lt;br /&gt;&lt;br /&gt;Reinstalling Office 2007 on a PC experiencing the issue does not resolve the problem.  This means it is either a setting in Windows or a desktop application which triggers this issue.  I have seen this issue in different companies, so if it is another application causing problems, it is not a custom line of business application.  It may be a common application that multiple company's use.&lt;br /&gt;&lt;br /&gt;I have seen this issue occur on all versions of Outlook 2007 ranging from Outlook 2007 RTM, SP1 and SP2.  Upgrading Outlook 2007 to the latest service pack will not resolve this issue.&lt;br /&gt;&lt;br /&gt;I have not seen this issue on Outlook 2003 or Outlook 2010 however this is not to say the issue does not occur on these versions.  I have just never seen this on these particular versions of Outlook in my professional experience.&lt;br /&gt;&lt;br /&gt;Last thing I would like to note is, third party non-Microsoft firewall software installed on a Laptop or PC can cause this issue.  If you open up Windows Firewall and Windows Firewall displays the notice something similar to "this PC is being managed by a third party vendor firewall", try uninstalling the third party firewall software as this may resolve the issue.&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-4156249663211618483?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/4156249663211618483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2012/01/outlook-2007-connection-issues-over.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/4156249663211618483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/4156249663211618483'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2012/01/outlook-2007-connection-issues-over.html' title='Outlook 2007 Connection Issues over Outlook Anywhere'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-XOWjkZinqRM/Txj8xwDRWiI/AAAAAAAABzY/CCjCJmdLXS8/s72-c/connectionproblem.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-8558048912631710774</id><published>2012-01-09T21:57:00.000-08:00</published><updated>2012-01-11T20:36:29.151-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><title type='text'>Assign user rights to modify distribution group membership</title><content type='html'>A colleague of mine here at &lt;a href="http://www.4logic.com.au"&gt;4Logic&lt;/a&gt; today needed to perform a simple task in an Exchange 2010 environment today to allow designated users to administer distribution groups in Exchange 2010.  Most Microsoft documentation suggesting adding the RBAC Administration role “Distribution Groups” to the user. This created security implementations as any user which was a member of this group, could manage all distribution groups within the organisation.&lt;br /&gt;&lt;br /&gt;My colleague eventually worked this out by discovering RBAC user role of "MyDisturbtionGroups" allows users to manage distribution groups that they are an owner of (via Outlook and Exchange Control Panel).&lt;br /&gt;&lt;br /&gt;Note: The group owner is controlled by the "Managed By" property.&lt;br /&gt;&lt;br /&gt;He enabled this role by using the following PowerShell command:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;New-ManagementRoleAssignment -Role MyDistributionGroups -Policy "Default Role Assignment Policy"&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The role group however also allows owners of a distribution group to delete the distribution group.&lt;br /&gt;&lt;br /&gt;If you want to allow users to only modify group membership a custom RBAC management role is required.  The following commands create a custom management role which only allows a user in the "Managed By" field of a group to modify a groups membership.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;New-ManagementRole -Name UpdateAddressLists -Parent MyDistributionGroups&lt;br /&gt;&lt;br /&gt;Remove-ManagementRoleEntry UpdateAddressLists\New-DistributionGroup -Confirm:$false&lt;br /&gt;&lt;br /&gt;Remove-ManagementRoleEntry UpdateAddressLists\Remove-DistributionGroup -Confirm:$false&lt;br /&gt;&lt;br /&gt;New-ManagementRoleAssignment -Role UpdateAddressLists -Policy "Default Role Assignment Policy"&lt;/span&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-8558048912631710774?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/8558048912631710774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2012/01/assign-user-rights-to-modify.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/8558048912631710774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/8558048912631710774'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2012/01/assign-user-rights-to-modify.html' title='Assign user rights to modify distribution group membership'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-6277813851897330500</id><published>2012-01-05T20:09:00.001-08:00</published><updated>2012-01-05T20:10:40.930-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><title type='text'>Command to find out how many items in each users Sent Items</title><content type='html'>Today I put together a quick command to explore how many items are in each users sent items which I would like to share with you.  This command ignores any users mailbox who does not have any items in the sent items folder.&lt;br /&gt;&lt;br /&gt;Get-Mailbox | Get-MailboxFolderStatistics -FolderScope SentItems | Where {$_.ItemsInFolder -gt 0} | Sort-Object -Property ItemsInFolder -Descending | select-object Identity,ItemsInFolder | export-csv c:\test.txt&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-6277813851897330500?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/6277813851897330500/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2012/01/command-to-find-out-how-many-items-in.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/6277813851897330500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/6277813851897330500'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2012/01/command-to-find-out-how-many-items-in.html' title='Command to find out how many items in each users Sent Items'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-2233780499119387007</id><published>2011-12-28T22:42:00.000-08:00</published><updated>2011-12-28T23:00:50.021-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><title type='text'>SACL Watcher servicelet found that the SeSecurityPrivilege privilege is removed from account</title><content type='html'>In this post I will share with you the resolution to a problem I had on one of my clients Exchange environments.  The following error was experienced in the event logs of my Exchange 2010 servers.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#ff0000;"&gt;Log Name:      Application&lt;br /&gt;Source:        MSExchange SACL Watcher&lt;br /&gt;Date:          28/12/2011 11:00:43 AM&lt;br /&gt;Event ID:      6006&lt;br /&gt;Task Category: General&lt;br /&gt;Level:         Warning&lt;br /&gt;Keywords:      Classic&lt;br /&gt;User:          N/A&lt;br /&gt;Computer:      APOLLO.internal.workcover.wa.gov.au&lt;br /&gt;Description:&lt;br /&gt;SACL Watcher servicelet found that the SeSecurityPrivilege privilege is removed from account S-1-5-21-54938807-350570593-2036031536-21088.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-OV26lUMF36g/TvwNkVIlGNI/AAAAAAAAByo/7ZsbXP60weg/s1600/exerror.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 280px;" src="http://1.bp.blogspot.com/-OV26lUMF36g/TvwNkVIlGNI/AAAAAAAAByo/7ZsbXP60weg/s400/exerror.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5691438946889046226" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Next I used LDP.exe to translate the SID from the error message into something readable.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-TtsIoCXOnT0/TvwOrla-CZI/AAAAAAAABy0/4JEzNfTgiFY/s1600/ldp1.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 239px;" src="http://3.bp.blogspot.com/-TtsIoCXOnT0/TvwOrla-CZI/AAAAAAAABy0/4JEzNfTgiFY/s400/ldp1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5691440171031857554" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-n1y7VrQ-OF8/TvwOxImEWbI/AAAAAAAABzA/bOqGPIN5fiU/s1600/ldp2.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 96px;" src="http://3.bp.blogspot.com/-n1y7VrQ-OF8/TvwOxImEWbI/AAAAAAAABzA/bOqGPIN5fiU/s400/ldp2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5691440266372995506" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After investigating the problem I found out that "SeSecurityPrivilege privilege" translates to "Manage audit and security log" under user rights assignment in group policy.  Exchange setup automatically adds "DOMAIN\Exchange Enterprise Servers" and "DOMAIN\Exchange Servers" to the "Manage audit and security log" user rights assignment on the Default Domain Controllers Policy.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-B1N2Hn11OdU/TvwP2C0qeHI/AAAAAAAABzM/-pWCWrUvK4A/s1600/manageauditing.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 400px;" src="http://1.bp.blogspot.com/-B1N2Hn11OdU/TvwP2C0qeHI/AAAAAAAABzM/-pWCWrUvK4A/s400/manageauditing.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5691441450234574962" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;My client had unlinked the Default Domain Controllers Policy from the Domain Controllers OU and created their own custom policy - NOT RECOMMENDED.  Restoring this policy resolved the problem.&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-2233780499119387007?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/2233780499119387007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/12/sacl-watcher-servicelet-found-that.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2233780499119387007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2233780499119387007'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/12/sacl-watcher-servicelet-found-that.html' title='SACL Watcher servicelet found that the SeSecurityPrivilege privilege is removed from account'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-OV26lUMF36g/TvwNkVIlGNI/AAAAAAAAByo/7ZsbXP60weg/s72-c/exerror.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-8758862820505717416</id><published>2011-12-28T22:05:00.000-08:00</published><updated>2011-12-28T22:39:18.286-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><title type='text'>451 4.4.0 Primary target IP address responded with: "451 5.7.3 Cannot achieve Exchange Server authentication."</title><content type='html'>In this post we will look at what this error means:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-size:78%;" &gt;451 4.4.0 Primary target IP address responded with: "451 5.7.3 Cannot achieve Exchange Server authentication." Attempted failover to alternate host, but that did not succeed. Either there are no alternate hosts, or delivery failed to all alternate hosts.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-FAP9yT8g8aA/TvwESuYeDHI/AAAAAAAAByQ/rntx_TTHuQo/s1600/Capture.PNG"&gt;&lt;img style="width: 400px; height: 138px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5691428748824284274" border="0" alt="" src="http://3.bp.blogspot.com/-FAP9yT8g8aA/TvwESuYeDHI/AAAAAAAAByQ/rntx_TTHuQo/s400/Capture.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Lets have a look in the SMTP Receive protocol logs:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;strong&gt;C:\Program Files\Microsoft\Exchange Server\V14\TransportRoles\Logs\ProtocolLog\SmtpReceive&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- We can see connections trying to be established from 10.4.8.1 (in a remote AD site) and 10.4.2.8 (in the same AD site)&lt;br /&gt;- We can see the connections are hitting the receive connector SVR01\External&lt;br /&gt;- The receive connector is terminating the connection with "Service closing transmission channel"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#3333ff;"&gt;2011-12-29T06:10:25.668Z,SVR01\External,08CE9265B5AAB0D9,0,10.4.2.10:25,10.4.8.1:49547,+,,&lt;br /&gt;2011-12-29T06:10:25.668Z,SVR01\External,08CE9265B5AAB0D9,1,10.4.2.10:25,10.4.8.1:49547,*,SMTPSubmit SMTPAcceptAnySender SMTPAcceptAuthoritativeDomainSender AcceptRoutingHeaders,Set Session Permissions&lt;br /&gt;2011-12-29T06:10:25.668Z,SVR01\External,08CE9265B5AAB0D9,2,10.4.2.10:25,10.4.8.1:49547,&amp;gt;,"220 mail.4logic.com.au Microsoft ESMTP MAIL Service ready at Thu, 29 Dec 2011 14:10:24 +0800",&lt;br /&gt;2011-12-29T06:10:25.699Z,SVR01\External,08CE9265B5AAB0D9,3,10.4.2.10:25,10.4.8.1:49547,&amp;lt;,EHLO OP-SRV1.4logic.lan, 2011-12-29T06:10:25.699Z,SVR01\External,08CE9265B5AAB0D9,4,10.4.2.10:25,10.4.8.1:49547,&amp;gt;,250-mail.4logic.com.au Hello [10.4.8.1],&lt;br /&gt;2011-12-29T06:10:25.699Z,SVR01\External,08CE9265B5AAB0D9,5,10.4.2.10:25,10.4.8.1:49547,&amp;gt;,250-SIZE 31457280,&lt;br /&gt;2011-12-29T06:10:25.699Z,SVR01\External,08CE9265B5AAB0D9,6,10.4.2.10:25,10.4.8.1:49547,&amp;gt;,250-PIPELINING,&lt;br /&gt;2011-12-29T06:10:25.699Z,SVR01\External,08CE9265B5AAB0D9,7,10.4.2.10:25,10.4.8.1:49547,&amp;gt;,250-DSN,&lt;br /&gt;2011-12-29T06:10:25.699Z,SVR01\External,08CE9265B5AAB0D9,8,10.4.2.10:25,10.4.8.1:49547,&amp;gt;,250-ENHANCEDSTATUSCODES,&lt;br /&gt;2011-12-29T06:10:25.699Z,SVR01\External,08CE9265B5AAB0D9,9,10.4.2.10:25,10.4.8.1:49547,&amp;gt;,250-STARTTLS,&lt;br /&gt;2011-12-29T06:10:25.699Z,SVR01\External,08CE9265B5AAB0D9,10,10.4.2.10:25,10.4.8.1:49547,&amp;gt;,250-AUTH,&lt;br /&gt;2011-12-29T06:10:25.699Z,SVR01\External,08CE9265B5AAB0D9,11,10.4.2.10:25,10.4.8.1:49547,&amp;gt;,250-8BITMIME,&lt;br /&gt;2011-12-29T06:10:25.699Z,SVR01\External,08CE9265B5AAB0D9,12,10.4.2.10:25,10.4.8.1:49547,&amp;gt;,250-BINARYMIME,&lt;br /&gt;2011-12-29T06:10:25.699Z,SVR01\External,08CE9265B5AAB0D9,13,10.4.2.10:25,10.4.8.1:49547,&amp;gt;,250 CHUNKING,&lt;br /&gt;2011-12-29T06:10:25.746Z,SVR01\External,08CE9265B5AAB0D9,14,10.4.2.10:25,10.4.8.1:49547,&amp;lt;,QUIT, 2011-12-29T06:10:25.746Z,SVR01\External,08CE9265B5AAB0D9,15,10.4.2.10:25,10.4.8.1:49547,&amp;gt;,221 2.0.0 Service closing transmission channel,&lt;br /&gt;2011-12-29T06:10:25.746Z,SVR01\External,08CE9265B5AAB0D9,16,10.4.2.10:25,10.4.8.1:49547,-,,Local&lt;br /&gt;2011-12-29T06:10:32.761Z,SVR01\External,08CE9265B5AAB0DA,0,10.4.2.10:25,10.4.2.8:65117,+,,&lt;br /&gt;2011-12-29T06:10:32.761Z,SVR01\External,08CE9265B5AAB0DA,1,10.4.2.10:25,10.4.2.8:65117,*,SMTPSubmit SMTPAcceptAnySender SMTPAcceptAuthoritativeDomainSender AcceptRoutingHeaders,Set Session Permissions&lt;br /&gt;2011-12-29T06:10:32.761Z,SVR01\External,08CE9265B5AAB0DA,2,10.4.2.10:25,10.4.2.8:65117,&amp;gt;,"220 mail.4logic.com.au Microsoft ESMTP MAIL Service ready at Thu, 29 Dec 2011 14:10:31 +0800",&lt;br /&gt;2011-12-29T06:10:32.761Z,SVR01\External,08CE9265B5AAB0DA,3,10.4.2.10:25,10.4.2.8:65117,&amp;lt;,EHLO QV1-EXC1.4logic.lan, 2011-12-29T06:10:32.761Z,SVR01\External,08CE9265B5AAB0DA,4,10.4.2.10:25,10.4.2.8:65117,&amp;gt;,250-mail.4logic.com.au Hello [10.4.2.8],&lt;br /&gt;2011-12-29T06:10:32.761Z,SVR01\External,08CE9265B5AAB0DA,5,10.4.2.10:25,10.4.2.8:65117,&amp;gt;,250-SIZE 31457280,&lt;br /&gt;2011-12-29T06:10:32.761Z,SVR01\External,08CE9265B5AAB0DA,6,10.4.2.10:25,10.4.2.8:65117,&amp;gt;,250-PIPELINING,&lt;br /&gt;2011-12-29T06:10:32.761Z,SVR01\External,08CE9265B5AAB0DA,7,10.4.2.10:25,10.4.2.8:65117,&amp;gt;,250-DSN,&lt;br /&gt;2011-12-29T06:10:32.761Z,SVR01\External,08CE9265B5AAB0DA,8,10.4.2.10:25,10.4.2.8:65117,&amp;gt;,250-ENHANCEDSTATUSCODES,&lt;br /&gt;2011-12-29T06:10:32.761Z,SVR01\External,08CE9265B5AAB0DA,9,10.4.2.10:25,10.4.2.8:65117,&amp;gt;,250-STARTTLS,&lt;br /&gt;2011-12-29T06:10:32.761Z,SVR01\External,08CE9265B5AAB0DA,10,10.4.2.10:25,10.4.2.8:65117,&amp;gt;,250-AUTH,&lt;br /&gt;2011-12-29T06:10:32.761Z,SVR01\External,08CE9265B5AAB0DA,11,10.4.2.10:25,10.4.2.8:65117,&amp;gt;,250-8BITMIME,&lt;br /&gt;2011-12-29T06:10:32.761Z,SVR01\External,08CE9265B5AAB0DA,12,10.4.2.10:25,10.4.2.8:65117,&amp;gt;,250-BINARYMIME,&lt;br /&gt;2011-12-29T06:10:32.777Z,SVR01\External,08CE9265B5AAB0DA,13,10.4.2.10:25,10.4.2.8:65117,&amp;gt;,250 CHUNKING,&lt;br /&gt;2011-12-29T06:10:32.777Z,SVR01\External,08CE9265B5AAB0DA,14,10.4.2.10:25,10.4.2.8:65117,&amp;lt;,QUIT, 2011-12-29T06:10:32.777Z,SVR01\External,08CE9265B5AAB0DA,15,10.4.2.10:25,10.4.2.8:65117,&amp;gt;,221 2.0.0 Service closing transmission channel,&lt;br /&gt;2011-12-29T06:10:32.777Z,SVR01\External,08CE9265B5AAB0DA,16,10.4.2.10:25,10.4.2.8:65117,-,,Local&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If we look at the receive connector "External" on SVR01 we notice that Exchange Server authentication is not enabled meaning SVR01 is not able to receive mail relay from other hub transport servers in the Exchange organisation.&lt;br /&gt;&lt;br /&gt;If we tick the box we will resolve the problem.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-AjZ7fl_dqe0/TvwLB19G2TI/AAAAAAAAByc/OVeZXVDL6-0/s1600/receiveconnector.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 356px; height: 400px;" src="http://4.bp.blogspot.com/-AjZ7fl_dqe0/TvwLB19G2TI/AAAAAAAAByc/OVeZXVDL6-0/s400/receiveconnector.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5691436155380619570" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-8758862820505717416?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/8758862820505717416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/12/451-440-primary-target-ip-address.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/8758862820505717416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/8758862820505717416'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/12/451-440-primary-target-ip-address.html' title='451 4.4.0 Primary target IP address responded with: &quot;451 5.7.3 Cannot achieve Exchange Server authentication.&quot;'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-FAP9yT8g8aA/TvwESuYeDHI/AAAAAAAAByQ/rntx_TTHuQo/s72-c/Capture.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-2725071252438218398</id><published>2011-12-22T18:41:00.000-08:00</published><updated>2011-12-22T19:52:13.519-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Office 365'/><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Forefront'/><title type='text'>Hybrid Office 365 Deployment with Threat Management Gateway</title><content type='html'>After working with a Hybrid Office 365 deployment with Threat Management Gateway performing SSL offloading to an Exchange 2010 SP2 hybrid server for one of my customers I experienced a number of gotcha's which are not documented.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color:#000099;"&gt;&lt;strong&gt;MRSProxy with SSL Offloading&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;The first issue was with MRSProxy.  I found out the hard way that MRSProxy "/EWS/mrsproxy.svc" does not support SSL offloading.  The MRSProxy connection must hit the Exchange 2010 Client Access Server on TCP443 using a secure SSL connection.  When using SSL offloading with Forefront Threat Management Gateway as soon as unsecure HTTP port 80 connections were passed to MRSProxy on the Exchange 2010 Hybrid server we were receiving was (404) Not Found in the IIS logs.&lt;br /&gt;&lt;br /&gt;We created a separate TMG firewall rule with a path rule of "/EWS/mrsproxy.svc" which is processed before our Hybrid firewall rule.  This path rule re-encrypts and forwards to the Hybird server on TCP443.  All other connections come through on TCP80.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color:#000099;"&gt;&lt;strong&gt;Free/Busy with Office 365&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The second issue was with free/busy.  Users on-premises were able to view Free/Busy for users in Office 365, however users in Office 365 were unable to view Free/Busy for users on-premises.  This was caused by the Web Listener being configured for Basic or Windows Integrated authentication.  Free/Busy over an Organization Relationship uses Microsoft.Web.Services.SoapContext to authenticate free/busy... in other words the authentication is handled by the .NET framework.  Threat Management Gateway must pass through authentication requests to /EWS/*.  Setting the TMG listener to No Authentication achieves this.&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-2725071252438218398?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/2725071252438218398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/12/hybrid-office-365-deployment-with.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2725071252438218398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2725071252438218398'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/12/hybrid-office-365-deployment-with.html' title='Hybrid Office 365 Deployment with Threat Management Gateway'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-8466736779263638875</id><published>2011-12-22T17:59:00.000-08:00</published><updated>2011-12-22T18:25:29.944-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Outlook'/><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2000/2003'/><title type='text'>Send As From a Second Email Address</title><content type='html'>From Exchange Server 2003 to Exchange 2010 SP2 (as of this writing) supports the ability to send email from different email addresses as long as the "send as" address has the same email address suffix of the users primary email address.  For example I have an email address of clint.boessen@4logic.com.au.  Provided I have been granted permissions I can send as from different addresses such as accounts@4logic.com.au or orders@4logic.com.au.  However if my Exchange server has different Accepted Domains such as @kbomb.com.au I am not able to send as accounts@kbomb.com.au even if I have been granted permissions.  Doing so will result in the following error:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#ff0000;"&gt;You can't send a message on behalf of this user unless you have permission to do so. Please make sure you're sending on behalf of the correct sender, or request the necessary permission. If the problem continues, please contact your helpdesk.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Microsoft's claims this functionality is "by design" and there is no intention to create a resolution at this stage.&lt;br /&gt;&lt;br /&gt;There is a 3rd party tool called ChooseFrom which you install on your Exchange 2007/2010 server.  This tool enables Send As functionality from different domains however its rather pricey.  As of this writing the asking price was 286.46 USD for a 1-2 user license, $214.84 USD if you want over 3 licenses, $7161.50 USD for a site license or $30078.30 USD for an enterprise license in which they will also provide you with the source code.  If you are interested in this tool please see the following website:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ivasoft.com/choosefrom2007.shtml"&gt;http://ivasoft.com/choosefrom2007.shtml&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As an alternative you can create a new Outlook Profile and create a POP account.  Outlook 2010 supports multiple profiles at the same time.  In the address enter your Exchange 2010 hub transport server and configure SMTP authentication.  In the POP3 server address enter something bogus like mail.local.  Next you need to configure the send and receive group for your POP3 profile.  To do this perform the following steps:&lt;br /&gt;&lt;br /&gt;1. Under Send/Receive Groups select Define Send/Receive Groups.&lt;br /&gt;2. Select your group name or define a new group and click Edit.&lt;br /&gt;3. In the Send/Receive Settings disable Receive mail items.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-U0gLUAe5t8Y/TvPmJJ2qO4I/AAAAAAAAByE/kONcOZ2TjEc/s1600/receive.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 149px;" src="http://4.bp.blogspot.com/-U0gLUAe5t8Y/TvPmJJ2qO4I/AAAAAAAAByE/kONcOZ2TjEc/s400/receive.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5689143799237458818" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now when you send/receive you wont get an error about not being able to receive from the bogus pop server.&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-8466736779263638875?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/8466736779263638875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/12/send-as-from-second-email-address.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/8466736779263638875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/8466736779263638875'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/12/send-as-from-second-email-address.html' title='Send As From a Second Email Address'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-U0gLUAe5t8Y/TvPmJJ2qO4I/AAAAAAAAByE/kONcOZ2TjEc/s72-c/receive.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-5496501875632480055</id><published>2011-12-22T17:43:00.000-08:00</published><updated>2011-12-22T17:55:50.389-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Server General'/><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Client General'/><title type='text'>Decrypting Network Packet Capture</title><content type='html'>There may be times where you need to view a network conversation which is encrypted with SSL.  What do you do?&lt;br /&gt;&lt;br /&gt;You may decrypt the conversation using a tool called "Network Monitor Decryption Expert" which is available for free from codeplex.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://nmdecrypt.codeplex.com/"&gt;http://nmdecrypt.codeplex.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;color:#000099;"&gt;&lt;strong&gt;How do I go about decrypting the traffic?&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#cc0000;"&gt;Step 1&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Start Microsoft Network Monitor (NetMon) and capture the Traffic from Office 365.  The latest version as of this writing is 3.4 which is available from &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=4865"&gt;http://www.microsoft.com/download/en/details.aspx?id=4865&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#cc0000;"&gt;Step 2&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Export the Server Certificate with private key in to a PFX&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#cc0000;"&gt;Step 3&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Install the Netmon expert for SSL&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#cc0000;"&gt;Step 4&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Now you should be able to decrypt the encrypted traffic.&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-5496501875632480055?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/5496501875632480055/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/12/decrypting-network-packet-capture.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/5496501875632480055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/5496501875632480055'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/12/decrypting-network-packet-capture.html' title='Decrypting Network Packet Capture'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-5579954375434768165</id><published>2011-12-16T16:59:00.000-08:00</published><updated>2011-12-16T17:52:56.132-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Office 365'/><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><title type='text'>Wild Card Certificates and Hybrid Configuration Wizard</title><content type='html'>When running the Hybrid Configuration Wizard I noticed the wizard crashes when attempting to create a Send Connector if a wild card certificate is attached to the default web site in IIS.  What the Hybrid Configuration Wizard does is look at the common name of the certificate associated with the IIS service (verify this by using Get-ExchangeCertificate) and attempts to associate the common name as the FQDN on the Send Connector for the purpose of SMTP encryption.  In a wildcard certificate *.example.com is the common name of the certificate.  *.example.com is not a valid FQDN for a send connector in Exchange as thee FQDN must be associated to a domain name, not a wild card name.  As a result the wizard crashes when trying to set *.example.com as the FQDN on the send connector.  The following error is generated...&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-size:78%;" &gt;Update-HybridConfiguration&lt;br /&gt;Failed&lt;br /&gt;&lt;br /&gt;Error:&lt;br /&gt;Updating hybrid configuration failed with error 'Subtask Configure execution failed: Configure Mail Flow&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Execution of the New-SendConnector cmdlet had thrown an exception. This may indicate invalid parameters in your Hybrid Configuration settings.&lt;br /&gt;&lt;br /&gt;Cannot process argument transformation on parameter 'Fqdn'. Cannot convert value "*.example.com" to type "Microsoft.Exchange.Data.Fqdn". Error: ""*.example.com" isn't a valid SMTP domain."&lt;br /&gt;   at System.Management.Automation.PowerShell.CoreInvoke[TOutput](IEnumerable input, PSDataCollection`1 output, PSInvocationSettings settings)&lt;br /&gt;   at System.Management.Automation.PowerShell.Invoke(IEnumerable input, PSInvocationSettings settings)&lt;br /&gt;   at System.Management.Automation.PowerShell.Invoke()&lt;br /&gt;   at Microsoft.Exchange.Management.Hybrid.RemotePowershellSession.RunCommand(String cmdlet, Dictionary`2 parameters, Boolean ignoreNotFoundErrors)&lt;br /&gt;'.&lt;br /&gt;&lt;br /&gt;Additional troubleshooting information is available in the Update-HybridConfiguration log file located at C:\Program Files\Microsoft\Exchange Server\V14\Logging\Update-HybridConfiguration\HybridConfiguration_12_16_2011_5_58_59_634596119396658235.log.&lt;br /&gt;&lt;br /&gt;Exchange Management Shell command attempted:&lt;br /&gt;Update-HybridConfiguration -OnPremisesCredentials 'System.Management.Automation.PSCredential' -TenantCredentials 'System.Management.Automation.PSCredential'&lt;br /&gt;&lt;br /&gt;Elapsed Time: 00:07:13&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://1.bp.blogspot.com/-yTHpB_a9QxU/TuvtKVgO9SI/AAAAAAAABxg/3p-o5xVAVYM/s1600/sendconnector.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:180%;" &gt;&lt;strong&gt;Workaround...&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I have a work around which will allow you to complete the Hybrid Configuration Wizard.  What you need to do is use another certificate with a valid common name such as mail.example.com so the wizard is able to create its Send Connector.  If you use a self signed certificate or a certificate issued by an internal certificate authority the wizard will fail.  You must use a public certificate trusted from a public root certificate authority.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;Does this mean I need to purchase another digital certificate, I already own a wild card certificate?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;No, you can use a digital certificate from &lt;a href="http://www.freessl.com/"&gt;http://www.freessl.com/&lt;/a&gt; (provided by RapidSSL) which is free for 30 days.  This certificate is not a SAN (subject alternative name) certificate which is trusted under multiple names.  As a result you must issue the certificate to autodiscover.yourdomain.com as the autodiscover service is required when running the Update-HybridConfiguration command.  The autodiscover address must be pointed at the same address for the hybrid server in which your trying to configure on your firewall.  When you finish creating your new certificate and associating it with the IIS service and SMTP service, re-run the Update-HybridConfiguration tool.  Your send connector will be created with autodiscover.yourdomain.com as the FQDN.  Now you can re-assign your wild card certificate to the IIS service and SMTP service and update the FQDN on your send connector to a domain name of your choice in alignment with the wild card certificate such as mail.example.com.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:180%;" &gt;&lt;strong&gt;SSL Offloading...&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If your running SSL offloading, i.e. your Exchange web services are all running on port 80 you still need to link a digital certificate to your IIS service to complete the wizard.  Simply untick Require SSL on the various Exchange web services in IIS manager.  The digital certificate you use needs to be valid for the FQDN on the SMTP service and must be linked to IIS and SMTP (Get-ExchangeCertificate).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-eH5S6VDSgYk/TuvzJwb9qeI/AAAAAAAABxs/lGUrbNSCOtc/s1600/requiressl.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 174px;" src="http://2.bp.blogspot.com/-eH5S6VDSgYk/TuvzJwb9qeI/AAAAAAAABxs/lGUrbNSCOtc/s400/requiressl.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5686906303431944674" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also if your using SSL offloading you do not have to worry about using autodiscover.yourdomain.com on the certificate associated with IIS as the autodiscover requests will be hitting your Exchange server on port 80... another device such as Threat Management Gateway or an F5 BIG-IP will be decrypting the traffic and forwarding it to Exchange 2010.&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-5579954375434768165?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/5579954375434768165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/12/wild-card-certificates-and-hybrid.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/5579954375434768165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/5579954375434768165'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/12/wild-card-certificates-and-hybrid.html' title='Wild Card Certificates and Hybrid Configuration Wizard'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-yTHpB_a9QxU/TuvtKVgO9SI/AAAAAAAABxg/3p-o5xVAVYM/s72-c/sendconnector.png' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-3364687133153139661</id><published>2011-12-15T01:39:00.001-08:00</published><updated>2011-12-15T02:16:23.660-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Server General'/><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>Microsoft NLB Layer 3 not working through Cisco in Multicast Mode</title><content type='html'>I experienced an issue with Microsoft Network Load Balancing (NLB) configured in a multicast mode cluster.  I was able to contact my cluster virtual IP address from my other computers on the same subnet (Layer 2), However I was unable to contact the Virtual IP address from a different subnet by routing through my Cisco router (Layer 3).&lt;br /&gt;&lt;br /&gt;After a little investigation I stumbled across the following Cisco website:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.cisco.com/en/US/products/hw/switches/ps708/products_configuration_example09186a0080a07203.shtml"&gt;http://www.cisco.com/en/US/products/hw/switches/ps708/products_configuration_example09186a0080a07203.shtml&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To resolve this issue I was required to add the MAC address for the Virtual IP a of my NLB cluster to the Cisco router as a static MAC entry.&lt;br /&gt;&lt;br /&gt;To grab the MAC address of the Virtual IP address first you need to make connectivity with the IP from another PC on the same subnet.  Ping will do the trick.  Then display the ARP cache on the PC with arp -a.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-wJAmYx3fAxE/TunIRIognkI/AAAAAAAABxU/8FyOWIolwC4/s1600/arp.PNG"&gt;&lt;img style="width: 393px; height: 400px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5686296201232686658" border="0" alt="" src="http://4.bp.blogspot.com/-wJAmYx3fAxE/TunIRIognkI/AAAAAAAABxU/8FyOWIolwC4/s400/arp.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To add the static MAC address entry to the Cisco Router use the following commands.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;conf t&lt;br /&gt;arp 10.4.2.15 03bf.0a04.020f arpa&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;This will ensure you can route layer 3 to the Virtual IP of your NLB cluster when in Multicast mode.&lt;br /&gt;&lt;br /&gt;For a detailed description as to why this happens refer to the above Cisco link.&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-3364687133153139661?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/3364687133153139661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/12/microsoft-nlb-layer-3-not-working.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/3364687133153139661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/3364687133153139661'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/12/microsoft-nlb-layer-3-not-working.html' title='Microsoft NLB Layer 3 not working through Cisco in Multicast Mode'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-wJAmYx3fAxE/TunIRIognkI/AAAAAAAABxU/8FyOWIolwC4/s72-c/arp.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-7562591197000803670</id><published>2011-12-15T01:20:00.000-08:00</published><updated>2011-12-15T01:32:13.730-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Office 365'/><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Active Directory'/><title type='text'>An error occurred while attempting to retrieve the security token.</title><content type='html'>&lt;span style="font-size:180%;color:#000099;"&gt;&lt;strong&gt;Problem:&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When using the Exchange Remote Connectivity Analyzer (ExRCA) using the Office 365 Microsoft Single Sign-on (BETA) tool you may experience the following error message.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-size:78%;" &gt;ExRCA is attempting to retrieve and analyze a security token for user mr.cloud@4logic.com.au.&lt;br /&gt;An error occurred while attempting to retrieve and analyze the security token.&lt;br /&gt;Test Steps&lt;br /&gt;ExRCA is attempting to authenticate to the security token service at https://fs.4logic.com.au/adfs/services/trust/2005/usernamemixed.&lt;br /&gt;An error occurred while attempting to retrieve the security token.&lt;br /&gt; Tell me more about this issue and how to resolve it&lt;br /&gt;Additional Details&lt;br /&gt;The Security Token service indicated that the authentication failed. Check the user name and password and try again.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-h33ktwolGXA/Tum9lIDnpgI/AAAAAAAABw8/ioZfOSJJuJw/s1600/Capture.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 107px;" src="http://3.bp.blogspot.com/-h33ktwolGXA/Tum9lIDnpgI/AAAAAAAABw8/ioZfOSJJuJw/s400/Capture.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5686284450047436290" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;color:#000099;"&gt;&lt;strong&gt;Resolution:&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I have seen this problem occur in two circumstances:&lt;br /&gt;&lt;br /&gt;a.) the username and password you have entered is incorrect.&lt;br /&gt;&lt;br /&gt;b.) the UPN suffix for the user account has not been updated yet to a public UPN suffix.  Do this in AD Users and Computers.  I set it to @4logic.com.au.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-FcRYio9tK0s/Tum-ZHAEVXI/AAAAAAAABxI/qIIbo59Ti9Y/s1600/upnsuffix.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 298px; height: 400px;" src="http://4.bp.blogspot.com/-FcRYio9tK0s/Tum-ZHAEVXI/AAAAAAAABxI/qIIbo59Ti9Y/s400/upnsuffix.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5686285343117301106" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You may have to create a public UPN suffix under Active Directory Domains and Trusts first.&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-7562591197000803670?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/7562591197000803670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/12/error-occurred-while-attempting-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/7562591197000803670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/7562591197000803670'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/12/error-occurred-while-attempting-to.html' title='An error occurred while attempting to retrieve the security token.'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-h33ktwolGXA/Tum9lIDnpgI/AAAAAAAABw8/ioZfOSJJuJw/s72-c/Capture.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-7548533548024345200</id><published>2011-12-15T00:29:00.000-08:00</published><updated>2011-12-15T01:14:14.745-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Office 365'/><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Active Directory'/><title type='text'>An HTTP 503 Service Unavailable response was received while trying to validate ADFS metadata</title><content type='html'>Today I went to connect to Office 365 with single sign-on only to notice that it is no longer working.  When using the Exchange Remote Connectivity Analyzer (ExRCA) using the Office 365 Microsoft Single Sign-on (BETA) tool I received the following error:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-size:78%;" &gt;Validating ADFS metadata for the on-premises ADFS server.&lt;br /&gt;There was a problem validating the ADFS metadata.&lt;br /&gt;Test Steps&lt;br /&gt;Retrieving ADFS metadata information from metadata exchange URL https://fs.4logic.com.au/adfs/services/trust/mex.&lt;br /&gt;ExRCA failed to retrieve ADFS metadata.&lt;br /&gt;Tell me more about this issue and how to resolve it&lt;br /&gt;Additional Details&lt;br /&gt;An HTTP 503 Service Unavailable response was received while trying to validate ADFS metadata.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-RO20qBxiFHQ/TumxGWDwleI/AAAAAAAABvo/bv8EGwCj9HU/s1600/ExRCA_3.PNG"&gt;&lt;img style="width: 400px; height: 105px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5686270727090640354" border="0" alt="" src="http://1.bp.blogspot.com/-RO20qBxiFHQ/TumxGWDwleI/AAAAAAAABvo/bv8EGwCj9HU/s400/ExRCA_3.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;On my internal network when I tested https://fs.4logic.com.au/adfs/fs/federationserverservice.asmx from Internet Explorer I received&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-size:78%;" &gt;Service Unavailable&lt;br /&gt;HTTP Error 503. The service is unavailable.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-xGhrPisNkH8/Tum0NkVIAkI/AAAAAAAABv0/H9JwoN2PgdY/s1600/serviceunavailable.PNG"&gt;&lt;img style="width: 400px; height: 224px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5686274149715542594" border="0" alt="" src="http://2.bp.blogspot.com/-xGhrPisNkH8/Tum0NkVIAkI/AAAAAAAABv0/H9JwoN2PgdY/s400/serviceunavailable.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After further investigation we noticed the AD FS 2.0 Windows Service was not running on my AD FS 2.0 servers.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-Og40EKpyWx8/Tum05zLfTyI/AAAAAAAABwA/0SSj2IuFglw/s1600/services.PNG"&gt;&lt;img style="width: 400px; height: 111px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5686274909615902498" border="0" alt="" src="http://2.bp.blogspot.com/-Og40EKpyWx8/Tum05zLfTyI/AAAAAAAABwA/0SSj2IuFglw/s400/services.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After starting this service the issue was resolved.  If we navigate to https://fs.4logic.com.au/adfs/fs/federationserverservice.asmx to test we can verify that our AD FS servers are giving us XML.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-nO0BNWmwRw4/Tum11-ILR6I/AAAAAAAABwM/clCjbcdDECY/s1600/adfsxml.PNG"&gt;&lt;img style="width: 400px; height: 293px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5686275943346948002" border="0" alt="" src="http://2.bp.blogspot.com/-nO0BNWmwRw4/Tum11-ILR6I/AAAAAAAABwM/clCjbcdDECY/s400/adfsxml.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Please note that you cannot use https://fs.4logic.com.au/adfs/fs/federationserverservice.asmx to test your Federation Proxy servers.  This test can only be used against AD FS 2.0 servers, not the AD FS 2.0 Proxy servers.  When passing this address through your federation proxy you will &lt;u&gt;ALWAYS&lt;/u&gt; receive:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-size:78%;" &gt;Service Unavailable&lt;br /&gt;HTTP Error 503. The service is unavailable.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:180%;" &gt;&lt;strong&gt;Why was the service not running?&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I looked into why the service was not running and in the event log I noticed the service crashed during startup.  The following error was generated in the SYSTEM event log:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#ff0000;"&gt;Log Name:      System&lt;br /&gt;Source:        Service Control Manager&lt;br /&gt;Date:          15/12/2011 3:22:43 AM&lt;br /&gt;Event ID:      7023&lt;br /&gt;Task Category: None&lt;br /&gt;Level:         Error&lt;br /&gt;Keywords:      Classic&lt;br /&gt;User:          N/A&lt;br /&gt;Computer:      qv1-dc2.4logic.lan&lt;br /&gt;Description:&lt;br /&gt;The AD FS 2.0 Windows Service service terminated with the following error: &lt;br /&gt;An exception occurred in the service when handling the control request.&lt;br /&gt;Event Xml:&lt;br /&gt;&amp;ltEvent xmlns="http://schemas.microsoft.com/win/2004/08/events/event"&amp;gt&lt;br /&gt;  &amp;ltSystem&amp;gt&lt;br /&gt;    &amp;ltProvider Name="Service Control Manager" Guid="{555908d1-a6d7-4695-8e1e-26931d2012f4}" EventSourceName="Service Control Manager" /&amp;gt&lt;br /&gt;    &amp;ltEventID Qualifiers="49152"&amp;gt7023&amp;lt/EventID&amp;gt&lt;br /&gt;    &amp;ltVersion&amp;gt0&amp;lt/Version&amp;gt&lt;br /&gt;    &amp;ltLevel&amp;gt2&amp;lt/Level&amp;gt&lt;br /&gt;    &amp;ltTask&amp;gt0&amp;lt/Task&amp;gt&lt;br /&gt;    &amp;ltOpcode&amp;gt0&amp;lt/Opcode&amp;gt&lt;br /&gt;    &amp;ltKeywords&amp;gt0x8080000000000000&amp;lt/Keywords&amp;gt&lt;br /&gt;    &amp;ltTimeCreated SystemTime="2011-12-14T19:22:43.912273400Z" /&amp;gt&lt;br /&gt;    &amp;ltEventRecordID&amp;gt4333&amp;lt/EventRecordID&amp;gt&lt;br /&gt;    &amp;ltCorrelation /&amp;gt&lt;br /&gt;    &amp;ltExecution ProcessID="456" ThreadID="1504" /&amp;gt&lt;br /&gt;    &amp;ltChannel&amp;gtSystem&amp;lt/Channel&amp;gt&lt;br /&gt;    &amp;ltComputer&amp;gtqv1-dc2.4logic.lan&amp;lt/Computer&amp;gt&lt;br /&gt;    &amp;ltSecurity /&amp;gt&lt;br /&gt;  &amp;lt/System&amp;gt&lt;br /&gt;  &amp;ltEventData&amp;gt&lt;br /&gt;    &amp;ltData Name="param1"&amp;gtAD FS 2.0 Windows Service&amp;lt/Data&amp;gt&lt;br /&gt;    &amp;ltData Name="param2"&amp;gt%%1064&amp;lt/Data&amp;gt&lt;br /&gt;  &amp;lt/EventData&amp;gt&lt;br /&gt;&amp;lt/Event&amp;gt&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-rU4e3r4YmzY/Tum35ICOG-I/AAAAAAAABwY/qKiptwhRuLU/s1600/adfscrash.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://2.bp.blogspot.com/-rU4e3r4YmzY/Tum35ICOG-I/AAAAAAAABwY/qKiptwhRuLU/s400/adfscrash.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5686278196569185250" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Looking at the service we can already see it is configured with a delay start.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-g3YsrT7vJKg/Tum4gNiMKNI/AAAAAAAABwk/772DAV2NQBE/s1600/delayedstart.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 82px;" src="http://4.bp.blogspot.com/-g3YsrT7vJKg/Tum4gNiMKNI/AAAAAAAABwk/772DAV2NQBE/s400/delayedstart.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5686278868060350674" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Interestingly I noticed on the recovery tab of the service by default it is configured to Restart the Service on the First and Second failure.  This hints to me that the product team is already aware of this issue with the service crashing on startup.  This is most likely due a dependency not starting in time.  My AD FS 2.0 servers are also domain controllers which is recommended for small organisations.  Being domain controllers means the startup time for these servers is even longer then normal.  What I did was in the "Restart service after" box I entered in 2 minutes to ensure the delay was longer.  This resolved the problem.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-3JzqJXmGOvo/Tum5XvllOeI/AAAAAAAABww/dmdG_7ZS9O8/s1600/restartonfailure.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 355px; height: 400px;" src="http://3.bp.blogspot.com/-3JzqJXmGOvo/Tum5XvllOeI/AAAAAAAABww/dmdG_7ZS9O8/s400/restartonfailure.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5686279822094186978" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-7548533548024345200?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/7548533548024345200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/12/http-503-service-unavailable-response.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/7548533548024345200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/7548533548024345200'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/12/http-503-service-unavailable-response.html' title='An HTTP 503 Service Unavailable response was received while trying to validate ADFS metadata'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-RO20qBxiFHQ/TumxGWDwleI/AAAAAAAABvo/bv8EGwCj9HU/s72-c/ExRCA_3.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-2675255904698479294</id><published>2011-12-14T18:52:00.000-08:00</published><updated>2011-12-14T19:18:11.265-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Office 365'/><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><title type='text'>Federation information could not be received from the external organization.</title><content type='html'>I had an issue when completing the &lt;strong&gt;Hybrid Configuration Wizard &lt;/strong&gt;in Exchange 2010 SP2.  It continuously crashed out with the following error.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-size:78%;" &gt;Error:&lt;br /&gt; Updating hybrid configuration failed with error 'Subtask Configure execution failed: Creating Organization Relationships.&lt;br /&gt;&lt;br /&gt;Execution of the Get-FederationInformation cmdlet had thrown an exception. This may indicate invalid parameters in your Hybrid Configuration settings.&lt;br /&gt;&lt;br /&gt;Federation information could not be received from the external organization.&lt;br /&gt;    at Microsoft.Exchange.Management.Hybrid.RemotePowershellSession.RunCommand(String cmdlet, Dictionary`2 parameters, Boolean ignoreNotFoundErrors)&lt;br /&gt; '.&lt;br /&gt;&lt;br /&gt;Additional troubleshooting information is available in the Update-HybridConfiguration log file located at C:\Program Files\Microsoft\Exchange Server\V14\Logging\Update-HybridConfiguration\HybridConfiguration_12_8_2011_18_2_52_634589641723224440.log.&lt;br /&gt;&lt;br /&gt;Exchange Management Shell command attempted:&lt;br /&gt; Update-HybridConfiguration -OnPremisesCredentials 'System.Management.Automation.PSCredential' -TenantCredentials 'System.Management.Automation.PSCredential'&lt;br /&gt;&lt;br /&gt;Elapsed Time: 00:02:56&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-JFZlXExcHsc/TuliFiD7ZkI/AAAAAAAABus/Dc5jOt6yVZ0/s1600/hybridconfiguration.png"&gt;&lt;img style="width: 400px; height: 351px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5686183851714111042" border="0" alt="" src="http://1.bp.blogspot.com/-JFZlXExcHsc/TuliFiD7ZkI/AAAAAAAABus/Dc5jOt6yVZ0/s400/hybridconfiguration.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I also received the following error when running this command:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#ff0000;"&gt;Get-FederationInformation -DomainName 4logic.com.au&lt;br /&gt;&lt;br /&gt;Federation information could not be received from the external organization.&lt;br /&gt;    + CategoryInfo          : NotSpecified: (:) [Get-FederationInformation], GetFederationInformationFailedException&lt;br /&gt;    + FullyQualifiedErrorId : ABE6A500,Microsoft.Exchange.Management.SystemConfigurationTasks.GetFederationInformation&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-8-M3vpVsd98/TulirmGgEjI/AAAAAAAABu4/Jc4J8THZr28/s1600/getfederationinformation.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 28px;" src="http://2.bp.blogspot.com/-8-M3vpVsd98/TulirmGgEjI/AAAAAAAABu4/Jc4J8THZr28/s400/getfederationinformation.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5686184505633673778" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Externally my autodiscover was working correctly which I confirmed by using the Exchange Remote Connectivity Analyzer (ExRCA).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-ByxfsTWTFXw/Tulj6SIvVzI/AAAAAAAABvE/3M2hN-l4hgg/s1600/ExRCA.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 174px;" src="http://4.bp.blogspot.com/-ByxfsTWTFXw/Tulj6SIvVzI/AAAAAAAABvE/3M2hN-l4hgg/s400/ExRCA.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5686185857484019506" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;However what we found was internally the Get-FederationInformation does not use the Service Connection Point (SCP) objects in Active Directory for performing Autodiscover.  As a result it must be able to resolve autodiscover.4logic.com.au to an internal IP address.&lt;br /&gt;&lt;br /&gt;We have two ways we can do this... add your public DNS zone to your internal network and populate it with internal IP addresses or create an entry in your hosts file on your Hybrid Server.  This is what I did.&lt;br /&gt;&lt;br /&gt;The hosts file is located under C:\Windows\System32\drivers\etc&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-GzB0wgTDOCU/Tull9Nhi9CI/AAAAAAAABvQ/AYMQG-bCK94/s1600/hostsfile.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 238px;" src="http://2.bp.blogspot.com/-GzB0wgTDOCU/Tull9Nhi9CI/AAAAAAAABvQ/AYMQG-bCK94/s400/hostsfile.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5686188106808751138" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also your certificate attached to Exchange must have a valid SAN name for your autodiscover record.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-KlQNCLckjYY/TulmbMjtFmI/AAAAAAAABvc/_3NSOjYZZuM/s1600/SANcert.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 305px; height: 400px;" src="http://1.bp.blogspot.com/-KlQNCLckjYY/TulmbMjtFmI/AAAAAAAABvc/_3NSOjYZZuM/s400/SANcert.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5686188621945443938" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-2675255904698479294?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/2675255904698479294/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/12/federation-information-could-not-be.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2675255904698479294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2675255904698479294'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/12/federation-information-could-not-be.html' title='Federation information could not be received from the external organization.'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-JFZlXExcHsc/TuliFiD7ZkI/AAAAAAAABus/Dc5jOt6yVZ0/s72-c/hybridconfiguration.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-1299042892253941392</id><published>2011-12-13T21:07:00.000-08:00</published><updated>2011-12-13T21:22:53.852-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Server General'/><title type='text'>NLB Installed on DNS Servers Issues</title><content type='html'>I needed to install Microsoft Network Load Balancing (NLB) on two Active Directory Domain controllers running Windows Server 2008 R2 SP1 to load balance Active Directory Federation Services AD FS 2.0 on TCP443.&lt;br /&gt;&lt;br /&gt;Here is the my setup:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-66W88eidLDc/TugvspY5TeI/AAAAAAAABt8/co4po_Nssb8/s1600/setup.png"&gt;&lt;img style="width: 400px; height: 161px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5685846973626273250" border="0" alt="" src="http://2.bp.blogspot.com/-66W88eidLDc/TugvspY5TeI/AAAAAAAABt8/co4po_Nssb8/s400/setup.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Generally the Network Load Balancing Virtual IP Addresses do not get registered in DNS automatically.  However I found out that if Network Load Balancing is installed and configured on a DNS server, both the virtual network adaptor address and dedicated network adaptor address get registered in DNS.&lt;br /&gt;&lt;br /&gt;For my two domain controllers QV1-DC1 and QV1-DC2 there were two A records for each... the servers IP address and my virtual NLB address.  DNS round robin, which is enabled by default on all Windows DNS servers was distributing at random either the servers IP address or the virtual address.&lt;br /&gt;&lt;br /&gt;The problem here is the virtual address was only listening on port 443 meaning no Active Directory queries could reach the domain controller for any hosts who resolved the virtual IP address.&lt;br /&gt;&lt;br /&gt;I found a fix which allowed me register the IP addresses I want on each of my servers to DNS, instead of turning of dynamic DNS updates all together.  This registry key is:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters\PublishAddresses&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-OypUTNzYfLU/Tugxh-8YtvI/AAAAAAAABuI/z-RYpb5k6FE/s1600/fix.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 135px;" src="http://2.bp.blogspot.com/-OypUTNzYfLU/Tugxh-8YtvI/AAAAAAAABuI/z-RYpb5k6FE/s400/fix.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5685848989456971506" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now my two domain controllers only register their IP address in DNS, not the NLB Virtual IP.&lt;br /&gt;&lt;br /&gt;I found the fix on the following KB Article:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/246804"&gt;http://support.microsoft.com/kb/246804&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-1299042892253941392?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/1299042892253941392/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/12/nlb-installed-on-dns-servers-issues.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/1299042892253941392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/1299042892253941392'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/12/nlb-installed-on-dns-servers-issues.html' title='NLB Installed on DNS Servers Issues'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-66W88eidLDc/TugvspY5TeI/AAAAAAAABt8/co4po_Nssb8/s72-c/setup.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-8502188056777643867</id><published>2011-12-13T01:56:00.000-08:00</published><updated>2011-12-13T02:13:21.797-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><title type='text'>Mailbox could not be created. Verify that OU ( Users ) exists</title><content type='html'>In Exchange when you run the test commands such as Test-OutlookWebServices or Test-FederationTrust for example it requires a Exchange Test account.  This is usually created by running the &lt;strong&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;New-TestCasConnectivityUser.ps1&lt;/span&gt;&lt;/strong&gt; script from the Exchange 2010 scripts Directory &lt;strong&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;C:\Program Files\Microsoft\Exchange Server\V14\Scripts&lt;/span&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;If you don't create a test user account you will receive such errors in PowerShell:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Test-OutlookWebServices&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-size:78%;" &gt;Failed to find the mailbox. Mailbox = 'extest_40f651ff86fd4@4logic.lan'.&lt;br /&gt;    + CategoryInfo          : NotSpecified: (:) [Test-OutlookWebServices], MailboxNotFoundException&lt;br /&gt;    + FullyQualifiedErrorId : Microsoft.Exchange.Monitoring.MailboxNotFoundException,Microsoft.Exchange.Management.SystemConfigurationTasks.TestOutlookWebServicesTask&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-OYV7IzTLOxk/Tucil6_LRjI/AAAAAAAABtM/eL9cOQikyvc/s1600/error2.PNG"&gt;&lt;img style="width: 400px; height: 40px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5685551089463281202" border="0" alt="" src="http://4.bp.blogspot.com/-OYV7IzTLOxk/Tucil6_LRjI/AAAAAAAABtM/eL9cOQikyvc/s400/error2.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Test-FederationTrust&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-size:78%;" &gt;Couldn't find object "extest_40f651ff86fd4". Please make sure that it was spelled correctly or specify a different object.&lt;br /&gt;    + CategoryInfo          : NotSpecified: (:) [Test-FederationTrust], ManagementObjectNotFoundException&lt;br /&gt;    + FullyQualifiedErrorId : C5C16259,Microsoft.Exchange.Management.SystemConfigurationTasks.TestFederationTrust&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-xJhTRgq6s7M/TucifcCwbSI/AAAAAAAABtA/CFgGQOsf3Z0/s1600/error1.PNG"&gt;&lt;img style="width: 400px; height: 73px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5685550978077584674" border="0" alt="" src="http://3.bp.blogspot.com/-xJhTRgq6s7M/TucifcCwbSI/AAAAAAAABtA/CFgGQOsf3Z0/s400/error1.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;However today when I ran the New-TestCasConnectivityUser.ps1 it complained that it could not find the Users OU, a problem which I had not seen before.  I know that the password I supplied met the complexity requirements.  This is the error I was receiving.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-size:78%;" &gt;CreateTestUser : Mailbox could not be created. Verify that OU ( Users ) exists and that password meets complexity requirements.&lt;br /&gt;At C:\Program Files\Microsoft\Exchange Server\V14\Scripts\new-TestCasConnectivityUser.ps1:267 char:31&lt;br /&gt;    + $result = CreateTestUser &amp;lt;&amp;lt;&amp;lt;&amp;lt;  $exchangeServer $mailboxServer $securePassword $OrganizationalUnit $UMDialPlan $UMExtension $Prompt&lt;br /&gt;    + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException&lt;br /&gt;    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,CreateTestUser&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-cn82NDlb3PY/TucjLh2cb2I/AAAAAAAABtY/4-gtCsFxHk0/s1600/error3.PNG"&gt;&lt;img style="width: 400px; height: 109px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5685551735550799714" border="0" alt="" src="http://4.bp.blogspot.com/-cn82NDlb3PY/TucjLh2cb2I/AAAAAAAABtY/4-gtCsFxHk0/s400/error3.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I simply specified my Users OU and it created the object...&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;get-mailboxServer  .\new-TestCasConnectivityUser.ps1 -ou 4logic.lan/users&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-UmP4k6JbZs0/TucjyPT4OoI/AAAAAAAABtk/3sa-wP5pO4s/s1600/error4.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 121px;" src="http://2.bp.blogspot.com/-UmP4k6JbZs0/TucjyPT4OoI/AAAAAAAABtk/3sa-wP5pO4s/s400/error4.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5685552400588880514" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-FHnR5n4VrA4/TuckKOEEMbI/AAAAAAAABtw/IXCzeClqjg0/s1600/error5.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 232px;" src="http://2.bp.blogspot.com/-FHnR5n4VrA4/TuckKOEEMbI/AAAAAAAABtw/IXCzeClqjg0/s400/error5.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5685552812570980786" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-8502188056777643867?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/8502188056777643867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/12/mailbox-could-not-be-created-verify.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/8502188056777643867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/8502188056777643867'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/12/mailbox-could-not-be-created-verify.html' title='Mailbox could not be created. Verify that OU ( Users ) exists'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-OYV7IzTLOxk/Tucil6_LRjI/AAAAAAAABtM/eL9cOQikyvc/s72-c/error2.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-2676261364675239030</id><published>2011-11-23T01:52:00.000-08:00</published><updated>2011-11-23T01:59:31.998-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><title type='text'>Exchange 2010 Management Shell into Existing Exchange 2007 Servers</title><content type='html'>&lt;div&gt;By default Exchange 2010 Management Shell (EMS 2010) cannot manage/access information stored on the Exchange 2007 servers such as IIS configuration in the example below.  When attempting to get information from an Exchange 2007 server in an Exchange 2010 management shell you will receive the following error:&lt;br /&gt;&lt;br /&gt;&lt;font style="color: rgb(255, 0, 0);" size="1"&gt;An IIS directory entry couldn't be created. The error message is Access is denied.&lt;br /&gt;. HResult = -2147024891&lt;br /&gt;    + CategoryInfo          : NotInstalled: (PER-EXCHMBX\Exchange (Default Web Site):ADObjectId) [Get-OwaVirtualDirecory], IISGeneralCOMException&lt;br /&gt;    + FullyQualifiedErrorId : EBEB5204,Microsoft.Exchange.Management.SystemConfigurationTasks.GetOwaVirtualDirectory&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;For example here we have an Exchange 2010 shell and an Exchange 2007 shell.  We can see the Exchange 2010 shell cannot access the Exchange 2007 servers... where the Exchange 2007 shell is fine.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-ZsLrtX_SAYQ/TszDK9M1uJI/AAAAAAAABs0/-wHtiPK0cQA/s1600/EMC2010to2007.png"&gt;&lt;img style="width: 400px; height: 185px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5678127823201876114" border="0" alt="" src="http://3.bp.blogspot.com/-ZsLrtX_SAYQ/TszDK9M1uJI/AAAAAAAABs0/-wHtiPK0cQA/s400/EMC2010to2007.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To allow the Exchange 2010 shell to connect to the Exchange 2007 servers you must add "Microsoft Exchange Security Groups\ Exchange Trusted Subsystem" as a local admin to all Exchange 2007 servers.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-2676261364675239030?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/2676261364675239030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/11/exchange-2010-management-shell-into.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2676261364675239030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2676261364675239030'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/11/exchange-2010-management-shell-into.html' title='Exchange 2010 Management Shell into Existing Exchange 2007 Servers'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-ZsLrtX_SAYQ/TszDK9M1uJI/AAAAAAAABs0/-wHtiPK0cQA/s72-c/EMC2010to2007.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-1589972409456845995</id><published>2011-11-22T18:23:00.000-08:00</published><updated>2011-11-22T18:36:39.953-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><title type='text'>Windows RPC/HTTP and Outlook Anywhere</title><content type='html'>Prior to Windows Vista SP1, the Windows RPC/HTTP client-side component required that the Subject Name (aka Common Name) on the certificate match the "Certificate Principal Name" configured for the Outlook Anywhere connection in the Outlook profile. Therefore, as a best practice, you should ensure that your certificate common name is configured as the name Outlook Anywhere references which can be achieved by using the Set-OutlookProvider cmdlet with the -EXPR parameter.&lt;br /&gt;&lt;br /&gt;To understand how to configure the EXPR parameter please view this blog post:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://clintboessen.blogspot.com/2009/06/configuring-outlook-anywhere-settings.html"&gt;http://clintboessen.blogspot.com/2009/06/configuring-outlook-anywhere-settings.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As many people still use Windows XP, I recomend always configuring the the EXPR parameter to use the certificate common name.&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-1589972409456845995?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/1589972409456845995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/11/windows-rpchttp-and-outlook-anywhere.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/1589972409456845995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/1589972409456845995'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/11/windows-rpchttp-and-outlook-anywhere.html' title='Windows RPC/HTTP and Outlook Anywhere'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-1704239901015266288</id><published>2011-11-21T20:34:00.000-08:00</published><updated>2011-11-21T20:42:07.604-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2000/2003'/><title type='text'>Where are Exchange 2003 relay restrictions stored?</title><content type='html'>I was asked by a client where Exchange 2003 Relay Restrictions are stored?  The SMTP Virtual Server in Exchange 2003 is actually apart of IIS and as a result its configuration is not stored in Active Directory (for the most part).  This means if you recover an Exchange 2003 server using the Disaster Recovery switch you will need to re-enter this configuration.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;drive:\Setup\I386\Setup.exe /DisasterRecovery&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;See Recovering a failed Exchange 2003 server:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.msexchange.org/tutorials/Recovering-Failed-Exchange-2003-Member-Server-Using-Disaster-Recovery-Switch.html"&gt;http://www.msexchange.org/tutorials/Recovering-Failed-Exchange-2003-Member-Server-Using-Disaster-Recovery-Switch.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The relay restrictions are stored under a series of REG_DWORD and REG_MULTI_SZ values under the following registry key:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Service\MSExchangeIMC\Parameters&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;For more information please see the following Microsoft KB article:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/193922"&gt;http://support.microsoft.com/kb/193922&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-fKWU89pMGMQ/TssnlolvX9I/AAAAAAAABso/vbz2e3SeySE/s1600/relayrestrictions.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 333px;" src="http://3.bp.blogspot.com/-fKWU89pMGMQ/TssnlolvX9I/AAAAAAAABso/vbz2e3SeySE/s400/relayrestrictions.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5677675282734997458" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-1704239901015266288?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/1704239901015266288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/11/where-are-exchange-2003-relay.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/1704239901015266288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/1704239901015266288'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/11/where-are-exchange-2003-relay.html' title='Where are Exchange 2003 relay restrictions stored?'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-fKWU89pMGMQ/TssnlolvX9I/AAAAAAAABso/vbz2e3SeySE/s72-c/relayrestrictions.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-9181481844016522447</id><published>2011-11-17T17:16:00.001-08:00</published><updated>2011-11-17T22:38:36.836-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><category scheme='http://www.blogger.com/atom/ns#' term='F5 BIG-IP'/><title type='text'>Load Balance SMTP with F5 BIG-IP</title><content type='html'>The F5 BIG-IP has a template for Exchange 2010 which assists administrators with configuring load balancing for Outlook Anywhere, Active Sync and Outlook Web App.  This template does not configure SMTP load balancing.  There are many circumstances where you may want an SMTP endpoint IP address to be highly available and load balanced between multiple hub transport servers.&lt;br /&gt;&lt;br /&gt;In this post I will go through and show you how to configure the BIG-IP LTM for load balancing the SMTP protocol and the challenges associated with this.  This article was written using the F5 BIG-IP LTM VE version 10.2.3.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;&lt;strong&gt;Create a Health Monitor&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Create a health monitor which monitors the Exchange 2010 SMTP service on our Exchange 2010 servers.  The heath monitor will send SMTP HELO requests on a regular basis to ensure the SMTP servers are healthy.&lt;br /&gt;&lt;br /&gt;Expand Local Traffic and click Add next to Monitors.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-XJYrNNsrVPo/TsW64yFCT9I/AAAAAAAABog/Bh2Cx0iwaFU/s1600/F5BIGIP01.png"&gt;&lt;img style="width: 400px; height: 298px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5676148390048714706" border="0" alt="" src="http://1.bp.blogspot.com/-XJYrNNsrVPo/TsW64yFCT9I/AAAAAAAABog/Bh2Cx0iwaFU/s400/F5BIGIP01.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I called the monitor SMTP_Monitor.  Set the Type to SMTP.  Provided an interval of 120 seconds meaning the monitor will send an SMTP HELO every 2 minutes to the Ex2010 servers to see if they are still online.  Configured the Alias service port to 25.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-j8OnihLhe0k/TsW9MGV3IdI/AAAAAAAABos/xeT7zpIjQzk/s1600/F5BIGIP02.PNG"&gt;&lt;img style="width: 375px; height: 400px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5676150920928764370" border="0" alt="" src="http://3.bp.blogspot.com/-j8OnihLhe0k/TsW9MGV3IdI/AAAAAAAABos/xeT7zpIjQzk/s400/F5BIGIP02.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;&lt;strong&gt;Create a Pool for the SMTP Servers&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A load balancing pool is a logical set of devices, in our case SMTP servers, that you group together to receive and process traffic.  To create a new pool under Pool List click Add.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-clltpBclBzE/TsW-N-3XNUI/AAAAAAAABo4/FnBDOm4w89Q/s1600/F5BIGIP03.png"&gt;&lt;img style="width: 400px; height: 319px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5676152052793161026" border="0" alt="" src="http://2.bp.blogspot.com/-clltpBclBzE/TsW-N-3XNUI/AAAAAAAABo4/FnBDOm4w89Q/s400/F5BIGIP03.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I called the pool smtp_pool.  Select the SMTP_Monitor we created earlier.  Select the load balancing method as Round Robin.  Add the SMTP servers to our pool in which we wish to distribute inbound SMTP connections to.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-KYRSecvjf20/TsW_mBnObRI/AAAAAAAABpE/ZaNNseEorfw/s1600/F5BIGIP04.PNG"&gt;&lt;img style="width: 323px; height: 400px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5676153565359271186" border="0" alt="" src="http://2.bp.blogspot.com/-KYRSecvjf20/TsW_mBnObRI/AAAAAAAABpE/ZaNNseEorfw/s400/F5BIGIP04.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;&lt;strong&gt;Create an SMTP Virtual Server&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Create an SMTP Virtual Server on the F5 BIG-IP which will allow the BIG-IP system to listen on TCP25 to load balance incoming SMTP sessions.  To do this under Virtual Servers --&amp;gt; Virtual Server List click add.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-M0TXodogS2w/TsXCZpxKJFI/AAAAAAAABpQ/6asa_4njnAQ/s1600/F5BIGIP06.png"&gt;&lt;img style="width: 400px; height: 289px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5676156651334935634" border="0" alt="" src="http://4.bp.blogspot.com/-M0TXodogS2w/TsXCZpxKJFI/AAAAAAAABpQ/6asa_4njnAQ/s400/F5BIGIP06.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I called the SMTP Virtual Server SMTP_VS.  Under Destination I specified 172.16.51.174.  This is the Virtual IP the BIG-IP will listen on for incoming SMTP traffic.  Select a service port of 25 and place the device in an enabled state.&lt;br /&gt;&lt;br /&gt;Under configuration set SNAT Pool to Auto Map (I have explained what Auto Map is below).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-nCy5n7mPYxY/TsXD6W3GoVI/AAAAAAAABpc/_SEL2HFS4xY/s1600/F5BIGIP07.PNG"&gt;&lt;img style="width: 400px; height: 393px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5676158312706908498" border="0" alt="" src="http://3.bp.blogspot.com/-nCy5n7mPYxY/TsXD6W3GoVI/AAAAAAAABpc/_SEL2HFS4xY/s400/F5BIGIP07.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Scroll down further and under resources set the Default Pool to smtp_pool along with the default persistence profile to source_addr.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-SDjJ9J178cE/TsXESMXCLWI/AAAAAAAABpo/loeKlhp1Yxk/s1600/F5BIGIP08.PNG"&gt;&lt;img style="width: 400px; height: 347px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5676158722204904802" border="0" alt="" src="http://2.bp.blogspot.com/-SDjJ9J178cE/TsXESMXCLWI/AAAAAAAABpo/loeKlhp1Yxk/s400/F5BIGIP08.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;&lt;strong&gt;Test our BIG-IP SMTP Virtual Server&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The F5 BIG-IP device should now be configured to load balance SMTP requests between the two Exchange 2010 servers.  In your Virtual Server List the SMTP_VS should come up green.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-xOuWxM0W8aQ/TsXFe5SL1_I/AAAAAAAABp0/xz-Qgo1Z-gk/s1600/F5BIGIP09.PNG"&gt;&lt;img style="width: 400px; height: 225px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5676160039934220274" border="0" alt="" src="http://2.bp.blogspot.com/-xOuWxM0W8aQ/TsXFe5SL1_I/AAAAAAAABp0/xz-Qgo1Z-gk/s400/F5BIGIP09.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;From a command prompt verify you can telnet our SMTP virtual server on 172.16.51.174 on port 25.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-j_vcO_vw0ac/TsXGRcCJhXI/AAAAAAAABqA/HQOwB1whKms/s1600/F5BIGIP10.PNG"&gt;&lt;img style="width: 237px; height: 69px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5676160908255659378" border="0" alt="" src="http://2.bp.blogspot.com/-j_vcO_vw0ac/TsXGRcCJhXI/AAAAAAAABqA/HQOwB1whKms/s400/F5BIGIP10.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We can see that it successfully connected to one of the SMTP servers in our load balancing pool "smtp_pool"&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-LngLvs792cM/TsXHELFI2TI/AAAAAAAABqM/f1JJDNxTgDU/s1600/F5BIGIP11.png"&gt;&lt;img style="width: 400px; height: 197px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5676161779878123826" border="0" alt="" src="http://4.bp.blogspot.com/-LngLvs792cM/TsXHELFI2TI/AAAAAAAABqM/f1JJDNxTgDU/s400/F5BIGIP11.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;strong&gt;At this point your F5 BIG-IP is successfully load balancing SMTP.&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);font-size:180%;" &gt;&lt;strong&gt;The Problem...&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When building an email solution it is absolutely critical to avoid becoming an open SMTP relay.  Most organisations implement relay restrictions by locking anonymous relay down to certain source IP addresses on their internal network such as applications and printers.  Source IP is generally the preferred method as Administrators do not have to deal with SMTP authentication methods.  The list of IP addresses who are allowed relay anonymously are usually configured on the Exchange SMTP receive connectors.  However when dealing with load balancers such as a F5 BIG-IP Local Traffic Manager this becomes a difficult task.&lt;br /&gt;&lt;br /&gt;Why?&lt;br /&gt;&lt;br /&gt;Whilst load balancing connections the F5 BIGIP uses SNAT to re-write the source IP address on the SMTP packets to one of its "Self IP" addresses or "Virtual IP" addresses.  This means the Exchange servers will see all requests coming from the same IP address making it impossible to determine which request belongs to what client.  This is illustrated in the following diagram:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://1.bp.blogspot.com/-nlBMZUE4YpI/TsXKD76mlDI/AAAAAAAABqY/TQNqtcFFKFM/s1600/F5BIGIP12.png" /&gt;&lt;br /&gt;&lt;br /&gt;However I have a workaround for you.  If we setup two SNAT addresses on the F5 BIG-IP for example 172.16.51.174 and 172.16.51.175 we can configure our BIG-IP to say any source IP addresses that need to be an anonymous open relay hit our Exchange 2010 servers from 172.16.51.174 &lt;strong&gt;ELSE &lt;/strong&gt;hit our Exchange 2010 servers from 172.16.51.175.  This solution means we need to configure our list of allowed IP addresses for SMTP relay on our F5 BIG-IP instead of our Exchange SMTP Receive Connectors.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;&lt;strong&gt;Create a Data Group List&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;First we must create a list of IP addresses we want to allow anonymous relay for on our F5 BIG-IP.  These are the IP addresses we would normally configure on our Exchange receive connectors.  To do this we need to create a new data group list.&lt;br /&gt;&lt;br /&gt;Add a new data group list by expanding iRules --&amp;gt; Data Group List and clicking the add button.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-I6ahUPhHaJA/TsXnMigoJiI/AAAAAAAABqk/sv9Y2eteeKI/s1600/F5BIGIP13.png"&gt;&lt;img style="width: 400px; height: 269px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5676197107978479138" border="0" alt="" src="http://2.bp.blogspot.com/-I6ahUPhHaJA/TsXnMigoJiI/AAAAAAAABqk/sv9Y2eteeKI/s400/F5BIGIP13.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I called my Data Group List smtp_relay_allowed and specified the IP address 172.16.51.21.  You can add as many IP addresses as you want for anonymous relay.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-G-JeRbEF1yI/TsXog4IH6HI/AAAAAAAABq8/mPQihOauFc8/s1600/F5BIGIP14.PNG"&gt;&lt;img style="width: 400px; height: 375px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5676198556890294386" border="0" alt="" src="http://2.bp.blogspot.com/-G-JeRbEF1yI/TsXog4IH6HI/AAAAAAAABq8/mPQihOauFc8/s400/F5BIGIP14.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;&lt;strong&gt;Create a new iRule&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;An iRule is a powerful and flexible feature of BIG-IP devices which provide you with unprecedented control to directly manipulate and manage any IP application traffic.  By creating an iRule we can instruct the BIG-IP to return a different SNAT address based on on the condition.  We want to instruct our BIG-IP to perform the following:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;IF&lt;/span&gt;&lt;/strong&gt; a clients source IP is on our Data Group List &lt;strong&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;THEN&lt;/span&gt;&lt;/strong&gt; use an SNAT address of 172.16.51.174 &lt;strong&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;ELSE&lt;/span&gt;&lt;/strong&gt; use the SNAT address of 172.16.51.175.&lt;br /&gt;&lt;br /&gt;To create the iRule under Local Traffic Select iRule --&amp;gt; iRule List and click the add button.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-PKfac4olMDg/TsXqvhx4TwI/AAAAAAAABrI/4NKOYzX6KlU/s1600/F5BIGIP15.png"&gt;&lt;img style="width: 400px; height: 326px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5676201007612710658" border="0" alt="" src="http://2.bp.blogspot.com/-PKfac4olMDg/TsXqvhx4TwI/AAAAAAAABrI/4NKOYzX6KlU/s400/F5BIGIP15.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I called my iRule smtp_irule and created the following code to perform my required conditions as mentioned above.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-0pJ-0ZmEGd0/TsXrocfXooI/AAAAAAAABrU/C9NbLihq2sU/s1600/F5BIGIP16.PNG"&gt;&lt;img style="width: 400px; height: 211px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5676201985445438082" border="0" alt="" src="http://4.bp.blogspot.com/-0pJ-0ZmEGd0/TsXrocfXooI/AAAAAAAABrU/C9NbLihq2sU/s400/F5BIGIP16.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A copy of the code:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#3333ff;"&gt;when CLIENT_ACCEPTED {&lt;br /&gt; set accepted_snat "172.16.51.174"&lt;br /&gt;&lt;br /&gt; if { [ class exists smtp_relay_allowed ] }&lt;br /&gt; {&lt;br /&gt;  if { [class match [IP::client_addr] equals $::smtp_relay_allowed] }&lt;br /&gt;  {&lt;br /&gt;   snat $accepted_snat&lt;br /&gt;  } else {&lt;br /&gt;   snat automap&lt;br /&gt;  }&lt;br /&gt; } else {&lt;br /&gt;  snat automap&lt;br /&gt; }&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Automap is a feature of the BIGIP where it automatically selects a Self IP at random to use for the SNAT translation.  A Self IP is an IP you have assigned to the BIGIP manually under your network configuration.  This is different to a Virtual IP address which is created when you setup a virtual server.  I only have one Self IP on my BIG IP set to 172.16.51.175 and one virtual IP set to 172.16.51.174 used by all my F5 virtual servers on different TCP ports.  As a result automap will ONLY select 172.16.51.175.&lt;br /&gt;&lt;br /&gt;Why would you want multiple source SNAT IP addresses?&lt;br /&gt;&lt;br /&gt;For each connection made from the BIG-IP to your load balanced servers a TCP source port needs to be opened for the communication.  TCP only has 65535 ports for source and destination traffic so if the number of connections exceeded the number of available ports, the BIG-IP would not be able to take new connections.  In this event you could add an additional Self IP and rely on the Automap feature or create an SNAT pool which is a predefined list of IP addresses the BIG-IP is allowed to use for SNAT.&lt;br /&gt;&lt;br /&gt;I recommend reading the chapter on SNAT configuration from the F5 website:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://support.f5.com/kb/en-us/products/big-ip_ltm/manuals/product/ltm_configuration_guide_10_0_0/ltm_snat.html"&gt;http://support.f5.com/kb/en-us/products/big-ip_ltm/manuals/product/ltm_configuration_guide_10_0_0/ltm_snat.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;How do I configure Exchange 2010:&lt;br /&gt;&lt;br /&gt;On your Exchange 2010 servers create your two receive connectors as normal.  Create one receive connector configured for your anonymous relay and setup yoru default receive connector for all other SMTP traffic.  Both receive connectors must listen on port 25.  Do this on all Exchange servers in your pool.&lt;br /&gt;&lt;br /&gt;For information on how to configure your application receive connector for anonymous relay follow this blog post:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://clintboessen.blogspot.com/2009/07/allow-network-applications-to-relay.html"&gt;http://clintboessen.blogspot.com/2009/07/allow-network-applications-to-relay.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;&lt;strong&gt;Apply my new iRule to the SMTP Virtual Server&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Next we need to attach the iRule to the SMTP virtual server in the F5 configuration screen.  To do this go to your Virtual Servers --&gt; Click Virtual Server List then select our SMTP_VS created earlier.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-GhZEwi0iKms/TsXywwTzVdI/AAAAAAAABrg/eIjNXCyvoWk/s1600/F5BIGIP17.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 227px;" src="http://2.bp.blogspot.com/-GhZEwi0iKms/TsXywwTzVdI/AAAAAAAABrg/eIjNXCyvoWk/s400/F5BIGIP17.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5676209824785978834" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Select Resources then under iRules click Manage.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-f37MnOcacwI/TsXzUHFGKGI/AAAAAAAABrs/Q83pAfJDSG8/s1600/F5BIGIP18.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 236px;" src="http://2.bp.blogspot.com/-f37MnOcacwI/TsXzUHFGKGI/AAAAAAAABrs/Q83pAfJDSG8/s400/F5BIGIP18.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5676210432193734754" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Select our smtp_irule out of the list available then click finish.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-cxjWzV06GYk/TsXzspa8BFI/AAAAAAAABr4/LH6L6zaxanQ/s1600/F5BIGIP19.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 175px;" src="http://2.bp.blogspot.com/-cxjWzV06GYk/TsXzspa8BFI/AAAAAAAABr4/LH6L6zaxanQ/s400/F5BIGIP19.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5676210853729010770" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;&lt;strong&gt;Testing our Configuration&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So time to test the configuration to ensure it works as configured.  Lets telnet my BIG-IP SMTP Virtual Server from the host we allowed 172.16.51.23 by running the following command:&lt;br /&gt;&lt;br /&gt;telnet 172.16.51.174 25&lt;br /&gt;&lt;br /&gt;I then wrote some random comments in the telnet session so we can identify our server 172.16.51.23 in our SMTP logs.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-tlUEs4aLwG8/TsX7X8jnUbI/AAAAAAAABsE/mAjkaRBI0uw/s1600/F5BIGIP20.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 71px;" src="http://2.bp.blogspot.com/-tlUEs4aLwG8/TsX7X8jnUbI/AAAAAAAABsE/mAjkaRBI0uw/s400/F5BIGIP20.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5676219294181446066" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I then repeated the procedure from another server which is not in our Data Group List created above.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-NSw3tNLeio8/TsX8MoasY2I/AAAAAAAABsQ/6VXyy15J0Zo/s1600/F5BIGIP21.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 72px;" src="http://2.bp.blogspot.com/-NSw3tNLeio8/TsX8MoasY2I/AAAAAAAABsQ/6VXyy15J0Zo/s400/F5BIGIP21.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5676220199308387170" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In our SMTP logs on our Exchange 2010 server as expected the 172.16.51.23 server came from 172.16.51.174 and the non trusted IP came from 172.16.51.175.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-kr-72BljdbQ/TsX8d34IJcI/AAAAAAAABsc/hd7CTQkI4Qo/s1600/F5BIGIP22.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 215px;" src="http://3.bp.blogspot.com/-kr-72BljdbQ/TsX8d34IJcI/AAAAAAAABsc/hd7CTQkI4Qo/s400/F5BIGIP22.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5676220495516149186" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-9181481844016522447?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/9181481844016522447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/11/load-balance-smtp-with-f5-big-ip.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/9181481844016522447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/9181481844016522447'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/11/load-balance-smtp-with-f5-big-ip.html' title='Load Balance SMTP with F5 BIG-IP'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-XJYrNNsrVPo/TsW64yFCT9I/AAAAAAAABog/Bh2Cx0iwaFU/s72-c/F5BIGIP01.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-5617478396114073675</id><published>2011-11-08T21:48:00.001-08:00</published><updated>2011-11-08T22:03:24.163-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='Active Directory'/><title type='text'>VBS Get the OU distinguishedName of the OU containing a User Account</title><content type='html'>&lt;div&gt;I had an interesting task which I needed to achieve.  I had another peice of code grabbing a bunch of user distinguishedName's in Active Directory.  For each distinguishedName I needed to grab the OU/container the user account resides in.  For example:&lt;br /&gt;&lt;br /&gt;&lt;font style="color: rgb(0, 0, 0);"&gt;"CN=Clint Boessen,OU=Microsoft MVPs,OU=Engineers,OU=IT Professionals,DC=4Logic,DC=local"&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;We need to cut the "CN=Clint Boessen" of this string in order to determine the organisational unit so we get:&lt;br /&gt;&lt;br /&gt;&lt;font style="color: rgb(0, 0, 0);"&gt;"OU=Microsoft MVPs,OU=Engineers,OU=IT Professionals,DC=4Logic,DC=local"&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;However sometimes the user accounts are in a container not an OU so we need code smart enough to deal with this.. for example:&lt;br /&gt;&lt;br /&gt;&lt;font style="color: rgb(0, 0, 0);"&gt;"CN=Clint Boessen,CN=Users,DC=4Logic,DC=local"&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;To be come:&lt;br /&gt;&lt;br /&gt;&lt;font style="color: rgb(0, 0, 0);"&gt;"CN=Users,DC=4Logic,DC=local"&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;The VB Script below will take care of this... as long as you store the distinguishedName within the strOU attribute.&lt;br /&gt;&lt;br /&gt;For example:&lt;br /&gt;&lt;br /&gt;&lt;font color="#3333ff" size="1"&gt;strOU = "CN=Clint Boessen,OU=Microsoft MVPs,OU=Engineers,OU=IT Professionals,DC=4Logic,DC=local"&lt;br /&gt;&lt;br /&gt;If instr(lcase(strDN),"cn=users") = 0 then&lt;br /&gt; strOU = right(strDN,len(strDN) - instr(lcase(strDN),",ou=")) &lt;br /&gt;Else&lt;br /&gt; strOU = right(strDN,len(strDN) - instr(lcase(strDN),",cn=users"))&lt;br /&gt;End If&lt;/font&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-5617478396114073675?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/5617478396114073675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/11/vbs-get-ou-distinguishedname-of-ou.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/5617478396114073675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/5617478396114073675'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/11/vbs-get-ou-distinguishedname-of-ou.html' title='VBS Get the OU distinguishedName of the OU containing a User Account'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-5732510364627095183</id><published>2011-11-03T23:21:00.000-07:00</published><updated>2011-11-03T23:32:30.212-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2000/2003'/><title type='text'>Exchange 2003 PFDavAdmin Error</title><content type='html'>When trying to connect to an Exchange 2003 Server using PFDavAdmin I received the following error:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#ff0000;"&gt;An error occur ed while trying to establish a connection to the Exchange server.  Be sure that port 443 (for SSL) or port 80 (for non-SSL) can be reached.  If you are connecting to public folders, be sure that the public folder store is mounted.  If you are connecting to mailboxes and the progress bar shows a particular mailbox, be sure that user has at least one email address.&lt;br /&gt;&lt;br /&gt;Exception: Failed to connect using secure URL: https://domain.local/ExAdmin/Admin/domain.local/public%20folders/ with error: The underlying connection was closed: Unable to connect to the remote server..  Failed to connect using unsecure URL http://domain.local/ExAdmin/Admin/domain.local/public%20folders/ with error: The remote server returned an error: (503) Server Unavailable.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-YzDMR-ymYzo/TrOFqvU1w1I/AAAAAAAABoI/WWuth-NGkjc/s1600/PFDAVAdmin%2BError.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 77px;" src="http://1.bp.blogspot.com/-YzDMR-ymYzo/TrOFqvU1w1I/AAAAAAAABoI/WWuth-NGkjc/s400/PFDAVAdmin%2BError.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5671023325094462290" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This error gets generated if you have a proxy server configured in Internet Options.  What caught me out however is PFDavAdmin only detects proxy settings on application lauch... not on connection.  If you remove your proxy settings from Internet Options, then attempt to connect again using PFDavAdmin the same error will be reproduced as PFDavAdmin will continue trying to use your proxy settings.&lt;br /&gt;&lt;br /&gt;You must:&lt;br /&gt;&lt;br /&gt;1. Disable your proxy server or add an exclusion.&lt;br /&gt;2. Close PFDavAdmin&lt;br /&gt;3. Relaunch the PFDavAdmin application.&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-5732510364627095183?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/5732510364627095183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/11/exchange-2003-pfdavadmin-error.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/5732510364627095183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/5732510364627095183'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/11/exchange-2003-pfdavadmin-error.html' title='Exchange 2003 PFDavAdmin Error'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-YzDMR-ymYzo/TrOFqvU1w1I/AAAAAAAABoI/WWuth-NGkjc/s72-c/PFDAVAdmin%2BError.PNG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-7283736933938531082</id><published>2011-11-02T21:23:00.000-07:00</published><updated>2011-11-02T21:48:17.780-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><title type='text'>The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.</title><content type='html'>When Running Test-ActiveSyncConnectivity on Exchange 2010 you will probably experience the following error.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-size:78%;" &gt;[System.Net.WebException]: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. Inner error [System.Security.Authentication.AuthenticationException]: The remote certificate is invalid according to the validation procedure.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-Q_QQ3kTtT2Q/TrIZTTAmIpI/AAAAAAAABn8/sa3_A3NYfHo/s1600/testactivesyncconnectivity.png"&gt;&lt;img style="width: 400px; height: 151px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5670622700123857554" border="0" alt="" src="http://4.bp.blogspot.com/-Q_QQ3kTtT2Q/TrIZTTAmIpI/AAAAAAAABn8/sa3_A3NYfHo/s400/testactivesyncconnectivity.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There is generally three causes for this problem:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-size:78%;" &gt;1) Name mismatch - make sure the site name matches exactly as it is in the cert.  If there is a "Subject Alternative Name" (SAN) on the details tab, then make sure the name is in that list (note: subject name must also be included in the SAN).  Some applications don't supports SANs, but most do.  Also note that site1 and site1.domain.com are not the same - this is the most common mistake.&lt;br /&gt;&lt;br /&gt;2) Untrusted - you need to install the root certificate into the trusted root certificate store.  If this app uses the Microsoft root store, you can check Certificates MMC to see if it shows up.  If not, view the details of the certificate from the error box, go to the certification path tab and double click the topmost certificate, go to details tab and Copy to File button to export it, then from your saved copy you can import it to the trusted root store.&lt;br /&gt;&lt;br /&gt;3) Expired or not yet valid - usually from the cert expiring - renew it.  Can also happen if the time/time zone/date/year is off in the client OS - if this is ok, try also checking the same in BIOS.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Name mismatch is generally the one that catches people out.  If you simply run Test-ActiveSyncConnectivity the Exchange 2010 server will not use a trusted URL on your SAN certificate.  Make sure you specify the URL on the Test command for example:&lt;br /&gt;&lt;br /&gt;Test-ActiveSyncConnectivity -URL "https://mail.contoso.com/Microsoft-Server-ActiveSync"&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-7283736933938531082?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/7283736933938531082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/11/underlying-connection-was-closed-could.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/7283736933938531082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/7283736933938531082'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/11/underlying-connection-was-closed-could.html' title='The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-Q_QQ3kTtT2Q/TrIZTTAmIpI/AAAAAAAABn8/sa3_A3NYfHo/s72-c/testactivesyncconnectivity.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-2931379987487806949</id><published>2011-10-28T22:15:00.000-07:00</published><updated>2011-12-22T18:31:14.682-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Outlook'/><title type='text'>Outlook Cached Exchange Mode</title><content type='html'>Cached Exchange Mode is the process of when 2003/2007/2010 downloading a copy of the users mailbox and storing it locally on their workstation. This means all emails opened by the user from there onwards does not hit the Exchange servers significantly reducing load.&lt;br /&gt;&lt;br /&gt;Many clients however still disabled cached Exchange mode on their users workstations. When asking them "&lt;em&gt;why&lt;/em&gt;", their answer is always:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Because we need the user can access the most updated address book when they click the global address book.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;If your company has this requirement this doesn't mean you need to disable Cached Exchange Mode. You can configure a registry key on your clients to simply keep the address book in online mode.&lt;br /&gt;&lt;br /&gt;For more information on this key for Outlook 2003/2007/2010 please see:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/841273"&gt;http://support.microsoft.com/kb/841273&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Generally the only time you want to disable cached exchange mode is if your users run on a terminal services or Citrix shared environment where you do not want a copy of EVERY users mailbox downloaded and stored locally on the terminal server!&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-2931379987487806949?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/2931379987487806949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/10/do-not-use-outlook-cached-exchange-mode.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2931379987487806949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2931379987487806949'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/10/do-not-use-outlook-cached-exchange-mode.html' title='Outlook Cached Exchange Mode'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-1983520841931943674</id><published>2011-10-28T21:31:00.000-07:00</published><updated>2011-10-30T19:34:07.151-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Outlook'/><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><title type='text'>Outlook does not Redirect to Exchange 2010 SP1 CAS Array</title><content type='html'>&lt;strong&gt;&lt;span style="color:#000000;"&gt;Problem:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;You have a single Exchange 2010 SP1 server "Ex2010.domain.local" running HT, MBX and CAS roles.  You move a mailbox from the Exchange 2010 SP1 install to a new Exchange 2010 SP1 CAS Array installation "CASArray01.domain.local".&lt;br /&gt;&lt;br /&gt;Outlook 2003, 2007 and 2010 will still points at the mailbox "Ex2010.domain.local", it will not automatically update and point at "CASArray01.domain.local".  This is because the RPC CA service doesn't respond with a "ecWrongServer" like previous versions of Exchange did.&lt;br /&gt;&lt;br /&gt;Microsoft is aware of this issue however their is no easy resolution in terms of a little code tweak.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;How do I prevent this from happening:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Microsoft has been telling customers for a long time to always create a CAS Array even if they have one server - they need a one server array.  If all servers single servers were setup in an Array from the beginning this problem would not exist.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;Is there a way to force all Outlook clients to automatically perform a full re-autodiscover and attach to the new server?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Yes - if you remove the "Host A" record from DNS for the old Exchange 2010 server  old Exchange 2010 server "Ex2010.domain.local" the Outlook clients should do a full re-autodiscover and attach to the new CAS array "CASArray01.domain.local" automatically.&lt;br /&gt;&lt;br /&gt;This however is generally impractical especially when you want to stage your mailbox move slowly instead of attempt the big bang approach where all mailboxes are moved in one hit.  For small server migrations this is a workable solution.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;Is there another work around other then removing a Host A record from DNS?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Yes - create a PRF (Outlook Profile) configuration file to automatically update Outlook to point to the new server.  You will need to script this out to ensure it automatically runs on all workstations.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc179062.aspx"&gt;http://technet.microsoft.com/en-us/library/cc179062.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Please look at this article for information on pushing these settings via Group Policy or Script:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.howto-outlook.com/howto/deployprf.htm"&gt;http://www.howto-outlook.com/howto/deployprf.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-1983520841931943674?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/1983520841931943674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/10/outlook-2007-sp2-does-not-redirect-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/1983520841931943674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/1983520841931943674'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/10/outlook-2007-sp2-does-not-redirect-to.html' title='Outlook does not Redirect to Exchange 2010 SP1 CAS Array'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-3509811647678396274</id><published>2011-10-17T22:22:00.000-07:00</published><updated>2011-10-17T22:27:52.442-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><title type='text'>An IIS directory entry couldn't be created. The error message is Access is denied.</title><content type='html'>Today while building a new Exchange 2010 environment I noticed a problem where Exchange servers were able to access themselves but not other Exchange 2010 servers in the same organisation.&lt;br /&gt;&lt;br /&gt;The error I received when my powershell attempted to connect to another Exchange 2010 server was:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#ff0000;"&gt;An IIS directory entry couldn't be created. The error message is Access is denied.&lt;br /&gt;. HResult = -2147024891&lt;br /&gt;+ CategoryInfo : NotInstalled: (DEVDREXCH171\EWS (Default Web Site):ADObjectId) [Get-WebServicesVirtualDirectory], IISGeneralCOMException&lt;br /&gt;+ FullyQualifiedErrorId : E2E22D81,Microsoft.Exchange.Management.SystemConfigurationTasks.GetWebServicesVirtualDirectory &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-t1U6yiHmAFw/Tp0Nz7Eq7ZI/AAAAAAAABnI/Y99uGYnloyw/s1600/trustedsubsystem.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 46px;" src="http://1.bp.blogspot.com/-t1U6yiHmAFw/Tp0Nz7Eq7ZI/AAAAAAAABnI/Y99uGYnloyw/s400/trustedsubsystem.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5664699091983723922" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The problem was the Microsoft Exchange Security Groups\Exchange Trusted Subsystem group was no longer a member of the local admins on the Exchange 2010 servers.  The customer was setting local admin on servers via Group Policy.  When policy refreshed it removed any Exchange 2010 specific groups from the local administrators.&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-3509811647678396274?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/3509811647678396274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/10/iis-directory-entry-couldnt-be-created.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/3509811647678396274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/3509811647678396274'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/10/iis-directory-entry-couldnt-be-created.html' title='An IIS directory entry couldn&apos;t be created. The error message is Access is denied.'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-t1U6yiHmAFw/Tp0Nz7Eq7ZI/AAAAAAAABnI/Y99uGYnloyw/s72-c/trustedsubsystem.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-5307780416628421565</id><published>2011-10-17T18:48:00.000-07:00</published><updated>2011-10-17T18:56:04.936-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><title type='text'>UAC Beware with Update Rollups</title><content type='html'>Beware of user account control (UAC) when installing update rollups for Microsoft Exchange 2007/2010. It will cause your update to fail!&lt;br /&gt;&lt;br /&gt;If you get the following error it is most likely because of UAC.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#ff0000;"&gt;Setup Wizard for Update Rollup 5 for Exchange Server 2010 Service Pack 1 (KB2582113) ended prematurely.&lt;br /&gt;&lt;br /&gt;Setup Wizard for Update Rollup 5 for Exchange Server 2010 Service Pack 1 (KB2582113) ended prematurely because of an error. Your system has not been modified. To install this program at a later time, please run the installation again.&lt;br /&gt;&lt;br /&gt;To exit the Setup Wizard, click Finish.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-vUCJ9DvvUck/Tpzb_Q7Us7I/AAAAAAAABmw/e-sneX0QXkg/s1600/updaterollup5error.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 239px;" src="http://4.bp.blogspot.com/-vUCJ9DvvUck/Tpzb_Q7Us7I/AAAAAAAABmw/e-sneX0QXkg/s400/updaterollup5error.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5664644311247270834" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So what is an easy way to install the update without having to turn UAC off?  Run a command prompt as administrator and launch the msp from command line.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-fT7NIduJnoI/TpzcomrSNII/AAAAAAAABm8/3QUj--DvVzQ/s1600/uacadministrator.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 93px;" src="http://3.bp.blogspot.com/-fT7NIduJnoI/TpzcomrSNII/AAAAAAAABm8/3QUj--DvVzQ/s400/uacadministrator.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5664645021460214914" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-5307780416628421565?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/5307780416628421565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/10/uac-beware-with-update-rollups.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/5307780416628421565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/5307780416628421565'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/10/uac-beware-with-update-rollups.html' title='UAC Beware with Update Rollups'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-vUCJ9DvvUck/Tpzb_Q7Us7I/AAAAAAAABmw/e-sneX0QXkg/s72-c/updaterollup5error.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-812935302128478097</id><published>2011-10-16T22:41:00.000-07:00</published><updated>2011-10-16T22:45:38.182-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><title type='text'>Do I need to install update rollups in order for Exchange 2010?</title><content type='html'>Today I'm going to answer a simple question I get asked all the time. You have just setup a new Exchange 2010 SP1 server. As of this writing we are currently up to Exchange 2010 SP1 Update Rollup 5.&lt;br /&gt;&lt;br /&gt;Do we need to install Update Rollups 1 through to 5 in order?&lt;br /&gt;&lt;br /&gt;The answer is no. Exchange Update Rollups are cumulative. Cumulative means it contains all previous hotfixes. Exchange 2010 Update Rollup 5 also contains update rollups 1-4.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;You only need to install the latest service pack followed by the latest update rollup.&lt;/span&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-812935302128478097?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/812935302128478097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/10/do-i-need-to-install-update-rollups-in.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/812935302128478097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/812935302128478097'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/10/do-i-need-to-install-update-rollups-in.html' title='Do I need to install update rollups in order for Exchange 2010?'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-6833249500518873759</id><published>2011-10-09T22:09:00.000-07:00</published><updated>2011-10-09T22:55:02.219-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><title type='text'>#&lt; #5.6.1 smtp;554 5.6.1 Body type not supported by Remote Host&gt; #SMTP#</title><content type='html'>One of my customers has just finished migrating their user mailboxes from Exchange 2003 to Exchange 2010.  After the migration of users my customer experienced a weird NDR (Non-Deliverable Report).  This NDR was generated when an Exchange 2010 mailbox user emailed a mail enabled distribution groups containing a mail enabled contact object in Active Directory.&lt;br /&gt;&lt;br /&gt;This problem only occured for a select few distribution groups.  The NDR received was:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;#&amp;lt; #5.6.1 smtp;554 5.6.1 Body type not supported by Remote Host&amp;gt; #SMTP#&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The Exchange server generating the NDR was one of the old Exchange 2003 servers.  Now why would Exchange 2010 be delivering this email to Exchange 2003?  This gave it away.  Straight away I looked to see if there was an Expansion Server configured for the distribution group.  Yes there was - it was pointing at one of the old Exchange 2003 servers.  I simply removed the Exchange 2003 server as an expansion server for the distribution group.&lt;br /&gt;&lt;br /&gt;To view if your group has an expansion server configured, go to the properties of the distribution group in Exchange Management Console and click the Advanced tab.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-P__JwsZ42Yc/TpKE3r6C0XI/AAAAAAAABmo/d5hi5Urd3mg/s1600/expansionserver.PNG"&gt;&lt;img style="width: 345px; height: 400px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5661733773771985266" border="0" alt="" src="http://1.bp.blogspot.com/-P__JwsZ42Yc/TpKE3r6C0XI/AAAAAAAABmo/d5hi5Urd3mg/s400/expansionserver.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To view if any of your other distribution groups have expansion servers configured for Exchange 2003, use the following powershell command in Exchange Management Shell.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Get-DistributionGroup &amp;#124; fl Name, ExpansionServer&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(0, 0, 102);font-size:180%;" &gt;What is an Expansion Server?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Expansion servers route messages that are sent to a single distribution list or group for each of the recipient objects in that list or group. When a user sends a message to a group, the Exchange server that is acting as the expansion server expands the group to its individual members. This expansion permits members of the distribution list or group to receive the message. An expansion server also resolves the names of all recipients in the distribution list or group, and then determines the most efficient path for routing the message.&lt;br /&gt;&lt;br /&gt;You configure which hub transport server or Exchange 2000/2003 server you wish to use as your expansion server on the distribution group.&lt;br /&gt;&lt;br /&gt;If you do not designate a specific server as the expansion server that expands a message that is sent to a group, the first server that the message is submitted to expands the group, and then sends the message to all of the destination servers.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;NOTE: There is a drawback to setting a specific server as the expansion server for a group. If that server is down, no members of the distribution group receive the message.&lt;/span&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-6833249500518873759?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/6833249500518873759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/10/smtp.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/6833249500518873759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/6833249500518873759'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/10/smtp.html' title='#&lt; #5.6.1 smtp;554 5.6.1 Body type not supported by Remote Host&gt; #SMTP#'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-P__JwsZ42Yc/TpKE3r6C0XI/AAAAAAAABmo/d5hi5Urd3mg/s72-c/expansionserver.PNG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-4067250906051175084</id><published>2011-10-09T21:54:00.000-07:00</published><updated>2011-10-09T22:03:07.022-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Applications'/><title type='text'>[Fixed] Can't Insert Page Number Microsoft Word</title><content type='html'>A customer of mine experienced a weird issue where they were unable to insert a page number in Microsoft Word 2007. When they went to insert page number in Word they received "Save Selection to Page Number Gallery".&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-dWg3uRhbw_g/TpJ6_V0e6XI/AAAAAAAABmg/Rdq6UZj_NnY/s1600/saveselectiontopagenumbergallery.png"&gt;&lt;img style="WIDTH: 400px; HEIGHT: 146px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5661722910165756274" border="0" alt="" src="http://4.bp.blogspot.com/-dWg3uRhbw_g/TpJ6_V0e6XI/AAAAAAAABmg/Rdq6UZj_NnY/s400/saveselectiontopagenumbergallery.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After using system internals process monitor I discovered that Word references a file called "Building Blocks.dotx" to create the page number.&lt;br /&gt;&lt;br /&gt;On Windows XP/Server 2003 this file is located under:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;C:\Documents and Settings\username\Application Data\Microsoft\Document Building Blocks\1033&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;In Vista/7/2008 this file is located under:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;C:\Users\username\AppData\Roaming\Microsoft\Document Building Blocks\1033&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I copied Building Blocks.dotx from another computer with Word 2007 installed replacing the file in my user profile.  This resolved my issue.&lt;br /&gt;&lt;br /&gt;Note: I believe that this resolution will also work for Word 2010.&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-4067250906051175084?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/4067250906051175084/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/10/fixed-cant-insert-page-number-microsoft.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/4067250906051175084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/4067250906051175084'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/10/fixed-cant-insert-page-number-microsoft.html' title='[Fixed] Can&apos;t Insert Page Number Microsoft Word'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-dWg3uRhbw_g/TpJ6_V0e6XI/AAAAAAAABmg/Rdq6UZj_NnY/s72-c/saveselectiontopagenumbergallery.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-4408715204558559485</id><published>2011-10-09T19:12:00.000-07:00</published><updated>2011-10-09T19:21:52.483-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Outlook'/><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><title type='text'>Offline Address Book 0x80190197</title><content type='html'>Issue: when Outlook 2007/2010 attempts to download the offline address book via CAS Web Distribution the following error is recieved:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;Task 'Microsoft Exchange' reported error (0x80190197) : 'The operation failed'&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-xGhgepxjVgk/TpJVkwBqwlI/AAAAAAAABmI/_vjs-9a8kLU/s1600/0x80190197.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 259px;" src="http://2.bp.blogspot.com/-xGhgepxjVgk/TpJVkwBqwlI/AAAAAAAABmI/_vjs-9a8kLU/s400/0x80190197.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5661681771413684818" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This error occurs when Outlook attempts to download the offline address book through a proxy server. This is heavily identified... please see:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/939765"&gt;http://support.microsoft.com/kb/939765&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;However today I found another scenario which produces exactly the same error.  My clients internally download the OAB through HTTP and externally they download the OAB via HTTPS.&lt;br /&gt;&lt;br /&gt;In IIS7 go to the OAB Virtual Directory and click SSL Settings.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-Bc2jX5KU350/TpJWTiUtG-I/AAAAAAAABmQ/l5H78RCj4zU/s1600/oabsslsettings.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 323px;" src="http://4.bp.blogspot.com/-Bc2jX5KU350/TpJWTiUtG-I/AAAAAAAABmQ/l5H78RCj4zU/s400/oabsslsettings.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5661682575189285858" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Untick Require SSL as internal clients are trying to download the OAB without SSL encryption.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-D_xu6oK77WI/TpJWpXuNm4I/AAAAAAAABmY/NF-W_0DPNao/s1600/oabsslsettings2.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 149px;" src="http://3.bp.blogspot.com/-D_xu6oK77WI/TpJWpXuNm4I/AAAAAAAABmY/NF-W_0DPNao/s400/oabsslsettings2.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5661682950300605314" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Apply the settings.&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-4408715204558559485?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/4408715204558559485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/10/offline-address-book-0x80190197.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/4408715204558559485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/4408715204558559485'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/10/offline-address-book-0x80190197.html' title='Offline Address Book 0x80190197'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-xGhgepxjVgk/TpJVkwBqwlI/AAAAAAAABmI/_vjs-9a8kLU/s72-c/0x80190197.PNG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-4469092812764311558</id><published>2011-10-06T21:10:00.000-07:00</published><updated>2011-10-06T21:19:51.766-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Applications'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Server General'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Client General'/><title type='text'>Determine if binary is 32bit or 64bit?</title><content type='html'>Now that there are 16bit, 32bit and even 64bit binaries around for different processor and operating system platform types we need an easy method for determining which machine architecture a binary has been compiled for.&lt;br /&gt;&lt;br /&gt;I found a neat little tool called MiTeC EXE Explorer which does exactly that and more. This tool was developed by a guy named Michal Mutl. Michal has developed all sorts of system admin tools... please visit his website at &lt;a href="http://www.mitec.cz/"&gt;http://www.mitec.cz/&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;MiTeC EXE Explorer is such a great little tool as it does not require installing, its a portable executable which can be executed on any server or workstation within your organisation. It is also completely free.&lt;br /&gt;&lt;br /&gt;This is a third party non Microsoft tool however you can feel save executing it on your enterprise environment knowing it will not perform unknown miscellaneous activities as the tool received the Softpedia 100% clean award.&lt;br /&gt;&lt;br /&gt;To download MiTeC EXE Explorer please visit &lt;a href="http://www.mitec.cz/exe.html"&gt;http://www.mitec.cz/exe.html&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Here is a screenshot of the tool in action:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-f7yARMcWxQk/To59vP4DC1I/AAAAAAAABmA/4O4Z6Qj5TeM/s1600/mitecexeexplorer.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 257px;" src="http://4.bp.blogspot.com/-f7yARMcWxQk/To59vP4DC1I/AAAAAAAABmA/4O4Z6Qj5TeM/s400/mitecexeexplorer.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5660600032320228178" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-4469092812764311558?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/4469092812764311558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/10/determine-if-binary-is-32bit-or-64bit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/4469092812764311558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/4469092812764311558'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/10/determine-if-binary-is-32bit-or-64bit.html' title='Determine if binary is 32bit or 64bit?'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-f7yARMcWxQk/To59vP4DC1I/AAAAAAAABmA/4O4Z6Qj5TeM/s72-c/mitecexeexplorer.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-2457260191511474133</id><published>2011-10-02T02:51:00.000-07:00</published><updated>2011-10-02T03:01:07.121-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><title type='text'>The Exchange server for the database object wasn't found in Active Directory Domain Services</title><content type='html'>Today when working on a customers Exchange server I had an interesting problem.  When I ran the Get-PublicFolderDatabase command I received the following error:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The exchange server for the database object "Public Folders" wasn't found in Active Direcoty Domain Services. The object may be corrupted.&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-pNjh4Bby83M/Tog1Hk-vj8I/AAAAAAAABlw/g-9DpWR3CZQ/s1600/error.PNG"&gt;&lt;img style="width: 400px; height: 81px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5658831336093224898" border="0" alt="" src="http://4.bp.blogspot.com/-pNjh4Bby83M/Tog1Hk-vj8I/AAAAAAAABlw/g-9DpWR3CZQ/s400/error.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I opened the configuration partition with ADSIEdit.  Under Services --&gt; Microsoft Exchange --&gt; Exchange Org Name --&gt; Administrative Groups --&gt; Exchange Administrative Group --&gt; Databases I had two public folder databases, 0261515011 and 0931127523.  My Exchange 2010 server had a database associated with 0261515011.  There was no database associated with 0931127523.&lt;br /&gt;&lt;br /&gt;To resolve the issue I deleted 0931127523 with ADSIEdit.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-yEgmKaGUlWY/Tog2OieE6EI/AAAAAAAABl4/iTat3dRcuTk/s1600/error2.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 385px; height: 288px;" src="http://1.bp.blogspot.com/-yEgmKaGUlWY/Tog2OieE6EI/AAAAAAAABl4/iTat3dRcuTk/s400/error2.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5658832555190052930" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-2457260191511474133?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/2457260191511474133/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/10/exchange-server-for-database-object.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2457260191511474133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2457260191511474133'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/10/exchange-server-for-database-object.html' title='The Exchange server for the database object wasn&apos;t found in Active Directory Domain Services'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-pNjh4Bby83M/Tog1Hk-vj8I/AAAAAAAABlw/g-9DpWR3CZQ/s72-c/error.PNG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-1514038098411554329</id><published>2011-09-27T02:12:00.000-07:00</published><updated>2011-09-27T02:44:21.357-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><title type='text'>Why didnt my routing group connector get created?</title><content type='html'>Below I'm going to address a bug that exists from Exchange 2007 RTM to Exchange 2010 SP1 (as of this writing).  Sometimes when you install Exchange 2010 in a new environment your routing group connector does not get created - colleagues of mine have seen this before.&lt;br /&gt;&lt;br /&gt;This happens even when when you specify an Exchange 2003 server in the dialog box below during the Exchange 2010 setup wizard.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/--0Ok37A0Q-Q/ToGVGZkCXiI/AAAAAAAABlQ/1l9F1epJu0k/s1600/leaveblank.PNG"&gt;&lt;img style="width: 400px; height: 348px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5656966544127843874" border="0" alt="" src="http://3.bp.blogspot.com/--0Ok37A0Q-Q/ToGVGZkCXiI/AAAAAAAABlQ/1l9F1epJu0k/s400/leaveblank.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When it doesn't get created during the installation if you dig down through your system logs in event viewer you will notice event 1002 from the MSExchangeSetup.  See below, pay attention to the bold text.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-size:78%;" &gt;Log Name:      Application&lt;br /&gt;Source:        MSExchangeSetup&lt;br /&gt;Date:          27/09/2011 2:28:20 PM&lt;br /&gt;Event ID:      1002&lt;br /&gt;Task Category: Microsoft Exchange Setup&lt;br /&gt;Level:         Error&lt;br /&gt;Keywords:      Classic&lt;br /&gt;User:          N/A&lt;br /&gt;Computer:      exchange.domain.local&lt;br /&gt;Description:&lt;br /&gt;Exchange Server component Hub Transport Role failed.&lt;br /&gt;Error: Error:&lt;br /&gt;The following error was generated when "$error.Clear();&lt;br /&gt;          if ($roleLegacyRoutingServer -ne $null)&lt;br /&gt;          {&lt;br /&gt;              $lrs =&lt;br /&gt;&lt;br /&gt;$roleLegacyRoutingServer;&lt;br /&gt;              $source = [String][System.Environment]::MachineName;&lt;br /&gt;&lt;br /&gt;              if ($lrs.Length -gt 31)&lt;br /&gt;         &lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;                  $lrs = $lrs.Substring(0, 31)&lt;br /&gt;              };&lt;br /&gt;&lt;br /&gt;              if ($source.Length -gt 31)&lt;br /&gt;              {&lt;br /&gt;             &lt;br /&gt;&lt;br /&gt;$source = $source.Substring(0, 31)&lt;br /&gt;              };&lt;br /&gt;&lt;br /&gt;              $name = $source + "-" + $lrs;&lt;br /&gt;              $result = (get-&lt;br /&gt;&lt;br /&gt;routinggroupconnector  where {$_.Name -eq $name});&lt;br /&gt;              if ($result -eq $null)&lt;br /&gt;              {&lt;br /&gt;                  new-&lt;br /&gt;&lt;br /&gt;RoutingGroupConnector -SourceTransportServers:$source -TargetTransportServers:$roleLegacyRoutingServer -Cost:1 -Name:$name -Bidirectional:&lt;br /&gt;&lt;br /&gt;$false&lt;br /&gt;              };&lt;br /&gt;&lt;br /&gt;              $name = $lrs + "-" + $source;&lt;br /&gt;              $result = (get-routinggroupconnector  where {$_.Name -eq&lt;br /&gt;&lt;br /&gt;$name});&lt;br /&gt;              if ($result -eq $null)&lt;br /&gt;              {&lt;br /&gt;                  new-RoutingGroupConnector -SourceTransportServers:&lt;br /&gt;&lt;br /&gt;$roleLegacyRoutingServer -TargetTransportServers:$source -Cost:1 -Name:$name -Bidirectional:$false&lt;br /&gt;              };&lt;br /&gt;          };&lt;br /&gt;        " was&lt;br /&gt;&lt;br /&gt;run: "Active Directory operation failed on dc.domain.local. This error is not retriable. Additional information: &lt;strong&gt;The name reference is invalid.&lt;/strong&gt;&lt;br /&gt;This may be caused by replication latency between Active Directory domain controllers.&lt;br /&gt;Active directory response: 000020B5: AtrErr: DSID-03152395, #1:&lt;br /&gt; 0: 000020B5: DSID-03152395, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att&lt;br /&gt;&lt;br /&gt;179130e2 (msExchTargetBridgeheadServersDN)&lt;br /&gt;".&lt;br /&gt;&lt;br /&gt;Active Directory operation failed on dc.domain.local. This error is not retriable. Additional information: &lt;strong&gt;The name reference is invalid.&lt;/strong&gt;&lt;br /&gt;This may be caused by replication latency between Active Directory domain controllers.&lt;br /&gt;Active directory response: 000020B5: AtrErr: DSID-03152395, #1:&lt;br /&gt; 0: 000020B5: DSID-03152395, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att&lt;br /&gt;&lt;br /&gt;179130e2 (msExchTargetBridgeheadServersDN)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A value in the request is invalid.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Error:&lt;br /&gt;The following error was generated when "$error.Clear();&lt;br /&gt;          if ($roleLegacyRoutingServer -ne $null)&lt;br /&gt;          {&lt;br /&gt;              $lrs =&lt;br /&gt;&lt;br /&gt;$roleLegacyRoutingServer;&lt;br /&gt;              $source = [String][System.Environment]::MachineName;&lt;br /&gt;&lt;br /&gt;              if ($lrs.Length -gt 31)&lt;br /&gt;         &lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;                  $lrs = $lrs.Substring(0, 31)&lt;br /&gt;              };&lt;br /&gt;&lt;br /&gt;              if ($source.Length -gt 31)&lt;br /&gt;              {&lt;br /&gt;             &lt;br /&gt;&lt;br /&gt;$source = $source.Substring(0, 31)&lt;br /&gt;              };&lt;br /&gt;&lt;br /&gt;              $name = $source + "-" + $lrs;&lt;br /&gt;              $result = (get-&lt;br /&gt;&lt;br /&gt;routinggroupconnector  where {$_.Name -eq $name});&lt;br /&gt;              if ($result -eq $null)&lt;br /&gt;              {&lt;br /&gt;                  new-&lt;br /&gt;&lt;br /&gt;RoutingGroupConnector -SourceTransportServers:$source -TargetTransportServers:$roleLegacyRoutingServer -Cost:1 -Name:$name -Bidirectional:&lt;br /&gt;&lt;br /&gt;$false&lt;br /&gt;              };&lt;br /&gt;&lt;br /&gt;              $name = $lrs + "-" + $source;&lt;br /&gt;              $result = (get-routinggroupconnector  where {$_.Name -eq&lt;br /&gt;&lt;br /&gt;$name});&lt;br /&gt;              if ($result -eq $null)&lt;br /&gt;              {&lt;br /&gt;                  new-RoutingGroupConnector -SourceTransportServers:&lt;br /&gt;&lt;br /&gt;$roleLegacyRoutingServer -TargetTransportServers:$source -Cost:1 -Name:$name -Bidirectional:$false&lt;br /&gt;              };&lt;br /&gt;          };&lt;br /&gt;        " was&lt;br /&gt;&lt;br /&gt;run: "Active Directory operation failed on dc.domain.local. This error is not retriable. Additional information: &lt;strong&gt;The name reference is invalid&lt;/strong&gt;.&lt;br /&gt;This may be caused by replication latency between Active Directory domain controllers.&lt;br /&gt;Active directory response: 000020B5: AtrErr: DSID-03152395, #1:&lt;br /&gt; 0: 000020B5: DSID-03152395, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att&lt;br /&gt;&lt;br /&gt;179130df (msExchSourceBridgeheadServersDN)&lt;br /&gt;".&lt;br /&gt;&lt;br /&gt;Active Directory operation failed on dc.domain.local. This error is not retriable. Additional information: &lt;strong&gt;The name reference is invalid&lt;/strong&gt;.&lt;br /&gt;This may be caused by replication latency between Active Directory domain controllers.&lt;br /&gt;Active directory response: 000020B5: AtrErr: DSID-03152395, #1:&lt;br /&gt; 0: 000020B5: DSID-03152395, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att&lt;br /&gt;&lt;br /&gt;179130df (msExchSourceBridgeheadServersDN)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A value in the request is invalid.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The following error was generated when "$error.Clear();&lt;br /&gt;          if ($roleLegacyRoutingServer -ne $null)&lt;br /&gt;          {&lt;br /&gt;              $lrs =&lt;br /&gt;&lt;br /&gt;$roleLegacyRoutingServer;&lt;br /&gt;              $source = [String][System.Environment]::MachineName;&lt;br /&gt;&lt;br /&gt;              if ($lrs.Length -gt 31)&lt;br /&gt;         &lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;                  $lrs = $lrs.Substring(0, 31)&lt;br /&gt;              };&lt;br /&gt;&lt;br /&gt;              if ($source.Length -gt 31)&lt;br /&gt;              {&lt;br /&gt;             &lt;br /&gt;&lt;br /&gt;$source = $source.Substring(0, 31)&lt;br /&gt;              };&lt;br /&gt;&lt;br /&gt;              $name = $source + "-" + $lrs;&lt;br /&gt;              $result = (get-&lt;br /&gt;&lt;br /&gt;routinggroupconnector  where {$_.Name -eq $name});&lt;br /&gt;              if ($result -eq $null)&lt;br /&gt;              {&lt;br /&gt;                  new-&lt;br /&gt;&lt;br /&gt;RoutingGroupConnector -SourceTransportServers:$source -TargetTransportServers:$roleLegacyRoutingServer -Cost:1 -Name:$name -Bidirectional:&lt;br /&gt;&lt;br /&gt;$false&lt;br /&gt;              };&lt;br /&gt;&lt;br /&gt;              $name = $lrs + "-" + $source;&lt;br /&gt;              $result = (get-routinggroupconnector  where {$_.Name -eq&lt;br /&gt;&lt;br /&gt;$name});&lt;br /&gt;              if ($result -eq $null)&lt;br /&gt;              {&lt;br /&gt;                  new-RoutingGroupConnector -SourceTransportServers:&lt;br /&gt;&lt;br /&gt;$roleLegacyRoutingServer -TargetTransportServers:$source -Cost:1 -Name:$name -Bidirectional:$false&lt;br /&gt;              };&lt;br /&gt;          };&lt;br /&gt;        " was&lt;br /&gt;&lt;br /&gt;run: "Active Directory operation failed on dc.domain.local. This error is not retriable. Additional information: &lt;strong&gt;The name reference is invalid&lt;/strong&gt;.&lt;br /&gt;This may be caused by replication latency between Active Directory domain controllers.&lt;br /&gt;Active directory response: 000020B5: AtrErr: DSID-03152395, #1:&lt;br /&gt; 0: 000020B5: DSID-03152395, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att&lt;br /&gt;&lt;br /&gt;179130e2 (msExchTargetBridgeheadServersDN)&lt;br /&gt;".&lt;br /&gt;&lt;br /&gt;Active Directory operation failed on dc.domain.local. This error is not retriable. Additional information: &lt;strong&gt;The name reference is invalid&lt;/strong&gt;.&lt;br /&gt;This may be caused by replication latency between Active Directory domain controllers.&lt;br /&gt;Active directory response: 000020B5: AtrErr: DSID-03152395, #1:&lt;br /&gt; 0: 000020B5: DSID-03152395, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att&lt;br /&gt;&lt;br /&gt;179130e2 (msExchTargetBridgeheadServersDN)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A value in the request is invalid.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Error:&lt;br /&gt;The following error was generated when "$error.Clear();&lt;br /&gt;          if ($roleLegacyRoutingServer -ne $null)&lt;br /&gt;          {&lt;br /&gt;              $lrs =&lt;br /&gt;&lt;br /&gt;$roleLegacyRoutingServer;&lt;br /&gt;              $source = [String][System.Environment]::MachineName;&lt;br /&gt;&lt;br /&gt;              if ($lrs.Length -gt 31)&lt;br /&gt;         &lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;                  $lrs = $lrs.Substring(0, 31)&lt;br /&gt;              };&lt;br /&gt;&lt;br /&gt;              if ($source.Length -gt 31)&lt;br /&gt;              {&lt;br /&gt;             &lt;br /&gt;&lt;br /&gt;$source = $source.Substring(0, 31)&lt;br /&gt;              };&lt;br /&gt;&lt;br /&gt;              $name = $source + "-" + $lrs;&lt;br /&gt;              $result = (get-&lt;br /&gt;&lt;br /&gt;routinggroupconnector  where {$_.Name -eq $name});&lt;br /&gt;              if ($result -eq $null)&lt;br /&gt;              {&lt;br /&gt;                  new-&lt;br /&gt;&lt;br /&gt;RoutingGroupConnector -SourceTransportServers:$source -TargetTransportServers:$roleLegacyRoutingServer -Cost:1 -Name:$name -Bidirectional:&lt;br /&gt;&lt;br /&gt;$false&lt;br /&gt;              };&lt;br /&gt;&lt;br /&gt;              $name = $lrs + "-" + $source;&lt;br /&gt;              $result = (get-routinggroupconnector  where {$_.Name -eq&lt;br /&gt;&lt;br /&gt;$name});&lt;br /&gt;              if ($result -eq $null)&lt;br /&gt;              {&lt;br /&gt;                  new-RoutingGroupConnector -SourceTransportServers:&lt;br /&gt;&lt;br /&gt;$roleLegacyRoutingServer -TargetTransportServers:$source -Cost:1 -Name:$name -Bidirectional:$false&lt;br /&gt;              };&lt;br /&gt;          };&lt;br /&gt;        " was&lt;br /&gt;&lt;br /&gt;run: "Active Directory operation failed on dc.domain.local. This error is not retriable. Additional information: &lt;strong&gt;The name reference is invalid&lt;/strong&gt;.&lt;br /&gt;This may be caused by replication latency between Active Directory domain controllers.&lt;br /&gt;Active directory response: 000020B5: AtrErr: DSID-03152395, #1:&lt;br /&gt; 0: 000020B5: DSID-03152395, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att&lt;br /&gt;&lt;br /&gt;179130df (msExchSourceBridgeheadServersDN)&lt;br /&gt;".&lt;br /&gt;&lt;br /&gt;Active Directory operation failed on dc.domain.local. This error is not retriable. Additional information: &lt;strong&gt;The name reference is invalid&lt;/strong&gt;.&lt;br /&gt;This may be caused by replication latency between Active Directory domain controllers.&lt;br /&gt;Active directory response: 000020B5: AtrErr: DSID-03152395, #1:&lt;br /&gt; 0: 000020B5: DSID-03152395, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att&lt;br /&gt;&lt;br /&gt;179130df (msExchSourceBridgeheadServersDN)&lt;br /&gt;&lt;br /&gt;A value in the request is invalid.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-IU6r6XXkVC0/ToGWZwQdJRI/AAAAAAAABlY/UYIKBDaoy1M/s1600/hubtransporterror.PNG"&gt;&lt;img style="width: 400px; height: 278px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5656967976148870418" border="0" alt="" src="http://4.bp.blogspot.com/-IU6r6XXkVC0/ToGWZwQdJRI/AAAAAAAABlY/UYIKBDaoy1M/s400/hubtransporterror.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-size:180%;" &gt;&lt;strong&gt;Now what is this bug?&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The New-RoutingGroupConnector command will only connect to SMTP Virtual Servers that have a common name value of 1.  What do I mean by this?  In the Exchange 2010 source code the Exchange 2010 product team coded this powershell command to query:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;"CN=1,CN=SMTP,CN=Protocols,CN=MERCURY,CN=Servers,CN=SHENTON PARK,CN=Administrative Groups,CN=WORKCOVER,CN=Microsoft,Exchange,CN=Services,CN=Configuration,&lt;strong&gt;DC=YOURDOMAIN,DC=COM&lt;/strong&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;What is this object?  This is your SMTP virtual server your administrators see in Exchange 2003 system manager.  Any configuration changes made to this virtual server get updated on this Active Directory object in the configuration partition.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-5Oc1L5jvq5k/ToGYFqgIJgI/AAAAAAAABlg/GEqzD20O2So/s1600/systemmanager.png"&gt;&lt;img style="width: 400px; height: 249px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5656969830029862402" border="0" alt="" src="http://2.bp.blogspot.com/-5Oc1L5jvq5k/ToGYFqgIJgI/AAAAAAAABlg/GEqzD20O2So/s400/systemmanager.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If an administrator creates new SMTP virutal servers then deletes the first SMTP virtual server that had a CN value of 1 the issue occurs.  For example if I open ADSIEdit in my environment with the problem and navigate to the following location:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;Configuration\services\Microsoft Exchange\Org Name\Administrative Groups\Exchange 2003 AG name\Servers\Exchange 2003 servername\Protocol\SMTP&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I see that my CN is a value of 3.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-C4sIcjYuaZ4/ToGZlmHM5XI/AAAAAAAABlo/XOqiyVePLac/s1600/adsieditconfig1.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 255px;" src="http://2.bp.blogspot.com/-C4sIcjYuaZ4/ToGZlmHM5XI/AAAAAAAABlo/XOqiyVePLac/s400/adsieditconfig1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5656971478119015794" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To resolve this I performed the following steps:&lt;br /&gt;&lt;br /&gt;1. Renamed CN=3 to CN=1 in ADSIEdit by right clicking the object.&lt;br /&gt;&lt;br /&gt;2. Force replication to whichever DC your Exchange 2003 server is communicating to.  You can find this out by running "nltest /dsgetdc:domain.local" on your Exchange 2003 server provided you have the 2003 support tools installed.&lt;br /&gt;&lt;br /&gt;3. Restart the Simple Mail Transfer Service on your Exchange 2003 server - VERY IMPORTANT.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Note: If you manually try and use the New-RoutingGroupConnector in Exchange 2007/2010 shell after the installation is complete, it will also unless you correct the CN= value for your SMTP Virtual Server.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-1514038098411554329?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/1514038098411554329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/09/why-didnt-my-routing-group-connector.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/1514038098411554329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/1514038098411554329'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/09/why-didnt-my-routing-group-connector.html' title='Why didnt my routing group connector get created?'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/--0Ok37A0Q-Q/ToGVGZkCXiI/AAAAAAAABlQ/1l9F1epJu0k/s72-c/leaveblank.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-2452078804577851285</id><published>2011-09-27T01:49:00.000-07:00</published><updated>2011-09-27T02:44:08.080-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><title type='text'>[FIXED] Exchange 2010 Single Server Installation Problems</title><content type='html'>Today I set out to perform a single Exchange 2003 server migration to a new Exchange 2010 server for approximately 200 users.  What is a simple task for me had some bumps.&lt;br /&gt;&lt;br /&gt;I installed setup my new Exchange 2010 server as a brick level deployment "all roles on one server".&lt;br /&gt;&lt;br /&gt;I performed the following steps:&lt;br /&gt;1. Installed the Exchange 2010 SP1 prerequisites for MBX, HT and CAS.&lt;br /&gt;2. Installed the Microsoft Office 2010 filter packs&lt;br /&gt;3. Performed the Schema update using setup.com /PrepareAD&lt;br /&gt;4. Installed Exchange 2010 with all roles.&lt;br /&gt;&lt;br /&gt;After installation completed successfully I rebooted the server.  After the reboot I noticed I could not connect to Exchange 2010 using the console or shell.  I checked to see if the powershell virutal directory existed... it did not.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-LjAhaMnxIps/ToGPvNuy7gI/AAAAAAAABk4/BPitTsOATR8/s1600/iisscreeny.png"&gt;&lt;img style="width: 305px; height: 320px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5656960648256613890" border="0" alt="" src="http://2.bp.blogspot.com/-LjAhaMnxIps/ToGPvNuy7gI/AAAAAAAABk4/BPitTsOATR8/s400/iisscreeny.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For some reason only the mailbox role installed, even though the wizard said all roles were installed successfully.  I went back and ran setup.exe again.  I selected Hub Transport and Mailbox.. went through the install - rebooted.  This time all roles existed.  Although Exchange 2010 installed, it was unusable.&lt;br /&gt;&lt;br /&gt;When I tried to perform powershell commands in the shell as an Exchange organisation administrator I received the following errors:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-size:78%;" &gt;Exception calling "GetSteppablePipeline" with "1" argument(s): "The type initializer for 'Microsoft.Exchange.Configuration.Tasks.Task' threw an exception."&lt;br /&gt;+ CategoryInfo          : NotSpecified: (:) [], MethodInvocationException&lt;br /&gt;+ FullyQualifiedErrorId : DotNetMethodException&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-0asw-beJd44/ToGQv0G-tOI/AAAAAAAABlA/5SS27IKuZ0E/s1600/exchangeconfigurationexceptionerror.PNG"&gt;&lt;img style="width: 400px; height: 87px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5656961758070224098" border="0" alt="" src="http://1.bp.blogspot.com/-0asw-beJd44/ToGQv0G-tOI/AAAAAAAABlA/5SS27IKuZ0E/s400/exchangeconfigurationexceptionerror.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Opening up Exchange Management Console I received the following error:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-size:78%;" &gt;Initialization failed&lt;br /&gt;The following error occured when retrieving user information for 'user account':&lt;br /&gt;Unexpected error [0x17B26A98] while executing command 'Get-LogonUser'.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-l97B-Ec1xs8/ToGRqio_2ZI/AAAAAAAABlI/vaq427HXJKc/s1600/exchangeunexpectederror.PNG"&gt;&lt;img style="width: 400px; height: 134px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5656962766993349010" border="0" alt="" src="http://1.bp.blogspot.com/-l97B-Ec1xs8/ToGRqio_2ZI/AAAAAAAABlI/vaq427HXJKc/s400/exchangeunexpectederror.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:180%;"&gt;Resolution&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;To resolve the issue I performed the following steps:&lt;br /&gt;&lt;br /&gt;1. Uninstalled Exchange 2010 SP1 from my new server&lt;br /&gt;2. Rebooted&lt;br /&gt;3. Installed Exchange 2010 SP1 client access server role&lt;br /&gt;4. Rebooted&lt;br /&gt;5. Tested exchange management console (EMC) and exchange management shell (EMS)&lt;br /&gt;6. Installed Exchange 2010 SP1 hub transport role&lt;br /&gt;7. Rebooted&lt;br /&gt;8. Tested EMC and EMS&lt;br /&gt;9. Installed Exchange 2010 SP1 mailbox role&lt;br /&gt;10. Rebooted&lt;br /&gt;11. Tested EMC and EMS&lt;br /&gt;&lt;br /&gt;Only when installing in this order was I able to resolve the issue.  Very weird, this is the only time I have experianced this behaviour.&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-2452078804577851285?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/2452078804577851285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/09/fixed-exchange-2010-single-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2452078804577851285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2452078804577851285'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/09/fixed-exchange-2010-single-server.html' title='[FIXED] Exchange 2010 Single Server Installation Problems'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-LjAhaMnxIps/ToGPvNuy7gI/AAAAAAAABk4/BPitTsOATR8/s72-c/iisscreeny.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-2925296619552733017</id><published>2011-09-26T23:14:00.001-07:00</published><updated>2011-09-26T23:38:10.242-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><title type='text'>RMS Shared Identity user FederatedEmail.4c1f4d8b-8179-4148-93bf-00a95fa1e042 not found</title><content type='html'>Today I was re-installing Exchange 2010 into an Active Directory forest which previously had Exchange 2010 installed.  The schema was already extended with the Exchange 2010 SP1 schema extensions.&lt;br /&gt;&lt;br /&gt;When installing Exchange 2010, installation of the Hub Transport role failed with the following error:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-size:78%;" &gt;Error:&lt;br /&gt;The following error was generated when "$error.Clear();&lt;br /&gt;          if ( ($server -eq $null) -and ($RoleIsDatacenter -ne $true) )&lt;br /&gt;          {&lt;br /&gt;            Update-RmsSharedIdentity -ServerName $RoleNetBIOSName&lt;br /&gt;          }&lt;br /&gt;        " was run: "RMS Shared Identity user FederatedEmail.4c1f4d8b-8179-4148-93bf-00a95fa1e042 not found.".&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;FederatedEmail.4c1f4d8b-8179-4148-93bf-00a95fa1e042 is a Exchange 2010 built in arbitration user account which must exist in every Exchange 2010 environment.  The GUID never changes, it is always "4c1f4d8b-8179-4148-93bf-00a95fa1e042".&lt;br /&gt;&lt;br /&gt;The setup failed because someone deleted this user account from Active Directory!&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-size:130%;" &gt;&lt;strong&gt;How can we get it back?&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You have two ways to get this mailbox back.  If you have a computer on your network with the Exchange 2010 management tools installed, you can create the user account using powershell with the following command:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;&lt;span style="font-size:78%;"&gt;New-Mailbox -Arbitration -Name FederatedEmail.4c1f4d8b-8179-4148-93bf-00a95fa1e042 -UserPrincipalName FederatedEmail.4c1f4d8b-8179-4148-93bf-00a95fa1e042@&lt;em&gt;&lt;strong&gt;default_accepted_domain&lt;/strong&gt;&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For more information on this see Microsoft &lt;a href="http://support.microsoft.com/kb/978776"&gt;KB978776&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;What happens if you do not have exchange management shell installed on any computers?  Well there is another way to get this account back.  This account is originally created when you prepare the domain/schema.  If you run setup.com /PrepareAD on your domain it will re-create this account for you.  See below:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-MvWkMTi2CKY/ToFtJCXtPpI/AAAAAAAABko/LwHitkk16Xg/s1600/setuppreparead.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 275px;" src="http://1.bp.blogspot.com/-MvWkMTi2CKY/ToFtJCXtPpI/AAAAAAAABko/LwHitkk16Xg/s400/setuppreparead.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5656922608976608914" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-yVWTxVWzuOc/ToFtlQQZ8GI/AAAAAAAABkw/szzAl6CJ_oQ/s1600/federatedemailsearch.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 320px;" src="http://2.bp.blogspot.com/-yVWTxVWzuOc/ToFtlQQZ8GI/AAAAAAAABkw/szzAl6CJ_oQ/s400/federatedemailsearch.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5656923093740417122" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-2925296619552733017?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/2925296619552733017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/09/rms-shared-identity-user.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2925296619552733017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2925296619552733017'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/09/rms-shared-identity-user.html' title='RMS Shared Identity user FederatedEmail.4c1f4d8b-8179-4148-93bf-00a95fa1e042 not found'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-MvWkMTi2CKY/ToFtJCXtPpI/AAAAAAAABko/LwHitkk16Xg/s72-c/setuppreparead.PNG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-9077813778279478231</id><published>2011-09-22T20:19:00.000-07:00</published><updated>2011-09-22T20:20:44.314-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scripting'/><title type='text'>Connecting to a single AD Object</title><content type='html'>This script lets you connect to an LDAP DC / LDS server and display attributes on objects:&lt;br /&gt;&lt;br /&gt;Set oUser = GetObject("LDAP://localhost:10001/CN=Clint2,OU=TestOU,DC=test,DC=com")&lt;br /&gt;oUser.GetInfo&lt;br /&gt;wscript.echo oUser.Get("otherHomePhone")&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-9077813778279478231?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/9077813778279478231/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/09/connecting-to-single-ad-object.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/9077813778279478231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/9077813778279478231'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/09/connecting-to-single-ad-object.html' title='Connecting to a single AD Object'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-2827776501450705002</id><published>2011-09-19T18:47:00.000-07:00</published><updated>2011-09-19T18:48:32.893-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Active Directory'/><title type='text'>A quick way to determine your bridgehead servers?</title><content type='html'>You want to determine which bridgehead servers have been elected in each Active Directory site to troubleshoot replication issues?&lt;br /&gt;&lt;br /&gt;Use the following command:&lt;br /&gt;&lt;br /&gt;repadmin /bridgeheads&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-2827776501450705002?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/2827776501450705002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/09/quick-way-to-determine-your-bridgehead.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2827776501450705002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2827776501450705002'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/09/quick-way-to-determine-your-bridgehead.html' title='A quick way to determine your bridgehead servers?'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-8730739245215383127</id><published>2011-09-18T22:24:00.000-07:00</published><updated>2011-09-18T22:31:29.523-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><title type='text'>Windows Server Backup - DAG Environment</title><content type='html'>Windows Server Backup or wbadmin.exe cannot be used to backup passive databases in a Database Availability Group environment.&lt;br /&gt;&lt;br /&gt;WSB does not back up Passive copies. It can only be used to back up Active copies. This is simply a limitation of the WSB plug-in. Also WSB is only designed to backup small Exchange 2010 environments that are not DAG members.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/dd876874.aspx"&gt;http://technet.microsoft.com/en-us/library/dd876874.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also – as indicated in the article, you have to back up the entire volume containing both the database/logs.&lt;br /&gt;&lt;br /&gt;So essentially if you want to use WSB to take a full backup of *all* databases, you are looking at either moving all active copies to a single DAG member (for the backup), or using WSB locally on each DAG member that hosts active databases.&lt;br /&gt;&lt;br /&gt;Please note, you can backup passive mailbox databases using WSB in a DAG environment as explained in the above article:&lt;br /&gt;&lt;br /&gt;"&lt;em&gt;If a server hosting the data being backed up is a member of a database availability group (DAG) and hosts both active and passive database copies, you must disable the Microsoft Exchange Replication service VSS writer. If the Microsoft Exchange Replication service VSS writer is enabled, the backup operation will fail.&lt;/em&gt;"&lt;br /&gt;&lt;br /&gt;Why would you want to use windows server backup to backup a DAG member? Possibly your primary backup product is failing and you want to test the VSS service using an alternative product?  In this case you may use BETest.exe to test the VSS snapshot service.&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-8730739245215383127?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/8730739245215383127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/09/windows-server-backup-dag-environment.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/8730739245215383127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/8730739245215383127'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/09/windows-server-backup-dag-environment.html' title='Windows Server Backup - DAG Environment'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-7178013641555994191</id><published>2011-09-18T21:49:00.000-07:00</published><updated>2011-09-18T21:55:19.978-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2000/2003'/><category scheme='http://www.blogger.com/atom/ns#' term='Active Directory'/><title type='text'>Exchange 2003 Domain Rename with Exchange 2010</title><content type='html'>Domain Rename's are possible only with Exchange 2003.  After you perform the Active Directory rename using the domain rename tool RENDOM, the next step is the fixup the Exchange 2003 attributes using a tool called XDR-Fixup.&lt;br /&gt;&lt;br /&gt;XDR-Fixup is not supported on:&lt;br /&gt;- Exchange 5.5&lt;br /&gt;- Exchange 2000&lt;br /&gt;- Exchange 2007&lt;br /&gt;- Exchange 2010&lt;br /&gt;&lt;br /&gt;What happens if you have an Exchange 2003 environment that you have just done an ADPrep to prepare the forest for Exchange 2010?  Can you still proceed with an Exchange 2003 domain rename?&lt;br /&gt;&lt;br /&gt;The answer here is no, the Exchange schema extensions must be that of Exchange 2003 SP2 (no higher).&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-7178013641555994191?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/7178013641555994191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/09/exchange-2003-domain-rename-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/7178013641555994191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/7178013641555994191'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/09/exchange-2003-domain-rename-with.html' title='Exchange 2003 Domain Rename with Exchange 2010'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-5553311304184528939</id><published>2011-09-14T20:56:00.000-07:00</published><updated>2011-09-14T22:17:53.225-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AD LDS / ADAM'/><category scheme='http://www.blogger.com/atom/ns#' term='Active Directory'/><title type='text'>ADAMSync Error -2146893813. Error code: 317</title><content type='html'>Today I discovered what may be a bug in ADAMSync, however I found a workaround. Let me go into detail sharing my findings with you. First... lets cover off my environment.&lt;br /&gt;&lt;br /&gt;I have 4 forests, 10 domains. My AD LDS server is a member of subdomain.forest3.lan. Please see the diagram below.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://sites.google.com/site/cbblogspotfiles/LDSDesignForumPost.png" width="889" height="889" /&gt;&lt;br /&gt;&lt;br /&gt;- My LDS Server has multiple instances "LDS Databases" for each Active Directory domain. These instances are listening on 10001, 10002, 10003, 10004 etc... There is a 1 to 1 relationship between a single domain and its corresponding LDS instance.&lt;br /&gt;&lt;br /&gt;- Each LDS Instance has only one application partition with the same distinguishedName mapping an Active Directory domain. For example dc=forest2,dc=lan or dc=bu2,dc=forest1,dc=lan.&lt;br /&gt;&lt;br /&gt;- My ADAMSync configuration in each instance replicates the user class objects from Active Directory to "userProxy" class objects in each LDS Instance. Objects are successfully replicating.&lt;br /&gt;&lt;br /&gt;- userProxy bind redirection is working successfully for all LDS Instances and the corresponding Active Directory domain (excluding forest4.lan due to no domain trusts existing). For more information on userProxy objects see &lt;a href="http://clintboessen.blogspot.com/2011/04/userproxy-class-and-adam-lds.html"&gt;http://clintboessen.blogspot.com/2011/04/userproxy-class-and-adam-lds.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- There is no synchronization errors. I have validated all attributes declared in my adamsync.xml file are successfully synchronizing to the corresponding userProxy object in LDS for each user account.&lt;br /&gt;&lt;br /&gt;- ADAMSync is successfully creating the same Organisational Unit structure matching that of LDS.&lt;br /&gt;&lt;br /&gt;- The base distinguishedName of each LDS instance matches the base distinguishedName of the Active Directory domain.&lt;br /&gt;&lt;br /&gt;- All child domains in forest1 synchronise using an ldapquery account located in the parent forest1.lan domain. This is configured in the XML file &lt;source-ad-account&gt;ldapquery&lt;/SOURCE-AD-ACCOUNT&gt; and &lt;account-domain&gt;forest1.lan&lt;/ACCOUNT-DOMAIN&gt;.&lt;br /&gt;&lt;br /&gt;- forest2.lan synchronises using an account in forest2.lan&lt;br /&gt;&lt;br /&gt;- forest3.lan synchronises using an account in subdomain.forest3.lan. No user accounts reside in the root domain forest3.lan. This is configured as an "empty root domain".&lt;br /&gt;&lt;br /&gt;- forest4.lan synchronises using an account located in forest4.lan&lt;br /&gt;&lt;br /&gt;The following Active Directory accounts were setup to make this solution work:&lt;br /&gt;&lt;br /&gt;- subdomain.forest3.lan\LDSSVC. This account is only a member of "domain users" in subdomain.forest3.lan. This account has "Log on as service" rights assigned under "user rights assignments" on the LDS Server. This account provides the security context under which LDS Instance runs as a service. i.e. all LDS Services run as this account.&lt;br /&gt;&lt;br /&gt;- subdomain.forest3.lan\LDSBoss. This account is only a member of "domain users" in subdomain.forest3.lan. During the installation of each LDS Instance using the "Active Directory Lightweight Directory Services Setup Wizard" this account was specified as the Administrator of each instance. This account has no access to the LDS Server itself, i.e. the account does not even have permissions to login to the LDS Server. It only has "Administrative privilages" inside each LDS Instance. All commands which manipulate LDAP data inside an LDS Instance such as ADAMSync must be run under the security context of this LDSBoss account.&lt;br /&gt;&lt;br /&gt;- forest1.lan\ldapquery. This account is a member of "Domain Admins" and "Enterprise Admins"in the forest1.lan root domain. It is specified in the ADAMSync.xml file for each child domain in the forest1.lan forest. This account is used to perform LDAP Queries against the forest1.lan forest. If this account is not a Domain Admin or Enterprise Admin, ADAMSync fails to run.&lt;br /&gt;&lt;br /&gt;- forest2.lan\ldapquery. This account is a member of "Domain Admins" in the forest2.lan domain. This is specified in the ADAMSync.xml file for the forest2.lan forest. It is used for LDAP queries against forest2.lan&lt;br /&gt;&lt;br /&gt;- subdomain.forest3.lan\ldapquery. This account is a member of "Domain Admins" in the subdomain.forest3.lan domain. This is specified in the ADAMSync.xml file for the subdomain.forest3.lan forest. It is used for LDAP queries against subdomain.forest3.lan&lt;br /&gt;&lt;br /&gt;- forest4.lan\ldapquery. This account is a member of "Domain Admins" in the forest4.lan domain. This is specified in the ADAMSync.xml file for the forest4.lan forest. It is used for LDAP queries against forest4.lan&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;So whats the bug you found clint?&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;I went and installed my ADAMSync XML configuration file running a command prompt under the security context of the user account SUBDOMAIN\LDSBoss with the following command:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;&lt;strong&gt;adamsync /install localhost:10001 "C:\Windows\ADAM\AdamSync Configs\SUBDOMAIN\SUBDOMAIN-AdamSyncConf.XML" /passprompt&lt;/strong&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When prompted I entered the password for the subdomain.forest3.lan\ldapquery account which was specified in the ADAMSync XML file.&lt;br /&gt;&lt;br /&gt;When I run ADAMSync.exe using my SUBDOMAIN\LDSBoss credentials (the credentials used to install the XML configuration file), the sync works successfully.&lt;br /&gt;&lt;br /&gt;However I then created another account called SUBDOMAIN\boessenc_admin which I added to the configuration partition "Administrators" group in my LDS Instance. When I tried to sync using my SUBDOMAIN\boessenc_admin account the sync failed with ADAMSync.exe terminating. The following error is received:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;Error occured fetching internationalized message number -2146893813. Error code: 317&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://sites.google.com/site/cbblogspotfiles/adamsyncerror2.PNG" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#ff0000;"&gt;Problem signature:&lt;br /&gt;Problem Event Name: APPCRASH&lt;br /&gt;Application Name: adamsync.exe&lt;br /&gt;Application Version: 6.1.7600.16385&lt;br /&gt;Application Timestamp: 4a5bc94c&lt;br /&gt;Fault Module Name: ntdll.dll&lt;br /&gt;Fault Module Version: 6.1.7600.16695&lt;br /&gt;Fault Module Timestamp: 4cc7b325&lt;br /&gt;Exception Code: c0000005&lt;br /&gt;Exception Offset: 0000000000023b12&lt;br /&gt;OS Version: 6.1.7600.2.0.0.272.7&lt;br /&gt;Locale ID: 3081&lt;br /&gt;Additional Information 1: dba5&lt;br /&gt;Additional Information 2: dba5cead4302f0c0fa066ea618a55f8f&lt;br /&gt;Additional Information 3: f135&lt;br /&gt;Additional Information 4: f135fc65c6fa056fecabbbdf82720b5f&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I created a memory dump of the ADAMSync process using the following MSDN article:&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb787181.aspx"&gt;http://msdn.microsoft.com/en-us/library/bb787181.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I submitted this memory dump to James Li from the Microsoft Directory Service Support Team. James analysed the memory dump carefully and suspects it might be caused by a bug in AdamSync.exe. Here is the stack information he provided me with:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;&lt;span style="font-size:78%;"&gt;00 00000000`0013e990 000007fe`fd479ce9 ntdll!RtlFormatMessageEx(&lt;br /&gt;unsigned short * MessageFormat = 0x00000000`00000000,&lt;br /&gt;unsigned long MaximumWidth = 0,&lt;br /&gt;unsigned char IgnoreInserts = 0x10 '',&lt;br /&gt;unsigned char ArgumentsAreAnsi = 0x00 '',&lt;br /&gt;unsigned char ArgumentsAreAnArray = 0x00 '',&lt;br /&gt;char ** Arguments = 0x00000000`0013f3b0,&lt;br /&gt;unsigned short * Buffer = 0x00000000`ff7fb630,&lt;br /&gt;unsigned long Length = 0x26d7,&lt;br /&gt;unsigned long * ReturnLength = 0x00000000`0013f174,&lt;br /&gt;struct _PARSE_MESSAGE_CONTEXT * ParseContext = 0x00000000`0013f1a8)+0x272&lt;br /&gt;&lt;br /&gt;01 00000000`0013f110 000007fe`fd479a97 KERNELBASE!BaseDllFormatMessage(&lt;br /&gt;unsigned char ArgumentsAreAnsi = 0x00 '',&lt;br /&gt;unsigned long dwFlags = 0x1000,&lt;br /&gt;void * lpSource = 0x00000000`0013f510,&lt;br /&gt;unsigned long dwMessageId = 0x13d,&lt;br /&gt;unsigned long dwLanguageId = 0x400,&lt;br /&gt;unsigned short * lpBuffer = 0x00000000`ff7fb630,&lt;br /&gt;unsigned long nSize = 0x2710,&lt;br /&gt;char ** arglist = 0x00000000`0013f3b0)+0x239&lt;br /&gt;&lt;br /&gt;02 00000000`0013f210 00000000`77024d88 KERNELBASE!FormatMessageW(&lt;br /&gt;unsigned long dwFlags = 0,&lt;br /&gt;void * lpSource = 0x00000000`ff7f91b0,&lt;br /&gt;unsigned long dwMessageId = 0,&lt;br /&gt;unsigned long dwLanguageId = 0xff797074,&lt;br /&gt;unsigned short * lpBuffer = 0x00000000`ff7fb630,&lt;br /&gt;unsigned long nSize = 0x2710,&lt;br /&gt;char ** lpArguments = 0x00000000`0013f3b0)+0x37&lt;br /&gt;&lt;br /&gt;03 00000000`0013f260 00000000`ff7942d0 kernel32!FormatMessageWStub(&lt;br /&gt;unsigned long dwFlags = 0x13f510,&lt;br /&gt;void * lpSource = 0x00000000`00002800,&lt;br /&gt;unsigned long dwMessageId = 0,&lt;br /&gt;unsigned long dwLanguageId = 0x5f7f20,&lt;br /&gt;unsigned short * lpBuffer = 0x00000000`ff7fb630,&lt;br /&gt;unsigned long nSize = 0x2710,&lt;br /&gt;char ** lpArguments = 0x00000000`0013f3b0)+0x28&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I continued investigating the issue... I then reinstalled the ADAMSync XML file by re-running the ADAMSync.exe process under SUBDOMAIN\boessenc_admin using the same command, and specifying the password for the SUBDOMAIN\ldapquery which was specified in the XML configuration file:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;&lt;strong&gt;adamsync /install localhost:10001 "C:\Windows\ADAM\AdamSync Configs\SUBDOMAIN\SUBDOMAIN-AdamSyncConf.XML" /passprompt&lt;/strong&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I then ran the ADAMSync.exe program with the sync switch under the security context of SUBDOMAIN\boessenc_admin. It worked!&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;What did we learn?&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Whatever account you used to install the ADAMSync.exe XML configuration file, i.e. the account the ADAMSync.exe process is running as during the config installation &lt;strong&gt;&lt;span style="color:#000000;"&gt;MUST&lt;/span&gt;&lt;/strong&gt; also be used to perform the ADAMSync.exe synchronisation. If you attempt to perform a synchronisation using a different account other then the account used during the XML import, the ADAMSync.exe process will crash.&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-5553311304184528939?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/5553311304184528939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/09/adamsync-error-2146893813-error-code.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/5553311304184528939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/5553311304184528939'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/09/adamsync-error-2146893813-error-code.html' title='ADAMSync Error -2146893813. Error code: 317'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-4353191562201768283</id><published>2011-09-14T01:34:00.001-07:00</published><updated>2011-09-14T23:22:38.398-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Forefront'/><title type='text'>Forefront Threat Management Gateway - Workgroup Configuration with Exchange 2010</title><content type='html'>In this post I will give you some information around publishing Exchange 2010 with Forefront Threat Management Gateway (TMG) or ISA 2006 and weather or not these servers should have domain membership.&lt;br /&gt;&lt;br /&gt;Microsoft's recommended deployment is that you add your TMG servers as members of your Active Directory domain. For the TMG setup whitepaper please see the following link. This whitepaper explains how to setup TMG step by step with domain membership.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://download.microsoft.com/download/E/5/6/E56ACB6E-7BCC-40F1-8F18-E636B7BFE088/PublishingExchangeServer2010withForefront.doc"&gt;http://download.microsoft.com/download/E/5/6/E56ACB6E-7BCC-40F1-8F18-E636B7BFE088/PublishingExchangeServer2010withForefront.doc&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When Microsoft initially released Threat Management Gateway, it did not support workgroup configuration. It's a product that is designed to run as a member of your Active Directory domain and configuring it any other way results in significant loss in functionality and in some cases security. I managed to find a copy of the original release notes published by Microsoft which is available here... stating that TMG does not support workgroup configuration. &lt;a href="http://technet.microsoft.com/en-us/library/cc487898.aspx"&gt;http://technet.microsoft.com/en-us/library/cc487898.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Previous versions of the product such as ISA2006 did support workgroup configuration and some companies implemented it in this method. There was an outcry and as a result Microsoft changed their stance on this and updated the product to support domain membership.&lt;br /&gt;&lt;br /&gt;Can you publish Exchange 2010 using TMG without adding the Threat Management Gateway server as a member of your internal Active Directory domain? Yes you can, there are 3 ways to do this:&lt;br /&gt;&lt;br /&gt;- Configure another Active Directory domain to hold TMG. Create a Transitive Forest Trust between your production forest and your TMG forest. Create domain local groups on the TMG Active Directory forest and nest any groups that require access rules inside the TMG forest’s domain local groups.&lt;br /&gt;&lt;br /&gt;- Configure an internal PKI, if you want security you need to ensure you have an offline root stand-alone CA, and a subordinate enterprise issuing CA which is AD Integrated. Issue a digital certificate to each domain controller and configure your environment to support LDAP over SSL for AD Authentication. To configure your domain controllers to support LDAPS using SSL see &lt;a href="http://support.microsoft.com/kb/321051"&gt;http://support.microsoft.com/kb/321051&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- Configure a RADIUS server on your internal network. Configure the TMG server as a RADIUS client to pass through authentication requests to the RADIUS server. The RADIUS server will then pass the authentication request through to Active Directory. You will not get Outlook Anywhere working if your using RADIUS authentication, see &lt;a href="http://blogs.isaserver.org/pouseele/2007/02/06/a-quest-for-strong-user-authentication-with-rpc-over-http-services-and-isa-server-2006/"&gt;http://blogs.isaserver.org/pouseele/2007/02/06/a-quest-for-strong-user-authentication-with-rpc-over-http-services-and-isa-server-2006/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;All three of these options have the following disadvantages:&lt;br /&gt;&lt;br /&gt;- Will require additional servers weather its certificate authorities, radius servers or domain controllers to run a new AD forest.&lt;br /&gt;&lt;br /&gt;- Will extend the project life cycle from an originally estimated 2 weeks to 4-8 weeks depending which of the 3 options you wish to go down.&lt;br /&gt;&lt;br /&gt;- Increase complexity of your network and increase downtime periods should infrastructure fail as this is not a highly available deployment.&lt;br /&gt;&lt;br /&gt;Neither of these solutions add any significant layer of security and are not seen as efficient solutions due to the Administrative overhead they create.&lt;br /&gt;&lt;br /&gt;In a Microsoft whitepaper written by Greg Taylor "Publishing Outlook Anywhere Using NTLM Authentication With Forefront TMG or Forefront UAG", Greg dedicated a section around joining Forefront TMG/Forefront UAG to an Active Directory domain or leaving it workgroup. For a copy of this article see the following URL:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?id=22723"&gt;http://www.microsoft.com/download/en/details.aspx?id=22723&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is an extract from Greg Taylors whitepaper:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;"Domain Joining Forefront TMG/Forefront UAG or Leaving in a Workgroup"&lt;br /&gt;&lt;br /&gt;In most organizations, the decision whether to domain join the server hosting Forefront TMG/Forefront UAG to your production domain may be one of the more contentious parts of the deployment.&lt;br /&gt;&lt;br /&gt;For Forefront UAG deployments, the guidance is clear. Because Forefront UAG is not a firewall, it should be placed behind some other device that acts as a firewall on the corporate network. Also, it's recommended that Forefront UAG be domain joined to make authentication simple and flexible. Forefront TMG is installed on the Forefront UAG computer during installation, but that's done only to protect the host system and for the underlying functionality it provides to Forefront UAG.&lt;br /&gt;&lt;br /&gt;Forefront TMG deployments are more complex to discuss because Forefront TMG is considered a firewall and can protect the network edge. Domain joining Forefront TMG offers many advantages: it allows certificate based authentication to be used at Forefront TMG, using Kerberos Constrained Delegation to communicate to Exchange; it allows easy use of Active Directory groups and user objects in publishing rules to restrict access; and it provides other benefits. For an impartial view on whether to domain join Forefront TMG, see &lt;a href="http://www.isaserver.org/tutorials/Debunking-Myth-that-ISA-Firewall-Should-Not-Domain-Member.html"&gt;Debunking the Myth that the ISA Firewall Should Not be a Domain Member&lt;/a&gt;. For more information about identifying your infrastructure design requirements, see &lt;a href="http://technet.microsoft.com/en-us/library/ee844246.aspx#BKMK_DomainWG"&gt;Domain and workgroup requirements&lt;/a&gt;.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;The link Greg Taylor mentions in his white paper "Debunking the Myth that the ISA Firewall Should Not be a Domain Member" by Thomas W Shinder, Microsoft MVP is an excellent read. Please view it here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.isaserver.org/tutorials/Debunking-Myth-that-ISA-Firewall-Should-Not-Domain-Member.html"&gt;http://www.isaserver.org/tutorials/Debunking-Myth-that-ISA-Firewall-Should-Not-Domain-Member.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In Thomas's article he mentions:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;ISA/TMG that is a domain member machine is &lt;strong&gt;more secure &lt;/strong&gt;and &lt;strong&gt;more flexible&lt;/strong&gt; than a non-domain member machine and that they do themselves and their companies a disservice by not joining the ISA firewall to the domain. This is a significant issue and not something to be taken lightly because there is a serious security hit you take when you don’t join the ISA firewall to the domain.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;He also covers in his article the primary reason companies go through all this effort of not joining the TMG/ISA server to the internal domain, compliance managers and external auditors that believe in this myth. He writes:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Should the ISA firewall array be placed in a domain or a workgroup? That is the question. Is it nobler to place the ISA firewall in a workgroup where you can avoid the catcalls of clueless compliance managers, "hardware" firewall know-nothings, or “network guys” who think of network security as "port opening and closing", or should you bear the slings and arrows of the same harridan housewives and carping screws for placing the ISA firewall in the domain, where you can get a higher level of overall security and substantially improve your security position?&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;The last article I would like to point you at is a TechNet article published by Microsoft around considerations when and when not you would place your TMG server as a member of your internal Active Directory domain. Please view this article here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/dd897048.aspx"&gt;http://technet.microsoft.com/en-us/library/dd897048.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I would like to finalise by saying majority of TMG deployments should all be a member of your Active Directory domain especially if your just publishing Exchange 2010. However there may be circumstances where your using your TMG server for things other then just Exchange and you may need to look at implementing TMG in a workgroup configuration.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;Joining Forefront Threat Management Gateway 2010 to an Active Directory domain to publish Exchange 2010 services to the Internet is not a security threat to your network.&lt;/span&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-4353191562201768283?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/4353191562201768283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/09/forefront-threat-management-gateway.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/4353191562201768283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/4353191562201768283'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/09/forefront-threat-management-gateway.html' title='Forefront Threat Management Gateway - Workgroup Configuration with Exchange 2010'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-4453276726092211995</id><published>2011-09-12T21:58:00.000-07:00</published><updated>2011-09-12T22:03:06.361-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Server General'/><category scheme='http://www.blogger.com/atom/ns#' term='Active Directory'/><title type='text'>Access is Denied - Disabling SID Filtering</title><content type='html'>Today I had an issue where I received "Access is Denied" when disabling SID Filtering, even though my account had access.&lt;br /&gt;&lt;br /&gt;Of course I checked my command prompt was running with administrative rights... check this is you have User Account Control (UAC) enabled.&lt;br /&gt;&lt;br /&gt;I ran the netdom command with /quarantine:no and the correct syntax and received:&lt;br /&gt;&lt;br /&gt;The command failed to complete successfully.&lt;br /&gt;&lt;br /&gt;To get around this problem I established a UNC connection to the the PDC emulator in the destination forest. This resolved the problem.  Please see the screenshot below:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-TZH6QjeSdBg/Tm7j8X6ddCI/AAAAAAAABkg/KjKsYsZTczA/s1600/accessdeniedsidfiltering.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 108px;" src="http://3.bp.blogspot.com/-TZH6QjeSdBg/Tm7j8X6ddCI/AAAAAAAABkg/KjKsYsZTczA/s400/accessdeniedsidfiltering.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5651705208747422754" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-4453276726092211995?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/4453276726092211995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/09/access-is-denied-disabling-sid.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/4453276726092211995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/4453276726092211995'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/09/access-is-denied-disabling-sid.html' title='Access is Denied - Disabling SID Filtering'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-TZH6QjeSdBg/Tm7j8X6ddCI/AAAAAAAABkg/KjKsYsZTczA/s72-c/accessdeniedsidfiltering.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-1101060524255240194</id><published>2011-09-04T21:48:00.000-07:00</published><updated>2011-09-04T22:01:41.522-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Server General'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Client General'/><title type='text'>Access is Denied adding GPMC to MMC</title><content type='html'>Scenario: I have an administrators XP workstation. The administrator has a standard user account and an administrator account. I migrated his standard user account and administrator account to a new Active Directory forest. ADMT performed security translation on his profile. The administrator can successfully login to the new domain keeping his same profile and settings.&lt;br /&gt;&lt;br /&gt;Problem: The administrator opens MMC using "run as" and specifies his administrative credentials in the source forest. He can access AD Users and Computers and make configuration changes. When he tries to add group policy management console (GPMC) to the MMC console he receives Access is Denied.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-AbkPaPMdRKA/TmRWGtyQHXI/AAAAAAAABkA/CUQS3NgPu0I/s1600/gpmcaccessdenied.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 319px;" src="http://1.bp.blogspot.com/-AbkPaPMdRKA/TmRWGtyQHXI/AAAAAAAABkA/CUQS3NgPu0I/s400/gpmcaccessdenied.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5648734505999015282" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I used Sysinternals Process Monitor (Procmon.exe) and noticed it was having problems writing to a particular registry key.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-TsXJjUJDM-E/TmRWjcCRx3I/AAAAAAAABkI/pTAV51F0ePQ/s1600/procmongpmc.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 73px;" src="http://1.bp.blogspot.com/-TsXJjUJDM-E/TmRWjcCRx3I/AAAAAAAABkI/pTAV51F0ePQ/s400/procmongpmc.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5648734999450601330" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I granted the administrator account full control over the profile using regedit.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-xp_edWP25nI/TmRXCX13bHI/AAAAAAAABkQ/U0ezQ1tgnQc/s1600/regeditprofile.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 325px;" src="http://3.bp.blogspot.com/-xp_edWP25nI/TmRXCX13bHI/AAAAAAAABkQ/U0ezQ1tgnQc/s400/regeditprofile.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5648735530900745330" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-REUaNzhyrBk/TmRXmVq-cBI/AAAAAAAABkY/ibO60VomZrU/s1600/profilepermissions.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 324px; height: 400px;" src="http://2.bp.blogspot.com/-REUaNzhyrBk/TmRXmVq-cBI/AAAAAAAABkY/ibO60VomZrU/s400/profilepermissions.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5648736148793487378" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This resolved the problem.&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-1101060524255240194?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/1101060524255240194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/09/access-is-denied-adding-gpmc-to-mmc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/1101060524255240194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/1101060524255240194'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/09/access-is-denied-adding-gpmc-to-mmc.html' title='Access is Denied adding GPMC to MMC'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-AbkPaPMdRKA/TmRWGtyQHXI/AAAAAAAABkA/CUQS3NgPu0I/s72-c/gpmcaccessdenied.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-3551085910522369298</id><published>2011-08-24T21:51:00.000-07:00</published><updated>2011-08-24T22:01:56.508-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scripting'/><title type='text'>Manipulating Text Strings in VBScript</title><content type='html'>Here is a bunch of links that explain how to manipulate text strings in VBS.&lt;br /&gt;&lt;br /&gt;Mid Function:&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/wffts6k3(v=vs.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/wffts6k3(v=vs.85).aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Right Function:&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/eh8fefz1(v=vs.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/eh8fefz1(v=vs.85).aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Left Function:&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/sk3xcs8k(v=vs.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/sk3xcs8k(v=vs.85).aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;These functions are to determine how many characters are in the string:&lt;br /&gt;&lt;br /&gt;LTrim; RTrim; and Trim Functions&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/c623wz83(v=vs.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/c623wz83(v=vs.85).aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Len Function&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dxsw58z6(v=vs.80).aspx"&gt;http://msdn.microsoft.com/en-us/library/dxsw58z6(v=vs.80).aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This website also has lots of handy commands for manipulating strings:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.w3schools.com/VBscript/vbscript_ref_functions.asp"&gt;http://www.w3schools.com/VBscript/vbscript_ref_functions.asp&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-3551085910522369298?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/3551085910522369298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/08/manipulating-text-strings-in-vbscript.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/3551085910522369298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/3551085910522369298'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/08/manipulating-text-strings-in-vbscript.html' title='Manipulating Text Strings in VBScript'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-3278747570584995867</id><published>2011-08-22T00:21:00.000-07:00</published><updated>2011-11-25T00:01:05.887-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='Active Directory'/><title type='text'>List all users in domain using LDAP and VBS</title><content type='html'>&lt;strong&gt;&lt;span style="color:#000099;"&gt;This sample code lists all users in a domain using LDAP, a more powerful connection then WinNT.&lt;br /&gt;&lt;br /&gt;This script automatically binds to the default domain naming context:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;pre&gt;Set objConnection = CreateObject("ADODB.Connection")&lt;br /&gt;Set objCommand = CreateObject("ADODB.Command")&lt;br /&gt;objConnection.Provider = "ADsDSOObject"&lt;br /&gt;objConnection.Open "Active Directory Provider"&lt;br /&gt;Set objCommand.ActiveConnection = objConnection&lt;br /&gt;&lt;br /&gt;objCommand.Properties("Page Size") = 1000&lt;br /&gt;&lt;br /&gt;objCommand.CommandText = _&lt;br /&gt;"&amp;ltLDAP://domain.local/RootDSE&amp;gt;(objectCategory=User);Name,distinguishedName,sAMAccountName,legacyExchangeDN;Subtree"&lt;br /&gt;Set objRecordSet = objCommand.Execute&lt;br /&gt;objRecordSet.MoveFirst&lt;br /&gt;&lt;br /&gt;Do Until objRecordSet.EOF&lt;br /&gt;Wscript.Echo objRecordSet.Fields("Name").Value&lt;br /&gt;Wscript.Echo objRecordSet.Fields("sAMAccountName").Value&lt;br /&gt;Wscript.Echo objRecordSet.Fields("legacyExchangeDN").Value&lt;br /&gt;objRecordSet.MoveNext&lt;br /&gt;Loop&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000099;"&gt;This script lets you manually bind to the domain/application partition.&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Set objConnection = CreateObject("ADODB.Connection")&lt;br /&gt;Set objCommand = CreateObject("ADODB.Command")&lt;br /&gt;objConnection.Provider = "ADsDSOObject"&lt;br /&gt;objConnection.Open "Active Directory Provider"&lt;br /&gt;Set objCommand.ActiveConnection = objConnection&lt;br /&gt;&lt;br /&gt;objCommand.Properties("Page Size") = 1000&lt;br /&gt;&lt;br /&gt;objCommand.CommandText = _&lt;br /&gt;"&amp;ltLDAP://domain.local/dc=domain,dc=local&amp;gt;(objectCategory=User);Name,distinguishedName,sAMAccountName,legacyExchangeDN;Subtree"&lt;br /&gt;Set objRecordSet = objCommand.Execute&lt;br /&gt;objRecordSet.MoveFirst&lt;br /&gt;&lt;br /&gt;Do Until objRecordSet.EOF&lt;br /&gt;Wscript.Echo objRecordSet.Fields("Name").Value&lt;br /&gt;Wscript.Echo objRecordSet.Fields("sAMAccountName").Value&lt;br /&gt;Wscript.Echo objRecordSet.Fields("legacyExchangeDN").Value&lt;br /&gt;objRecordSet.MoveNext&lt;br /&gt;Loop&lt;/pre&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000099;"&gt;Another example of a similar script can be found on:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.cruto.com/resources/vbscript/vbscript-examples/misc/searchad/Search-for-All-Users-Using-an-LDAP-Query.asp"&gt;http://www.cruto.com/resources/vbscript/vbscript-examples/misc/searchad/Search-for-All-Users-Using-an-LDAP-Query.asp&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-3278747570584995867?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/3278747570584995867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/08/list-all-users-in-domain-using-ldap-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/3278747570584995867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/3278747570584995867'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/08/list-all-users-in-domain-using-ldap-and.html' title='List all users in domain using LDAP and VBS'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-5645671252896254811</id><published>2011-08-10T23:03:00.001-07:00</published><updated>2011-09-14T21:14:50.859-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AD LDS / ADAM'/><category scheme='http://www.blogger.com/atom/ns#' term='Active Directory'/><title type='text'>Connecting to the configuration partition of an LDS Instance</title><content type='html'>LDS Instances like Active Directory also have a Configuration Partition and a Schema Partition.  On TechNet it is documented:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;By default, the security principal that you specify as the AD LDS administrator during AD LDS setup becomes a member of the Administrators group in the configuration partition.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc731143.aspx"&gt;http://technet.microsoft.com/en-us/library/cc731143.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;How do I get to the configuration partition in an LDS Instance?&lt;br /&gt;&lt;br /&gt;Well if I connect to my application partition created during the LDS installation wizard and go to my Administrators, I can see nested inside is another Administrators group residing inside the Configuration Partition.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-j71n1bjswMk/TkN1ZplGYBI/AAAAAAAABjw/B5BmhtE-gW4/s1600/screenshot.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 264px;" src="http://2.bp.blogspot.com/-j71n1bjswMk/TkN1ZplGYBI/AAAAAAAABjw/B5BmhtE-gW4/s400/screenshot.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5639480241916633106" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I can now connect to this using ADSIEdit.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-fewdEW4CAKM/TkN12n7wHjI/AAAAAAAABj4/_SqM1FyrNgc/s1600/configurationpartition.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 392px; height: 387px;" src="http://4.bp.blogspot.com/-fewdEW4CAKM/TkN12n7wHjI/AAAAAAAABj4/_SqM1FyrNgc/s400/configurationpartition.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5639480739690978866" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Under the administrators group in the configuration partition I can find the account used when I installed the LDS Instance as per Microsoft documentation on TechNet.&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-5645671252896254811?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/5645671252896254811/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/08/connecting-to-configuration-partition.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/5645671252896254811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/5645671252896254811'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/08/connecting-to-configuration-partition.html' title='Connecting to the configuration partition of an LDS Instance'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-j71n1bjswMk/TkN1ZplGYBI/AAAAAAAABjw/B5BmhtE-gW4/s72-c/screenshot.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-4676396381203815875</id><published>2011-08-10T22:07:00.000-07:00</published><updated>2011-10-20T23:15:13.282-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AD LDS / ADAM'/><category scheme='http://www.blogger.com/atom/ns#' term='Active Directory'/><title type='text'>ADAMSync Aging</title><content type='html'>In this post I will describe Aging with ADAMSync. If you configure ADAMSync to replicate your Active Directory information to an LDS Instance, without aging deleted data from Active Directory will never be removed from LDS. For example if you delete a user object from your Active Directory database, this object will not be deleted from the LDS Instance when you run the next sync.&lt;br /&gt;&lt;br /&gt;The ADAMSync aging configuration is done under your ADAMSync XML configuration file.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#3333ff;"&gt;&amp;ltschedule&amp;gt&lt;br /&gt;&amp;ltaging&amp;gt&lt;br /&gt;&amp;ltfrequency&amp;gt0&amp;lt/frequency&amp;gt&lt;br /&gt;&amp;ltnum-objects&amp;gt0&amp;lt/num-objects&amp;gt&lt;br /&gt;&amp;lt/aging&amp;gt&lt;br /&gt;&amp;ltschtasks-cmd&amp;gt&amp;lt/schtasks-cmd&amp;gt&lt;br /&gt;&amp;lt/schedule&amp;gt&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The two configuration options you need to configure are frequency and num-objects.&lt;br /&gt;&lt;br /&gt;Frequency:&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc737713.aspx"&gt;http://technet.microsoft.com/en-us/library/cc737713.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;num-objects:&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc778153.aspx"&gt;http://technet.microsoft.com/en-us/library/cc778153.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Unfortunately the documentation on TechNet around these is very poor.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;color:#cc0000;"&gt;&lt;strong&gt;Frequency&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- If it's set to "0", the Aging will be skipped, AdamSync will return the following informaiton:&lt;br /&gt;a. Aging is skipped. &lt;br /&gt;b. The times since the last sync. &lt;br /&gt;&lt;br /&gt;- If it's larger than "0", system will compare its value with the number of times since the last sync:&lt;br /&gt;&lt;br /&gt;a. If its value is larger than the number of times since the last sync, Aging will be skipped, and the number of the times since the last sync will be increased by 1.&lt;br /&gt;b. if its value is not larger than the number of times since the last sync, Aging procedure will be called and the number of times since the last sync will be reset.&lt;br /&gt;&lt;br /&gt;Examples:&lt;br /&gt;&lt;br /&gt;- If the value is set to 0, aging will be not used.&lt;br /&gt;- If the value is set to 1, the aging will be called each time during the sync. &lt;br /&gt;- if it's set to 2, the aging will be called every two sync. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;color:#cc0000;"&gt;&lt;strong&gt;num-objects&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;num-objects is the number of objects that need to be aged per run. If you make this 0, it will always age all objects against Active Directory. If you make this 50, it will only age 50. When you perform the next sync, it will age the next 50. Don't worry all objects will eventually be aged... depends on how often you schedule task adamsync.exe to run!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;color:#cc0000;"&gt;&lt;strong&gt;Why was Aging developed?&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Please read this fantastic article by Eric Fleischman which explains why Aging was developed by Microsoft in ADAMSync.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.technet.com/b/efleis/archive/2006/10/28/change-visibility-in-the-directory-or-lack-there-of-aka-what-s-the-point-of-aging.aspx"&gt;http://blogs.technet.com/b/efleis/archive/2006/10/28/change-visibility-in-the-directory-or-lack-there-of-aka-what-s-the-point-of-aging.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Thankyou to James Li from the Directory Services Support Team at Microsoft for looking at the source code of ADAMSync.exe and explaining how the code works!  This information was published with written permission from Microsoft via email.&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-4676396381203815875?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/4676396381203815875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/08/adamsync-aging.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/4676396381203815875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/4676396381203815875'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/08/adamsync-aging.html' title='ADAMSync Aging'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-2863893657209870097</id><published>2011-08-08T20:19:00.001-07:00</published><updated>2011-12-14T18:19:04.629-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Server General'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Client General'/><title type='text'>How to find the server your DFS Namespace Client is talking to</title><content type='html'>When setting up Distributed File System Replication (DFSR) between multiple file servers, you may want to know which file server your DFS namesace client is communicating with.&lt;br /&gt;&lt;br /&gt;To find this out use the DFSUTIL program with the pktinfo switch. Any &lt;strong&gt;&lt;span style="color:#000000;"&gt;ACTIVE TARGETSET&lt;/span&gt;&lt;/strong&gt; servers are servers your workstation is currently talking to.&lt;br /&gt;&lt;br /&gt;dfsutil /pktinfo&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-PPzNNBbbZYo/TkCoIf_kFMI/AAAAAAAABjo/lXQYu2Qwokg/s1600/dfsutil.PNG"&gt;&lt;img style="WIDTH: 325px; HEIGHT: 400px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5638691597448385730" border="0" alt="" src="http://4.bp.blogspot.com/-PPzNNBbbZYo/TkCoIf_kFMI/AAAAAAAABjo/lXQYu2Qwokg/s400/dfsutil.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Alternatively you can right click in a DFS share under explorer and select Properties.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-uixkL7yMayo/TulYZtVFi7I/AAAAAAAABuU/7QF9AXOCu1Y/s1600/dfs1.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 281px;" src="http://3.bp.blogspot.com/-uixkL7yMayo/TulYZtVFi7I/AAAAAAAABuU/7QF9AXOCu1Y/s400/dfs1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5686173203219975090" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hit the DFS Tab&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-i6cGFf0h3VU/TulYf4EKWpI/AAAAAAAABug/zIMgDFXW4Rw/s1600/dfs2.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 314px; height: 400px;" src="http://1.bp.blogspot.com/-i6cGFf0h3VU/TulYf4EKWpI/AAAAAAAABug/zIMgDFXW4Rw/s400/dfs2.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5686173309180992146" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-2863893657209870097?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/2863893657209870097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/08/how-to-find-what-server-your-dfs.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2863893657209870097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2863893657209870097'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/08/how-to-find-what-server-your-dfs.html' title='How to find the server your DFS Namespace Client is talking to'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-PPzNNBbbZYo/TkCoIf_kFMI/AAAAAAAABjo/lXQYu2Qwokg/s72-c/dfsutil.PNG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-1891604060292660803</id><published>2011-08-08T20:07:00.000-07:00</published><updated>2011-08-08T20:16:02.827-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Applications'/><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><title type='text'>Word Crashes Dell XPS 15z Laptop</title><content type='html'>I just got a new Dell XPS 15z laptop. Microsoft word however continiously crashes generating the following error in event viewer:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#ff0000;"&gt;Log Name: Application&lt;br /&gt;Source: Application Error&lt;br /&gt;Date: 9/08/2011 9:42:22 AM&lt;br /&gt;Event ID: 1000&lt;br /&gt;Task Category: (100)&lt;br /&gt;Level: Error&lt;br /&gt;Keywords: Classic&lt;br /&gt;User: N/A&lt;br /&gt;Computer: Clint-PC&lt;br /&gt;Description:&lt;br /&gt;Faulting application name: WINWORD.EXE, version: 14.0.4762.1000, time stamp: 0x4bae25cd&lt;br /&gt;Faulting module name: btmofficea.dll, version: 1.0.0.49, time stamp: 0x4d382a1a&lt;br /&gt;Exception code: 0xc0000005&lt;br /&gt;Fault offset: 0x00000000000065ff&lt;br /&gt;Faulting process id: 0xd80&lt;br /&gt;Faulting application start time: 0x01cc56359222c86d&lt;br /&gt;Faulting application path: C:\Program Files\Microsoft Office\Office14\WINWORD.EXE&lt;br /&gt;Faulting module path: C:\Program Files (x86)\Intel\Bluetooth\btmofficea.dll&lt;br /&gt;Report Id: d2f29c37-c228-11e0-8b74-feb16a7ed552&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This was caused by the bluetooth module that comes with the laptop.  In word I went to file --&gt; options.  Under Add-Ins we see the bluetooth driver.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-1bTmtvJKS30/TkClqF_k8EI/AAAAAAAABjY/aeiNzQyEInM/s1600/bluetooth.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 325px;" src="http://3.bp.blogspot.com/-1bTmtvJKS30/TkClqF_k8EI/AAAAAAAABjY/aeiNzQyEInM/s400/bluetooth.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5638688876049788994" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Under COM Add-ins click Go.  Untick the send to bluetooth checkbox.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-R2oUaGqk1zc/TkCmRovV5GI/AAAAAAAABjg/gZ5nx9Iw8-w/s1600/bluetooth2.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 150px;" src="http://2.bp.blogspot.com/-R2oUaGqk1zc/TkCmRovV5GI/AAAAAAAABjg/gZ5nx9Iw8-w/s400/bluetooth2.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5638689555391833186" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-1891604060292660803?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/1891604060292660803/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/08/word-crashes-dell-xps-15z-laptop.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/1891604060292660803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/1891604060292660803'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/08/word-crashes-dell-xps-15z-laptop.html' title='Word Crashes Dell XPS 15z Laptop'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-1bTmtvJKS30/TkClqF_k8EI/AAAAAAAABjY/aeiNzQyEInM/s72-c/bluetooth.PNG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-6936890796816596470</id><published>2011-08-08T01:24:00.000-07:00</published><updated>2011-08-08T20:25:50.523-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Active Directory'/><title type='text'>AD Delegation - How to set default permissions for new group policy objects</title><content type='html'>When setting up Active Directory delegation, you want administrators to be able to maintain Group Policy without being a Domain Admin. If you read TechNet, Microsoft tells you to use Group Policy Creator Owners, please see:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc776858.aspx"&gt;http://technet.microsoft.com/en-us/library/cc776858.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Lets test it. We have a user named Jess. Jess is only a member of the domain users group. We add Jess to "Group Policy Creator Owners". Jess creates a group policy object called "Jess's Policy". Great, it worked. If we look at the permissions of "Jess's Policy" in group policy management console (GPMC), we see that she has permissions to the group policy object.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-15dr6MKJM-U/Tj-i56x9AYI/AAAAAAAABiY/Y67LNumoges/s1600/jesspolicy.png"&gt;&lt;img style="WIDTH: 400px; HEIGHT: 158px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5638404374406168962" border="0" alt="" src="http://2.bp.blogspot.com/-15dr6MKJM-U/Tj-i56x9AYI/AAAAAAAABiY/Y67LNumoges/s400/jesspolicy.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Jess does not have permissions to modify or edit any other group policy objects.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;color:#000099;"&gt;&lt;strong&gt;&lt;u&gt;The problem with Group Policy Creator Owners&lt;/u&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Lets say you have 10 administrators that need to make group policy changes. You add the 10 administrators to Group Policy Creator Owners. One administrator creates a group policy object. The others cannot read or modify the group policy object as only the administrator that created the group policy object owns it. The administrator that created the group policy object must remember to grant the other administrators access to the group policy object. This process needs to re-occur every time an administrator creates a new group policy object.&lt;br /&gt;&lt;br /&gt;I don't know why Microsoft recommends to use this approach for group policy delegation as it is not feasible.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;color:#000099;"&gt;&lt;strong&gt;&lt;u&gt;The Solution&lt;/u&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Change the template permissions in Active Directory!&lt;br /&gt;&lt;br /&gt;By default whenever you create a new GPO the following Active Directory system groups are granted access:&lt;br /&gt;- Authenticated Users&lt;br /&gt;- Domain Admins&lt;br /&gt;- Enterprise Admins&lt;br /&gt;- ENTERPRISE DOMAIN CONTROLLERS&lt;br /&gt;- SYSTEM&lt;br /&gt;&lt;br /&gt;These permissions are the "default" permission template for newly created group policy objects. We can add additional custom groups to this template by modifying the Active Directory Schema Partition.&lt;br /&gt;&lt;br /&gt;To do this use ADSIEdit and connect to the Schema Partition.&lt;br /&gt;&lt;br /&gt;View the properties for CN=Group-Policy-Contrainer&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-9HqOtNEseY0/Tj-rj3jgnNI/AAAAAAAABig/IeKwl3qVDpI/s1600/schema.png"&gt;&lt;img style="WIDTH: 400px; HEIGHT: 174px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5638413891187809490" border="0" alt="" src="http://1.bp.blogspot.com/-9HqOtNEseY0/Tj-rj3jgnNI/AAAAAAAABig/IeKwl3qVDpI/s400/schema.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The defaultSecurityDescriptor attribute contains the security template for all new group policy objects. By default the defaultSecurityDescriptor looks like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#3333ff;"&gt;D:P(A;CI;RPWPCCDCLCLOLORCWOWDSDDTSW;;;DA)(A;CI;RPWPCCDCLCLOLORCWOWDSDDTSW;;;EA)(A;CI;RPWPCCDCLCLOLORCWOWDSDDTSW;;;CO)(A;CI;RPWPCCDCLCLORCWOWDSDDTSW;;;SY)(A;CI;RPLCLORC;;;AU)(OA;CI;CR;edacfd8f-ffb3-11d1-b41d-00a0c968f939;;AU)(A;CI;LCRPLORC;;;ED)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Schema permissions are written by using the Security Descriptor Definition Language (SDDL).&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Note: These SID's will be different in your environment as the beginning of a SID is unique to the given domain.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;The beginning of each ACL states what permissions are set over the group or username entry. The second part shows the SID of the group/user account.&lt;br /&gt;&lt;br /&gt;I have created a group called AD-GPO-M that I want to add to the template permissions to ensure they get applied to all new group policy objects. We added the following to the end of my SDDL on the defaultSecurityDescriptor attribute. This is the SID that is append to the AD-GPO-M security group.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#3333ff;"&gt;(A;CI;RPWPCCDCLCLOLORCWOWDSDDTSW;;;S-1-5-21-1445357118-337764505-1417137283-24392)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;On the CN=Group-Policy-Contrainer Active Directory object, the defaultSecurityDescriptor attribute now reads:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#3333ff;"&gt;D:P(A;CI;RPWPCCDCLCLOLORCWOWDSDDTSW;;;DA)(A;CI;RPWPCCDCLCLOLORCWOWDSDDTSW;;;EA)(A;CI;RPWPCCDCLCLOLORCWOWDSDDTSW;;;CO)(A;CI;RPWPCCDCLCLORCWOWDSDDTSW;;;SY)(A;CI;RPLCLORC;;;AU)(OA;CI;CR;edacfd8f-ffb3-11d1-b41d-00a0c968f939;;AU)(A;CI;LCRPLORC;;;ED)(A;CI;RPWPCCDCLCLOLORCWOWDSDDTSW;;;S-1-5-21-1445357118-337764505-1417137283-24392)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-CP6L-JmwFGI/Tj_Hl_2BiwI/AAAAAAAABio/OwZTO9HAQ14/s1600/defaultSecurityDescriptor.PNG"&gt;&lt;img style="WIDTH: 373px; HEIGHT: 400px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5638444714098264834" border="0" alt="" src="http://2.bp.blogspot.com/-CP6L-JmwFGI/Tj_Hl_2BiwI/AAAAAAAABio/OwZTO9HAQ14/s400/defaultSecurityDescriptor.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now when I created a new group policy object (GPO) called "Test PCI Member Server" the following permissions were granted by default:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/--SrcZNTka-o/Tj_IT6XH8bI/AAAAAAAABiw/6dfRS_YIaVg/s1600/permissions.png"&gt;&lt;img style="WIDTH: 400px; HEIGHT: 172px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5638445502900466098" border="0" alt="" src="http://4.bp.blogspot.com/--SrcZNTka-o/Tj_IT6XH8bI/AAAAAAAABiw/6dfRS_YIaVg/s400/permissions.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This has now given your non-domain admins who are a member of this group permissions to administer this new group policy object.&lt;br /&gt;&lt;br /&gt;For any existing group policy objects they will not currently have access, however you can reset permissions to default which will pull the permissions down from the defaultSecurityDescriptor attribute.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-j2JbQdy448o/Tj_JSrSdoqI/AAAAAAAABi4/0oenE2KS-kg/s1600/restoredefaults.PNG"&gt;&lt;img style="WIDTH: 400px; HEIGHT: 300px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5638446581186142882" border="0" alt="" src="http://1.bp.blogspot.com/-j2JbQdy448o/Tj_JSrSdoqI/AAAAAAAABi4/0oenE2KS-kg/s400/restoredefaults.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;color:#000099;"&gt;&lt;strong&gt;&lt;u&gt;Where are these permissions set?&lt;/u&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Permissions for your group policy objects are maintained in two locations.&lt;br /&gt;- Active Directory&lt;br /&gt;- SYSVOL policies container&lt;br /&gt;&lt;br /&gt;Whenever you make a change to permissions on a group policy object in group policy management console (GPMC) it will modify permissions on both the Active Directory object and SYSVOL.&lt;br /&gt;&lt;br /&gt;In Active Directory the group policy objects are stored under your domain partition --&amp;gt; System --&amp;gt; Policies.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-avTmsU8mv0A/Tj_LJetdxlI/AAAAAAAABjA/zLGJ9wpsYLQ/s1600/GroupPolicyDomainPartition.PNG"&gt;&lt;img style="WIDTH: 400px; HEIGHT: 361px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5638448622214170194" border="0" alt="" src="http://4.bp.blogspot.com/-avTmsU8mv0A/Tj_LJetdxlI/AAAAAAAABjA/zLGJ9wpsYLQ/s400/GroupPolicyDomainPartition.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;color:#000099;"&gt;&lt;strong&gt;&lt;u&gt;Caution for Multi-Domain Forest&lt;/u&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In a multi-domain forest, your administrator account may reside in a Child Domain. You may be nested in the Schema Admins group in the forest root domain. When you use ADSIEdit to modify the CN=Group-Policy-Contrainer on the schema partition you may receive the following error:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#ff0000;"&gt;Operation failed. Error code: 0x202b&lt;br /&gt;A referral was returned from the server.&lt;br /&gt;&lt;br /&gt;0000202B: RefErr: DSID-030A0B09, data 0, 1 access points&lt;br /&gt;ref 1:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-kTQuMe_bxe4/Tj_MaBOEVCI/AAAAAAAABjI/wiJuUWXqrec/s1600/errorreferral.png"&gt;&lt;img style="WIDTH: 400px; HEIGHT: 183px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5638450005867254818" border="0" alt="" src="http://2.bp.blogspot.com/-kTQuMe_bxe4/Tj_MaBOEVCI/AAAAAAAABjI/wiJuUWXqrec/s400/errorreferral.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I found you need to connect to the schema master in your forest root domain to make this change in ADSIEdit. This resolved the problem.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-McrAE01lZ4U/Tj_NQgSJxzI/AAAAAAAABjQ/xZezADyG19M/s1600/connection.png"&gt;&lt;img style="WIDTH: 394px; HEIGHT: 385px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5638450941918824242" border="0" alt="" src="http://1.bp.blogspot.com/-McrAE01lZ4U/Tj_NQgSJxzI/AAAAAAAABjQ/xZezADyG19M/s400/connection.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-6936890796816596470?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/6936890796816596470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/08/ad-delegation-how-to-set-default.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/6936890796816596470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/6936890796816596470'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/08/ad-delegation-how-to-set-default.html' title='AD Delegation - How to set default permissions for new group policy objects'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-15dr6MKJM-U/Tj-i56x9AYI/AAAAAAAABiY/Y67LNumoges/s72-c/jesspolicy.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-2150777331784746176</id><published>2011-08-03T22:08:00.000-07:00</published><updated>2011-08-03T22:12:11.660-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><title type='text'>Single Instance Storage (SIS) gone</title><content type='html'>In previous versions of Exchange 2003-2007 there was a feature called SIS (Single Instance Storage).  This meant if an email was sent to multiple mailboxes in a distribution group, it would only get stored in a mailbox database once.  When designing database layout it was recommended you group users of a similar operational role under the same mailbox database.  This ensures when emails are sent to distribution groups, the email is only stored in the database once.&lt;br /&gt;&lt;br /&gt;In Exchange 2010, SIS has now been removed to help improve performance allowing low cost disk to be utilized.  This was one of the key factors in reducing disk I/O on the Exchange database.&lt;br /&gt;&lt;br /&gt;The decision behind this was around using low cost TIER2 SATA disk, who cares if emails are stored multiple times inside a database?&lt;br /&gt;&lt;br /&gt;Have a read of Ross Smith IV's article explaining this in more detail:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.technet.com/b/exchange/archive/2010/02/22/3409361.aspx"&gt;http://blogs.technet.com/b/exchange/archive/2010/02/22/3409361.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-2150777331784746176?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/2150777331784746176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/08/single-instance-storage-sis-gone.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2150777331784746176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2150777331784746176'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/08/single-instance-storage-sis-gone.html' title='Single Instance Storage (SIS) gone'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-5747164082762034634</id><published>2011-07-28T21:10:00.000-07:00</published><updated>2011-07-28T21:22:11.507-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Active Directory'/><title type='text'>ADMT Unable to create or merge object</title><content type='html'>I am performing domain migration and I ran into the following problem error in the migration logs for a user account:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;&lt;span style="font-size:78%;"&gt;2011-07-29 13:37:35 WRN1:7665 Unable to create or merge object 'CN=Joe Blow,OU=My Users,DC=domain,DC=local' as another instance of ADMT is currently creating or merging the same object.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;I had started migrating Joe Blow to the new forest using ADMT but then realised I hadn't started the Password Export Server on the source domain so I hit "Stop" to stop the migration. I then went and started Password Export Server and tried to migrate the account again. This is where I received the above error.&lt;br /&gt;&lt;br /&gt;What happened was ADMT recorded in the ADMT migration SQL database that the account is currently locked as its undergoing migration.&lt;br /&gt;&lt;br /&gt;I am using SQL Express 2005 on my ADMT 3.2 server on Windows Server 2008 R2. I went and downloaded SQL Management Studio Express 2005 from here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?id=8961"&gt;http://www.microsoft.com/download/en/details.aspx?id=8961&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I then found the location in the ADMT database where the account was locked. It is under the table dbo.LockedObjects.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-5BIWHMSQ2l4/TjI0_tDTNRI/AAAAAAAABiQ/MFHc-HzE3zs/s1600/admtsqllockout.PNG"&gt;&lt;img style="WIDTH: 400px; HEIGHT: 265px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5634624352823751954" border="0" alt="" src="http://2.bp.blogspot.com/-5BIWHMSQ2l4/TjI0_tDTNRI/AAAAAAAABiQ/MFHc-HzE3zs/s400/admtsqllockout.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After deleting this record I was able to successfully migrate the user.&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-5747164082762034634?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/5747164082762034634/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/07/admt-unable-to-create-or-merge-object.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/5747164082762034634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/5747164082762034634'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/07/admt-unable-to-create-or-merge-object.html' title='ADMT Unable to create or merge object'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-5BIWHMSQ2l4/TjI0_tDTNRI/AAAAAAAABiQ/MFHc-HzE3zs/s72-c/admtsqllockout.PNG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-8444892174453243630</id><published>2011-07-27T22:33:00.000-07:00</published><updated>2011-07-27T22:36:11.060-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Active Directory'/><title type='text'>Making Domain Controllers cover more then one site</title><content type='html'>When designing Active Directory sites and services, usually you decide which Active Directory site objects you want to place your domain controllers. Sites are usually mapped to physical locations but can also be logical depending on your design.&lt;br /&gt;&lt;br /&gt;However, there is a registry key on domain controllers that allows a domain controller to be authoritative for more then one site object in Active Directory. This registry key is known as SiteCoverage.&lt;br /&gt;&lt;br /&gt;For more information about this please see:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc937924.aspx"&gt;http://technet.microsoft.com/en-us/library/cc937924.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-8444892174453243630?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/8444892174453243630/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/07/making-domain-controllers-cover-more.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/8444892174453243630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/8444892174453243630'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/07/making-domain-controllers-cover-more.html' title='Making Domain Controllers cover more then one site'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-2683984121654145153</id><published>2011-07-27T22:16:00.000-07:00</published><updated>2011-07-27T22:32:20.230-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Server General'/><category scheme='http://www.blogger.com/atom/ns#' term='Active Directory'/><title type='text'>ADMT is unable to connect to domain controller.  0x80070005</title><content type='html'>I am performing cross forest migration from 2 AD forests, multiple domains into a new AD forest. When I added one of the domains within a source forest I received the following error:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#3333ff;"&gt;ADMT is unable to connect to domain controller&lt;br /&gt;\\domaincontroller.sourcedomain.local, in domain sourcedomain.local. Access is denied.&lt;br /&gt;(0x80070005)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-2N_6IL354Gw/TjDx6GZyFHI/AAAAAAAABh4/x4slpfVJbWw/s1600/admterror.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 154px;" src="http://1.bp.blogspot.com/-2N_6IL354Gw/TjDx6GZyFHI/AAAAAAAABh4/x4slpfVJbWw/s400/admterror.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5634269114293949554" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Morgan Che posted up multiple causes for this error on the following forum thread:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://social.technet.microsoft.com/Forums/en/winserverMigration/thread/f0e341f2-d00c-4bf7-925f-250af8530440"&gt;http://social.technet.microsoft.com/Forums/en/winserverMigration/thread/f0e341f2-d00c-4bf7-925f-250af8530440&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I had a different problem to the ones mentioned on the above forum thread. One of my forests was setup with whats called a single labelled domain name. ADMT was having difficulties communicating with all domains within the single labelled forest.&lt;br /&gt;&lt;br /&gt;To resolve this on the ADMT server I needed to add a DWORD registry key "AllowSingleLabelDnsDomain" with a decimal value of 1.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-AO8VzfhFfbg/TjD0GHTrIlI/AAAAAAAABiI/cCu-9r4YPHU/s1600/regedit.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 135px;" src="http://2.bp.blogspot.com/-AO8VzfhFfbg/TjD0GHTrIlI/AAAAAAAABiI/cCu-9r4YPHU/s400/regedit.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5634271519718449746" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;ADMT was then able to communicate with all domains in the forest which had a single labelled root domain.&lt;br /&gt;&lt;br /&gt;For more information on this registry key please see:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/300684"&gt;http://support.microsoft.com/kb/300684&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-2683984121654145153?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/2683984121654145153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/07/admt-is-unable-to-connect-to-domain.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2683984121654145153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2683984121654145153'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/07/admt-is-unable-to-connect-to-domain.html' title='ADMT is unable to connect to domain controller.  0x80070005'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-2N_6IL354Gw/TjDx6GZyFHI/AAAAAAAABh4/x4slpfVJbWw/s72-c/admterror.PNG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-3172844292290455108</id><published>2011-07-21T22:36:00.000-07:00</published><updated>2011-07-21T23:19:11.558-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Server General'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Client General'/><category scheme='http://www.blogger.com/atom/ns#' term='Active Directory'/><title type='text'>Understanding how "Log On To" works</title><content type='html'>In this article we will be having a look at how the Log On To list is populated. This is the list in windows XP/2003 where users can select which domain they are logging into from a drop down list.&lt;br /&gt;&lt;br /&gt;I decided to blog this as I spent a morning working out how this worked, and there is little documentation on the Internet.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;color:#3333ff;"&gt;&lt;strong&gt;So where does this list come from?&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The logon list is stored from a DomainCache registry key located under:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DomainCache&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-l_gD0sHknCM/TikPkJieOII/AAAAAAAABg4/fkBydyG1wWI/s1600/domaincache.PNG"&gt;&lt;img style="WIDTH: 353px; HEIGHT: 400px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5632049922713729154" border="0" alt="" src="http://2.bp.blogspot.com/-l_gD0sHknCM/TikPkJieOII/AAAAAAAABg4/fkBydyG1wWI/s400/domaincache.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;color:#3333ff;"&gt;&lt;strong&gt;How does this list populate?&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Windows populates the DomainCache registry key from a file called C:\WINDOWS\system32\config\netlogon.ftl.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-0mnH6kMoYW0/TikQfaRsmbI/AAAAAAAABhA/d4l91b1EG_c/s1600/netlogon.PNG"&gt;&lt;img style="WIDTH: 400px; HEIGHT: 377px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5632050940819052978" border="0" alt="" src="http://1.bp.blogspot.com/-0mnH6kMoYW0/TikQfaRsmbI/AAAAAAAABhA/d4l91b1EG_c/s400/netlogon.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The DomainCache registry key gets updated from netlogon.ftl as part of the computer boot process and whenever a remote desktop connection is established based on my testing.&lt;br /&gt;&lt;br /&gt;Here I added a string record to the DomainCache called CLINTY pointing at a fake domain called clint.local. I then locked my PC, you can see it appear in the list.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-6C6XIx2IbyA/TikSEEMlv3I/AAAAAAAABhQ/AyfWKjYIUQo/s1600/testclinty.PNG"&gt;&lt;img style="WIDTH: 299px; HEIGHT: 400px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5632052670058839922" border="0" alt="" src="http://1.bp.blogspot.com/-6C6XIx2IbyA/TikSEEMlv3I/AAAAAAAABhQ/AyfWKjYIUQo/s400/testclinty.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If I remote desktop my machine or reboot the PC, it repopulates the DomainCache from netlogon.ftl. Here I remote desktoped my PC, you can see in process monitor it did the repopulation.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-sx5tZIytWHQ/TikTvvLJaWI/AAAAAAAABhY/iucxBAhHS7E/s1600/procmon.PNG"&gt;&lt;img style="WIDTH: 400px; HEIGHT: 217px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5632054519841515874" border="0" alt="" src="http://3.bp.blogspot.com/-sx5tZIytWHQ/TikTvvLJaWI/AAAAAAAABhY/iucxBAhHS7E/s400/procmon.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When it repopulated the DomainCache from netlogon.ftl, it deleted my CLINTY record.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;color:#3333ff;"&gt;&lt;strong&gt;What populates netlogon.ftl?&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The netlogon.ftl file is populated from Active Directory by the netlogon service - I think this occurs when the system boots... but I'm not sure.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;color:#3333ff;"&gt;&lt;strong&gt;Where in Active Directory does netlogon.ftl populate from?&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It the defaultNamingContext partition under the System container. It populates from the TrustedDomain object types.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-S7xkO0DVZjw/TikVjfW0UcI/AAAAAAAABhg/z3LLvB5ZzjY/s1600/netlogonpopulation.PNG"&gt;&lt;img style="WIDTH: 400px; HEIGHT: 190px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5632056508460323266" border="0" alt="" src="http://1.bp.blogspot.com/-S7xkO0DVZjw/TikVjfW0UcI/AAAAAAAABhg/z3LLvB5ZzjY/s400/netlogonpopulation.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can also query this information using nltest or a VBScript:&lt;br /&gt;&lt;br /&gt;nltest /domain_trusts&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-uP21gmaem_o/TikWEqNkGFI/AAAAAAAABho/itxz-Sij2VE/s1600/querydomains.PNG"&gt;&lt;img style="WIDTH: 400px; HEIGHT: 182px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5632057078309984338" border="0" alt="" src="http://2.bp.blogspot.com/-uP21gmaem_o/TikWEqNkGFI/AAAAAAAABho/itxz-Sij2VE/s400/querydomains.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is a copy of the VB Script used in the above screenshot.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#3333ff;"&gt;' This code prints the trusts for the specified domain.&lt;br /&gt;' ------ SCRIPT CONFIGURATION ------&lt;br /&gt;strDomain = "wfi.wan"&lt;br /&gt;' ------ END CONFIGURATION ---------&lt;br /&gt;&lt;br /&gt;' Trust Direction Constants taken from NTSecAPI.h&lt;br /&gt;set objTrustDirectionHash = CreateObject("Scripting.Dictionary")&lt;br /&gt;objTrustDirectionHash.Add "DIRECTION_DISABLED", 0&lt;br /&gt;objTrustDirectionHash.Add "DIRECTION_INBOUND", 1&lt;br /&gt;objTrustDirectionHash.Add "DIRECTION_OUTBOUND", 2&lt;br /&gt;objTrustDirectionHash.Add "DIRECTION_BIDIRECTIONAL", 3&lt;br /&gt;&lt;br /&gt;' Trust Type Constants - taken from NTSecAPI.h&lt;br /&gt;set objTrustTypeHash = CreateObject("Scripting.Dictionary")&lt;br /&gt;objTrustTypeHash.Add "TYPE_DOWNLEVEL", 1&lt;br /&gt;objTrustTypeHash.Add "TYPE_UPLEVEL", 2&lt;br /&gt;objTrustTypeHash.Add "TYPE_MIT", 3&lt;br /&gt;objTrustTypeHash.Add "TYPE_DCE", 4&lt;br /&gt;&lt;br /&gt;' Trust Attribute Constants - taken from NTSecAPI.h&lt;br /&gt;set objTrustAttrHash = CreateObject("Scripting.Dictionary")&lt;br /&gt;objTrustAttrHash.Add "ATTRIBUTES_NON_TRANSITIVE", 1&lt;br /&gt;objTrustAttrHash.Add "ATTRIBUTES_UPLEVEL_ONLY", 2&lt;br /&gt;objTrustAttrHash.Add "ATTRIBUTES_QUARANTINED_DOMAIN", 4&lt;br /&gt;objTrustAttrHash.Add "ATTRIBUTES_FOREST_TRANSITIVE", 8&lt;br /&gt;objTrustAttrHash.Add "ATTRIBUTES_CROSS_ORGANIZATION", 16&lt;br /&gt;objTrustAttrHash.Add "ATTRIBUTES_WITHIN_FOREST", 32&lt;br /&gt;objTrustAttrHash.Add "ATTRIBUTES_TREAT_AS_EXTERNAL", 64&lt;br /&gt;&lt;br /&gt;set objRootDSE = GetObject("LDAP://" &amp;amp; strDomain &amp;amp; "/RootDSE")&lt;br /&gt;set objTrusts = GetObject("LDAP://cn=System," &amp;amp; _&lt;br /&gt;objRootDSE.Get("defaultNamingContext") )&lt;br /&gt;&lt;br /&gt;objTrusts.Filter = Array("trustedDomain")&lt;br /&gt;Wscript.Echo "Trusts for " &amp;amp; strDomain &amp;amp; ":"&lt;br /&gt;&lt;br /&gt;for each objTrust in objTrusts&lt;br /&gt;&lt;br /&gt;for each strFlag In objTrustDirectionHash.Keys&lt;br /&gt;if objTrustDirectionHash(strFlag) = objTrust.Get("trustDirection") then&lt;br /&gt;strTrustInfo = strTrustInfo &amp;amp; strFlag &amp;amp; " "&lt;br /&gt;end If&lt;br /&gt;next&lt;br /&gt;&lt;br /&gt;for each strFlag In objTrustTypeHash.Keys&lt;br /&gt;if objTrustTypeHash(strFlag) = objTrust.Get("trustType") then&lt;br /&gt;strTrustInfo = strTrustInfo &amp;amp; strFlag &amp;amp; " "&lt;br /&gt;end If&lt;br /&gt;next&lt;br /&gt;&lt;br /&gt;for each strFlag In objTrustAttrHash.Keys&lt;br /&gt;if objTrustAttrHash(strFlag) = objTrust.Get("trustAttributes") then&lt;br /&gt;strTrustInfo = strTrustInfo &amp;amp; strFlag &amp;amp; " "&lt;br /&gt;end If&lt;br /&gt;next&lt;br /&gt;&lt;br /&gt;WScript.Echo " " &amp;amp; objTrust.Get("trustPartner") &amp;amp; " : " &amp;amp; strTrustInfo&lt;br /&gt;strTrustInfo = ""&lt;br /&gt;next &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-3172844292290455108?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/3172844292290455108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/07/understanding-how-log-on-to-works.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/3172844292290455108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/3172844292290455108'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/07/understanding-how-log-on-to-works.html' title='Understanding how &quot;Log On To&quot; works'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-l_gD0sHknCM/TikPkJieOII/AAAAAAAABg4/fkBydyG1wWI/s72-c/domaincache.PNG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-331864232537602996</id><published>2011-07-21T01:04:00.000-07:00</published><updated>2011-07-21T01:16:41.111-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Server General'/><category scheme='http://www.blogger.com/atom/ns#' term='Active Directory'/><title type='text'>Disable SID Filtering - Access is denied.</title><content type='html'>I went and attempted to disable SID Filtering over some trust links to prepare for SID History during domain migration using the following command:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-size:78%;" &gt;netdom trust TrustingDomainName /domain: TrustedDomainName /quarantine:No /userD: domainadministratorAcct /passwordD: domainadminpwd&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc772816.aspx"&gt;http://technet.microsoft.com/en-us/library/cc772816.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When doing this I got the following error (click to enlarge):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-0cAYOpLAVZo/Tife2YwtVmI/AAAAAAAABgg/F1XdBt6pbe0/s1600/screenshot1.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 149px;" src="http://4.bp.blogspot.com/-0cAYOpLAVZo/Tife2YwtVmI/AAAAAAAABgg/F1XdBt6pbe0/s400/screenshot1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5631714884991145570" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After research I found the cause.  “Network access: Allow anonymous SID/name translation” was set to disabled on the Trusted Domain.  This this should be enabled on domain controllers – please see &lt;a href="http://technet.microsoft.com/en-us/library/cc728431.aspx"&gt;http://technet.microsoft.com/en-us/library/cc728431.aspx&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;To disable SID Filtering you must Enable anonymous SID/name translation on your Default Domain Controllers GPO for the Trusted Domain.&lt;br /&gt;&lt;br /&gt;I set it to enabled.  This policy is located under:&lt;br /&gt;&lt;br /&gt;Computer Configuration\Windows Settings\Security Settings\Local Policies\Security Options\&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-84paPDDM2ss/Tiff0ZTMzYI/AAAAAAAABgo/nArK1vzQ9pQ/s1600/fix.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 337px; height: 400px;" src="http://3.bp.blogspot.com/-84paPDDM2ss/Tiff0ZTMzYI/AAAAAAAABgo/nArK1vzQ9pQ/s400/fix.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5631715950287703426" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After this the problem was resolved:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-WVGj-jwpSVA/TifgK-8wHAI/AAAAAAAABgw/OccQUNMiBUM/s1600/screenshot2.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 124px;" src="http://1.bp.blogspot.com/-WVGj-jwpSVA/TifgK-8wHAI/AAAAAAAABgw/OccQUNMiBUM/s400/screenshot2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5631716338351217666" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Note: Access is denied can also be caused if you use NetBIOS names instead of FQDN's for the domain names.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-331864232537602996?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/331864232537602996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/07/disable-sid-filtering-access-is-denied.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/331864232537602996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/331864232537602996'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/07/disable-sid-filtering-access-is-denied.html' title='Disable SID Filtering - Access is denied.'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-0cAYOpLAVZo/Tife2YwtVmI/AAAAAAAABgg/F1XdBt6pbe0/s72-c/screenshot1.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-9130384288090847793</id><published>2011-07-18T22:36:00.000-07:00</published><updated>2011-07-18T22:45:42.128-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Applications'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Client General'/><title type='text'>Microsoft Sync Toy - Perfect for Home Users</title><content type='html'>Today I stumbled across a fantastic little application called Sync Toy.  Perfect for home users who want to backup data to a external drive on a regular basis, between computers or to mapped drive pointing to a cloud provider such as Windows Live.&lt;br /&gt;&lt;br /&gt;SyncToy 2.1 is a free application that synchronizes files and folders between locations. Typical uses include sharing files, such as photos, with other computers and creating backup copies of files and folders. &lt;br /&gt;&lt;br /&gt;It is so easy to use, I think my mum could do it.&lt;br /&gt;&lt;br /&gt;Here I have setup synchronization of My Documents to my Microsoft Windows Live SkyDrive cloud account to ensure my documents are backed up at all times.  This is a free service.  This also allows me to sync the files down to any new computer I work on.&lt;br /&gt;&lt;br /&gt;Z:\ is mapped to windows live cloud account.&lt;br /&gt;&lt;br /&gt;Please click to enlarge:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-B88NbGDTlbM/TiUZBAMWTLI/AAAAAAAABgY/-aYHM6adGWU/s1600/synctoycloud.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 184px;" src="http://2.bp.blogspot.com/-B88NbGDTlbM/TiUZBAMWTLI/AAAAAAAABgY/-aYHM6adGWU/s400/synctoycloud.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5630934414119029938" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As of this writing the latest version of SyncToy is 2.1.  The x86 and x64 version is available from here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?id=15155"&gt;http://www.microsoft.com/download/en/details.aspx?id=15155&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Note: If you wish to setup a drive letter mapped to your Windows Live SkyDrive service please see the following link:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.addictivetips.com/microsoft-office/map-local-drive-letter-to-live-skydrive-using-office-2010/"&gt;http://www.addictivetips.com/microsoft-office/map-local-drive-letter-to-live-skydrive-using-office-2010/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-9130384288090847793?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/9130384288090847793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/07/microsoft-sync-toy-perfect-for-home.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/9130384288090847793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/9130384288090847793'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/07/microsoft-sync-toy-perfect-for-home.html' title='Microsoft Sync Toy - Perfect for Home Users'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-B88NbGDTlbM/TiUZBAMWTLI/AAAAAAAABgY/-aYHM6adGWU/s72-c/synctoycloud.PNG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-4900075173047740239</id><published>2011-07-07T18:27:00.001-07:00</published><updated>2011-07-07T18:28:48.594-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scripting'/><title type='text'>Bind to AD using Alternative Credentials VBS</title><content type='html'>Below is a VBS Script by MVP Richard L. Mueller which I found very useful. It shows you how to connect to Active Directory using alternative credentials.&lt;br /&gt;&lt;br /&gt;Please view his original post here:&lt;br /&gt;&lt;a href="http://www.rlmueller.net/ADOAltCredentials.htm"&gt;http://www.rlmueller.net/ADOAltCredentials.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#3333ff;"&gt;Option Explicit&lt;br /&gt;&lt;br /&gt;Dim objRootDSE, strDNSDomain, adoCommand, adoConnection&lt;br /&gt;Dim strBase, strFilter, strAttributes, strQuery, adoRecordset&lt;br /&gt;Dim strDN, strUser, strPassword, objNS, strServer&lt;br /&gt;&lt;br /&gt;Const ADS_SECURE_AUTHENTICATION = &amp;amp;H1&lt;br /&gt;Const ADS_SERVER_BIND = &amp;amp;H200&lt;br /&gt;&lt;br /&gt;' Specify a server (Domain Controller).&lt;br /&gt;strServer = "MyServer"&lt;br /&gt;&lt;br /&gt;' Specify or prompt for credentials.&lt;br /&gt;strUser = "MyDomain\TestUser"&lt;br /&gt;strPassword = "xyz12345"&lt;br /&gt;&lt;br /&gt;' Determine DNS domain name. Use server binding and alternate&lt;br /&gt;' credentials. The value of strDNSDomain can also be hard coded.&lt;br /&gt;Set objNS = GetObject("LDAP:")&lt;br /&gt;Set objRootDSE = objNS.OpenDSObject("LDAP://" &amp;amp; strServer &amp;amp; "/RootDSE", _&lt;br /&gt;strUser, strPassword, _&lt;br /&gt;ADS_SERVER_BIND Or ADS_SECURE_AUTHENTICATION)&lt;br /&gt;strDNSDomain = objRootDSE.Get("defaultNamingContext")&lt;br /&gt;&lt;br /&gt;' Use ADO to search Active Directory.&lt;br /&gt;' Use alternate credentials.&lt;br /&gt;Set adoCommand = CreateObject("ADODB.Command")&lt;br /&gt;Set adoConnection = CreateObject("ADODB.Connection")&lt;br /&gt;adoConnection.Provider = "ADsDSOObject"&lt;br /&gt;adoConnection.Properties("User ID") = strUser&lt;br /&gt;adoConnection.Properties("Password") = strPassword&lt;br /&gt;adoConnection.Properties("Encrypt Password") = True&lt;br /&gt;adoConnection.Properties("ADSI Flag") = ADS_SERVER_BIND _&lt;br /&gt;Or ADS_SECURE_AUTHENTICATION&lt;br /&gt;adoConnection.Open "Active Directory Provider"&lt;br /&gt;Set adoCommand.ActiveConnection = adoConnection&lt;br /&gt;&lt;br /&gt;' Search entire domain. Use server binding.&lt;br /&gt;strBase = "&lt;ldap:&gt;&lt;br /&gt;' Search for all users.&lt;br /&gt;strFilter = "(&amp;amp;(objectCategory=person)(objectClass=user))"&lt;br /&gt;&lt;br /&gt;' Comma delimited list of attribute values to retrieve.&lt;br /&gt;strAttributes = "distinguishedName"&lt;br /&gt;&lt;br /&gt;' Construct the LDAP query.&lt;br /&gt;strQuery = strBase &amp;amp; ";" &amp;amp; strFilter &amp;amp; ";" _&lt;br /&gt;&amp;amp; strAttributes &amp;amp; ";subtree"&lt;br /&gt;&lt;br /&gt;' Run the query.&lt;br /&gt;adoCommand.CommandText = strQuery&lt;br /&gt;adoCommand.Properties("Page Size") = 100&lt;br /&gt;adoCommand.Properties("Timeout") = 30&lt;br /&gt;adoCommand.Properties("Cache Results") = False&lt;br /&gt;Set adoRecordset = adoCommand.Execute&lt;br /&gt;&lt;br /&gt;' Enumerate the resulting recordset.&lt;br /&gt;Do Until adoRecordset.EOF&lt;br /&gt;' Retrieve values.&lt;br /&gt;strDN = adoRecordset.Fields("distinguishedName").Value&lt;br /&gt;Wscript.Echo strDN&lt;br /&gt;adoRecordset.MoveNext&lt;br /&gt;Loop&lt;br /&gt;&lt;br /&gt;' Clean up.&lt;br /&gt;adoRecordset.Close&lt;br /&gt;adoConnection.Close &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-4900075173047740239?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/4900075173047740239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/07/bind-to-ad-using-alternative.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/4900075173047740239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/4900075173047740239'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/07/bind-to-ad-using-alternative.html' title='Bind to AD using Alternative Credentials VBS'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-8987356534508803</id><published>2011-07-07T18:23:00.000-07:00</published><updated>2011-07-07T18:24:34.035-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scripting'/><title type='text'>List all OU's and Sub OU's using VBS</title><content type='html'>Simple Script to list all OU's and Sub OU's using a VBScript&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#3333ff;"&gt;On Error Resume Next&lt;br /&gt;&lt;br /&gt;Const ADS_SCOPE_SUBTREE = 2&lt;br /&gt;&lt;br /&gt;Set objConnection = CreateObject("ADODB.Connection")&lt;br /&gt;Set objCommand = CreateObject("ADODB.Command")&lt;br /&gt;objConnection.Provider = "ADsDSOObject"&lt;br /&gt;objConnection.Open "Active Directory Provider"&lt;br /&gt;Set objCommand.ActiveConnection = objConnection&lt;br /&gt;&lt;br /&gt;objCommand.Properties("Page Size") = 1000&lt;br /&gt;objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE&lt;br /&gt;&lt;br /&gt;objCommand.CommandText = _&lt;br /&gt;"SELECT Name FROM 'LDAP://ou=finance,dc=fabrikam,dc=com' WHERE objectCategory='user'"&lt;br /&gt;Set objRecordSet = objCommand.Execute&lt;br /&gt;&lt;br /&gt;objRecordSet.MoveFirst&lt;br /&gt;Do Until objRecordSet.EOF&lt;br /&gt;Wscript.Echo objRecordSet.Fields("Name").Value&lt;br /&gt;objRecordSet.MoveNext&lt;br /&gt;Loop&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-8987356534508803?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/8987356534508803/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/07/list-all-ous-and-sub-ous-using-vbs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/8987356534508803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/8987356534508803'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/07/list-all-ous-and-sub-ous-using-vbs.html' title='List all OU&apos;s and Sub OU&apos;s using VBS'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-658838694169726215</id><published>2011-07-06T19:31:00.000-07:00</published><updated>2011-07-06T19:47:31.705-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Server General'/><category scheme='http://www.blogger.com/atom/ns#' term='Active Directory'/><title type='text'>The replication scope could not be set.  For more information, see "DNS zone replication in Active Directory</title><content type='html'>When configuring the DNS zones to replicate to all domains in the forest, instead of all domains just in the current domain the following error was experianced:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#ff0000;"&gt;"The replication scope could not be set. For more information, see "DNS zone replication in Active Directory" in Help and Support. The error was:&lt;br /&gt;&lt;br /&gt;There was a server failure.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To understand where DNS is stored in Active Directory please see:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://clintboessen.blogspot.com/2010/02/active-directory-dns-zone-locations.html"&gt;http://clintboessen.blogspot.com/2010/02/active-directory-dns-zone-locations.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When trying to connect to the DNS Domain Partition Zone using ADSI Edit (following the above article) the following error was received:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#ff0000;"&gt;Operation failed. Error code: 0x202b&lt;br /&gt;A referral was returned from the server.&lt;br /&gt;&lt;br /&gt;0000202B: RefErr: DSID-03100742, data 0, 1 access points&lt;br /&gt;ref 1 : 'DomainDnsZones.domain.local'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-L84njFlO-g0/ThUcOtHDHkI/AAAAAAAABgQ/dpvJLsZCAP0/s1600/dnserror.png"&gt;&lt;img style="WIDTH: 354px; HEIGHT: 400px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5626434348422209090" border="0" alt="" src="http://1.bp.blogspot.com/-L84njFlO-g0/ThUcOtHDHkI/AAAAAAAABgQ/dpvJLsZCAP0/s400/dnserror.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It turned out that the partitions "DomainDNSZones" and "ForestDNSZones" were a lost cause. To fix this you need to perform the following steps:&lt;br /&gt;&lt;br /&gt;1. use NTDSUtil to remove the replicas for both ForestDNSZone and DomainDNSZone. Wait for replication. Verify the changes took place then delete each of the partitions.&lt;br /&gt;&lt;br /&gt;2. After the deletion has processed to all domain controllers, go into DNS Management and change the Zone to Forest Level/Domain Level. Active Directory will automatically recreate the partition within Active Directory. These new AD application partitions will automatically replicate to all DNS servers. These will then be accessible through ADSI Edit.&lt;br /&gt;&lt;br /&gt;It may take over 30 minutes to get to synchronise the DNS zone around - AD is very slow when it comes to DNS.&lt;br /&gt;&lt;br /&gt;After this no errors are showing up in the DNS or Active Directory event logs, diagnostics come back clean.&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-658838694169726215?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/658838694169726215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/07/replication-scope-could-not-be-set-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/658838694169726215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/658838694169726215'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/07/replication-scope-could-not-be-set-for.html' title='The replication scope could not be set.  For more information, see &quot;DNS zone replication in Active Directory'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-L84njFlO-g0/ThUcOtHDHkI/AAAAAAAABgQ/dpvJLsZCAP0/s72-c/dnserror.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-5012722589460520341</id><published>2011-07-06T00:19:00.000-07:00</published><updated>2011-07-06T02:07:11.489-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><category scheme='http://www.blogger.com/atom/ns#' term='IIFP / MIIS / ILM / FIM'/><category scheme='http://www.blogger.com/atom/ns#' term='Active Directory'/><title type='text'>ILM Sample Code PrepareMoveRequest Exchange 2010 Cross Forest Mailbox Moves - Multi Forest</title><content type='html'>Microsoft Identity Lifecycle Manager Service Pack 1 Feature Pack 1 (ILM 2007 SP1 FP1) can be used to pre-stage the user accounts with the appropriate attributes in a destination forest for cross-forest mailbox moves  The out of the box GALSync MA cannot be used since it creates contact object instead of user object required for Online Mailbox Move.  Microsoft has provided a sample code extension for the management agents to perform this which can be downloaded from:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?id=17741"&gt;http://www.microsoft.com/download/en/details.aspx?id=17741&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The ILM sample code demonstrates how to sync source mailbox as Mail Enabled Users (MEU).&lt;br /&gt;&lt;br /&gt;The problem with this sample code is was only designed for migration between two forests.  My customer wishes to pre-stage user accounts from 2 forests into a new forest meaning I have two source forests!  In the OneWaySync.xml file by default we have:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&amp;lt?xml version="1.0" encoding="utf-8" ?&amp;gt&lt;br /&gt;&amp;ltconfig&amp;gt&lt;br /&gt;  &amp;ltTargetOU&amp;gtou=MaiLboxmoves,DC=targetdom,DC=exchange,DC=contoso,DC=com&amp;lt/TargetOU&amp;gt&lt;br /&gt;  &amp;ltSourceMAName&amp;gtSource Forest&amp;lt/SourceMAName&amp;gt&lt;br /&gt;  &amp;ltTargetMAName&amp;gtTarget Forest&amp;lt/TargetMAName&amp;gt&lt;br /&gt;&amp;lt/config&amp;gt&lt;/span&gt;&lt;/span&gt;  &lt;br /&gt;&lt;br /&gt;I worked with a Microsoft FIM (Forefront Identity Manager) expert named Tracy Yu and together we made changes to the sample code and recompiled a new DLL to account for multiple source forests.&lt;br /&gt;&lt;br /&gt;The file we needed to edit was Microsoft.Exchange.Sample.OneWayGALSync.MVRules.dll.  The source code for this file is located under the solution folder under the sample ILM sample code package in a file named Microsoft.Exchange.Sample.OneWayGALSync.MVRules.cs.  Here is our new code - in red are any changes made:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;// ---------------------------------------------------------------------------&lt;br /&gt;// &lt;copyright file="Microsoft.Exchange.Sample.OneWayGALSync.MVRules.cs" company="Microsoft"&gt;&lt;br /&gt;//     Copyright (c) Microsoft Corporation.  All rights reserved.&lt;br /&gt;// &lt;/copyright&gt;&lt;br /&gt;// ---------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;/// &lt;summary&gt;&lt;br /&gt;/// Example ILM 2007 Provisioning Rule to perform one-way cross-forest GAL synchronization&lt;br /&gt;/// with required prerequisites for mailbox moves from source to target forests&lt;br /&gt;/// &lt;/summary&gt;&lt;br /&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Xml;&lt;br /&gt;using Microsoft.MetadirectoryServices;&lt;br /&gt;&lt;br /&gt;namespace Microsoft.Exchange.Sample.OneWayGALSync.MVRules&lt;br /&gt;{&lt;br /&gt;   public class MVExtensionObject : IMVSynchronization&lt;br /&gt;   {&lt;br /&gt;       // define variables for configuration setting&lt;br /&gt;       private string targetOU;&lt;br /&gt;       private string sourceMAName;&lt;br /&gt;       &lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;//add by tracy&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;        private string sourceMAName1;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;        private string targetMAName;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;       public MVExtensionObject()&lt;br /&gt;       {&lt;br /&gt;           // No additional constructor logic required&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       void IMVSynchronization.Initialize()&lt;br /&gt;       {&lt;br /&gt;           // initialize the provisioning rules configuration parameters&lt;br /&gt;           // from config file in ILM Extensions directory&lt;br /&gt;           XmlDocument xmlConfigFile = new XmlDocument();&lt;br /&gt;           xmlConfigFile.Load(Utils.ExtensionsDirectory + "\\OneWaySync.xml");&lt;br /&gt;           XmlNode xmlConfig = xmlConfigFile.SelectSingleNode("config");&lt;br /&gt;           targetOU = xmlConfig.SelectSingleNode("TargetOU").InnerText.Trim();&lt;br /&gt;           sourceMAName = xmlConfig.SelectSingleNode("SourceMAName").InnerText.Trim();&lt;br /&gt;           targetMAName = xmlConfig.SelectSingleNode("TargetMAName").InnerText.Trim();&lt;br /&gt;           &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;//add by tracy&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;            sourceMAName1 = xmlConfig.SelectSingleNode("SourceMAName1").InnerText.Trim();&lt;/span&gt;&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       void IMVSynchronization.Terminate()&lt;br /&gt;       {&lt;br /&gt;           // No additional termination logic required&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       // For each Mailbox in the Source Forest Provision a connected&lt;br /&gt;       // Mail User object in the Target Forest.&lt;br /&gt;       void IMVSynchronization.Provision(MVEntry mventry)&lt;br /&gt;       {&lt;br /&gt;          // ConnectedMA sourceMA = mventry.ConnectedMAs[sourceMAName];&lt;br /&gt;           //ConnectedMA targetMA = mventry.ConnectedMAs[targetMAName];&lt;br /&gt;           //CSEntry csentry;&lt;br /&gt;&lt;br /&gt;           &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;//modify by tracy&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;        &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;            ConnectedMA targetMA = mventry.ConnectedMAs[targetMAName];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;            CSEntry csentry;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;            ConnectedMA sourceMA = null;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;            ConnectedMACollection MACols = mventry.ConnectedMAs;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;            &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;            foreach(ConnectedMA tmpMA in MACols)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;            {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;                if(tmpMA.Name == sourceMAName1)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;                {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;                   sourceMA = mventry.ConnectedMAs[sourceMAName1];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;                }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;                else if (tmpMA.Name == targetMAName)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;                {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;                    //did nothing&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;                }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;                else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;                {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;                   sourceMA = mventry.ConnectedMAs[sourceMAName];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;                }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;            }&lt;/span&gt;&lt;br /&gt;         &lt;br /&gt;&lt;br /&gt;           // if the object has been deleted from Source Forest then delete it&lt;br /&gt;           // from Target Forest&lt;br /&gt;           if (sourceMA.Connectors.Count == 0)&lt;br /&gt;           {&lt;br /&gt;               targetMA.Connectors.DeprovisionAll();&lt;br /&gt;               return;&lt;br /&gt;           }&lt;br /&gt;&lt;br /&gt;           // This example provisioning rule excludes certain Exchange object types&lt;br /&gt;           if (sourceMA.Connectors.Count != 1 ||&lt;br /&gt;               !mventry["msExchHomeServerName"].IsPresent ||&lt;br /&gt;               !mventry["mailNickName"].IsPresent)&lt;br /&gt;           {&lt;br /&gt;               return;&lt;br /&gt;           }&lt;br /&gt;&lt;br /&gt;           ReferenceValue targetDN = targetMA.EscapeDNComponent("CN=" + mventry["cn"].Value).Concat(targetOU);&lt;br /&gt;&lt;br /&gt;            // check for Contacts in target forest that have to be converted to MEUs&lt;br /&gt;            for (int index = 0; index &lt; targetMA.Connectors.Count; index++)&lt;br /&gt;            {&lt;br /&gt;                if (targetMA.Connectors.ByIndex[index].ObjectType.ToLower().Equals("contact"))&lt;br /&gt;                {&lt;br /&gt;                    bool duplicateDN = targetMA.Connectors.ByIndex[index].DN.ToString().ToLower().Equals(targetDN.ToString().ToLower());&lt;br /&gt;&lt;br /&gt;                    targetMA.Connectors.ByIndex[index].Deprovision();&lt;br /&gt;                    if (duplicateDN)&lt;br /&gt;                        return;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            if (targetMA.Connectors.Count != 0)&lt;br /&gt;                return;&lt;br /&gt;&lt;br /&gt;            // provision a new AD User Object in the targetOU container&lt;br /&gt;            csentry = targetMA.Connectors.StartNewConnector("user");&lt;br /&gt;            csentry.DN = targetDN;&lt;br /&gt;&lt;br /&gt;            // provision the following minimal attributes on the new MailUser object&lt;br /&gt;            csentry["samAccountName"].Value = mventry["samAccountName"].Value;&lt;br /&gt;            csentry["msexchRecipientTypeDetails"].IntegerValue = 0x80;// MailUser&lt;br /&gt;            csentry["userAccountControl"].IntegerValue = 0x202;   // ACCOUNTDISABLE | NORMAL_ACCOUNT &lt;br /&gt;            csentry["msexchRecipientDisplayType"].IntegerValue = -1073741818; // equivalent to *unsigned* 0xC0000006 i.e. ACL-able, Synced, MailUser &lt;br /&gt;            csentry["msExchMasterAccountSID"].Value = mventry["msExchMasterAccountSID"].IsPresent ? mventry["msExchMasterAccountSID"].Value : mventry["objectSID"].Value;&lt;br /&gt;            csentry["msExchMailboxGUID"].Value = mventry["msExchMailboxGUID"].Value;&lt;br /&gt;            csentry["mailNickname"].Value = mventry["mailNickname"].Value;&lt;br /&gt;            csentry["proxyAddresses"].Values = mventry["proxyAddresses"].Values;&lt;br /&gt;            csentry["proxyAddresses"].Values.Add("X500:" + mventry["legacyExchangeDN"].Value); // this ensures migrated mail that addresses this user is reply-able in target forest &lt;br /&gt;            csentry["msExchVersion"].IntegerValue = 44220983382016; // Set version to E14&lt;br /&gt;&lt;br /&gt;            csentry.CommitNewConnector();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        bool IMVSynchronization.ShouldDeleteFromMV(CSEntry csentry, MVEntry mventry)&lt;br /&gt;        {&lt;br /&gt;            throw new EntryPointNotImplementedException();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now when we can create two source domains in our OneWaySync.xml file for two source management agents.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&amp;lt?xml version="1.0" encoding="utf-8" ?&amp;gt&lt;br /&gt;&amp;ltconfig&amp;gt&lt;br /&gt;  &amp;ltTargetOU&amp;gtou=MaiLboxmoves,DC=targetdom,DC=exchange,DC=contoso,DC=com&amp;lt/TargetOU&amp;gt&lt;br /&gt;  &amp;ltSourceMAName&amp;gtSource Forest 1&amp;lt/SourceMAName&amp;gt&lt;br /&gt;  &amp;ltSourceMAName1&amp;gtSource Forest 2&amp;lt/SourceMAName1&amp;gt&lt;br /&gt;  &amp;ltTargetMAName&amp;gtTarget Forest&amp;lt/TargetMAName&amp;gt&lt;br /&gt;&amp;lt/config&amp;gt&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Thanks Tracy!&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-5012722589460520341?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/5012722589460520341/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/07/ilm-sample-code-preparemoverequest.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/5012722589460520341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/5012722589460520341'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/07/ilm-sample-code-preparemoverequest.html' title='ILM Sample Code PrepareMoveRequest Exchange 2010 Cross Forest Mailbox Moves - Multi Forest'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-8696337040828770671</id><published>2011-07-06T00:09:00.000-07:00</published><updated>2011-07-06T00:17:22.268-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IIFP / MIIS / ILM / FIM'/><category scheme='http://www.blogger.com/atom/ns#' term='Active Directory'/><title type='text'>stopped-error-limit</title><content type='html'>I was using ILM (Identity Lifecycle Manager) to synchronize users cross forest to prepare for cross-forest mailbox moves using the sample code provided by Microsoft.  Please see:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?id=17741"&gt;http://www.microsoft.com/download/en/details.aspx?id=17741&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I was synchronizing over 5000 users to the new forest.  Synchronization was failing with &lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;stopped-error-limit&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" http://www.blogger.com/img/blank.gifhref="http://3.bp.blogspot.com/-oXZHwd4ESHo/ThQK6LMgQUI/AAAAAAAABgA/XODCdrrMM0s/s1600/stopped-error-limit.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 227px;" src="http://3.bp.blogspot.com/-oXZHwd4ESHo/ThQK6LMgQUI/AAAAAAAABgA/XODCdrrMM0s/s400/stopped-error-limit.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5626133829046518082" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I found out that MIIS / ILM and FIM only allow up to 5000 objects by default.  You can change this with a DWORD in the registry which you create under HKLM\SYSTEM\CurrentControlSet\miisserver\Parameters.  This is documented by Microsoft on &lt;a href="http://support.microsoft.com/kb/2387673"&gt;KB2387673&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I set my limit to 10,000 which resolved the problem.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-N9U-SIO7lHg/ThQL2LKG_6I/AAAAAAAABgI/garEkoh6uyM/s1600/errorlimitregkey.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 208px;" src="http://1.bp.blogspot.com/-N9U-SIO7lHg/ThQL2LKG_6I/AAAAAAAABgI/garEkoh6uyM/s400/errorlimitregkey.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5626134859828625314" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-8696337040828770671?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/8696337040828770671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/07/stopped-error-limit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/8696337040828770671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/8696337040828770671'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/07/stopped-error-limit.html' title='stopped-error-limit'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-oXZHwd4ESHo/ThQK6LMgQUI/AAAAAAAABgA/XODCdrrMM0s/s72-c/stopped-error-limit.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-2813454964915652601</id><published>2011-06-28T20:18:00.000-07:00</published><updated>2011-06-28T20:21:27.558-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Applications'/><title type='text'>Microsoft Office 2010 SP1 Released</title><content type='html'>Microsoft Office 2010 Service Pack 1 has now been officially released by Microsoft as of June 28th 2011.&lt;br /&gt;&lt;br /&gt;The official KB for this release is &lt;a href="http://support.microsoft.com/KB/2460049"&gt;2460049&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Download the 32bit version from here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=9D2E1282-8B69-418B-AFA0-9F61239EC8BE"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=9D2E1282-8B69-418B-AFA0-9F61239EC8BE&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Download the 64bit version from here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=E9F3C2D0-C321-4910-A4CE-B2F294B42D65"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=E9F3C2D0-C321-4910-A4CE-B2F294B42D65&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-2813454964915652601?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/2813454964915652601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/06/microsoft-office-2010-sp1-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2813454964915652601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2813454964915652601'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/06/microsoft-office-2010-sp1-released.html' title='Microsoft Office 2010 SP1 Released'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-4985498600738681329</id><published>2011-06-22T00:02:00.000-07:00</published><updated>2011-06-22T00:13:57.695-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><title type='text'>WARNING: An unexpected error has occurred and a Watson dump is being generated: Failed to find the mailbox.</title><content type='html'>In this post I'm going to address a very common problem many new Exchange 2010 Administrators face.&lt;br /&gt;&lt;br /&gt;When running commands such as Test-OutlookWebServices on an Exchange 2010 CAS you will receive the following error:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#ff0000;"&gt;[PS] C:\&amp;gt;Test-OutlookWebServices&lt;br /&gt;WARNING: An unexpected error has occurred and a Watson dump is being generated: Failed to find the mailbox. Mailbox ='extest_0f9a03d82a6d4@destination.local'.&lt;br /&gt;Failed to find the mailbox. Mailbox = 'extest_0f9a03d82a6d4@destination.local'.&lt;br /&gt;+ CategoryInfo : NotSpecified: (:) [Test-OutlookWebServices], MailboxNotFoundException&lt;br /&gt;+ FullyQualifiedErrorId : Microsoft.Exchange.Monitoring.MailboxNotFoundException,Microsoft.Exchange.Management.SystemConfigurationTasks.TestOutlookWebServicesTask&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-s7mA3p7c080/TgGVaPG-eEI/AAAAAAAABfw/Bl-ggIaD-JY/s1600/problem.PNG"&gt;&lt;img style="WIDTH: 400px; HEIGHT: 146px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5620938087900018754" border="0" alt="" src="http://2.bp.blogspot.com/-s7mA3p7c080/TgGVaPG-eEI/AAAAAAAABfw/Bl-ggIaD-JY/s400/problem.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This is probally the first time you have run the Test command isn't it? In Exchange 2010 you need a test mailbox to perform tests with. This can be created using the new-TestCasConnectivityUser.ps1 powershell script Microsoft provides us with Exchange 2010.&lt;br /&gt;&lt;br /&gt;All you need to do is navigate to the Scripts directory:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;&lt;strong&gt;C:\Program Files\Microsoft\Exchange Server\V14\Scripts&lt;/strong&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then run &lt;span style="color:#000000;"&gt;&lt;strong&gt;.\new-TestCasConnectivityUser.ps1 &lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Provide the test mailbox a password when prompted...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-JMJPbxGRFFw/TgGWJE8Y5rI/AAAAAAAABf4/FjTDRY6Cjyg/s1600/resolution.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 262px;" src="http://4.bp.blogspot.com/-JMJPbxGRFFw/TgGWJE8Y5rI/AAAAAAAABf4/FjTDRY6Cjyg/s400/resolution.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5620938892625110706" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Easy?&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-4985498600738681329?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/4985498600738681329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/06/warning-unexpected-error-has-occurred.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/4985498600738681329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/4985498600738681329'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/06/warning-unexpected-error-has-occurred.html' title='WARNING: An unexpected error has occurred and a Watson dump is being generated: Failed to find the mailbox.'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-s7mA3p7c080/TgGVaPG-eEI/AAAAAAAABfw/Bl-ggIaD-JY/s72-c/problem.PNG' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-2364400761698192684</id><published>2011-06-20T17:55:00.000-07:00</published><updated>2011-09-14T21:17:03.109-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AD LDS / ADAM'/><category scheme='http://www.blogger.com/atom/ns#' term='Active Directory'/><title type='text'>Error 49: ldap_simple_bind_s() failed: Invalid Credentials</title><content type='html'>I have setup a Windows Server 2008 R2 server running LDS.  I have an LDS Instance running on 10001 (LDAP) and 20001 (LDAPS).&lt;br /&gt;&lt;br /&gt;I added a user account using the following:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;dn: CN=testaccount,CN=Users,DC=domain,DC=ADAM&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;changetype: add&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;objectClass: user&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;userPrincipalName: testaccount&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;cn: testaccount&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;displayName: My Test Account&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;userPassword: Passw0rd&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Note: As the requirement for special formatting of unicodePwd has been lifted Microsoft has placed a default requirement to ensure all password operations are done through LDAPS instead of LDAP.  To allow password operations through LDAP please see:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://clintboessen.blogspot.com/2011/06/0x2077-illegal-modify-operation-some.html"&gt;http://clintboessen.blogspot.com/2011/06/0x2077-illegal-modify-operation-some.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When I attempt to bind to this account using ldp.exe using "Simple Bind" over LDAP (not secure LDAP) using the following credentials I get an error:&lt;br /&gt;&lt;br /&gt;username: CN=testaccount,CN=Users,DC=domain,DC=ADAM&lt;br /&gt;password: Passw0rd&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-size:78%;" &gt;-----------&lt;br /&gt;res = ldap_simple_bind_s(ld, 'CN=testaccount,CN=Users,DC=domain,DC=ADAM', &lt;unavailable&gt;); // v.3&lt;br /&gt;Error &amp;lt;49&amp;gt;: ldap_simple_bind_s() failed: Invalid Credentials&lt;br /&gt;Server error: 8009030C: LdapErr: DSID-0C0903A9, comment: AcceptSecurityContext error, data 2030, v1db0&lt;br /&gt;Error 0x8009030C The logon attempt failed&lt;br /&gt;-----------&lt;/unavailable&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-Mhn_G7NFD0A/Tf_2T6TVG5I/AAAAAAAABew/pptjarWl3JA/s1600/authenticationerror.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 82px;" src="http://2.bp.blogspot.com/-Mhn_G7NFD0A/Tf_2T6TVG5I/AAAAAAAABew/pptjarWl3JA/s400/authenticationerror.PNG" alt="" id="BLOGGER_PHOTO_ID_5620481681909947282" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There were three things I needed to change to get this working.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:180%;" &gt;&lt;span style="font-weight: bold;"&gt;&lt;u&gt;Problem 1&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I read from multiple places on the internet that by default when you associate a password to an account - the account is disabled.  I also know that this error can be related to the user account being disabled - please see:&lt;br /&gt;&lt;a href="http://www.blogger.com/%20http://social.technet.microsoft.com/Forums/en-US/winserverDS/thread/44d29c43-4203-400a-bff4-c488da5c5f57/"&gt;&lt;br /&gt;http://social.technet.microsoft.com/Forums/en-US/winserverDS/thread/44d29c43-4203-400a-bff4-c488da5c5f57/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;However the attribute which sets the account password to disabled "msDS-UserAccountDisabled" &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;was not associated with the user class object in the schema&lt;/span&gt;.  AD LDS has a series of attributes to control a user account for items such as Account Lockout, Account Disabled, Password Never Expires, User Cannot Change Password etc.  For a list of these attributes please see:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa772124.aspx"&gt;http://msdn.microsoft.com/en-us/library/aa772124.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Note: Active Directory does not have these attributes, instead all these values are associated with an attribute called userAccountControl.  This attribute has an integer set to it.. 512 is a normal account.  To disable an account add a value of 2. In decimal, this is 514 (2 + 512).  For more information on how this works in Active Directory please see: &lt;a href="http://support.microsoft.com/kb/305144"&gt;http://support.microsoft.com/kb/305144&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To associate these attributes with the user class object you need to connect to the LDS Instance using the Active Directory Schema Console.  If Active Directory Schema does not exist in your MMC snap-in list register it using "regsrv32 schmmgmt.dll" from command line.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Note: When connecting to your LDS Instance you cannot use localhost or it will fail.  You must use the IP address of the LDS Instance.  This is due to a code error in the Active Directory schema console, please see:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://clintboessen.blogspot.com/2011/06/lds-active-directory-schema-status.html"&gt;http://clintboessen.blogspot.com/2011/06/lds-active-directory-schema-status.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Once connected to your LDS Instance in Active Directory Schema MMC snap-in go to the properties of the user class object and click the attributes tab.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-Oo65EXr1T98/Tf_zzecg44I/AAAAAAAABeY/yfzfOZ8jYdM/s1600/userclass.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 364px; height: 400px;" src="http://3.bp.blogspot.com/-Oo65EXr1T98/Tf_zzecg44I/AAAAAAAABeY/yfzfOZ8jYdM/s400/userclass.PNG" alt="" id="BLOGGER_PHOTO_ID_5620478925653205890" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As you see none of the msDS-User type class objects exist.  Go ahead and add the following attributes:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;- ms-DS-UserAccountAutoLocked&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;- msDS-UserAccountDisabled&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;- msDS-UserDontExpirePassword&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;- ms-DS-UserEncryptedTextPassword&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;- msDS-UserPasswordExpired&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;- ms-DS-UserPasswordNotRequired&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-mdTzd8YnegI/Tf_06zPuq5I/AAAAAAAABeg/cb2TC6Ma_qY/s1600/userclass2.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 365px; height: 400px;" src="http://3.bp.blogspot.com/-mdTzd8YnegI/Tf_06zPuq5I/AAAAAAAABeg/cb2TC6Ma_qY/s400/userclass2.PNG" alt="" id="BLOGGER_PHOTO_ID_5620480151007439762" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After the attribute is added, restart your LDS Instance service and connect to the application partition in ADSIEdit containing your user account.  Set the msDS-UserAccountDisabled to FALSE.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-Ix_kfSVl5p0/Tf_1tMQaU0I/AAAAAAAABeo/ghjLgLsIIVQ/s1600/disabledaccount.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 363px; height: 400px;" src="http://4.bp.blogspot.com/-Ix_kfSVl5p0/Tf_1tMQaU0I/AAAAAAAABeo/ghjLgLsIIVQ/s400/disabledaccount.PNG" alt="" id="BLOGGER_PHOTO_ID_5620481016714646338" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:180%;" &gt;&lt;span style="font-weight: bold;"&gt;&lt;u&gt;Problem 2&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You must allow Simple Bind requests to an AD LDS Instance over standard LDAP.  To do this connect to the configuration partition on your LDS Instance using ADSIEdit.  My instance is listening on TCP 10001.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-tJy_pPug7ks/Tf_3ibJvfvI/AAAAAAAABe4/LM6R_TzBcOc/s1600/ADSIEdit.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 392px; height: 386px;" src="http://2.bp.blogspot.com/-tJy_pPug7ks/Tf_3ibJvfvI/AAAAAAAABe4/LM6R_TzBcOc/s400/ADSIEdit.PNG" alt="" id="BLOGGER_PHOTO_ID_5620483030757900018" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Navigate to:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,CN={GUID}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Open the properties of Directory Service.  Open the multivalued attribute msDS-Other-Settings.  Ensure RequireSecureSimpleBind is set to 0.  This will ensure that both LDAP and LDAPS connections are allowed to bind authentication to the LDS Instance.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-27a9OHADSnU/Tf_4Ptld3-I/AAAAAAAABfA/RbfFaauJ29w/s1600/ADSIEdit2.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 367px;" src="http://1.bp.blogspot.com/-27a9OHADSnU/Tf_4Ptld3-I/AAAAAAAABfA/RbfFaauJ29w/s400/ADSIEdit2.PNG" alt="" id="BLOGGER_PHOTO_ID_5620483808800137186" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Note: RequireSecureProxyBind is for userProxy class objects which perform bind proxy redirection.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:180%;" &gt;&lt;span style="font-weight: bold;"&gt;&lt;u&gt;Problem 3&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The third problem related to the following TechNet article:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc732460.aspx"&gt;http://technet.microsoft.com/en-us/library/cc732460.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This article states:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;AD LDS does not include any default security principals. However, AD LDS does provide importable schema extensions that you can use to create users in AD LDS. Users that are created from these user classes can be used as security principals. In addition, &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;you can make any object class in the AD LDS schema a security principal by adding the msDS-bindableobject auxiliary class and the unicodePwd attribute to the schema definition of an object class&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;.&lt;/span&gt; Each AD LDS security principal must be assigned an account and password, which AD LDS uses for authentication. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To do this open up ADSIEdit and connect to the Schema partition of your LDS Instance.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-7GkxlE8M6kI/Tf_6322SUPI/AAAAAAAABfI/hQD-FEig7o0/s1600/schemaconnect.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 393px; height: 388px;" src="http://3.bp.blogspot.com/-7GkxlE8M6kI/Tf_6322SUPI/AAAAAAAABfI/hQD-FEig7o0/s400/schemaconnect.PNG" alt="" id="BLOGGER_PHOTO_ID_5620486697504624882" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Navigate to the CN=User class object in ADSIEdit under the Schema partition and open its properties.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-_F8ijRV_MtE/Tf_7XQruiAI/AAAAAAAABfQ/kztXAtuz-CQ/s1600/cnuserproperties.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 297px; height: 266px;" src="http://1.bp.blogspot.com/-_F8ijRV_MtE/Tf_7XQruiAI/AAAAAAAABfQ/kztXAtuz-CQ/s400/cnuserproperties.PNG" alt="" id="BLOGGER_PHOTO_ID_5620487237015603202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As you see the msDS-bindableobject auxiliary class does not exist.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-bngzNSQ5Nwc/Tf_8behM1-I/AAAAAAAABfY/GVYyU9np0aI/s1600/auxiliaryClass.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 362px;" src="http://3.bp.blogspot.com/-bngzNSQ5Nwc/Tf_8behM1-I/AAAAAAAABfY/GVYyU9np0aI/s400/auxiliaryClass.PNG" alt="" id="BLOGGER_PHOTO_ID_5620488408960653282" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Add it to the list and click OK.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-SplQDAEEZCU/Tf_9AtZgU8I/AAAAAAAABfg/lRNOqG9YEPs/s1600/auxiliaryClass2.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 353px;" src="http://4.bp.blogspot.com/-SplQDAEEZCU/Tf_9AtZgU8I/AAAAAAAABfg/lRNOqG9YEPs/s400/auxiliaryClass2.PNG" alt="" id="BLOGGER_PHOTO_ID_5620489048610067394" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Restart the LDS Instance under the services MMC console.&lt;br /&gt;&lt;br /&gt;Reset the user's password by connecting to the appropriate application partition in ADSIEdit, right clicking on the user and clicking Reset Password.&lt;br /&gt;&lt;br /&gt;I was now ale to perform a simple bind to my LDS Instance using a LDS user account.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-size:78%;" &gt;-----------&lt;br /&gt;res = ldap_simple_bind_s(ld, 'CN=SVCLDAPQuery,CN=Users,DC=domain,DC=ADAM',); // v.3&lt;br /&gt;Authenticated as: 'CN=SVCLDAPQuery,CN=Users,DC=domain,DC=ADAM'.&lt;br /&gt;-----------&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-5RdLdymNeWs/TgACW0XbIiI/AAAAAAAABfo/6YhmYYzDZVQ/s1600/working.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 51px;" src="http://1.bp.blogspot.com/-5RdLdymNeWs/TgACW0XbIiI/AAAAAAAABfo/6YhmYYzDZVQ/s400/working.png" alt="" id="BLOGGER_PHOTO_ID_5620494925995647522" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can also do this using an LDIF file:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-size:78%;" &gt;dn: CN=User,CN=Schema,CN=Configuration,DC=X&lt;br /&gt;changetype: Modify&lt;br /&gt;add: auxiliaryClass&lt;br /&gt;auxiliaryClass: msDS-BindableObject&lt;br /&gt;-&lt;br /&gt;&lt;br /&gt;dn:&lt;br /&gt;changetype: modify&lt;br /&gt;add: schemaUpdateNow&lt;br /&gt;schemaUpdateNow: 1&lt;br /&gt;-&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;imported using (ignore line wraps below)&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-size:78%;" &gt;&lt;br /&gt;ldifde -i -f &lt;/span&gt;&lt;file as="" above=""&gt;&lt;span style="color: rgb(51, 51, 255);font-size:78%;" &gt; -s &lt;/span&gt;&lt;adamserver&gt;&lt;span style="color: rgb(51, 51, 255);font-size:78%;" &gt;:&lt;/span&gt;&lt;adamport&gt;&lt;span style="color: rgb(51, 51, 255);font-size:78%;" &gt; -c&lt;br /&gt;"CN=Schema,CN=Configuration,DC=X" #schemaNamingContext&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Thanks to Lee Fight (Directory Services MVP) who assisted me in getting this working!&lt;/adamport&gt;&lt;/adamserver&gt;&lt;/file&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-2364400761698192684?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/2364400761698192684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/06/error-49-ldapsimplebinds-failed-invalid.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2364400761698192684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2364400761698192684'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/06/error-49-ldapsimplebinds-failed-invalid.html' title='Error 49: ldap_simple_bind_s() failed: Invalid Credentials'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-Mhn_G7NFD0A/Tf_2T6TVG5I/AAAAAAAABew/pptjarWl3JA/s72-c/authenticationerror.PNG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-7831143404355300962</id><published>2011-06-15T23:58:00.001-07:00</published><updated>2011-09-14T21:17:32.491-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AD LDS / ADAM'/><category scheme='http://www.blogger.com/atom/ns#' term='Active Directory'/><title type='text'>Active Directory userAccountControl and LDS</title><content type='html'>Active Directory user accounts have an attribute called userAccountControl which is used to control items such as Account Lockout, Account Disabled, Password Never Expires, User Cannot Change Password etc.  This is determined by an integer value... based on the value the system knows which options are enabled and which are disabled.  The value 512 is the base value for all normal user accounts.  To understand all integers that make this attribute work please refer to the following KB article.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/305144"&gt;http://support.microsoft.com/kb/305144&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;AD LDS (ADAM) does not support the userAccountControl attribute. Instead, AD LDS uses several individual attributes to hold the information that is contained in the flags of the userAccountControl attribute.&lt;br /&gt;&lt;br /&gt;For a list of these attributes please refer to the following MSDN article:&lt;br /&gt;&lt;br /&gt;&lt;a href=" http://msdn.microsoft.com/en-us/library/aa772124.aspx"&gt;&lt;br /&gt;http://msdn.microsoft.com/en-us/library/aa772124.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Any userAccountControl flags that are not listed below are not supported by AD LDS.&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-7831143404355300962?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/7831143404355300962/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/06/active-directory-useraccountcontrol-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/7831143404355300962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/7831143404355300962'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/06/active-directory-useraccountcontrol-and.html' title='Active Directory userAccountControl and LDS'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-6984515999817209834</id><published>2011-06-15T22:55:00.000-07:00</published><updated>2011-09-14T21:17:50.693-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AD LDS / ADAM'/><category scheme='http://www.blogger.com/atom/ns#' term='Active Directory'/><title type='text'>0x2081 Multiple values were specified for an attribute</title><content type='html'>I'm trying to import the following LDIF file into an LDS Instance using LDIFDE.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#3333ff;"&gt;dn: CN=SVCLDAPQuery,CN=Users,DC=testinstance,DC=ADAM&lt;br /&gt;changetype: add&lt;br /&gt;objectClass: user&lt;br /&gt;userPrincipalName: SVCLDAPQuery&lt;br /&gt;cn: Service Now LDAP Query&lt;br /&gt;displayName: Service Now LDAP Query&lt;br /&gt;userPassword: Passw0rd&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;I am performing the import with the following command:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#3333ff;"&gt;ldifde -i -f SVCLDAPQuery.ldf -s localhost:10001&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;This command throws out the following errors:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;&lt;span style="font-size:78%;"&gt;Connecting to "localhost:10001"&lt;br /&gt;Logging in as current user using SSPI&lt;br /&gt;Importing directory from file "SVCLDAPQuery.ldf"&lt;br /&gt;Loading entries.&lt;br /&gt;Add error on entry starting on line 1: Invalid DN Syntax&lt;br /&gt;The server side error is: 0x2081 Multiple values were specified for an attribute that can have only one value.&lt;br /&gt;The extended server error is:&lt;br /&gt;00002081: NameErr: DSID-03050C42, problem 2003 (BAD_ATT_SYNTAX), data 0, best match of:&lt;br /&gt;'CN=SVCLDAPQuery,CN=Users,DC=testinstance,DC=ADAM'&lt;br /&gt;&lt;br /&gt;0 entries modified successfully.&lt;br /&gt;An error has occurred in the program&lt;br /&gt;No log files were written. In order to generate a log file, please&lt;br /&gt;specify the log file path via the -j option.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-l95qwnzwzIk/TfmcNPE-LyI/AAAAAAAABeA/jhG2mbymxxc/s1600/problem.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 168px;" src="http://2.bp.blogspot.com/-l95qwnzwzIk/TfmcNPE-LyI/AAAAAAAABeA/jhG2mbymxxc/s400/problem.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5618693761321021218" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This occured because the "cn" attribute did not match the first part of the "distinguishedName" attribute.  If we change this to:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#3333ff;"&gt;&lt;strong&gt;dn: CN=SVCLDAPQuery,CN=Users,DC=testinstance,DC=ADAM&lt;/strong&gt;&lt;br /&gt;changetype: add&lt;br /&gt;objectClass: user&lt;br /&gt;userPrincipalName: SVCLDAPQuery&lt;br /&gt;&lt;strong&gt;cn: SVCLDAPQuery&lt;/strong&gt;&lt;br /&gt;displayName: Service Now LDAP Query&lt;br /&gt;userPassword: Passw0rd&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The import will work correctly:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-YayzD_LTpbQ/Tfmc1QIForI/AAAAAAAABeI/dq9Ztrd1jfY/s1600/fix.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 110px;" src="http://2.bp.blogspot.com/-YayzD_LTpbQ/Tfmc1QIForI/AAAAAAAABeI/dq9Ztrd1jfY/s400/fix.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5618694448797295282" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Please also see this problem as it is related:&lt;br /&gt;&lt;a href="http://clintboessen.blogspot.com/2011/06/0x2077-illegal-modify-operation-some.html"&gt;http://clintboessen.blogspot.com/2011/06/0x2077-illegal-modify-operation-some.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-6984515999817209834?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/6984515999817209834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/06/0x2081-multiple-values-were-specified.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/6984515999817209834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/6984515999817209834'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/06/0x2081-multiple-values-were-specified.html' title='0x2081 Multiple values were specified for an attribute'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-l95qwnzwzIk/TfmcNPE-LyI/AAAAAAAABeA/jhG2mbymxxc/s72-c/problem.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-2099521906781387369</id><published>2011-06-15T21:50:00.000-07:00</published><updated>2011-09-14T21:18:27.612-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AD LDS / ADAM'/><category scheme='http://www.blogger.com/atom/ns#' term='Active Directory'/><title type='text'>0x2077 Illegal modify operation. Some aspect of the modification is not permitted.</title><content type='html'>I'm trying to import the following LDIF file into an LDS Instance using LDIFDE.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-size:78%;" &gt;dn: CN=SVCLDAPQuery,CN=Users,DC=testinstance,DC=ADAM&lt;br /&gt;changetype: add&lt;br /&gt;objectClass: user&lt;br /&gt;userPrincipalName: SVCLDAPQuery&lt;br /&gt;userPassword: Passw0rd&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Note: For ADAM, Microsoft enabled the userPassword attribute to function as a write-alias for unicodePwd and removed the requirement for the special formatting unicodePwd required.  This allows your LDIF files to have clear-text passwords specified.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I am performing the import with the following command:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;ldifde -i -f SVCLDAPQuery.ldf -s localhost:10001&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This command throws out the following errors:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-size:78%;" &gt;Connecting to "localhost:10001"&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);font-size:78%;" &gt;Logging in as current user using SSPI&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);font-size:78%;" &gt;Importing directory from file "SVCLDAPQuery.ldf"&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);font-size:78%;" &gt;Loading entries.&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);font-size:78%;" &gt;Add error on entry starting on line 1: Operations Error&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);font-size:78%;" &gt;The server side error is: 0x2077 Illegal modify operation. Some aspect of the modification is not permitted.&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);font-size:78%;" &gt;The extended server error is:&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);font-size:78%;" &gt;00002077: SvcErr: DSID-033807B5, problem 5012 (DIR_ERROR), data 8237&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);font-size:78%;" &gt;0 entries modified successfully.&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);font-size:78%;" &gt;An error has occurred in the program&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);font-size:78%;" &gt;No log files were written.  In order to generate a log file, please&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);font-size:78%;" &gt;specify the log file path via the -j option.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-66NR6Z-8ADk/TfmOzQl0UrI/AAAAAAAABdw/wi-x8Nbw3SI/s1600/securepasswordrequirement.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 150px;" src="http://1.bp.blogspot.com/-66NR6Z-8ADk/TfmOzQl0UrI/AAAAAAAABdw/wi-x8Nbw3SI/s400/securepasswordrequirement.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5618679021399462578" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As the requirement for special formatting of unicodePwd has been lifted Microsoft has placed a default requirement to ensure all password operations are done through LDAPS instead of LDAP.  This is why it will not import the password!&lt;br /&gt;&lt;br /&gt;To lift this requirement make the following change to the configuration partition of the instance:&lt;br /&gt;&lt;br /&gt;Navigate to CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,CN={GUID of the ADAM}&lt;br /&gt;&lt;br /&gt;Edit dSHeuristics attribute and set value to 0000000001001&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-l9AVsY5WyTo/TfmO4blST-I/AAAAAAAABd4/mrM8L3RTeqU/s1600/securepasswordfix.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 316px;" src="http://3.bp.blogspot.com/-l9AVsY5WyTo/TfmO4blST-I/AAAAAAAABd4/mrM8L3RTeqU/s400/securepasswordfix.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5618679110249369570" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now you can perform password operations without requiring LDAPS.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-YayzD_LTpbQ/Tfmc1QIForI/AAAAAAAABeI/dq9Ztrd1jfY/s1600/fix.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 110px;" src="http://2.bp.blogspot.com/-YayzD_LTpbQ/Tfmc1QIForI/AAAAAAAABeI/dq9Ztrd1jfY/s400/fix.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5618694448797295282" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Please also see this problem as it is related:&lt;br /&gt;&lt;a href="http://clintboessen.blogspot.com/2011/06/0x2081-multiple-values-were-specified.html"&gt;http://clintboessen.blogspot.com/2011/06/0x2081-multiple-values-were-specified.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-2099521906781387369?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/2099521906781387369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/06/0x2077-illegal-modify-operation-some.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2099521906781387369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2099521906781387369'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/06/0x2077-illegal-modify-operation-some.html' title='0x2077 Illegal modify operation. Some aspect of the modification is not permitted.'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-66NR6Z-8ADk/TfmOzQl0UrI/AAAAAAAABdw/wi-x8Nbw3SI/s72-c/securepasswordrequirement.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-7901740685837720029</id><published>2011-06-13T01:13:00.000-07:00</published><updated>2011-09-14T21:18:46.869-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AD LDS / ADAM'/><category scheme='http://www.blogger.com/atom/ns#' term='Active Directory'/><title type='text'>Ldap error occured. ldap_add_sW: Object Class Violation</title><content type='html'>I am performing ADAMSync from an Active Directory domain to an LDS Instance.  My AD Domain Partition is called DC=Domain,DC=Local.  My LDS Instance also has the same distinguished name of DC=Domain,DC=Local.  When Syncing the following error is experienced:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Processing Entry: Page 18, Frame 1, Entry 48, Count 1, USN 0&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Processing source entry &lt;/span&gt;&lt;/span&gt;&lt;guid=08080633da0dfe4f8b46508f00f2708f&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Processing in-scope entry 08080633da0dfe4f8b46508f00f2708f.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Adding target object CN=JoeBlow,OU=Disabled accounts,OU=IS Users,OU=IS,DC=Domain,DC=Local.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Adding attributes: sourceobjectguid, sn, title, description, physicalDeliveryOfficeName, telephoneNumber, givenName, instanceType, department, company, objectSid, sAMAccountName, lastagedchange, objectclass, &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;Ldap error occured. ldap_add_sW: Object Class Violation. &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Extended Info: 0000207D: UpdErr: DSID-0315121C, problem 6002 (OBJ_CLASS_VIOLATION), data 19&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Ldap error occured. ldap_add_sW: Object Class Violation. &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Extended Info: 0000207D: UpdErr: DSID-0315121C, problem 6002 (OBJ_CLASS_VIOLATION), data 19&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;************&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;************&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;************ A fatal error occured in the program while processing entry&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;************ GUID=08080633da0dfe4f8b46508f00f2708f&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;************ The error will be ignored at user request.  Continuing...&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;************&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;************&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Below I will explain how to resolve this.  I am syncing all User Objects from Active Directory to userProxy objects in LDS.  This is required for single sign on (SSO).  userProxy objects forward authentication bind requests to domain controllers which process the authentication request, pass it back to LDS then to the client.&lt;br /&gt;&lt;br /&gt;To understand this in more detail please read my following blog post on the userProxy class:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://clintboessen.blogspot.com/2011/04/userproxy-class-and-adam-lds.html"&gt;http://clintboessen.blogspot.com/2011/04/userproxy-class-and-adam-lds.html&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;Here is a copy of my XML configuration file I installed into ADAMSync:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&amp;lt?xml version="1.0"?&amp;gt&lt;br /&gt;&amp;ltdoc&amp;gt &lt;br /&gt; &amp;ltconfiguration&amp;gt  &lt;br /&gt;&amp;lt!-- Sync File Description --&amp;gt &lt;br /&gt;&amp;ltdescription&amp;gtADAMSync Configuration&amp;lt/description&amp;gt  &lt;br /&gt;  &amp;ltsecurity-mode&amp;gtobject&amp;lt/security-mode&amp;gt         &lt;br /&gt;&amp;lt!-- source-ad-name = fqdn of the domain controller --&amp;gt&lt;br /&gt;  &amp;ltsource-ad-name&amp;gtdomaincontroller.domain.local&amp;lt/source-ad-name&amp;gt  &lt;br /&gt;&amp;lt!-- source-ad-partition = root AD domain partition --&amp;gt&lt;br /&gt;  &amp;ltsource-ad-partition&amp;gtdc=domain,dc=local&amp;lt/source-ad-partition&amp;gt&lt;br /&gt;&amp;lt!-- source-ad-account = use this to specify an account to connect to AD --&amp;gt&lt;br /&gt;&amp;lt!-- if not used, the current user will be used  --&amp;gt&lt;br /&gt;  &amp;ltsource-ad-account&amp;gtldapquery&amp;lt/source-ad-account&amp;gt                &lt;br /&gt;  &amp;ltaccount-domain&amp;gtdomain&amp;lt/account-domain&amp;gt&lt;br /&gt;&amp;lt!-- target-dn = target ADAM OU --&amp;gt&lt;br /&gt;  &amp;lttarget-dn&amp;gtdc=domain,dc=local&amp;lt/target-dn&amp;gt  &lt;br /&gt;  &amp;ltquery&amp;gt   &lt;br /&gt;&amp;lt!-- base-dn = should be the root AD partition if you want all users --&amp;gt&lt;br /&gt;   &amp;ltbase-dn&amp;gtdc=domain,dc=local&amp;lt/base-dn&amp;gt&lt;br /&gt;&amp;lt!-- object-filter = standard ldap query format, this will grab all users --&amp;gt&lt;br /&gt;&amp;lt!-- need to review results to see if you should modify this filter --&amp;gt&lt;br /&gt;   &amp;ltobject-filter&amp;gt(objectCategory=person)&amp;lt/object-filter&amp;gt   &lt;br /&gt;&lt;span style="font-weight:bold;"&gt;   &amp;ltattributes&amp;gt   &lt;br /&gt;&amp;lt!-- include=userproxy requires objectSID to link back to the AD account --&amp;gt &lt;br /&gt;    &amp;ltinclude&amp;gtobjectSID&amp;lt/include&amp;gt&lt;br /&gt;    &amp;ltinclude&amp;gtgivenName&amp;lt/include&amp;gt&lt;br /&gt;    &amp;ltinclude&amp;gtsn&amp;lt/include&amp;gt&lt;br /&gt;    &amp;ltinclude&amp;gtdescription&amp;lt/include&amp;gt&lt;br /&gt;    &amp;ltinclude&amp;gttitle&amp;lt/include&amp;gt&lt;br /&gt;    &amp;ltinclude&amp;gtcompany&amp;lt/include&amp;gt&lt;br /&gt;    &amp;ltinclude&amp;gtdepartment&amp;lt/include&amp;gt&lt;br /&gt;    &amp;ltinclude&amp;gtmail&amp;lt/include&amp;gt&lt;br /&gt;    &amp;ltinclude&amp;gtphysicalDeliveryOfficeName&amp;lt/include&amp;gt&lt;br /&gt;    &amp;ltinclude&amp;gttelephoneNumber&amp;lt/include&amp;gt&lt;br /&gt;    &amp;ltinclude&amp;gtsAMAccountName&amp;lt/include&amp;gt&lt;br /&gt;   &amp;lt/attributes&amp;gt &lt;/span&gt; &lt;br /&gt;  &amp;lt/query&amp;gt &lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&amp;lt!-- map for user-to-userproxy object types --&amp;gt&lt;br /&gt;  &amp;ltuser-proxy&amp;gt&lt;br /&gt;    &amp;ltsource-object-class&amp;gtuser&amp;lt/source-object-class&amp;gt&lt;br /&gt;    &amp;lttarget-object-class&amp;gtuserProxy&amp;lt/target-object-class&amp;gt&lt;br /&gt;  &amp;lt/user-proxy&amp;gt &lt;/span&gt;&lt;br /&gt;  &amp;ltschedule&amp;gt   &lt;br /&gt;   &amp;ltaging&amp;gt    &lt;br /&gt;    &amp;ltfrequency&amp;gt0&amp;lt/frequency&amp;gt    &lt;br /&gt;    &amp;ltnum-objects&amp;gt0&amp;lt/num-objects&amp;gt   &lt;br /&gt;   &amp;lt/aging&amp;gt   &lt;br /&gt;   &amp;ltschtasks-cmd&amp;gt&amp;lt/schtasks-cmd&amp;gt  &lt;br /&gt;  &amp;lt/schedule&amp;gt &lt;br /&gt; &amp;lt/configuration&amp;gt &lt;br /&gt; &amp;ltsynchronizer-state&amp;gt  &lt;br /&gt;  &amp;ltdirsync-cookie&amp;gt&amp;lt/dirsync-cookie&amp;gt  &lt;br /&gt;  &amp;ltstatus&amp;gt&amp;lt/status&amp;gt  &lt;br /&gt;  &amp;ltauthoritative-adam-instance&amp;gt&amp;lt/authoritative-adam-instance&amp;gt  &lt;br /&gt;  &amp;ltconfiguration-file-guid&amp;gt&amp;lt/configuration-file-guid&amp;gt  &lt;br /&gt;  &amp;ltlast-sync-attempt-time&amp;gt&amp;lt/last-sync-attempt-time&amp;gt  &lt;br /&gt;  &amp;ltlast-sync-success-time&amp;gt&amp;lt/last-sync-success-time&amp;gt  &lt;br /&gt;  &amp;ltlast-sync-error-time&amp;gt&amp;lt/last-sync-error-time&amp;gt  &lt;br /&gt;  &amp;ltlast-sync-error-string&amp;gt&amp;lt/last-sync-error-string&amp;gt  &lt;br /&gt;  &amp;ltconsecutive-sync-failures&amp;gt&amp;lt/consecutive-sync-failures&amp;gt  &lt;br /&gt;  &amp;ltuser-credentials&amp;gt&amp;lt/user-credentials&amp;gt  &lt;br /&gt;  &amp;ltruns-since-last-object-update&amp;gt&amp;lt/runs-since-last-object-update&amp;gt  &lt;br /&gt;  &amp;ltruns-since-last-full-sync&amp;gt&amp;lt/runs-since-last-full-sync&amp;gt &lt;br /&gt; &amp;lt/synchronizer-state&amp;gt&lt;br /&gt;&amp;lt/doc&amp;gt&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Notice the bits in bold.  These are the attribute I want to Sync.  I am also syncing these attributes FROM a user object TO a userProxy object.  Let's use the "Active Directory Schema" mmc snap-in to look at the LDS Instance schema.  To understand how to use "Active Directory Schema" mmc snap-in to connect to an LDS Instance please read:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc816707.aspx"&gt;http://technet.microsoft.com/en-us/library/cc816707.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Your also going to probably run into this problem when connecting to the LDS Instance:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://clintboessen.blogspot.com/2011/06/lds-active-directory-schema-status.html"&gt;http://clintboessen.blogspot.com/2011/06/lds-active-directory-schema-status.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In this environment I imported the following schema extensions MS-UserProxy.ldf, MS-AdamSyncMetadata.ldf, MS-AdamSchemaW2K8.ldf to my LDS Instance.  In my Active Directory Schema if I look at my userProxy class object attribute association I have the following attributes associated:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-pd0n7c17JQc/TfXN5qmEASI/AAAAAAAABdY/7XqY4x73qd0/s1600/noattributes.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 366px; height: 400px;" src="http://2.bp.blogspot.com/-pd0n7c17JQc/TfXN5qmEASI/AAAAAAAABdY/7XqY4x73qd0/s400/noattributes.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5617622500784734498" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;However in my user class object I have the following attributes associated:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-YdLsUMI_aPM/TfXOSP2axhI/AAAAAAAABdg/mIqJeQg5Po0/s1600/userclass.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 365px; height: 400px;" src="http://2.bp.blogspot.com/-YdLsUMI_aPM/TfXOSP2axhI/AAAAAAAABdg/mIqJeQg5Po0/s400/userclass.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5617622923102307858" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Can you pick the problem yet?  I have asked ADAMSync to sync the following attributes FROM user class in Active Directory TO userProxy:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight:bold;"&gt;   &amp;ltattributes&amp;gt   &lt;br /&gt;&amp;lt!-- include=userproxy requires objectSID to link back to the AD account --&amp;gt &lt;br /&gt;    &amp;ltinclude&amp;gtobjectSID&amp;lt/include&amp;gt&lt;br /&gt;    &amp;ltinclude&amp;gtgivenName&amp;lt/include&amp;gt&lt;br /&gt;    &amp;ltinclude&amp;gtsn&amp;lt/include&amp;gt&lt;br /&gt;    &amp;ltinclude&amp;gtdescription&amp;lt/include&amp;gt&lt;br /&gt;    &amp;ltinclude&amp;gttitle&amp;lt/include&amp;gt&lt;br /&gt;    &amp;ltinclude&amp;gtcompany&amp;lt/include&amp;gt&lt;br /&gt;    &amp;ltinclude&amp;gtdepartment&amp;lt/include&amp;gt&lt;br /&gt;    &amp;ltinclude&amp;gtmail&amp;lt/include&amp;gt&lt;br /&gt;    &amp;ltinclude&amp;gtphysicalDeliveryOfficeName&amp;lt/include&amp;gt&lt;br /&gt;    &amp;ltinclude&amp;gttelephoneNumber&amp;lt/include&amp;gt&lt;br /&gt;    &amp;ltinclude&amp;gtsAMAccountName&amp;lt/include&amp;gt&lt;br /&gt;   &amp;lt/attributes&amp;gt &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;userProxy does not have these attributes associated.  After I added these attributes to the userProxy class object all was fixed:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-jRhhCCWv_X8/TfXPBpbs3WI/AAAAAAAABdo/lXjACftYqzI/s1600/attributes.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 363px; height: 400px;" src="http://2.bp.blogspot.com/-jRhhCCWv_X8/TfXPBpbs3WI/AAAAAAAABdo/lXjACftYqzI/s400/attributes.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5617623737423420770" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-7901740685837720029?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/7901740685837720029/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/06/ldap-error-occured-ldapaddsw-object.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/7901740685837720029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/7901740685837720029'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/06/ldap-error-occured-ldapaddsw-object.html' title='Ldap error occured. ldap_add_sW: Object Class Violation'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-pd0n7c17JQc/TfXN5qmEASI/AAAAAAAABdY/7XqY4x73qd0/s72-c/noattributes.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-8249366501010147223</id><published>2011-06-13T00:13:00.000-07:00</published><updated>2011-09-14T21:19:02.604-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AD LDS / ADAM'/><category scheme='http://www.blogger.com/atom/ns#' term='Active Directory'/><title type='text'>LDS Active Directory Schema Status Unavailable</title><content type='html'>Back when LDS (Lightweight Directory Services) was called ADAM (Active Directory Application Mode) there was a console known as "ADAM Schema" which was the ADAM version of the "Active Directory Schema" MMC console.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-HWUPwovzAMM/TfW6UnAm-LI/AAAAAAAABdA/xzGe29jgj6Q/s1600/adamschema.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 384px; height: 387px;" src="http://4.bp.blogspot.com/-HWUPwovzAMM/TfW6UnAm-LI/AAAAAAAABdA/xzGe29jgj6Q/s400/adamschema.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5617600973446248626" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now with LDS the "ADAM Schema" no longer exists.  Microsoft say to use "Active Directory Schema" for both LDS and Active Directory databases.  For the TechNet article please see:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc816707.aspx"&gt;http://technet.microsoft.com/en-us/library/cc816707.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I setup an LDS instance running on TCP10001.  When I try and connect to the instance using Active Directory Schema on localhost:10001 it comes up as available.  However I know my instance is there as I can connect to it using ADSIEdit.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-krHAWc-CnQs/TfW6qY34O_I/AAAAAAAABdI/IykQf1VRt94/s1600/notworking.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 287px;" src="http://1.bp.blogspot.com/-krHAWc-CnQs/TfW6qY34O_I/AAAAAAAABdI/IykQf1VRt94/s400/notworking.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5617601347608656882" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I found out if you connect using the IP address of the server's primary network interface card it connects successfully.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-g3zuj2sWZ0c/TfW654uoVrI/AAAAAAAABdQ/O0DHSDXof4o/s1600/working.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 229px;" src="http://3.bp.blogspot.com/-g3zuj2sWZ0c/TfW654uoVrI/AAAAAAAABdQ/O0DHSDXof4o/s400/working.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5617601613857838770" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Must be something dodgy embedded into the code of the Active Directory Schema snap-in.&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-8249366501010147223?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/8249366501010147223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/06/lds-active-directory-schema-status.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/8249366501010147223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/8249366501010147223'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/06/lds-active-directory-schema-status.html' title='LDS Active Directory Schema Status Unavailable'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-HWUPwovzAMM/TfW6UnAm-LI/AAAAAAAABdA/xzGe29jgj6Q/s72-c/adamschema.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-5890991952895059453</id><published>2011-06-06T23:50:00.000-07:00</published><updated>2011-09-14T21:19:40.222-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Server General'/><category scheme='http://www.blogger.com/atom/ns#' term='AD LDS / ADAM'/><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><category scheme='http://www.blogger.com/atom/ns#' term='Active Directory'/><title type='text'>Allowing Domain Membership through a Cisco Firewall</title><content type='html'>When setting up windows networks a DMZ must be created. This DMZ cannot contain any PC's that are a member of your internal Active Directory domain for security reasons. For your SME companies best practice is to generally configure all machines in your DMZ in a workgroup setup. For your enterprise companies best practice is to create a separate active directory forest for your DMZ. This allows centralised management over your DMZ servers allowing administrators to control servers using things such as Group Policy and WSUS.&lt;br /&gt;&lt;br /&gt;However there are times where you need to allow PC's in your DMZ to access your internal Active Directory. For example I needed to setup an ADAM server to synchronise only particular attributes from various domains in an Active Directory forest which to be exposed to the internet using LDAPS (Secure LDAP) on secure port 636 for an external application. This ADAM server needs to be a member of of the Active Directory domain as I require User Proxy Bind Redirection to forward authentication requests through to an Active Directory domain controller. We created a separate DMZ just to contain this server requiring domain membership.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://sites.google.com/site/cbblogspotfiles/userProxy.png" /&gt;&lt;br /&gt;&lt;br /&gt;For more information on User Proxy Bind Redirection see:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://clintboessen.blogspot.com/2011/04/userproxy-class-and-adam-lds.html"&gt;http://clintboessen.blogspot.com/2011/04/userproxy-class-and-adam-lds.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Windows machines are not very "firewall friendly". To start off with we opened up the following ports between our isolated "Domain DMZ" and our internal network:&lt;br /&gt;&lt;br /&gt;UDP 53 – DNS Queries&lt;br /&gt;TCP 88 – Kerberos v5 over TCP&lt;br /&gt;UDP 88 – Kerberos v5 over UDP&lt;br /&gt;TCP 135 – Microsoft Report Procedure Call Endpoint Mapper&lt;br /&gt;UDP 389 – Unsecure LDAP over UDP&lt;br /&gt;TCP 389 – Unsecure LDAP over TCP&lt;br /&gt;TCP 443 – WSUS Windows Updates&lt;br /&gt;TCP 445 – Simple Message Block Protocol&lt;br /&gt;TCP 1688 – Key Management Server&lt;br /&gt;TCP 3268 – Global Catalog Requests&lt;br /&gt;TCP 3389 – Remote Desktop for management purposes&lt;br /&gt;&lt;br /&gt;All the ports above still do not allow a workstation to be a member of an Active Directory domain due to the DCOM RPC ports. Microsoft RPC (MS-RPC) does not only use port TCP135 it also uses randomly generated ports from TCP 1024-65535 for XP/2003 and TCP 49152-65535 for Vista/2008 upwards. These are frequently informally referred to as "random RPC ports." In these cases, RPC clients rely on the RPC Endpoint Mapper (EPM) which runs on TCP135 to tell them which dynamic port(s) were assigned to the server.&lt;br /&gt;&lt;br /&gt;Multiple components from the underlining windows subsystem get assigned their own dynamic RPC port every time the windows PC boots. These components include:&lt;br /&gt;&lt;br /&gt;- Active Directory (Local Security Authority) – Runs on each domain member!&lt;br /&gt;- Certificate Services&lt;br /&gt;- Cluster Service&lt;br /&gt;- Distributed File System&lt;br /&gt;- Distributed File System Replication&lt;br /&gt;- Distributed Link Tracking Server&lt;br /&gt;- Distributed Transaction Coordinator&lt;br /&gt;- Outlook MAPI Client&lt;br /&gt;- ISA Server&lt;br /&gt;- Fax Service&lt;br /&gt;- File Replication&lt;br /&gt;- FTP Publishing Service&lt;br /&gt;- Group Policy&lt;br /&gt;- Net Logon&lt;br /&gt;- Remote Storage Notification&lt;br /&gt;- Remote Storage Server&lt;br /&gt;- Systems Management Server 2.0&lt;br /&gt;- Terminal Services Licensing&lt;br /&gt;- Terminal Services Session Directory&lt;br /&gt;&lt;br /&gt;All these windows components get a dynamic port each time the system boots. RPC clients discover which port these services are on by querying TCP 135 (the port mapper).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;&lt;span style="color:#000099;"&gt;So how did we get around this without opening every port from 1024-65535?&lt;/span&gt;&lt;/strong&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Our corporate firewall is currently a Cisco ASA 5540 running OS v8.4(1). The lastest Cisco OS software for the 5540 has integrated smarts for the Windows RPC Endpoint Mapper (EPM) running on TCP135. Cisco refers to this as "DCERPC".&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;This process works as follows:&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="color:#ff6600;"&gt;1.&lt;/span&gt;&lt;/strong&gt; A client queries an EPM server for the dynamically-allocated port number of a required DCERPC service. The EPM server listens on the well-known TCP port 135.&lt;br /&gt;&lt;span style="color:#ff6600;"&gt;&lt;strong&gt;2.&lt;/strong&gt;&lt;/span&gt; The ASA, located between the client and EPM server, intercepts the communication.&lt;br /&gt;&lt;span style="color:#ff6600;"&gt;&lt;strong&gt;3.&lt;/strong&gt;&lt;/span&gt; The EPM server indicates the port number on which the DCERPC service is available.&lt;br /&gt;&lt;span style="color:#ff6600;"&gt;&lt;strong&gt;4.&lt;/strong&gt;&lt;/span&gt; The ASA opens a pinhole for that DCERPC service.&lt;br /&gt;&lt;br /&gt;This allows us to make the access control lists (ACLs) as tight as possible maintaining security whilst allowing application functionality through the ASA firewall.&lt;br /&gt;&lt;br /&gt;Here is the Syntax used for configuring this functionality on our ASA:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#3333ff;"&gt;class-map dcerpc&lt;br /&gt;match port tcp eq 135&lt;br /&gt;policy-map interface_dcerpc&lt;br /&gt;class dcerpc&lt;br /&gt;inspect dcerpc&lt;br /&gt;&lt;br /&gt;service-policy interface_dcerpc interface dmz_adam &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;interface_dcerpc is our custom Service Policy&lt;br /&gt;dmz_adam is our costom interface&lt;br /&gt;&lt;br /&gt;Of course you also need to allow TCP135 (the RPC Port Mapper) in the ACL rules for this to work!&lt;br /&gt;&lt;br /&gt;For more information on these dynamically generated RPC ports used by Windows Systems please see the following Microsoft knowledge base articles:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/154596"&gt;http://support.microsoft.com/kb/154596&lt;/a&gt;&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/832017"&gt;http://support.microsoft.com/kb/832017&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A big thank you to &lt;a href="http://ccierants.blogspot.com/"&gt;Peter Revill &lt;/a&gt;(CCIE #18371 Routing and switching, Voice) for helping me out on this one.&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-5890991952895059453?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/5890991952895059453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/06/allowing-domain-membership-through.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/5890991952895059453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/5890991952895059453'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/06/allowing-domain-membership-through.html' title='Allowing Domain Membership through a Cisco Firewall'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-7625487722457354721</id><published>2011-06-06T20:16:00.000-07:00</published><updated>2011-06-06T20:33:05.499-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><title type='text'>Alternate Witness Server in Database Availability Groups</title><content type='html'>In this post we will look at the Alternate Witness Server - what is it?&lt;br /&gt;&lt;br /&gt;The Alternate Witness Server provides a replacement witness server for a DAG to use after a datacenter switchover. When you are performing a datacenter switchover, you’re restoring service and data to an alternate or standby datacenter after you’ve deemed your primary datacenter un-usable from a messaging service perspective.&lt;br /&gt;&lt;br /&gt;Although you can configure an Alternate Witness Server (and corresponding Alternate Witness Directory) for a DAG at any time, the Alternate Witness Server will not be used by the DAG until part-way through a datacenter switchover; specifically, when the Restore-DatabaseAvailabilityGroup cmdlet is used.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;The Alternate Witness Server itself does not provide any redundancy for the Witness Server&lt;/span&gt;&lt;/strong&gt;, and DAGs do not dynamically switch witness servers, nor do they automatically start using the Alternate Witness Server in the event of a problem with the Witness Server.&lt;br /&gt;&lt;br /&gt;The reality is that the Witness Server does not need to be made redundant. In the event the server acting as the Witness Server is lost, it is a quick and easy operation to configure a replacement Witness Server from either the Exchange Management Console or the Exchange Management Shell.&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-7625487722457354721?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/7625487722457354721/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/06/alternate-witness-server-in-database.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/7625487722457354721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/7625487722457354721'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/06/alternate-witness-server-in-database.html' title='Alternate Witness Server in Database Availability Groups'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-778671368290779594</id><published>2011-06-06T19:37:00.000-07:00</published><updated>2011-06-19T19:07:36.565-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><title type='text'>Exchange 2010 Max Message Size Precedence</title><content type='html'>In Exchange 2007/2010 you can set SMTP message size quota's in 3 locations:&lt;br /&gt;&lt;br /&gt;- Global Settings (Set-TransportConfig)&lt;br /&gt;- Receive Connectors (Set-ReceiveConnector)&lt;br /&gt;- Send Connectors (Set-SendConnector)&lt;br /&gt;&lt;br /&gt;But which of these have Precedence?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;The more restrictive limits always take precedence.&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;If you set the SMTP message size quota on a receive connector to 50MB but leave the TransportConfig quota to 10MB - Exchange will still only be able to receive 10MB emails.&lt;br /&gt;&lt;br /&gt;If you set the SMTP message size quota on the TransportConfig to 50MB but leave a receive connector at 10MB - Exchange will only be able to receive 10MB emails on that particular receive connector.&lt;br /&gt;&lt;br /&gt;To increase message size quota's you need to ensure you configure Every Receive connector, Send connector and the Global Settings on the transport config.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;color:#3333ff;"&gt;&lt;strong&gt;Why does it behave like this?&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;With Exchange 2003 and before, messages can pass directly between local&lt;br /&gt;mailboxes as long as they don't need a (RG or SMTP) connector.&lt;br /&gt;In that sense, the global limit is not applied to all messages.&lt;br /&gt;&lt;br /&gt;Now, all messages need a Hub transport, including messages from a local&lt;br /&gt;mailbox to another local mailbox. So, the global limit is always respected.&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-778671368290779594?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/778671368290779594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/06/exchange-2010-max-message-size.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/778671368290779594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/778671368290779594'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/06/exchange-2010-max-message-size.html' title='Exchange 2010 Max Message Size Precedence'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-9219738426245679883</id><published>2011-06-02T01:24:00.001-07:00</published><updated>2011-06-02T01:31:29.715-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Server General'/><category scheme='http://www.blogger.com/atom/ns#' term='Active Directory'/><title type='text'>The security database on the server does not have a computer account for this workstation trust relationship</title><content type='html'>After joining a new Windows Server 2008 R2 member server to the domain I was not able to log in, even with a Domain Admin account. The following error was experianced:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#3333ff;"&gt;The security database on the server does not have a computer account for this workstation trust relationship&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-Y95S8IGhMvk/TedJCh7zkgI/AAAAAAAABcM/jGIy048ZFAc/s1600/SPNerror.PNG"&gt;&lt;img style="WIDTH: 400px; HEIGHT: 93px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5613535768358392322" border="0" alt="" src="http://3.bp.blogspot.com/-Y95S8IGhMvk/TedJCh7zkgI/AAAAAAAABcM/jGIy048ZFAc/s400/SPNerror.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After some investigation it turns out the computer new computer account did not have a SPN (Service Principal Name). This is stored in the servicePrincipalName attribute in Active Directory. Below is a screenshot from ADSIEdit:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-Hgznya-LQmg/TedJXsFyvII/AAAAAAAABcU/mesGfx6nHWw/s1600/adsiiedit1.png"&gt;&lt;img style="WIDTH: 361px; HEIGHT: 400px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5613536131861888130" border="0" alt="" src="http://2.bp.blogspot.com/-Hgznya-LQmg/TedJXsFyvII/AAAAAAAABcU/mesGfx6nHWw/s400/adsiiedit1.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I added two SPN's to the computer account object in Active Directory in the format of:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;&lt;strong&gt;HOST/COMPUTERNAME&lt;br /&gt;HOST/COMPUTERNAME.domain.local&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-EPK0_CAdW-0/TedKQV2mjDI/AAAAAAAABcc/5_FQlQWxwV4/s1600/adsiedit2.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 362px; height: 375px;" src="http://1.bp.blogspot.com/-EPK0_CAdW-0/TedKQV2mjDI/AAAAAAAABcc/5_FQlQWxwV4/s400/adsiedit2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5613537105145138226" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I was then able to log in to the new workstation.&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-9219738426245679883?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/9219738426245679883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/06/security-database-on-server-does-not.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/9219738426245679883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/9219738426245679883'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/06/security-database-on-server-does-not.html' title='The security database on the server does not have a computer account for this workstation trust relationship'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-Y95S8IGhMvk/TedJCh7zkgI/AAAAAAAABcM/jGIy048ZFAc/s72-c/SPNerror.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-8386137632021023717</id><published>2011-05-31T19:58:00.000-07:00</published><updated>2011-06-06T20:12:30.613-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><title type='text'>Continuous Replication Block Mode vs Continuous Replication File Mode</title><content type='html'>Exchange 2010 RTM only supported Continuous Replication File Mode.&lt;br /&gt;Exchange 2010 SP1 now supports Continuous Replication Block Mode.&lt;br /&gt;&lt;br /&gt;Ok so whats the difference?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;Continuous Replication Block Mode&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;A form of continuous replication that replicates blocks of ESE transaction data between the ESE log buffers on the active mailbox database copy to replication log buffers on one or more passive mailbox databases copies. What does this mean? This means Exchange 2010 has replicate log buffers before the transaction log file is closed. This reduces the amount of transactions that are lost should a failover occur. If a transaction log is not played to the passive node in time, data may be lost during a failover. This is what AutoDatabaseMountDial is for, controls if the database will be mounted based on the based on the number of log files missing by the copy being mounted.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;Continuous Replication File Mode&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;A form of continuous replication that replicates closed transaction log files from the active mailbox database copy to one or more passive mailbox database copies. This means the transaction logs need to be closed before they can be shipped. This is one of the reasons transaction log size as reduced from 5MB to 1MB as of Exchange 2007 - to minimize data loss during Exchange failover.&lt;br /&gt;&lt;br /&gt;Please note if a log file does not replicate in time when a failover occurs - the hub transport server in the same site has a service a process known as transport dumpster. The transport dumpster resides on every hub transport server by default however it is not used unless a mailbox failover occurs. What the transport dumpster does is hold email that has already been delivered to the active mailbox server for a specified period of time. In the event that a DAG node fails which prevents the most recent logs from being replicated over, the transport dumpster can redeliver this email.&lt;br /&gt;&lt;br /&gt;Transport Dumpster was first introduced in Exchange 2007 for CCR (Continuous Cluster Replication). Please see:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://clintboessen.blogspot.com/2009/04/scc-single-copy-clusters-vs-ccr.html"&gt;http://clintboessen.blogspot.com/2009/04/scc-single-copy-clusters-vs-ccr.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So now your asking me why introduce Continuous Replication Block Mode if there is a process called Transport Dumpster that replays emails after a failover? Good question!&lt;br /&gt;&lt;br /&gt;The answer is not all exchange mailbox transactions are caught in transport dumpster. Transport dumpster, as it resides on the hub transport will only ever capture SMTP based transactions. There are other internal transactions Exchange generates directly on the mailbox database. These transactions will not reside within Transport Dumpster. Also things like de-duplication software that replaces emails with stubs. These cause transactions to occur which are not registered in Transport Dumpster.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;&lt;strong&gt;Can I switch between Continuous Replication File Mode and Continuous Replication Block Mode if I'm running Exchange 2010 SP1?&lt;/strong&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;No - The system can automatically switch between file mode and block mode based on the passive copy's ability to keep up with continuous replication.&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-8386137632021023717?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/8386137632021023717/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/05/continuous-replication-block-mode-vs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/8386137632021023717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/8386137632021023717'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/05/continuous-replication-block-mode-vs.html' title='Continuous Replication Block Mode vs Continuous Replication File Mode'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-614623805287469859</id><published>2011-05-31T19:31:00.000-07:00</published><updated>2011-05-31T19:41:49.923-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Miscellaneous Posts'/><title type='text'>TechEd North America 2011</title><content type='html'>In case you missed TechEd North America 2011, or were there and missed some sessions, you can download slide decks and watch presentations from the following location:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011"&gt;http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here are a list of all Exchange presentations:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/EXL302"&gt;EXL302 Archiving and Discovery in Microsoft Exchange 2010 SP1 and Exchange Online (Krish Sundaresan)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/EXL305"&gt;EXL305 Best Practices for Successfully Transitioning to Microsoft Exchange 2010 (Rand Morimoto)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/EXL306"&gt;EXL306 Best Practices for Virtualization of Microsoft Exchange 2010 (Jim Lucey, Jeff Mealiffe)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/EXL307"&gt;EXL307 Load Balancing with Microsoft Exchange Server 2010 (Andrew Ehrensing)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/EXL309"&gt;EXL309 Microsoft Exchange Online in Microsoft Office 365: Migration Case Study (John Logan, Danny Kim, Ann Vu)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/EXL310"&gt;EXL310 Microsoft Exchange Online in Microsoft Office 365: Simple Migration Live! (Ram Poornalingam)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/EXL311"&gt;EXL311 Microsoft Exchange Server and Microsoft Office 365: How to Set Up a Hybrid Deployment (Jim Lucey)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/EXL312"&gt;EXL312 Designing Microsoft Exchange 2010 Mailbox High Availability for Failure Domains (Ross Smith)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/EXL313"&gt;EXL313 Microsoft Exchange Server 2010 Tips and Tricks (Scott Schnoll)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/EXL322"&gt;EXL322 Microsoft Exchange Online: Unified Messaging in Microsoft Office 365 (Michael Wilson)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/EXL326"&gt;EXL326 What’s New in Microsoft Exchange Server 2010 SP2: Featuring GAL Segmentation (Greg Taylor)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/EXL327"&gt;EXL327 Real-World Site Resilience Design in Microsoft Exchange Server 2010 (Robert Gillies)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/EXL401"&gt;EXL401 Exchange Server 2010 High Availability Management and Operations (Scott Schnoll)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;My personal faverote was - Greg is always entertaining!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/EXL326"&gt;EXL326 What’s New in Microsoft Exchange Server 2010 SP2: Featuring GAL Segmentation (Greg Taylor)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-614623805287469859?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/614623805287469859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/05/teched-north-america-2011.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/614623805287469859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/614623805287469859'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/05/teched-north-america-2011.html' title='TechEd North America 2011'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-2827491677172862988</id><published>2011-05-31T19:23:00.001-07:00</published><updated>2011-05-31T19:24:09.904-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><title type='text'>Exchange 2010 Active Sync Feature Comparison</title><content type='html'>I found an excellent article today listing all the features of Exchange Active Sync and which features are supported by what mobiles.  Please check this article out here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Comparison_of_Exchange_ActiveSync_Clients"&gt;http://en.wikipedia.org/wiki/Comparison_of_Exchange_ActiveSync_Clients&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-2827491677172862988?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/2827491677172862988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/05/exchange-2010-active-sync-feature.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2827491677172862988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2827491677172862988'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/05/exchange-2010-active-sync-feature.html' title='Exchange 2010 Active Sync Feature Comparison'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-6355238964043215341</id><published>2011-05-30T01:59:00.000-07:00</published><updated>2011-05-31T19:22:47.098-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><title type='text'>Exchange Active Sync Logo Program</title><content type='html'>Customers have been telling Microsoft for quite some time that one of their top concerns is the increasing diversity of mobile devices that employees use to access company networks. While most mobile devices use EAS, the industry standard for mobile email, EAS policies are not consistently implemented by the mobile device manufacturers. This makes it challenging to know which EAS management features are supported by any particular device.&lt;br /&gt;&lt;br /&gt;In the EAS Logo program, participants agree to implement a predefined set of EAS policies (or more). IT professionals can now be assured that devices that bear the logo meet a consistent set of mobile device requirements. Today, we’re launching with the following devices:&lt;br /&gt;&lt;br /&gt;- All Windows Phone 7 and Windows Mobile 6.5 devices&lt;br /&gt;- Nokia devices with the Mail for Exchange 3.0.05, including the recently launched Nokia E7&lt;br /&gt;- Apple devices with iOS 4.X, including the iPhone 4, iPhone 3GS, iPad and iPad 2&lt;br /&gt;&lt;br /&gt;Microsoft have a strong pipeline of additional device manufacturers working toward compliance. Additional participants will be announced in the coming months, including wireless carriers that will use the logo when marketing compliant devices to their customers.&lt;br /&gt;&lt;br /&gt;The EAS Logo Program has the following requirements:&lt;br /&gt;- Direct Push email, contacts &amp; calendar &lt;br /&gt;- Accept, Decline &amp; Tentatively Accept meetings &lt;br /&gt;- Rich formatted email (HTML) &lt;br /&gt;- Reply/Forward state on email &lt;br /&gt;- GAL Lookup &lt;br /&gt;- Autodiscover &lt;br /&gt;- ABQ strings (device type and device model) provided &lt;br /&gt;- Remote Wipe &lt;br /&gt;- Password Required &lt;br /&gt;- Minimum Password Length &lt;br /&gt;- Timeout without User Input &lt;br /&gt;- Number of Failed Attempts&lt;br /&gt;&lt;br /&gt;Please refer to the following blog post by Greg Smiley for more information:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.technet.com/b/exchange/archive/2011/04/13/announcing-the-exchange-activesync-logo-program.aspx"&gt;http://blogs.technet.com/b/exchange/archive/2011/04/13/announcing-the-exchange-activesync-logo-program.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The official page for the EAS Logo Program can be found here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/exchange/gg187968.aspx"&gt;http://technet.microsoft.com/en-us/exchange/gg187968.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For a full list of all the Exchange Active Sync features and an understanding of which phones support which features please see:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Comparison_of_Exchange_ActiveSync_Clients"&gt;http://en.wikipedia.org/wiki/Comparison_of_Exchange_ActiveSync_Clients&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-6355238964043215341?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/6355238964043215341/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/05/eas-logo-program.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/6355238964043215341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/6355238964043215341'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/05/eas-logo-program.html' title='Exchange Active Sync Logo Program'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-5119591443904461022</id><published>2011-05-30T00:59:00.000-07:00</published><updated>2011-05-30T01:12:58.168-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Server General'/><category scheme='http://www.blogger.com/atom/ns#' term='Active Directory'/><title type='text'>Advanced DNS Active Directory Questions</title><content type='html'>One of my clients has 3 Active Directory forests each with multiple domains. Stub zones are in place for the forest root domain in each forest which are stored in each DomainDNSZone for each forest. When a DNS client wants to resolve a hostname for a host in a child domain in a different Active Directory forest it is using recursion referencing the root DNS server (from the Stub Zone) and obtaining the NS RR's for the child domain.&lt;br /&gt;&lt;br /&gt;Delegation records and Conditional Forwarders need to be updated manually when DNS servers are added and removed from the environment. Currently the companies delegation records are not align with the DNS servers in each of the child domains for each Active Directory forest. The company wants to implement a solution which is automated so they will never have to worry about updating Delegates or Forwarders. Stub Zones meet the requirement.&lt;br /&gt;&lt;br /&gt;The company is currently looking at removing all delegation between parent and child domains in each forest and use Stub Zones instead. They also want wish to use Stub Zones cross forest. To avoid having to create a Stub Zone in each domain they wish to store the Stub Zone for every domain in the ForestDNSZone partition in each forest. This means all domains in each forest will be able to utilize the Stub Zone.&lt;br /&gt;&lt;br /&gt;I have the following questions:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;&lt;u&gt;Question 1&lt;/u&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;In an Active Directory Forest we want to store each domain’s DNS zone in the DomainDNSZone partition within Active Directory. We want to configure a Stub Zone for every domain within a DNS forest and store these Stub Zones in the ForestDNSZones partition within Active Directory so they replicate to all AD Domains on the given forest. Question: All domain controllers will have their domain DNS zone under the DomainDNSZones partition in Active Directory. However they will also receive the stub zone for the ForestDNSZones partition as they are a member of the same forest. What happens here with the stub zone located in ForestDNSZones?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;&lt;u&gt;Question 2&lt;/u&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;You can only configure forwarders or stub zones on any given DNS server. What happens if you create a forwarder on one DNS server then on another DNS server in a different AD site you create a stub zone that is AD Integrated. When it goes to replicate, it will replicate the stub zone to the DNS server which in this case both a stub zone and a forwarder exists. How does windows DNS deal with this?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;&lt;u&gt;Question 3&lt;/u&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;In the relationship between child and parent domains, if an organisation chooses to use stub zones instead of delegation, if they do not remove the delegation records which precedence the Stub RR's or the Delegate RR's?&lt;br /&gt;&lt;br /&gt;To answer these questions I raised I ended up having to create a lab environment and perform testing.  Below are my answers:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;&lt;u&gt;Question 1 Answer&lt;/u&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;If a "Stub Zone" exists in the forest DNS partition but a DNS server in the same forest has a the "Primary Zone" file stored locally or in another location within DNS, the DNS server will ignore the "Stub Zone" in the forest DNS partition.  To find this out I created a lab environment with two domains within a single forest:&lt;br /&gt;&lt;br /&gt;- contoso.com&lt;br /&gt;- branch.contoso.com&lt;br /&gt;&lt;br /&gt;Contoso.com DNS server:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-EwDGaJjrwi0/TeNQBVT-_nI/AAAAAAAABbc/9qedyOTCuYY/s1600/screenshot1.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 98px;" src="http://1.bp.blogspot.com/-EwDGaJjrwi0/TeNQBVT-_nI/AAAAAAAABbc/9qedyOTCuYY/s400/screenshot1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5612417544464825970" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Properties for the branch.contoso.com stub zone on the contoso.com DNS server:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-4meMiPW4Bsk/TeNQTVQG3cI/AAAAAAAABbk/e3nyoeKylTI/s1600/screenshot2.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 349px; height: 400px;" src="http://1.bp.blogspot.com/-4meMiPW4Bsk/TeNQTVQG3cI/AAAAAAAABbk/e3nyoeKylTI/s400/screenshot2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5612417853686209986" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Branch.contoso.com DNS server:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-UKKlcV7_yAQ/TeNQwr8oQDI/AAAAAAAABbs/hNL1MzqOfzM/s1600/screenshot3.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 108px;" src="http://4.bp.blogspot.com/-UKKlcV7_yAQ/TeNQwr8oQDI/AAAAAAAABbs/hNL1MzqOfzM/s400/screenshot3.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5612418357994733618" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Properties for the contoso.com stub zone on the branch.contoso.com DNS server:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-K7792Zl-mb0/TeNQ9GflU9I/AAAAAAAABb0/AU9u4HF6wKc/s1600/screenshot4.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 346px; height: 400px;" src="http://3.bp.blogspot.com/-K7792Zl-mb0/TeNQ9GflU9I/AAAAAAAABb0/AU9u4HF6wKc/s400/screenshot4.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5612418571279094738" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;&lt;u&gt;Question 2 Answer&lt;/u&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;If a stub zone exists on a DNS server windows will not let you create a conditional DNS forwarder matching the same name as the stub zone.  If a conditional DNS forwarder exists windows will not let you create a DNS stub zone matching the same name as the conditional forwarder.  If you create an AD integrated stub zone on another DNS server in a different active directory site it will replicate through standard AD replication.  When it replicates to the server containing the conditional forwarder, the stub zone will take precedence over the conditional forwarder.  Stub Zones always have precedence over conditional forwarders.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;&lt;u&gt;Question 3 Answer&lt;/u&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;Stub Zones always have precedence over delegation.&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-5119591443904461022?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/5119591443904461022/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/05/advanced-dns-active-directory-questions.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/5119591443904461022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/5119591443904461022'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/05/advanced-dns-active-directory-questions.html' title='Advanced DNS Active Directory Questions'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-EwDGaJjrwi0/TeNQBVT-_nI/AAAAAAAABbc/9qedyOTCuYY/s72-c/screenshot1.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-1123159171880373809</id><published>2011-05-26T22:44:00.000-07:00</published><updated>2011-05-26T22:51:00.375-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Outlook'/><title type='text'>Initializing MAPI session object failed</title><content type='html'>I had a user who upgraded from a previous version of Outlook to Outlook 2010.  Whenever they open an Outlook email they recieve an error "Initializing MAPI session object failed."  After clicking OK the email opens.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-Ath_2_Jis7A/Td87Fo8xVOI/AAAAAAAABbU/aWPRgQomaA8/s1600/image001.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 209px; height: 109px;" src="http://1.bp.blogspot.com/-Ath_2_Jis7A/Td87Fo8xVOI/AAAAAAAABbU/aWPRgQomaA8/s400/image001.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5611268628804621538" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is resolved by going to C:\Windows\System32 and renaming mapi32.dll to mapi32.dll.old.  Then run a tool called fixmapi.exe under C:\Windows\System32.  This will generate a new mapi32.dll file.&lt;br /&gt;&lt;br /&gt;Note: Sometimes Administrators do not have rights to rename or modify mapi32.dll, only "TrustedInstaller" does.  In cases like this you need to take ownership of mapi32.dll and provide Administrators access to the file.&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-1123159171880373809?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/1123159171880373809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/05/initializing-mapi-session-object-failed.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/1123159171880373809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/1123159171880373809'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/05/initializing-mapi-session-object-failed.html' title='Initializing MAPI session object failed'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-Ath_2_Jis7A/Td87Fo8xVOI/AAAAAAAABbU/aWPRgQomaA8/s72-c/image001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-1993991433693773514</id><published>2011-05-22T20:27:00.000-07:00</published><updated>2011-10-05T02:42:21.802-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><title type='text'>Pitfalls to Virtualizing Exchange 2010</title><content type='html'>&lt;strong&gt;&lt;span style="color:#000000;"&gt;Exchange performs best when it can interact with the physical components of a server directly.&lt;/span&gt;&lt;/strong&gt; If you disagree with this statement that’s usually a symptom exhibited right after a vmware conference - hopefully it will go away.&lt;br /&gt;&lt;br /&gt;Before I go into the pitfalls, let me say I love virtualization - most of my Exchange 2010 deployments are virtualized. Virtualization is fantastic for small deployments of Exchange 2010 as it provides many advantages including increasing energy efficiency and requiring less hardware with server consolidation. What us Exchange people are arguing is there &lt;u&gt;are times&lt;/u&gt; you do not want to virtualize an Exchange server.&lt;br /&gt;&lt;br /&gt;One statement VMware makes is "&lt;em&gt;Virtualize enterprise apps, including Oracle, Exchange, SQL Server, Sharepoint and SAP, and deliver the highest SLAs and &lt;strong&gt;&lt;span style="color:#000000;"&gt;top performance&lt;/span&gt;&lt;/strong&gt;.&lt;/em&gt;", please see: &lt;a href="http://www.vmware.com/virtualization/"&gt;http://www.vmware.com/virtualization/&lt;/a&gt;. How is virtualizing your infrastructure going to achieve top performance? Top performance can only be achieved when software can interact directly with physical hardware bypassing hypervisors completely.&lt;br /&gt;&lt;br /&gt;VMware have published publicly that Exchange 2010 DAG replication is supported - please see:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1037959"&gt;http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1037959&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is officially &lt;strong&gt;&lt;span style="color:#000000;"&gt;NOT&lt;/span&gt;&lt;/strong&gt; supported by Microsoft. Just because VMware had it working in their lab doesn't with "simulated load generators" doesn't mean it will behave correctly in a production environment - I am talking here from experience. The Microsoft Exchange product team has clearly stated that both HyperV live migration and VMotion are not supported. You can see the link: &lt;a href="http://technet.microsoft.com/en-us/library/aa996719.aspx"&gt;http://technet.microsoft.com/en-us/library/aa996719.aspx&lt;/a&gt;. The link states that you're not supported if you use VMotion/SRM (etc) at the same time as the DAG. That's the support statement. Period.&lt;br /&gt;&lt;br /&gt;I have seen problems directly related to virtualizing clustered Exchange 2010 mailbox servers. I have seen virtualized Exchange servers where the windows cluster had kicked the server out of being a cluster member. When you try and readd the node back into the cluster, the cluster node would join and then be evicted again. This can be resolved by evicting the node via ConfigurationOnly and removing it from Windows Clustering. The problem? The Witness! It appears the Witness was locked and the new (old) node could not access it. As it turns out the client vmotioned the server to another node and that's when all the problems began.&lt;br /&gt;&lt;br /&gt;I have just got back to Australia from MSIDC (Microsoft Indian Development Centre). During my time at MSIDC I had an interesting debate internally with a Microsoft virtualization MVP named Susantha Silva on this subject. Virtualization MVP's ususally think everything should be virtulized, I'm sure they would virtualize the operating system on their mobile phone if they could! Present during this debate was Sheesh Dubey, Hyper V Program Manager for Microsoft. This debate was closed by Sheesh Dubey saying "&lt;i&gt;If a product team states their application should not be virtualized in any particular circumstance, you should &lt;u&gt;always&lt;/u&gt; follow the advise of the product team as they have reasons behind any statement they make.&lt;/i&gt;"&lt;br /&gt;&lt;br /&gt;A pitfall when Virtualizing mailbox servers that are a member of a cluster is taking snapshots in regards to transaction log replication. Go on take a snapshot of a server performing log replication. Have fun fixing it!&lt;br /&gt;&lt;br /&gt;Another pitfall to Virtualization is low-balling the RAM because "i&lt;em&gt;t's a VM and we can add it whenever&lt;/em&gt;". Exchange 2010 was architectured to use slow disk, as a result it needs more memory to provide ample disk cache. Make sure you use the Exchange Storage calculator and calculate your RAM correctly.&lt;br /&gt;&lt;br /&gt;Next problem we have is with a concept called Dynamic Memory. This is when a virtual machine is able to automatically extend the amount of memory it has allocated and return it to the hypervisor when its not required through a concept called Ballooning. SQL Server now supports Dynamic Memory as per &lt;a href="http://support.microsoft.com/kb/956893"&gt;http://support.microsoft.com/kb/956893&lt;/a&gt;, but Exchange 2010 mailbox role however does not (all other Exchange 2010 roles do). This is because the Mailbox Role in Exchange Server does not change its memory allocations on the fly. I encourage you to do a google/bing search for "dynamic memory exchange".&lt;br /&gt;&lt;br /&gt;"&lt;em&gt;Not doing the I/O numbers because it’s that magic virtual storage behind VMware&lt;/em&gt;". If you want the absolute best disk I/O you need to pass the physical storage directly through to the virtual machine. This provides the best possible I/O performance. If you insist on using a VHD or VMDK file make sure its fixed size! Another problem with shared storage is its very easy to overcommit a RAID Array of disks on a LUN to to many servers. I have seen so many virtual exchange servers where the disk queue lengths exceed 100 - very bad! Especially if your using the recommended Exchange 2010 TIER2 storage model, please make sure nothing else hits the disks!&lt;br /&gt;&lt;br /&gt;Tossing a whole DAG on one virtual host. Yes I have seen it done unfortunately. We have mentioned above the reasons why we cannot add live migrate or vmotion a servers that are a member of a DAG cluster. So what is the point? Having two mailbox servers in a DAG cluster on a single host performs worse then if the server was simply a single mailbox server.&lt;br /&gt;&lt;br /&gt;People, one virtual CPU does not represent one physical CPU. A virtual CPU represents 1 core of a physical CPU.&lt;br /&gt;&lt;br /&gt;RDM/LUN limits per VMWare cluster (FC path limit of 1024 / 4 paths = 256 LUNs per cluster)&lt;br /&gt;RDM LUN limits per Exchange VM (60 LUNs max – 4x SCSI controllers, 15 LUNs per controller)&lt;br /&gt;&lt;br /&gt;When Exchange 2010 is virtualized I ususally see the DB/Logs on the same Disk Spindles that are used by the VMs for the operating system. Remember back to the days when all servers were physical. Did the DB and LOGs ever be on the same disks as the operating system? No they didn't.&lt;br /&gt;&lt;br /&gt;When virtualizing your client access servers Microsoft NLB does not support Unicast Mode if Notify Switches is turned on. This means you need to configure NLB to use multicast mode and send cluster communication over the servers primary network interface card.&lt;br /&gt;&lt;br /&gt;Virtual Sprawl. I see admins just add more and more virtual machines until the virtualization platform almost collapses and dies. They seem to have such faith in it so they don’t even monitor it, they also think that in some mystic way it will compensate for not designing and RAM, disk and CPU correct. I think this is a knowledge and maturity thing of admin.&lt;br /&gt;&lt;br /&gt;I have a personal rule I follow, if more then 2000 users require access to a mailbox server and the users are heavy power users I ensure the Exchange server is setup physical. If the users are under 2000, require light weight access to their email and do not require DAG clustering with live migration/vmotion I set the environment up Virtual. This is pending that the disks and servers are not already over committed. On majority of networks Exchange followed by SQL requires more resources then other server. Because of this it does not always make sense to perform server consolidation through virtualization as your Exchange server may already be utilizing majority of resources on the physical host.  &lt;em&gt;Please note: CPU's are getting faster, this blog post is getting older.  Pay close attention to the CINT Rates value of the CPU and use the sizing spreadsheet created by Ross Smith and size your CPU's appropriately.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Take advantage of cheap local storage, the whole idea of Exchange 2010 is to have multiple copies of your data in different geographical locations on extremely cheap disk/hardware. It is designed to scale out so that you CAN have servers fail. A properly designed enterprise exchange 2010 environment should be able to cope with 49% of the servers failing without taking down the environment. If you have a deep understanding on how Exchange 2010 clustering and native data protection technology you will understand where us Exchange guys are coming from in terms of virtualization.&lt;br /&gt;&lt;br /&gt;If your a SME business with up to 1000 users I highly recommend looking at the HP e5000. It's a DAG in a box solution with 2 physical blade servers and locally attached storage. It comes bundled with the Exchange licensing setup with a plug in and go approach. It offers a fast performing lean mean highly available email system for companies that require high levels of email up time. There is loads of information about the e5000 on the internet.&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-1993991433693773514?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/1993991433693773514/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/05/pitfalls-to-virtualizing-exchange-2010.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/1993991433693773514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/1993991433693773514'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/05/pitfalls-to-virtualizing-exchange-2010.html' title='Pitfalls to Virtualizing Exchange 2010'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-1627853080252229557</id><published>2011-05-21T23:14:00.000-07:00</published><updated>2011-05-21T23:45:54.268-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Outlook'/><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><title type='text'>Insight into the Ignore Feature in Outlook 2010</title><content type='html'>In this blog post we will take an insight into how the Ignore feature in Outlook 2010 works.  The Ignore feature excludes you from conversation threads your not interested in.  If your new to the Ignore feature please read the following URL:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://office.microsoft.com/en-us/outlook-help/ignore-all-e-mail-messages-in-a-conversation-HA010361232.aspx"&gt;http://office.microsoft.com/en-us/outlook-help/ignore-all-e-mail-messages-in-a-conversation-HA010361232.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Where are Ignore rules stored?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Ignore rules are stored in the inside the users mailbox within a mailbox database.  They are treated like an Outlook rule and stored in the XML blob.  You can view these rules using MFCMAPI.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;As an end user can I view a list of which conversations I'm ignoring?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;As an end user using Outlook 2010 there is currently no way of viewing which conversations your ignoring.&lt;br /&gt;&lt;br /&gt;As an Exchange Administrator you can use MFCMAPI to view within a mailbox which conversations are currently being ignored.  In MFCMAPI under the users mailbox there is a "Conversation Action Settings" hidden folder.  If you right click on this folder and click "View Associated Contents table" you can see all the ignored conversations.  If you look at the MAPI property “PR_SUBJECT”, you will see the conversation subject string.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Is there a limit to the number of conversations you can ignore?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;This is unknown however I have spoke to a senior esculation team within the Exchange product group and me mentioned he has seen over 100,000 before.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Does the client or server process ignored conversations?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The server does it.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;What happens to emails that get ignored?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Ignored emails are moved to the deleted items folder within the Exchange 2010 mailbox dumpster.  Exchange 2010 uses dumpster 2.0.  For more information please see:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://clintboessen.blogspot.com/2009/10/exchange-2010-dumpster-20.html"&gt;http://clintboessen.blogspot.com/2009/10/exchange-2010-dumpster-20.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;How long do ignores last for?  For example if I do an ignore to a conversation thread then 6 months later someone does a reply to all on an unrelated topic, does this mean I will not recieve the email?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Ignore Rules only last for 180 days.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Do ignore rules use the message subject of an email?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;No it uses the conversationID or conversationTopic properties generated by the Exchange 2010 server.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;When you ignore a conversation thread does it include "re:" and "fw:"?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Not unless you’re using conversationTopic, in which case changing the subject will sometimes cause the message to escape. However, adding "re" or "fw" (or their localized equivalents) shouldn’t have any effect.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Hope this information has been helpful.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-1627853080252229557?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/1627853080252229557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/05/insight-into-ignore-feature-in-outlook.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/1627853080252229557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/1627853080252229557'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/05/insight-into-ignore-feature-in-outlook.html' title='Insight into the Ignore Feature in Outlook 2010'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-809184386549779740</id><published>2011-05-02T18:41:00.000-07:00</published><updated>2011-05-02T19:23:52.972-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2000/2003'/><title type='text'>MapiExceptionMailboxInTransit: Unable to open message store. (hr=0x80004005, ec=1292)</title><content type='html'>&lt;strong&gt;&lt;span style="font-size:130%;color:#006600;"&gt;&lt;u&gt;Problem&lt;/u&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;I am performing cross-forest migration and I am having a had an issue when attempting to perform cross-forest mailbox moves.&lt;br /&gt;&lt;br /&gt;A "user" for each "mailbox user" in the source forest exists in the destination forest. These objects were created by Identity Lifecycle Manager. These "user" objects were then prepared to be "mail users" by using the Prepare-MoveRequest.ps1 script for each user using the following syntax:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#3333ff;"&gt;.\Prepare-MoveRequest.Ps1 -Identity "CN=Paul,OU=User Accounts,DC=source,DC=local" -RemoteForestDomainController "sourceforest-dc1.source.local" -RemoteForestCredential $Remote -LocalForestDomainController "destinationforest-dc01.destination.local" -LocalForestCredential $Local -TargetMailUserOU "OU=FromILM,DC=destination,DC=local" –UseLocalObject&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I am trying to perform the mailbox move using the following command:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#3333ff;"&gt;New-MoveRequest -Identity "CN=Paul,OU=FromILM,DC=destination,DC=local" -RemoteLegacy -TargetDatabase "Mailbox Database 0205912051" -RemoteGlobalCatalog "sourceforest-dc1.source.local" -RemoteCredential $Remote -TargetDeliveryDomain "contoso.com"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When I create the move request, the move request status update does not change, it just stays at "InProgress".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#3333ff;"&gt;[PS] C:\&amp;gt;Get-MoveRequest&lt;br /&gt;&lt;br /&gt;DisplayName Status TargetDatabase&lt;br /&gt;----------- ------ --------------&lt;br /&gt;Tamara InProgress Mailbox Database 0205912051 &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I bumped up the EventLogLevel for MSExchangeIS\9002 System\Move Mailbox" to medium by using the following powershell command:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#3333ff;"&gt;Set-EventLogLevel "MSExchangeIS\9002 System\Move Mailbox" -Level Medium&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;In the destination Exchange 2010 server the following event logs were logged under "Application Log" with the EventLogLevel turned up.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="color:#ff0000;"&gt;Log Name: Application&lt;br /&gt;Source: MSExchange Mailbox Replication&lt;br /&gt;Date: 2/05/2011 4:27:37 PM&lt;br /&gt;Event ID: 1101&lt;br /&gt;Task Category: Mailbox Move&lt;br /&gt;Level: Warning&lt;br /&gt;Keywords: Classic&lt;br /&gt;User: N/A&lt;br /&gt;Computer: Ex2010.destination.local&lt;br /&gt;Description:&lt;br /&gt;Mailbox move for 'destination.local/FromILM/Paul' (fcfdc22e-d8d8-44f1-bdfe-140fdbc0d1ca) encountered a transient failure. The operation will be retried (9 out of 60).&lt;br /&gt;Error code: -2147467259&lt;br /&gt;MapiExceptionMailboxInTransit: Unable to open message store. (hr=0x80004005, ec=1292)&lt;br /&gt;Diagnostic context:&lt;br /&gt;Lid: 18969 EcDoRpcExt2 called [length=132]&lt;br /&gt;Lid: 27161 EcDoRpcExt2 returned [ec=0x0][length=132][latency=0]&lt;br /&gt;Lid: 23226 --- ROP Parse Start ---&lt;br /&gt;Lid: 27962 ROP: ropLogon [254]&lt;br /&gt;Lid: 17082 ROP Error: 0x50C&lt;br /&gt;Lid: 26937&lt;br /&gt;Lid: 21921 StoreEc: 0x50C&lt;br /&gt;Lid: 27962 ROP: ropExtendedError [250]&lt;br /&gt;Lid: 1494 ---- Remote Context Beg ----&lt;br /&gt;Lid: 26426 ROP: ropLogon [254]&lt;br /&gt;Lid: 22787 Error: 0x0&lt;br /&gt;Lid: 13032 StoreEc: 0x8004010F&lt;br /&gt;Lid: 7588 StoreEc: 0x8004010F&lt;br /&gt;Lid: 6564 StoreEc: 0x8004010F&lt;br /&gt;Lid: 24316&lt;br /&gt;Lid: 2199 StoreEc: 0x50C&lt;br /&gt;Lid: 17097 StoreEc: 0x50C&lt;br /&gt;Lid: 8620 StoreEc: 0x50C&lt;br /&gt;Lid: 1750 ---- Remote Context End ----&lt;br /&gt;Lid: 26849&lt;br /&gt;Lid: 21817 ROP Failure: 0x50C&lt;br /&gt;Lid: 26297&lt;br /&gt;Lid: 16585 StoreEc: 0x50C&lt;br /&gt;Lid: 32441&lt;br /&gt;Lid: 1706 StoreEc: 0x50C&lt;br /&gt;Lid: 24761&lt;br /&gt;Lid: 20665 StoreEc: 0x50C&lt;br /&gt;Lid: 25785&lt;br /&gt;Lid: 29881 StoreEc: 0x50C&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://3.bp.blogspot.com/-CtJIKN5Y9x0/Tb9fPM2pptI/AAAAAAAABak/xAe0G1dLtFU/s1600/eventlog1.PNG"&gt;&lt;img style="WIDTH: 400px; HEIGHT: 277px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5602301176225310418" border="0" alt="" src="http://3.bp.blogspot.com/-CtJIKN5Y9x0/Tb9fPM2pptI/AAAAAAAABak/xAe0G1dLtFU/s400/eventlog1.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#ff0000;"&gt;Log Name: Application&lt;br /&gt;Source: MSExchangeIS&lt;br /&gt;Date: 2/05/2011 4:27:37 PM&lt;br /&gt;Event ID: 9660&lt;br /&gt;Task Category: Logons&lt;br /&gt;Level: Warning&lt;br /&gt;Keywords: Classic&lt;br /&gt;User: N/A&lt;br /&gt;Computer: Ex2010.destination.local&lt;br /&gt;Description:&lt;br /&gt;User Paul (/o=Destination/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=Paul) failed to log on because their mailbox is in the process of being moved.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-wa6va5lNmus/Tb9f1zTK5_I/AAAAAAAABas/yAtY6gfl8Dw/s1600/eventlog2.PNG"&gt;&lt;img style="WIDTH: 400px; HEIGHT: 275px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5602301839380506610" border="0" alt="" src="http://3.bp.blogspot.com/-wa6va5lNmus/Tb9f1zTK5_I/AAAAAAAABas/yAtY6gfl8Dw/s400/eventlog2.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the "System Log" I also noticed the Microsoft Exchange Mailbox Replication service crashing during the move.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;Log Name: System&lt;br /&gt;Source: Service Control Manager&lt;br /&gt;Date: 3/05/2011 9:07:13 AM&lt;br /&gt;Event ID: 7031&lt;br /&gt;Task Category: None&lt;br /&gt;Level: Error&lt;br /&gt;Keywords: Classic&lt;br /&gt;User: N/A&lt;br /&gt;Computer: Ex2010.destination.local&lt;br /&gt;Description:&lt;br /&gt;The Microsoft Exchange Mailbox Replication service terminated unexpectedly. It has done this 1 time(s). The following corrective action will be taken in 5000 milliseconds: Restart the service.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-9AI4ElQU2cU/Tb9jD7E-gYI/AAAAAAAABa0/rs6NdYJasB8/s1600/eventlog3.PNG"&gt;&lt;img style="WIDTH: 400px; HEIGHT: 279px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5602305380521509250" border="0" alt="" src="http://3.bp.blogspot.com/-9AI4ElQU2cU/Tb9jD7E-gYI/AAAAAAAABa0/rs6NdYJasB8/s400/eventlog3.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;color:#006600;"&gt;&lt;u&gt;My Environment&lt;/u&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;In the destination domain I have:&lt;br /&gt;- A single Exchange 2010 server with CAS, MB and HT roles installed running SP1, Update Rollout 4.&lt;br /&gt;- Public folders&lt;br /&gt;&lt;br /&gt;In the source domain I have:&lt;br /&gt;- A single Exchange 2003 server running Service Pack 2&lt;br /&gt;- An Exchange 2010 SP1 Server running Update Rollout 4 only running the CAS role. This is for MRSProxy.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;color:#006600;"&gt;&lt;u&gt;Resolution&lt;/u&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The problem occured because MRSProxy was not enabled on the Exchange 2010 Client Access Server in the source forest. When mailboxes are moved from one Exchange 2010 forest to another Exchange 2010 forest, the process is handled through Exchange 2010 Client Access Servers using the MRSProxy service. The only port required to be open between the forests for MRSProxy to use HTTPS traffic is port 443. This works even if the source mailboxes are on 2003 or 2007 MBX servers as long as an Exchange 2010 CAS server exists in both organizations.&lt;br /&gt;&lt;br /&gt;MRSProxy is not enabled on client access servers by default. You need to enable this on the source forest client access server. To enable this navigate to the following directory on the Exchange 2010 CAS server in the source forest.&lt;br /&gt;&lt;br /&gt;Exchange Installation Path\V14\ClientAccess\ExchWeb\EWS\web.config&lt;br /&gt;&lt;br /&gt;Open the web.config in a text editor and find where it says under MRSProxyConfiguration&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#3333ff;"&gt;IsEnabled="false"&lt;br /&gt;MaxMRSConnections="100"&lt;br /&gt;DataImportTimeout="00:01:00&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-7SpZOat4cZs/Tb9mfOkWSNI/AAAAAAAABa8/lLoIWY3jC5g/s1600/mrsproxy1.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 64px;" src="http://4.bp.blogspot.com/-7SpZOat4cZs/Tb9mfOkWSNI/AAAAAAAABa8/lLoIWY3jC5g/s400/mrsproxy1.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5602309148144715986" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Change IsEnabled to true:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-I2RVpJ7jcaQ/Tb9mw3in8cI/AAAAAAAABbE/W4tLxz64xCw/s1600/mrsproxy2.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 74px;" src="http://4.bp.blogspot.com/-I2RVpJ7jcaQ/Tb9mw3in8cI/AAAAAAAABbE/W4tLxz64xCw/s400/mrsproxy2.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5602309451201114562" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I then rebooted the Exchange 2010 CAS server in the source forest.  Upon reboot the cross-forest mailbox moves worked.&lt;br /&gt;&lt;br /&gt;The Exchange 2010 CAS Server in the source domain will proxy the move request from the Ex2003 mailbox server.&lt;br /&gt;&lt;br /&gt;I also found a TechNet article that explains how to enable this:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ee732395.aspx"&gt;http://technet.microsoft.com/en-us/library/ee732395.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-809184386549779740?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/809184386549779740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/05/mapiexceptionmailboxintransit-unable-to.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/809184386549779740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/809184386549779740'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/05/mapiexceptionmailboxintransit-unable-to.html' title='MapiExceptionMailboxInTransit: Unable to open message store. (hr=0x80004005, ec=1292)'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-CtJIKN5Y9x0/Tb9fPM2pptI/AAAAAAAABak/xAe0G1dLtFU/s72-c/eventlog1.PNG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-2476403189876479708</id><published>2011-05-02T07:40:00.000-07:00</published><updated>2011-05-02T08:50:28.833-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Server General'/><title type='text'>NotifyChangeDirectory throws INSUFFICIENT RESOURCES</title><content type='html'>We had an application called Kentico CMS which we deployed on Windows Server 2008 R2 with IIS 7.5.&lt;br /&gt;&lt;br /&gt;Looking in the event log for the app, it's getting "File change notification errors" and tracking (causing the restarts) it with ProcMon we see:&lt;br /&gt;&lt;br /&gt;NotifyChangeDirectory calls being made - for a while they succeed and then they start throwing INSUFFICIENT RESOURCES in the status.&lt;br /&gt;&lt;br /&gt;The following errors were experienced in event viewer under the application logs:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#3333ff;"&gt;EventID: 9145&lt;br /&gt;EventType: W&lt;br /&gt;EventTime: 2/11/2011 12:25:04 AM&lt;br /&gt;Source: Application_End&lt;br /&gt;EventCode: ENDAPP&lt;br /&gt;&lt;br /&gt;EventDescription: Message: File Change Notification Error in \\files\domains$\k\kwinana.wa.gov.au\public_html\app_themes\default\images\cmsmodules\cms_groups&lt;br /&gt;File Change Notification Error in \\files\domains$\k\kwinana.wa.gov.au\public_html\app_themes\default\images\cmsmodules\cms_groups&lt;br /&gt;File Change Notification Error in \\files\domains$\k\kwinana.wa.gov.au\public_html\app_themes\default\images\cmsmodules\cms_medialibrary&lt;br /&gt;File Change Notification Error in \\files\domains$\k\kwinana.wa.gov.au\public_html\app_themes\default\images\cmsmodules\cms_messageboards&lt;br /&gt;File Change Notification Error in \\files\domains$\k\kwinana.wa.gov.au\public_html\app_themes\default\images\cmsmodules\cms_newsletter&lt;br /&gt;File Change Notification Error in \\files\domains$\k\kwinana.wa.gov.au\public_html\app_themes\default\images\cmsmodules\cms_polls&lt;br /&gt;File Change Notification Error in \\files\domains$\k\kwinana.wa.gov.au\public_html\app_themes\default\images\cmsmodules\cms_reporting&lt;br /&gt;File Change Notification Error in \\files\domains$\k\kwinana.wa.gov.au\public_html\app_themes\default\images\cmsmodules\cms_webanalytics&lt;br /&gt;File Change Notification Error in \\files\domains$\k\kwinana.wa.gov.au\public_html\app_themes\default\images\cmsmodules\cms_tools&lt;br /&gt;File Change Notification Error in \\files\domains$\k\kwinana.wa.gov.au\public_html\app_themes\default\images\cmsmodules\cms_groups&lt;br /&gt;File Change Notification Error in \\files\domains$\k\kwinana.wa.gov.au\public_html\app_themes\default\images\cmsmodules\cms_medialibrary&lt;br /&gt;File Change Notification Error in \\files\domains$\k\kwinana.wa.gov.au\public_html\app_themes\default\images\cmsmodules\cms_messageboards&lt;br /&gt;File Change Notification Error in \\files\domains$\k\kwinana.wa.gov.au\public_html\app_themes\default\images\cmsmodules\cms_newsletter&lt;br /&gt;File Change Notification Error in \\files\domains$\k\kwinana.wa.gov.au\public_html\app_themes\default\images\cmsmodules\cms_polls&lt;br /&gt;File Change Notification Error in \\files\domains$\k\kwinana.wa.gov.au\public_html\app_themes\default\images\cmsmodules\cms_reporting&lt;br /&gt;File Change Notification Error in \\files\domains$\k\kwinana.wa.gov.au\public_html\app_themes\default\images\cmsmodules\cms_webanalytics&lt;br /&gt;File Change Notification Error in \\files\domains$\k\kwinana.wa.gov.au\public_html\cmspages&lt;br /&gt;CONFIG change&lt;br /&gt;File Change Notification Error in \\files\domains$\k\kwinana.wa.gov.au\public_html\cmspages&lt;br /&gt;File Change Notification Error in \\files\domains$\k\kwinana.wa.gov.au\public_html\CMSPages&lt;br /&gt;File Change Notification Error in \\files\domains$\k\kwinana.wa.gov.au\public_html\cmspages&lt;br /&gt;HostingEnvironment initiated shutdown&lt;br /&gt;HostingEnvironment caused shutdown&amp;lt;br /&amp;gt;&lt;br /&gt;Shutdown stack: at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo)&lt;br /&gt;at System.Environment.get_StackTrace()&lt;br /&gt;at System.Web.Hosting.HostingEnvironment.InitiateShutdownInternal()&lt;br /&gt;at System.Web.Hosting.HostingEnvironment.InitiateShutdown()&lt;br /&gt;at System.Web.HttpRuntime.ShutdownAppDomain(String stackTrace)&lt;br /&gt;at System.Web.Configuration.HttpConfigurationSystem.OnConfigurationChanged(Object sender, InternalConfigEventArgs e)&lt;br /&gt;at System.Configuration.Internal.InternalConfigRoot.OnConfigChanged(InternalConfigEventArgs e)&lt;br /&gt;at System.Configuration.BaseConfigurationRecord.OnStreamChanged(String streamname)&lt;br /&gt;at System.Web.Configuration.WebConfigurationHostFileChange.OnFileChanged(Object sender, FileChangeEvent e)&lt;br /&gt;at System.Web.DirectoryMonitor.FireNotifications()&lt;br /&gt;at System.Web.Util.WorkItem.CallCallbackWithAssert(WorkItemCallback callback)&lt;br /&gt;at System.Web.Util.WorkItem.OnQueueUserWorkItemCompletion(Object state)&lt;br /&gt;at System.Threading._ThreadPoolWaitCallback.WaitCallback_Context(Object state)&lt;br /&gt;at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)&lt;br /&gt;at System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)&lt;br /&gt;at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)&amp;lt;br /&amp;gt;&lt;br /&gt;Call stack: at Global.LogApplicationEnd()&lt;br /&gt;at Global.Application_End(Object sender, EventArgs e)&lt;br /&gt;at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct&amp;amp; sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)&lt;br /&gt;at System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)&lt;br /&gt;at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)&lt;br /&gt;at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)&lt;br /&gt;at System.Web.HttpApplication.ProcessSpecialRequest(HttpContext context, MethodInfo method, Int32 paramCount, Object eventSource, EventArgs eventArgs, HttpSessionState session)&lt;br /&gt;at System.Web.HttpApplicationFactory.FireApplicationOnEnd()&lt;br /&gt;at System.Web.HttpApplicationFactory.Dispose()&lt;br /&gt;at System.Web.HttpRuntime.Dispose()&lt;br /&gt;at System.Web.HttpRuntime.ReleaseResourcesAndUnloadAppDomain(Object state)&lt;br /&gt;at System.Threading._ThreadPoolWaitCallback.WaitCallback_Context(Object state)&lt;br /&gt;at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)&lt;br /&gt;at System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)&lt;br /&gt;at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;And...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#3333ff;"&gt;EventMachineName: GIR1&lt;br /&gt;EventID: 289983&lt;br /&gt;EventType: E&lt;br /&gt;EventTime: 2/11/2011 4:24:23 PM&lt;br /&gt;Source: Application_End&lt;br /&gt;EventCode: EXCEPTION&lt;br /&gt;EventDescription: Message: File Change Notification Error in \\files\domains$\o\omsintl.com\public_html&lt;br /&gt;File Change Notification Error in \\files\domains$\o\omsintl.com\public_html&lt;br /&gt;File Change Notification Error in \\files\domains$\o\omsintl.com\public_html&lt;br /&gt;File Change Notification Error in \\files\domains$\o\omsintl.com\public_html&lt;br /&gt;Directory rename change notification for '\\files\domains$\o\omsintl.com\public_html'.&lt;br /&gt;public_html dir change or directory rename&lt;br /&gt;Change Notification for critical directories.&lt;br /&gt;bin dir change or directory rename&lt;br /&gt;Change Notification for critical directories.&lt;br /&gt;App_Browsers dir change or directory rename&lt;br /&gt;CONFIG change&lt;br /&gt;File Change Notification Error in \\files\domains$\o\omsintl.com\public_html&lt;br /&gt;File Change Notification Error in \\files\domains$\o\omsintl.com\public_html&lt;br /&gt;File Change Notification Error in \\files\domains$\o\omsintl.com\public_html&lt;br /&gt;File Change Notification Error in \\files\domains$\o\omsintl.com\public_html\cmsdesk&lt;br /&gt;CONFIG change&lt;br /&gt;File Change Notification Error in \\files\domains$\o\omsintl.com\public_html\cmsdesk&lt;br /&gt;File Change Notification Error in \\files\domains$\o\omsintl.com\public_html\cmspages&lt;br /&gt;CONFIG change&lt;br /&gt;HostingEnvironment initiated shutdown&lt;br /&gt;HostingEnvironment caused shutdown&lt;br /&gt;File Change Notification Error in \\files\domains$\o\omsintl.com\public_html\cmspages&amp;lt;br /&amp;gt;&lt;br /&gt;Shutdown stack: at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo)&lt;br /&gt;at System.Environment.get_StackTrace()&lt;br /&gt;at System.Web.Hosting.HostingEnvironment.InitiateShutdownInternal()&lt;br /&gt;at System.Web.Hosting.HostingEnvironment.InitiateShutdown()&lt;br /&gt;at System.Web.HttpRuntime.ShutdownAppDomain(String stackTrace)&lt;br /&gt;at System.Web.Configuration.HttpConfigurationSystem.OnConfigurationChanged(Object sender, InternalConfigEventArgs e)&lt;br /&gt;at System.Configuration.Internal.InternalConfigRoot.OnConfigChanged(InternalConfigEventArgs e)&lt;br /&gt;at System.Configuration.BaseConfigurationRecord.OnStreamChanged(String streamname)&lt;br /&gt;at System.Web.Configuration.WebConfigurationHostFileChange.OnFileChanged(Object sender, FileChangeEvent e)&lt;br /&gt;at System.Web.DirectoryMonitor.FireNotifications()&lt;br /&gt;at System.Web.Util.WorkItem.CallCallbackWithAssert(WorkItemCallback callback)&lt;br /&gt;at System.Web.Util.WorkItem.OnQueueUserWorkItemCompletion(Object state)&lt;br /&gt;at System.Threading._ThreadPoolWaitCallback.WaitCallback_Context(Object state)&lt;br /&gt;at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)&lt;br /&gt;at System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)&lt;br /&gt;at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)&amp;lt;br /&amp;gt;&lt;br /&gt;Call stack: at Global.LogApplicationEnd()&lt;br /&gt;at Global.Application_End(Object sender, EventArgs e)&lt;br /&gt;at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct&amp;amp; sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)&lt;br /&gt;at System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)&lt;br /&gt;at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)&lt;br /&gt;at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)&lt;br /&gt;at System.Web.HttpApplication.ProcessSpecialRequest(HttpContext context, MethodInfo method, Int32 paramCount, Object eventSource, EventArgs eventArgs, HttpSessionState session)&lt;br /&gt;at System.Web.HttpApplicationFactory.FireApplicationOnEnd()&lt;br /&gt;at System.Web.HttpApplicationFactory.Dispose()&lt;br /&gt;at System.Web.HttpRuntime.Dispose()&lt;br /&gt;at System.Web.HttpRuntime.ReleaseResourcesAndUnloadAppDomain(Object state)&lt;br /&gt;at System.Threading._ThreadPoolWaitCallback.WaitCallback_Context(Object state)&lt;br /&gt;at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)&lt;br /&gt;at System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)&lt;br /&gt;at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state) &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The following INSUFFICIENT RESOURCES errors were experienced in process monitor:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-iHDExrvNMZE/Tb7JhDroolI/AAAAAAAABac/BzbErCv9ywY/s1600/procmon.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://1.bp.blogspot.com/-iHDExrvNMZE/Tb7JhDroolI/AAAAAAAABac/BzbErCv9ywY/s400/procmon.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5602136556256666194" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To resolve the problem, there are a few settings that can be configured in IIS and ASP.NET To optimize this behavior.  &lt;br /&gt;&lt;br /&gt;To resolve the issue we set the DWORD HKLM\Software\Microsoft\ASP.NET\FCNMode is a Decimal value of "2" as per &lt;a href="http://support.microsoft.com/kb/911272"&gt;http://support.microsoft.com/kb/911272&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If your running a 32bit process on a 64bit server then set this key instead:&lt;br /&gt;&lt;br /&gt;HKLM\SOFTWARE\Wow6432Node\Microsoft\ASP.NET\FCNMode&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-2476403189876479708?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/2476403189876479708/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/05/notifychangedirectory-throws.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2476403189876479708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/2476403189876479708'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/05/notifychangedirectory-throws.html' title='NotifyChangeDirectory throws INSUFFICIENT RESOURCES'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-iHDExrvNMZE/Tb7JhDroolI/AAAAAAAABac/BzbErCv9ywY/s72-c/procmon.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-7665418514332116882</id><published>2011-04-24T23:25:00.000-07:00</published><updated>2011-04-25T00:08:07.229-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><title type='text'>MSExchangeIS EventID 1121 and 5000</title><content type='html'>I had an issue today where the Information Store service would not start on any Exchange 2010 server. When you went to start the Information Store service the following error appears:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-2Yu3PjiP4_s/TbUVUB_nuCI/AAAAAAAABZ0/dvG_3g7641Q/s1600/weirderror.PNG"&gt;&lt;img style="WIDTH: 400px; HEIGHT: 169px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5599405145581926434" border="0" alt="" src="http://3.bp.blogspot.com/-2Yu3PjiP4_s/TbUVUB_nuCI/AAAAAAAABZ0/dvG_3g7641Q/s400/weirderror.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#3333ff;"&gt;Windows could not start the Microsoft Exchange Information Store on Local Computer. For more information, review the System Event Log. If this is a non-Microsoft service, contact the service vendor, and refer to service-specific error code -2147221233.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The following errors were appearing in my application log:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-mxrVTdAKHbM/TbUWLG36vbI/AAAAAAAABZ8/HTHTVRanLa0/s1600/screenshot3.PNG"&gt;&lt;img style="WIDTH: 400px; HEIGHT: 278px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5599406091784601010" border="0" alt="" src="http://2.bp.blogspot.com/-mxrVTdAKHbM/TbUWLG36vbI/AAAAAAAABZ8/HTHTVRanLa0/s400/screenshot3.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#3333ff;"&gt;Error 0x8004010f connecting to Active Directory.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-dpREmc9Hbgw/TbUWSqhmDcI/AAAAAAAABaE/PfNAPDRtIhM/s1600/screenshot4.PNG"&gt;&lt;img style="WIDTH: 400px; HEIGHT: 279px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5599406221613731266" border="0" alt="" src="http://4.bp.blogspot.com/-dpREmc9Hbgw/TbUWSqhmDcI/AAAAAAAABaE/PfNAPDRtIhM/s400/screenshot4.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#3333ff;"&gt;Unable to initialize the Microsoft Exchange Information Store service. - Error 0x8004010f.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;&lt;strong&gt;If you experienced these errors you may not have the same problem! There is more then one cause for these error codes.&lt;/strong&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In my case these errors were occurring because there was no default recipient policy or email address policy. Recipient Policies were the name in Exchange 2000/2003. Email Address Policies are the new name under Exchange 2007/2010. They are the same class object in Active Directory and stored under the same location within the schema.&lt;br /&gt;&lt;br /&gt;The default email address policy displays in Exchange System Manager or Exchange Management Console with a priority of Lowest. Each additional policy gets a priority of 1 upwards... 2, 3, 4, 5 etc. When Exchange processes the recipient policy it starts from the highest number an works its way down. Recipient policies have LDAP filters, if a match is made with the filter, the policy is applied. If a policy is applied to a user, no additional policies are processed.&lt;br /&gt;&lt;br /&gt;When I went to Exchange Management Console I had a single "Default Policy" under my Email Address Policies, however it had a priority of 1, not "Lowest". No policy had a priority of "Lowest". No email address policy was the default! This was causing the information store not to mount.&lt;br /&gt;&lt;br /&gt;I used ADSIEdit to set a default policy by connecting to the configuration partition. The policies located under:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#006600;"&gt;&lt;strong&gt;CN=Recipient Policies\CN=&lt;organization&gt;\CN=Microsoft Exchange\CN=Services\CN=Configuration\DC=domain\DC=local&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To set a policy as the default email address policy, configure the priority to be 2147483647. This value is hard coded into Exchange to be the default email address policy. This value needs to be associated with the msExchPolicyOrder attribute.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-29h8ayI8Si4/TbUcK3Ud1pI/AAAAAAAABaM/tJCvQ6ebzVQ/s1600/screenshot1.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 365px; height: 400px;" src="http://4.bp.blogspot.com/-29h8ayI8Si4/TbUcK3Ud1pI/AAAAAAAABaM/tJCvQ6ebzVQ/s400/screenshot1.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5599412684679141010" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There is one more attribute that is also hard coded into Exchange, which enables a policy to become the default email address policy. That attribute is purportedSearch. This attribute must be set to (mailNickname=*).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-TnilXUsBakw/TbUdP9nj5iI/AAAAAAAABaU/wpZ27ukxcf0/s1600/screenshot2.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 356px; height: 400px;" src="http://2.bp.blogspot.com/-TnilXUsBakw/TbUdP9nj5iI/AAAAAAAABaU/wpZ27ukxcf0/s400/screenshot2.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5599413871780816418" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Once these attributes were set correctly Exchange recognized an email address policy.  The information store was now able to start on all servers after AD replication completed.&lt;br /&gt;&lt;br /&gt;There is also a TechNet article that provides some information into this error:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/bb885057.aspx"&gt;http://technet.microsoft.com/en-us/library/bb885057.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-7665418514332116882?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/7665418514332116882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/04/msexchangeis-eventid-1121-and-5000.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/7665418514332116882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/7665418514332116882'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/04/msexchangeis-eventid-1121-and-5000.html' title='MSExchangeIS EventID 1121 and 5000'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-2Yu3PjiP4_s/TbUVUB_nuCI/AAAAAAAABZ0/dvG_3g7641Q/s72-c/weirderror.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-8784189724866807812</id><published>2011-04-19T07:21:00.000-07:00</published><updated>2011-04-19T07:30:02.817-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2007/2010'/><title type='text'>Exception: The Active Directory user wasn't found</title><content type='html'>I was doing work for a client who recently just had their single Exchange 2003 server upgraded to an Exchange 2010 clustered environment.&lt;br /&gt;&lt;br /&gt;When trying to access a public folder database using the new ExFolders tool (the replacement for PFDavAdmin) the following error was experianced:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#3333ff;"&gt;An error occurred while trying to establish a connection to the Exchange server.&lt;br /&gt;&lt;br /&gt;Exception: The Active Directory user wasn't found.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-Bwi-Gfmg81A/Ta2bsYFgNQI/AAAAAAAABZA/U1ECAMzUzBU/s1600/exfolderserror.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 162px;" src="http://1.bp.blogspot.com/-Bwi-Gfmg81A/Ta2bsYFgNQI/AAAAAAAABZA/U1ECAMzUzBU/s400/exfolderserror.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5597301098573477122" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This was resolved by deleting the CN=Servers container from the old administrative group using ADSIEdit. By default this administrative group is called First Administrative Group.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-u6qi3-LCLPY/Ta2cHwK3zJI/AAAAAAAABZI/bciqI6pa0is/s1600/exfoldersfix.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 315px; height: 400px;" src="http://2.bp.blogspot.com/-u6qi3-LCLPY/Ta2cHwK3zJI/AAAAAAAABZI/bciqI6pa0is/s400/exfoldersfix.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5597301568894913682" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-8784189724866807812?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/8784189724866807812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/04/exception-active-directory-user-wasnt.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/8784189724866807812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/8784189724866807812'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/04/exception-active-directory-user-wasnt.html' title='Exception: The Active Directory user wasn&apos;t found'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-Bwi-Gfmg81A/Ta2bsYFgNQI/AAAAAAAABZA/U1ECAMzUzBU/s72-c/exfolderserror.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-1388744674327912791</id><published>2011-04-14T00:18:00.000-07:00</published><updated>2011-04-14T00:27:04.044-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Trend Micro'/><title type='text'>Why is my server blue screening?</title><content type='html'>Why is my server blue screening?&lt;br /&gt;&lt;br /&gt;Lets analyze that crash dump...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://clintboessen.blogspot.com/2009/12/how-to-analyze-dump-file.html"&gt;How to analyze a dump file&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-I155PRTCePI/TaagU_MCIJI/AAAAAAAABY4/6s5gkdQio68/s1600/PastedGraphic-13.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 215px;" src="http://2.bp.blogspot.com/-I155PRTCePI/TaagU_MCIJI/AAAAAAAABY4/6s5gkdQio68/s400/PastedGraphic-13.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5595335869474152594" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;VSApiNt.sys = Trend Micro&lt;br /&gt;&lt;br /&gt;Why am I not surprised.&lt;br /&gt;&lt;br /&gt;Seriously over that product... the amount of Trend Micro related problems I have seen over the past few years I can honestly say if it was a choice between Trend Micro on your servers and no antivirus, I would take no antivirus.&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
Feel free to email me clint@kbomb.com.au if you have any questions about this post.
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3920347219421157797-1388744674327912791?l=clintboessen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clintboessen.blogspot.com/feeds/1388744674327912791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clintboessen.blogspot.com/2011/04/why-is-my-server-blue-screening.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/1388744674327912791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3920347219421157797/posts/default/1388744674327912791'/><link rel='alternate' type='text/html' href='http://clintboessen.blogspot.com/2011/04/why-is-my-server-blue-screening.html' title='Why is my server blue screening?'/><author><name>Clint Boessen</name><uri>http://www.blogger.com/profile/11156487394562821934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-I155PRTCePI/TaagU_MCIJI/AAAAAAAABY4/6s5gkdQio68/s72-c/PastedGraphic-13.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3920347219421157797.post-4230626491361071706</id><published>2011-04-13T19:36:00.000-07:00</published><updated>2011-06-07T18:15:26.419-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Server General'/><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><title type='text'>How to Meet Payment Card Industry Data Security Standard Compliance</title><content type='html'>Payment Card Industry Data Security Standard (PCI DSS) is a complex set of rules and requirements that applies to every person, business or organisation that handles credit card data.  This includes any person, business or organisation that receives, stores, processes or transmits credit card details.&lt;br /&gt;&lt;br /&gt;The PCI DSS is a product of the Payment Card Industry Security Standards Council, an organisation founded by participating payment brands Visa International, Master Card, American Express, Diners Club and JCB.&lt;br /&gt;&lt;br /&gt;The purpose of the Payment Card Industry Security Standards Council is to establish a uniform world wide standard to aggressively addresses vulnerability and risk associated with the handling of credit card data across all industries.&lt;br /&gt;&lt;br /&gt;In this post I will be giving a few tips around how to get your Microsoft Environment to meet PCI DSS compliance.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(0, 0, 153);font-size:180%;" &gt;What is PCI DSS?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;First of all you must understand the PCI DSS compliance requirements.  Head over to the e-Path website to get an understanding of the rules and requirements around PCI DSS compliance.  There is links to PCI Security Standards Council - Supporting documentation which lists everything involved around bring your organisation align with PCI DSS compliance.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://e-path.com.au/pcidss.html"&gt;http://e-path.com.au/pcidss.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(0, 0, 153);font-size:180%;" &gt;What do I need to become PCI DSS compliant?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Once you understand the requirements next you need to understand what technology is available to meet these requirements.  Microsoft has published an article called "Payment Card Industry Data Security Standard Compliance Planning Guide" which documents all the various Microsoft Technologies available in meeting the PCI requirements.  This document is aimed primarily at CIO's and IT Managers however a more detailed target audience is listed inside the document.  Download this document from the following location:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=d8320df1-d0d0-469f-a6fc-b53987bd74c2&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=d8320df1-d0d0-469f-a6fc-b53987bd74c2&amp;amp;displaylang=en&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Note: &lt;i&gt;The are many third party (non Microsoft products) that can help you meet PCI DSS compliance, look elsewhere for these.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:180%;" &gt;&lt;strong&gt;Microsoft Security Guide&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Next you should look at the Microsoft Security Guide for meeting PCI DSS compliance.  This provides an overview for the Security Compliance Management Toolkit which is a bunch of administrative tools for locking down a Microsoft Windows network.&lt;br /&gt;&lt;br /&gt;The Microsoft Solution Accelerators - Security and Compliance (SA-SC) team developed the security guides included in this suite to provide you with recommendations for hundreds of Group Policy security settings designed to assist customers in making the environments of their organizations more secure.&lt;br /&gt;&lt;br /&gt;These SA SC team created two policy sets for different environments:&lt;br /&gt;- Enterprise Client (EC)&lt;br /&gt;- Specialized Security - Limited Functionality (SSLF)&lt;br /&gt;&lt;br /&gt;Both meet PCI DSS requirements!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;Enterprise Client (EC)&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Enterprise Client (EC) environment referred to in this guidance consists of a domain using AD DS in which computers running Windows Server 2008 with Active Directory manage client computers that can run either Windows Vista or Windows XP, and member servers running Windows Server 2008 or Windows Server 2003 R2.&lt;br /&gt;&lt;br /&gt;The domain controllers, member servers, and client computers are managed in this environment through Group Policy, which is applied to sites, domains, and OUs. Group Policy provides a centralized infrastructure within AD DS that enables directory-based change and configuration management of user and computer settings, including security and user data. The Group Policy this guide prescribes does not support client computers running Windows® 2000.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;&lt;span style="font-size:130%;"&gt;Specialized Security - Limited Functionality (SSLF)&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The Specialized Security – Limited Functionality (SSLF) baseline in this guide addresses the demand to help create highly secure environments for computers running Windows Server® 2008. Concern for security is so great in these environments that a significant loss of functionality and manageability is acceptable. The Enterprise Client (EC) security baseline helps provide enhanced security that allows sufficient functionality of the operating system and applications for the majority of organizations.&lt;br /&gt;&lt;br /&gt;Caution: &lt;em&gt;The SSLF security settings are not intended for the majority of enterprise organizations. To successfully implement the SSLF settings, organizations must thoroughly test the settings in their environment to ensure that the prescribed security configurations do not limit required functionality&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;If you decide to test and deploy the SSLF configuration settings to servers in your environment, the IT resources in your organization may experience an increase in help desk calls related to the limited functionality that the settings impose. Although the configuration for this environment provides a higher level of security for data and the network, it also prevents some services from running that your organization may require. Examples of this include Remote Desktop, which allows users to connect interactively to desktops and applications on remote computers.&lt;br /&gt;&lt;br /&gt;For a copy of the Windows Server 2008 Security Guide visit the following location:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=fb8b981f-227c-4af6-a44b-b115696a80ac&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=fb8b981f-227c-4af6-a44b-b115696a80ac&amp;amp;displaylang=en&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Note: &lt;em&gt;This documentation refers to using the "Security Compliance Management Toolkit".  This toolkit has now been replaced by "Microsoft Security Compliance Manager 1.0".&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:180%;" &gt;&lt;strong&gt;GPOAccelerator&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Security Compliance Management Toolkit contains a tool called GPOAccelerator which automatically creates all the GPOs that you need to deploy the recommended security settings for your environment allowing you to meet PCI DSS requirements.&lt;br /&gt;&lt;br /&gt;By using GPO Accelerator it saves you time preventing the need for manually editing policy settings and applying templates.  It can create the recommended GPO lockdown policies for each type of windows server:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href=
