<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">Knock, knock! Who&amp;#39;s there?</title><subtitle type="html">Dealing with OS and Identity</subtitle><id>http://blogs.technet.com/b/juanand/atom.aspx</id><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/juanand/" /><link rel="self" type="application/atom+xml" href="http://blogs.technet.com/b/juanand/atom.aspx" /><generator uri="http://telligent.com" version="5.6.50428.7875">Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><updated>2009-04-15T09:57:28Z</updated><entry><title>FIM 2010 Self-Service Password Reset ActiveX Misconfiguration Issues</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/juanand/archive/2012/04/11/fim-2010-self-service-password-reset-activex-misconfiguration-issues.aspx" /><id>http://blogs.technet.com/b/juanand/archive/2012/04/11/fim-2010-self-service-password-reset-activex-misconfiguration-issues.aspx</id><published>2012-04-11T09:01:10Z</published><updated>2012-04-11T09:01:10Z</updated><content type="html">&lt;p&gt;This post is about some of the errors you may find when setting up SSPR with Forefront Identity Manager 2010. The main resource to setup SSPR is the guide found at &lt;a title="http://technet.microsoft.com/en-us/library/ee534892(v=WS.10).aspx" href="http://technet.microsoft.com/en-us/library/ee534892(v=WS.10).aspx"&gt;http://technet.microsoft.com/en-us/library/ee534892(v=WS.10).aspx&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Although the guide is very complete and detailed step-by-step, there are a few issues you may find if you misconfigure&amp;#160; the Add-Ins and Extensions during its setup.&lt;/p&gt;  &lt;p&gt;When installing the FIM Add-Ins and Extensions package, it will prompt you for “&lt;strong&gt;FIM Service Server Address&lt;/strong&gt;”. Here you have to type the FQDN of the FIM Service server, without protocol or port. You can check &amp;quot;C:\Program Files\Microsoft Forefront Identity Manager\2010\Service\Microsoft.ResourceManagement.Service.exe.config&amp;quot; file and find &lt;strong&gt;externalHostName&lt;/strong&gt; in there.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/8461.image_5F00_4EFA7BE5.png"&gt;&lt;img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/4572.image_5F00_thumb_5F00_02563F42.png" width="478" height="340" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Then it will prompt for &lt;strong&gt;FIM Portal sites.&lt;/strong&gt; This is important because having it misconfigured leads to the errors described later. In a single-box setup, you will have both FIM Service and FIM Portal in the same FQDN. However, in more complex architectures you will be separating FIM Portal and FIM Service in separate URLs. So it is important that you get the right servers in the right configuration dialogs.&amp;#160; &lt;/p&gt;  &lt;p&gt;If you have your externalHostName as fimservice.corp.contoso.com, but your FIM Portal is running at &lt;a href="https://fimportal"&gt;https://fimportal&lt;/a&gt;, you have to enter in this second dialog both the FQDN and the NetBIOS name of your FIM Portal server, as end users may be accessing it, separated by semicolon.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/3034.image_5F00_1C868299.png"&gt;&lt;img title="image" style="margin: 0px; display: inline; background-image: none;" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/2548.image_5F00_thumb_5F00_24BAA830.png" width="481" height="346" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If you mistake like this when configuring with the FIM Service site instead of FIM Portal site (when different URLs), like the following, you will have problems initiating the ActiveX controls.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/0871.image_5F00_3E12859D.png"&gt;&lt;img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/6354.image_5F00_thumb_5F00_788D8571.png" width="474" height="341" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;&lt;strong&gt;FIM Portal site is OK, but the FIM Service address is not.&lt;/strong&gt; &lt;/h2&gt;  &lt;p&gt;In this case, the ActiveX component will initialize properly, but remain with buttons grayed out, cannot close the window, and the dialog gets hanged, so you will have to kill iexplore.exe process.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/8726.clip_5F00_image0028_5F00_34C6248F.jpg"&gt;&lt;img title="clip_image002[8]" style="margin: 0px; display: inline; background-image: none;" border="0" alt="clip_image002[8]" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/4213.clip_5F00_image0028_5F00_thumb_5F00_0396C422.jpg" width="365" height="282" /&gt;&lt;/a&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/4137.clip_5F00_image00210_5F00_2B79C381.jpg"&gt;&lt;img title="clip_image002[10]" style="margin: 0px; display: inline; background-image: none;" border="0" alt="clip_image002[10]" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/7268.clip_5F00_image00210_5F00_thumb_5F00_7899973F.jpg" width="363" height="282" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The attempt to access the Q&amp;amp;A gate through logon screen link is however more explicit, throwing the error &lt;strong&gt;“A service proxy exception was encountered while running the Password Reset Application. Error Text: An unexpected error has ocurred. Please contact helpdesk or your administrator. Error Code: 40007”.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/4628.clip_5F00_image00214_5F00_3CF9887F.jpg"&gt;&lt;img title="clip_image002[14]" style="display: inline; background-image: none;" border="0" alt="clip_image002[14]" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/6116.clip_5F00_image00214_5F00_thumb_5F00_6E74D047.jpg" width="493" height="387" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;&lt;strong&gt;FIM Service address is OK but FIM Portal site is not&lt;/strong&gt;&lt;/h2&gt;  &lt;p&gt;In this case, SSPR functionality will work OK if you initiate registration using c:\windows\system32\MsPwdRegistration.exe program, and reset password through logon screen link. However, all attempts to register or reset through FIM Portal will fail, no matter what you do with your browser settings. The errors you will find if FIM Portal addresses get misconfigured include the ones described below.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;“Registration is not possible at this time. The FIM Password and Authentication Extensions experienced an error when trying to launch registration for password reset. Please reinstall or contact your system administrator”. &lt;/h3&gt;  &lt;p&gt;When user click on “Register for password reset” link, this error window pops up, and a browser information bar shows “Internet Explorer blocked an ActiveX control, so this page might not display correctly”.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/1423.image_5F00_5BFC59C5.png"&gt;&lt;img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/6786.image_5F00_thumb_5F00_4DDD6AC8.png" width="698" height="265" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;“Authentication operation failed”&lt;/h3&gt;  &lt;p&gt;Going directly to the registration workflow page at &lt;a href="https://fimportal/identitymanagement/aspx/authn/AuthNWFUserRegistration.aspx"&gt;https://fimportal/identitymanagement/aspx/authn/AuthNWFUserRegistration.aspx&lt;/a&gt;, the yellow banner about blocked ActiveX appears and disappears, and then above message is shown in red when user click on “Register” button.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/0246.clip_5F00_image002_5F00_66C91540.jpg"&gt;&lt;img title="clip_image002" style="display: inline; background-image: none;" border="0" alt="clip_image002" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/0336.clip_5F00_image002_5F00_thumb_5F00_0EAC14A0.jpg" width="655" height="297" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;“The FIM Password and Authentication Extensions experienced an error when trying to reset a password. Please reinstall or contact your system administrator”.&lt;/h3&gt;  &lt;p&gt;Through &lt;a href="https://fimportal/PasswordPortal"&gt;https://fimportal/PasswordPortal&lt;/a&gt;, you will get the error above in red text once type a username and hit “Reset Password” button.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/3173.clip_5F00_image0026_5F00_5D7CB432.jpg"&gt;&lt;img title="clip_image002[6]" style="display: inline; background-image: none;" border="0" alt="clip_image002[6]" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/0841.clip_5F00_image0026_5F00_thumb_5F00_418B7F3A.jpg" width="573" height="248" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;On the other hand, even when Add-Ins and Extensions are properly configured, a weird issue occurs when using the &lt;a href="https://fimportal/PasswordPortal"&gt;https://fimportal/PasswordPortal&lt;/a&gt; and users do not enter domain\accountname as the picture above shows. When not including the domain, the FIM Password Reset shows up, but hangs and “ghosts” when moving the window around &lt;img class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/3480.wlEmoticon_2D00_smile_5F00_386945ED.png" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/6560.image_5F00_7CE56EC7.png"&gt;&lt;img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/1220.image_5F00_thumb_5F00_52FD943B.png" width="468" height="356" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Hope this helps!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3491451" width="1" height="1"&gt;</content><author><name>Juan Antonio Diaz - MSFT</name><uri>http://blogs.technet.com/juanand/ProfileUrlRedirect.ashx</uri></author><category term="FIM" scheme="http://blogs.technet.com/b/juanand/archive/tags/FIM/" /><category term="SSPR" scheme="http://blogs.technet.com/b/juanand/archive/tags/SSPR/" /></entry><entry><title>Enabling Safe Mode in Windows 8 Developer Preview</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/juanand/archive/2011/09/16/enabling-safe-mode-in-windows-8-developer-preview.aspx" /><id>http://blogs.technet.com/b/juanand/archive/2011/09/16/enabling-safe-mode-in-windows-8-developer-preview.aspx</id><published>2011-09-16T19:53:49Z</published><updated>2011-09-16T19:53:49Z</updated><content type="html">&lt;p&gt;Just a quick post to describe how to enable Safe Mode in Windows 8 Developer Preview.   &lt;br /&gt;If you are reading this post, probably you have already tried to boot in Safe Mode for whatever reason using classic F8 key during WIndows boot, to discover that Windows Recovery Environment (with Metro style &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/8407.wlEmoticon_2D00_smile_5F00_08289B9C.png" /&gt;) is what you get. This is how you can get to boot into Safe Mode and leave it there in case you would need to.&lt;/p&gt;  &lt;p&gt;1.- At home screen, type “cmd” in home screen to access it. To run it elevated, press Ctrl+Shift and then click on cmd icon. Accept User Account Control prompt.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/8015.image_5F00_075035B2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/4621.image_5F00_thumb_5F00_4AD7C107.png" width="447" height="336" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;2.- At command prompt, use&lt;strong&gt; bcdedit /enum /v &lt;/strong&gt;to list the boot entries. The first entry will have “Windows Boot Loader” as description. The second will have “Windows Developer Preview”. Copy the identifier GUID, {23fc82d2-….} in the picture below.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/7853.image_5F00_6FF50B73.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/3225.image_5F00_thumb_5F00_008D0662.png" width="523" height="201" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;3.- Duplicate the entry by using the following command (use your entry’s GUID &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smilewithtongueout" alt="Smile with tongue out" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/1007.wlEmoticon_2D00_smilewithtongueout_5F00_4C78670E.png" /&gt;). You can use whatever description you want:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;bcdedit /copy {23fc82d2-….} /d “Windows Developer Preview (Safe Mode)”&lt;/p&gt; &lt;/blockquote&gt;    &lt;p&gt;4.- From command prompt, invoke msconfig.exe. In there, select the newly created boot item and enable Safe Mode for it by selecting the checkbox shown in the picture below. Also mark the checkbox “&lt;strong&gt;Make all boot settings permanent&lt;/strong&gt;”. Then hit OK, and Yes again in warning message. You will be prompted then to exit msconfig with or without restart. Up to you &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/8407.wlEmoticon_2D00_smile_5F00_08289B9C.png" /&gt;. You may also change timeout so it takes just a few seconds before normal start.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/5226.image_5F00_16FFA4E9.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/2086.image_5F00_thumb_5F00_49EF3550.png" width="461" height="309" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;5.,- When you reboot you will get the following:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/0435.image_5F00_59AECA54.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/4274.image_5F00_thumb_5F00_57FDFE80.png" width="509" height="383" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;6.- If you click in “choose other options” text (not much intuitive in Developer Preview &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/8407.wlEmoticon_2D00_smile_5F00_08289B9C.png" /&gt;) you will access other special boot options:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/3187.image_5F00_16171932.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/7318.image_5F00_thumb_5F00_7B6A7D18.png" width="356" height="352" /&gt;&lt;/a&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/0572.image_5F00_794D7E4F.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/1057.image_5F00_thumb_5F00_29945306.png" width="523" height="348" /&gt;&lt;/a&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/2541.image_5F00_3C68D6B0.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/2860.image_5F00_thumb_5F00_526F4242.png" width="337" height="350" /&gt;&lt;/a&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/5618.image_5F00_37567334.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/8741.image_5F00_thumb_5F00_47823B2D.png" width="522" height="328" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;7.- If you select the boot option you created before, you will access Safe Mode, after warm boot.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/3566.image_5F00_7E7C1966.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/8863.image_5F00_thumb_5F00_58A5F303.png" width="549" height="410" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Hope you find this useful.&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3453815" width="1" height="1"&gt;</content><author><name>Juan Antonio Diaz - MSFT</name><uri>http://blogs.technet.com/juanand/ProfileUrlRedirect.ashx</uri></author><category term="Windows 8" scheme="http://blogs.technet.com/b/juanand/archive/tags/Windows+8/" /></entry><entry><title>Office 365 Directory Synchronization Tidbits, Part 2: More about Filtering</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/juanand/archive/2011/07/11/office-365-directory-synchronization-tidbits-part-2-more-about-filtering.aspx" /><id>http://blogs.technet.com/b/juanand/archive/2011/07/11/office-365-directory-synchronization-tidbits-part-2-more-about-filtering.aspx</id><published>2011-07-11T16:58:59Z</published><updated>2011-07-11T16:58:59Z</updated><content type="html">&lt;p&gt;In this post I will comment a little bit more on object filtering. As you probably know, Microsoft does not support any modifications in the out of the box configuration of Office 365 Synchronization Tool. There is a good reason for that, including that incorrect changes may trash your online services, including data loss. And nevertheless, the only pain for unwanted synched users is that they appear in the administration tools, but they are not showed in the GAL, so there is no big impact on service to end users anyway.&lt;/p&gt;  &lt;p&gt;In &lt;a href="http://community.office365.com/en-us/w/sso/filter-support-in-the-microsoft-online-services-directory-synchronization-tool.aspx" target="_blank"&gt;this&lt;/a&gt; post you will find that “&lt;em&gt;Customers that have previously configured custom filters in the directory synchronization tool, either via the filter file or directly via the Identity Lifecycle Manager (ILM) UI, should find alternate means for preventing Active Directory objects from synchronizing to Microsoft Office 365.&lt;/em&gt;” &lt;/p&gt;  &lt;p&gt;There is really not much margin for “alternate means”, as customers will be limited as of today to update their users, groups and contacts to match the built-in filters, such as sAMAccountName to contain “}”, mailNickName start with “CAS_”, etc., not really convenient…. &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-sadsmile" alt="Sad smile" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/3542.wlEmoticon_2D00_sadsmile_5F00_5F38E329.png" /&gt;. On the other hand, the “filter file” mentioned refers to &lt;strong&gt;&lt;em&gt;DirSyncFilters.xml&lt;/em&gt;&lt;/strong&gt; file placed in Sync tool installation path (as referred in “HKLM\Software\Microsoft\MSOLCoexistence\InstallPath” registry value), and described quite well &lt;a href="http://www.messageops.com/excluding-users-from-directory-synchronization" target="_blank"&gt;here&lt;/a&gt; is not supported &lt;a href="http://community.office365.com/en-us/f/150/t/404.aspx" target="_blank"&gt;anymore&lt;/a&gt; as it used to be in BPOS.&lt;/p&gt;  &lt;p&gt;However, while *UNSUPPORTED*, &lt;strong&gt;this both techniques are still functional,&lt;/strong&gt; so you may use them at least in your proof of concept and non-productive environments to get your hands on Sync Tool and find &lt;em&gt;gotchas&lt;/em&gt; for your specific environment before going live.&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;strong&gt;Update:&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Ivan pointed in his comment (thanks Ivan!) that the DirSyncFilters.xml is not functional. It is partially true (does not work as in BPOS), and partially false (you can make it work &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/3034.wlEmoticon_2D00_smile_5F00_5AE26B9B.png" /&gt;). Nevertheless, if you decide to use filtering in test environment, is more practical to filter objects directly in the Management Agent that through the DirSyncFilters.xml file anyways.&lt;/p&gt;  &lt;p&gt;&amp;#160; &lt;br /&gt;Here are some evidences of DirSyncFilters.xml usage, again, *UNSUPPORTED*:     &lt;br /&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;With Process Monitor you can see miiserver.exe accesing the file … &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/2548.image_5F00_1320E2B4.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/6266.image_5F00_thumb_5F00_6C725666.png" width="744" height="115" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;If you intentionally malform the XML file content, you will get errors in the event viewer (in the example, closed &amp;lt;ExcludeDN&amp;gt; with &amp;lt;ExcludedDNs&amp;gt;) … &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/3122.image_5F00_2293CEB6.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/3583.image_5F00_thumb_5F00_10F3BE1E.png" width="605" height="332" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;If you duplicate an entry, it will also give you event log errors … &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/8080.image_5F00_02689C2C.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/1440.image_5F00_thumb_5F00_5838EE43.png" width="723" height="333" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;If an object is filtered, no event is logged. You will have to enable .NET tracing to get such information. You can do that by adding the following to %ProgramFiles%\Microsoft Online Directory Sync\SYNCBUS\Bin\miiserver.exe.config file: &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&amp;lt;/configuration&amp;gt;        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;system.diagnostics&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;trace autoflush=&amp;quot;true&amp;quot; indentsize=&amp;quot;4&amp;quot;&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;listeners&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;add name=&amp;quot;TextListener&amp;quot;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; type=&amp;quot;System.Diagnostics.TextWriterTraceListener&amp;quot; initializeData=&amp;quot;trace.log&amp;quot; /&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;remove name=&amp;quot;Default&amp;quot; /&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/listeners&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/trace&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/system.diagnostics&amp;gt;         &lt;br /&gt;&amp;lt;/configuration&amp;gt;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;Doing so will generate %ProgramFiles%\Microsoft Online Directory Sync\SYNCBUS\Bin\trace.log file with content similar to:&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;miiserver.exe Information: 0 : Initializing the object DN filter list.        &lt;br /&gt;miiserver.exe Information: 0 : The DN filter list loaded 1 filters.         &lt;br /&gt;miiserver.exe Information: 0 : \nIgnoring filtered object CN={795662656868316173557571543434337275635038513D3D}\n         &lt;br /&gt;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;If you enable tracing but DirSyncFilters.xml is not present, it will also trace so:&lt;/p&gt;    &lt;p&gt;&lt;em&gt;miiserver.exe Information: 0 : Could not find file 'C:\Program Files\Microsoft Online Directory Sync\DirSyncFilters.xml'.        &lt;br /&gt;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;What it is true is that the BPOS technique does not work in the same way now. Instead of specifying the objectGUID in this form:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&amp;lt;?xml version=”1.0” encoding=”utf-8”?&amp;gt;      &lt;br /&gt;&amp;lt; DirectorySyncFilters&amp;gt;       &lt;br /&gt;&amp;lt; ExcludedDN&amp;gt;CN={xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}&amp;lt;/ExcludedDN&amp;gt;       &lt;br /&gt;&amp;lt; /DirectorySyncFilters&amp;gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;You have now to use the object DN that sync engine assigns to the object when it is not filtered out:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&amp;lt;?xml version=”1.0” encoding=”utf-8”?&amp;gt;      &lt;br /&gt;&amp;lt; DirectorySyncFilters&amp;gt;       &lt;br /&gt;&amp;lt; ExcludedDN&amp;gt;CN={795662656868316173557571543434337275635038513D3D}&amp;lt;/ExcludedDN&amp;gt;       &lt;br /&gt;&amp;lt; /DirectorySyncFilters&amp;gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Note that the DirSyncFilters.xml file is processed during object provisioning. So if you modify it you also need to make sync engine discard last file and reload it. The simplest way is copy and delete a file into the \Extensions folder.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3440707" width="1" height="1"&gt;</content><author><name>Juan Antonio Diaz - MSFT</name><uri>http://blogs.technet.com/juanand/ProfileUrlRedirect.ashx</uri></author><category term="ILM" scheme="http://blogs.technet.com/b/juanand/archive/tags/ILM/" /><category term="FIM" scheme="http://blogs.technet.com/b/juanand/archive/tags/FIM/" /><category term="Office 365" scheme="http://blogs.technet.com/b/juanand/archive/tags/Office+365/" /></entry><entry><title>Office 365 Directory Synchronization Tidbits, Part 1</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/juanand/archive/2011/07/06/office-365-directory-synchronization-tidbits-part-1.aspx" /><id>http://blogs.technet.com/b/juanand/archive/2011/07/06/office-365-directory-synchronization-tidbits-part-1.aspx</id><published>2011-07-05T22:51:20Z</published><updated>2011-07-05T22:51:20Z</updated><content type="html">&lt;p&gt;In this post I will try to cover some details that may help to understand how &lt;a href="http://onlinehelp.microsoft.com/en-us/office365-enterprises/ff652545.aspx"&gt;Microsoft Online Services Directory Synchronization Tool&lt;/a&gt; (MOSDST) works when it synchronizes on-premises Active Directory with Office 365. MOSDST is nothing else than a custom solution built on top of Microsoft Identity Lifecycle Manager 2007, but for non-ILM people it may seem a black box that synchronizes objects from AD to O365 without control. Knowing what it does may help understanding what it does. I name it “Part 1”, as I expect to hopefully add some more posts around this topic &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/1050.wlEmoticon_2D00_smile_5F00_7F3EA066.png" /&gt;.&lt;/p&gt;  &lt;h2&gt;SourceAD Management Agent&lt;/h2&gt;  &lt;p&gt;The SourceAD Management Agent created by MOSDST is simply an Active Directory MA, with the following configuration details:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Forest: &lt;/strong&gt;The ADMA connects to your on-premises Active Directory forest. As MOSDST uses a single ADMA, it only supports one forest. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Credentials: &lt;/strong&gt;During setup, MOSDST creates MSOL_AD_Sync user account, with unknown password. You can reset its password to a known one if you wish, providing that you update the ADMA configuration. You may also rename the account, but notice that MOSDST filters out “MSOL_AD_Sync” value in sAMAccountName, so you will find your SourceAD MA user account in Office 365 users list if it does not match other filters (see below). If you accidentally delete the account, you can recreate it with a password and update the MA configuration. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Containers: &lt;/strong&gt;The ADMA does not filter out any container, so it can potentially load every users, groups and contacts (providing that are not filtered out by the MA code) to Office 365. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Password Synchronization: &lt;/strong&gt;The ADMA is not enabled as password synchronization source, so your Active Directory passwords, even if you have PCNS installed, will not flow to Office 365. This is expected, as your users will typically be using ADFS to sign-in into Office 365 using corporate credentials. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Active Directory Objects In Scope Of Synchronization&lt;/h2&gt;  &lt;p&gt;Not all your objects in AD will end up in Office 365. While it is said that MOSDST only synchronizes users, groups and contacts, it is not exactly like that. What it loads into Office 365 depends on:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Mapped Objects: &lt;/strong&gt;Along with “group” and “contact” object in AD, “user” and “inetOrgPerson” objects are also subject to synchronization to Office 365. inetOrgPerson are treated somewhat similar to “user” objects, if they do not fall into a connector filter match. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Connector Filters: &lt;/strong&gt;There are several connector filters defined that filter out objects, so you may expect certain users, groups and contacts to be synched to Office 365 but they will not if they match a filter. So knowing those filter conditions are important to know what to expect. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;What is Filtered Out&lt;/h2&gt;  &lt;p&gt;The ADMA filters out certain “user”, “inetOrgPerson”, “contact” and “group” objects if they match certain conditions. Here are those. If you expect an object to be synchronized to Office 365 but it is not, check if it is matching one of these filters.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;“inetOrgPerson”&lt;/strong&gt; objects are filtered out if:       &lt;ul&gt;       &lt;li&gt;&lt;em&gt;sAMAccountName&lt;/em&gt; attribute is not present. &lt;/li&gt;        &lt;li&gt;&lt;em&gt;isCriticalSystemObject&lt;/em&gt; attribute set to true.           &lt;br /&gt;&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;“User” &lt;/strong&gt;objects are filtered out if:       &lt;ul&gt;       &lt;li&gt;&lt;em&gt;sAMAccountName&lt;/em&gt; attribute is not present. &lt;/li&gt;        &lt;li&gt;&lt;em&gt;isCriticalSystemObject&lt;/em&gt; attribute set to true. &lt;/li&gt;        &lt;li&gt;&lt;em&gt;sAMAccountName&lt;/em&gt; attribute is “SUPPORT_388945a0”. More info about this account &lt;a href="http://technet.microsoft.com/en-us/library/cc779144(WS.10).aspx" target="_blank"&gt;here&lt;/a&gt;.&lt;/li&gt;        &lt;li&gt;&lt;em&gt;sAMAccountName&lt;/em&gt; attribute is “MSOL_AD_Sync”. &lt;/li&gt;        &lt;li&gt;&lt;em&gt;mailNickname&lt;/em&gt; attribute starts with “SystemMailbox{“. &lt;/li&gt;        &lt;li&gt;&lt;em&gt;sAMAccountName&lt;/em&gt; or &lt;em&gt;mailNickname&lt;/em&gt; attributes start with “CAS_”. &lt;/li&gt;        &lt;li&gt;&lt;em&gt;sAMAccountName&lt;/em&gt; or &lt;em&gt;mailNickname&lt;/em&gt; attributes contain “{“ or “}”. &lt;/li&gt;        &lt;li&gt;&lt;em&gt;msExchRecipientTypeDetails&lt;/em&gt; attribute is 0x1000, 0x2000, 0x4000, 0x400000, 0x800000, 0x1000000 or 0x20000000.           &lt;br /&gt;&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;“contact” &lt;/strong&gt;objects are filtered out if:       &lt;ul&gt;       &lt;li&gt;&lt;em&gt;displayName&lt;/em&gt; attribute contains “(MSOL)” and &lt;em&gt;msExchHideFromAddressLists&lt;/em&gt; attribute is set to true. &lt;/li&gt;        &lt;li&gt;&lt;em&gt;mailNickname &lt;/em&gt;attribute starts with “CAS_” and contains “{“. &lt;/li&gt;        &lt;li&gt;&lt;font color="#000000"&gt;The object is not mail-enabled&lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-star" alt="Star" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/7103.wlEmoticon_2D00_star_5F00_43C3F6FB.png" /&gt;. &lt;/font&gt;&lt;/li&gt;        &lt;li&gt;&lt;font color="#000000"&gt;The &lt;em&gt;displayName&lt;/em&gt; attribute is not set.&lt;/font&gt;           &lt;br /&gt;&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;“group”&lt;/strong&gt; objects are filtered out if:       &lt;ul&gt;       &lt;li&gt;&lt;strong&gt;Contains more than the maximum number of allowed members. &lt;/strong&gt;By default, it is set to 15,000 members, but can be adjusted by the “&lt;em&gt;GroupMembershipSizeFilter&lt;/em&gt;” REG_DWORD value under “&lt;em&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSOLCoExistence&lt;/em&gt;” registry key. This limit is based on absoult members list count, not based on those members that are actually synchronized to Office 365. &lt;/li&gt;        &lt;li&gt;Is a &lt;strong&gt;security-enabled group&lt;/strong&gt; and &lt;em&gt;isCriticalSystemObject &lt;/em&gt;attribute is set to true. &lt;/li&gt;        &lt;li&gt;Is a &lt;strong&gt;security-enabled group&lt;/strong&gt; and is mail-enabled&lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-star" alt="Star" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/7103.wlEmoticon_2D00_star_5F00_43C3F6FB.png" /&gt; but &lt;em&gt;displayName &lt;/em&gt;attribute is not set. &lt;/li&gt;        &lt;li&gt;&lt;font color="#000000"&gt;The object is not mail-enabled&lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-star" alt="Star" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/7103.wlEmoticon_2D00_star_5F00_43C3F6FB.png" /&gt;. &lt;/font&gt;&lt;/li&gt;        &lt;li&gt;&lt;font color="#000000"&gt;The &lt;em&gt;displayName&lt;/em&gt; attribute is not set.&lt;/font&gt;           &lt;br /&gt;&lt;!--EndFragment--&gt;&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-star" alt="Star" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-65-93-metablogapi/7103.wlEmoticon_2D00_star_5F00_43C3F6FB.png" /&gt; “&lt;strong&gt;mail-enabled&lt;/strong&gt;” in this context means that either has a primary SMTP address in &lt;em&gt;proxyAddresses&lt;/em&gt; attribute (i.e. “SMTP:johndoe@contoso.com”), or &lt;em&gt;mail&lt;/em&gt; attribute has an SMTP address (i.e. &lt;a href="mailto:&amp;ldquo;johndoe@contoso.com"&gt;“johndoe@contoso.com&lt;/a&gt;”).&lt;/p&gt;  &lt;ul&gt;   &lt;p&gt;&lt;!--EndFragment--&gt;&lt;/p&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;strong&gt;Update:&lt;/strong&gt;&lt;/u&gt; Somewhat similar info can be found &lt;a href="http://community.office365.com/en-us/w/sso/filter-support-in-the-microsoft-online-services-directory-synchronization-tool.aspx" target="_blank"&gt;here&lt;/a&gt; and &lt;a href="http://support.microsoft.com/kb/2256198" target="_blank"&gt;here&lt;/a&gt;. A great PDF is also available &lt;a href="http://messageops.com/wp-content/uploads/2010/08/MessageOpsDirSyncInDepth.pdf" target="_blank"&gt;here&lt;/a&gt; that contains lots of inner details about Sync Tool too.&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3439730" width="1" height="1"&gt;</content><author><name>Juan Antonio Diaz - MSFT</name><uri>http://blogs.technet.com/juanand/ProfileUrlRedirect.ashx</uri></author><category term="ILM" scheme="http://blogs.technet.com/b/juanand/archive/tags/ILM/" /><category term="FIM" scheme="http://blogs.technet.com/b/juanand/archive/tags/FIM/" /><category term="Office 365" scheme="http://blogs.technet.com/b/juanand/archive/tags/Office+365/" /></entry><entry><title>Forefront Identity Manager 2010 R2 CEP</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/juanand/archive/2011/05/11/forefront-identity-manager-2010-r2-cep.aspx" /><id>http://blogs.technet.com/b/juanand/archive/2011/05/11/forefront-identity-manager-2010-r2-cep.aspx</id><published>2011-05-11T07:37:00Z</published><updated>2011-05-11T07:37:00Z</updated><content type="html">&lt;p&gt;In june 2011 the &lt;strong&gt;Forefront Identity Manager 2010 R2 &lt;/strong&gt;CEP program is launched&lt;strong&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;CEP stands for &lt;a href="https://connect.microsoft.com/site1211/"&gt;Community Evaluation Program at Microsoft Connect&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;As explained on the landing page: “&lt;em&gt;The Community Evaluation Program from the Management and Security team at Microsoft provides IT professionals a structured approach to evaluating System Center and Forefront products before their final release. Members of this program are able to evaluate early versions of products with guidance from the product team and by sharing of experiences and best practices among a community of peers.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;This site is a starting point to get involved with the Community Evaluation Program. Once you have applied and been accepted to a program, you will be invited to a product specific site on Connect. Please check this page often for updates on current and upcoming programs.&lt;/em&gt;“&lt;/p&gt;  &lt;p&gt;To apply for the Forefront Identity Manager 2010 R2 Community Evaluation Program, see the&lt;a href="https://connect.microsoft.com/site1211/Survey/Survey.aspx?SurveyID=12494"&gt;Forefront Identity Manager 2010 Community Evaluation Program Application&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Additionally you can &lt;a href="https://connect.microsoft.com/site1211/Downloads/DownloadDetails.aspx?DownloadID=35092"&gt;Download the Datasheet&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3428125" width="1" height="1"&gt;</content><author><name>Juan Antonio Diaz - MSFT</name><uri>http://blogs.technet.com/juanand/ProfileUrlRedirect.ashx</uri></author><category term="FIM" scheme="http://blogs.technet.com/b/juanand/archive/tags/FIM/" /></entry><entry><title>Analyzing a Crash Dump, aka BSOD</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/juanand/archive/2011/03/20/analyzing-a-crash-dump-aka-bsod.aspx" /><id>http://blogs.technet.com/b/juanand/archive/2011/03/20/analyzing-a-crash-dump-aka-bsod.aspx</id><published>2011-03-20T22:29:26Z</published><updated>2011-03-20T22:29:26Z</updated><content type="html">&lt;p&gt;Today I have to face a weird behavior in my laptop since a few of days ago. It only happens that when the computer goes to sleep, that is, stand-by, either by my request or due to lack of battery, the screen goes blank but seemed to never finish the sleep process. &lt;/p&gt;  &lt;p&gt;I say “seemed” because the last times this happened, I did not have the patience to wait and long-pressed the power button to force a shutdown. However, last night, I went to bed and left it in the sleeping attempt, and this morning I found a “nice” crash dump, also known as Blue Screen Of Death, complaining about DRIVER_POWER_STATE_FAILURE issue: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/5141.image_5F00_088BC03D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/7723.image_5F00_thumb_5F00_7208FBE8.png" width="437" height="271" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Sometime ago I had other BSOD that pointed me to a networking drivers issue (ndis.sys), and updating those available seemed to work and did not get BSOD anymore:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/5657.image_5F00_2679A864.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/4428.image_5F00_thumb_5F00_03D569E9.png" width="430" height="266" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This time, while “DRIVER_POWER_STATE_FAILURE” points initially to a device driver that is preventing the kernel to suspend the computer, but the BSOD does not show which driver could it be, so it could be tedious to go and try to update and test every single driver. So lets get into memory dump analysis to see if we can find the faulty driver.&lt;/p&gt;  &lt;p&gt;To do so, the first thing we need is a kernel memory dump. To get so, we need to have the system configured to do so in “Startup and Recovery” dialog. By default, Windows 7 does not show BSOD, but restarts the computer after system crash, so if you want to see the BSOD message, you need to uncheck the “Automatically restart” checkbox.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/2867.image_5F00_0D017F5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/8132.image_5F00_thumb_5F00_69F10DEC.png" width="268" height="316" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;To analyze the memory dump generated after a BSOD, we can use WinDbg, included with Windows Debugging Tools. There is great intro and download links at at &lt;a title="http://msdn.microsoft.com/en-us/windows/hardware/gg462988.aspx" href="http://msdn.microsoft.com/en-us/windows/hardware/gg462988.aspx"&gt;http://msdn.microsoft.com/en-us/windows/hardware/gg462988.aspx&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Once we launch WinDbg, the first thing to do is configure the symbols path. We do so from “File/Symbol File Path”, and specify “SRV*c:\SymbolsCache*=http://msdl.microsoft.com/download/symbols” as path (without quotes). This will download symbols from Microsoft to c:\SymbolsCache as needed by WinDbg.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/4034.image_5F00_11D40D4C.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/0317.image_5F00_thumb_5F00_1D89547E.png" width="244" height="238" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Then we open the crash dump from “File/Open Crash Dump”&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/1307.image_5F00_286635C6.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/0726.image_5F00_thumb_5F00_5840D787.png" width="244" height="141" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In my case, I opened “DRIVER_POWER_STATE_FAILURE.dmp”, as I renamed the dump file to prevent other dumps to overwrite it.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/2772.image_5F00_6EB3760E.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/3872.image_5F00_thumb_5F00_590917A4.png" width="411" height="345" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;At the end of the initial output, there is a candidate driver for the BSOD, netw5s64.sys. Executing “!analyze –v” confirms this fact:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/5050.image_5F00_0394D2B5.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/1346.image_5F00_thumb_5F00_26D1A18D.png" width="424" height="316" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;We can see that the error is caused by a device driver blocking an IRP (IoCompleteRequest) for too long, and we can see that the IRP address is fffffa80101fac10.&lt;/p&gt;  &lt;p&gt;If we run !IRP fffffa80101fac10, we can see the drivers involved:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/1643.image_5F00_63A6235F.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/7607.image_5F00_thumb_5F00_4FAC90C9.png" width="435" height="140" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;We can again see netw5s64, and this time also Virtual WiFi bus (vwifibus), available in Windows 7 for WiFi hosted networks feature. So here is my supossedly faulty driver:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/4863.image_5F00_0D597886.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/8105.image_5F00_thumb_5F00_52259CBA.png" width="244" height="240" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The point is that it has being working without issues for a long time, so it may not necessary be a bug in the driver itself, but a hardware failure or a driver configuration. The first thing we can try though is look for driver updates. We can do this directly from Device Manager. Unfortunately, I had no luck this time:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/4073.image_5F00_7A74CF0E.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/3817.image_5F00_thumb_5F00_06964936.png" width="335" height="102" /&gt;&lt;/a&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/2248.image_5F00_6B114732.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/1667.image_5F00_thumb_5F00_59DD698F.png" width="291" height="214" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Another thing we can try is go to the computer’s integrator website, or even directly to the driver’s manufacturer website, Intel Corporation in this case, to see if there is a new driver. This operation can be more or less lengthy, depending on the manufacturer/integrator's sites organization and complexity. In my case, my laptop vendor was not providing a good driver revision (even older than the one I had installed), but Intel did: there was an updated driver not available in Windows Update:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/5074.image_5F00_05418A8A.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/7446.image_5F00_thumb_5F00_42EE7246.png" width="460" height="230" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;While I download the updated driver, I take a look at “Power Management” tab of the device which driver was causing the BSOD in Device Manager, and found the most possible reason for the failure: The interface is configured to not allow the computer to turn of this device to save power.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/8688.image_5F00_119F87E6.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/8524.image_5F00_thumb_5F00_0F82891D.png" width="362" height="235" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Before updating the driver, I checked this checkbox and try to suspend the computer. Guess what, this time the computer suspended just fine.    &lt;br /&gt;So there is no reason to update the driver…. but …. well…. we all like to be up-to-date … so I’ll install it anyways &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/4403.wlEmoticon_2D00_smile_5F00_4C570AEF.png" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3414344" width="1" height="1"&gt;</content><author><name>Juan Antonio Diaz - MSFT</name><uri>http://blogs.technet.com/juanand/ProfileUrlRedirect.ashx</uri></author><category term="Troubleshooting" scheme="http://blogs.technet.com/b/juanand/archive/tags/Troubleshooting/" /></entry><entry><title>Forefront Identity Manager 2010 Ramp Up</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/juanand/archive/2010/12/14/forefront-identity-manager-2010-ramp-up.aspx" /><id>http://blogs.technet.com/b/juanand/archive/2010/12/14/forefront-identity-manager-2010-ramp-up.aspx</id><published>2010-12-14T19:00:07Z</published><updated>2010-12-14T19:00:07Z</updated><content type="html">&lt;p&gt;At my job role, I have being asked several times about what resources I would recommend to technical consultants that want to start with Identity Management solutions. Fortunately we at Microsoft&amp;#160; have a recommended training roadmap created for internal staff that - again fortunately - uses lots of public resources. While I cannot share here internal resources, I think it is good for building ILM/FIM technical community to share what training resources our experts recommend. So here it goes, plus some bonus links &lt;img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/0878.wlEmoticon_2D00_smile_5F00_7C8EA00F.png" /&gt;.&lt;/p&gt;  &lt;p&gt;Happy learning!!&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="103"&gt;         &lt;p&gt;&lt;b&gt;Level&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="282"&gt;         &lt;p&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="491"&gt;         &lt;p&gt;&lt;b&gt;Resource&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="71"&gt;         &lt;p&gt;&lt;b&gt;Duration&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="103"&gt;         &lt;p&gt;Basic&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="282"&gt;         &lt;p&gt;After completing the solutions recommended for this level, you should be able to articulate the Microsoft strategy for the relevant area, the value proposition Microsoft brings to customers and the main competitors in this space. You should also be able to identify the different components of this product and the relationships between them.&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="491"&gt;         &lt;p&gt;&lt;a href="https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032444014&amp;amp;CountryCode=US"&gt;FIM 2010: Technical Overview and Deployment&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="71"&gt;         &lt;p&gt;1h&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="103"&gt;Intermediate&lt;/td&gt;        &lt;td valign="top" width="282"&gt;After completing the solutions recommended for this level, you should be able to describe the product architecture, have a detailed understanding of the product’s capabilities and limitations, and understand its deployment scenarios and requirements.&lt;/td&gt;        &lt;td valign="top" width="491"&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=15032653-D78E-4D9D-9E48-6CF0AE0C369C&amp;amp;displaylang=en"&gt;Microsoft Identity Integration Server 2003 Scenarios&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="71"&gt;7 h&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="103"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="282"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="491"&gt;         &lt;p&gt;&lt;b&gt;FIM Introduction Technical Library Documents:&lt;/b&gt;             &lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ff621362(WS.10).aspx"&gt;FIM 2010 Technical Overview&lt;/a&gt;             &lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ff519007(WS.10).aspx"&gt;Understanding Custom Resource and Attribute Management&lt;/a&gt;             &lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ee534912(WS.10).aspx"&gt;Introduction to Custom Resource and Attribute Management&lt;/a&gt;             &lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ff393653(WS.10).aspx"&gt;Understanding Configuring and Customizing the FIM Portal&lt;/a&gt;             &lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ee534913(WS.10).aspx"&gt;Introduction to Configuring and Customizing the FIM Portal&lt;/a&gt;             &lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ee534891(WS.10).aspx"&gt;Introduction to Resource Control Display Configurations&lt;/a&gt;             &lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ee534918(WS.10).aspx"&gt;Resource Control Display Configuration XML Reference&lt;/a&gt;             &lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ee534905(WS.10).aspx"&gt;Introduction to Management Policy Rules&lt;/a&gt;             &lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ee534911(WS.10).aspx"&gt;Introduction to Inbound Synchronization&lt;/a&gt;             &lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ee534904(WS.10).aspx"&gt;Introduction to Outbound Synchronization&lt;/a&gt;             &lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ee534908(WS.10).aspx"&gt;Introduction to Publishing Active Directory From Two Authoritative Data Sources&lt;/a&gt;             &lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ee534902(WS.10).aspx"&gt;Introduction to User and Group Management&lt;/a&gt;             &lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ee534915(WS.10).aspx"&gt;Introduction to Distribution Group Management&lt;/a&gt;             &lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ee534903(WS.10).aspx"&gt;Introduction to Security Group Management&lt;/a&gt;             &lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ff575965(WS.10).aspx"&gt;Common Configuration for Getting Started Guides&lt;/a&gt;             &lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ee534919(WS.10).aspx"&gt;Introduction to Request Management&lt;/a&gt;             &lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ee534892(WS.10).aspx"&gt;Password Reset Deployment Guide&lt;/a&gt;             &lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ee534909(WS.10).aspx"&gt;FIM Installation Guide&lt;/a&gt;             &lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ff400279(WS.10).aspx"&gt;FIM 2010 Capacity Planning Guide&lt;/a&gt;             &lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ee534906(WS.10).aspx"&gt;Configuration Migration Deployment Guide&lt;/a&gt;             &lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/fim-2010-backup-and-restore-guide(WS.10).aspx"&gt;FIM Backup and Restore Guide&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="71"&gt;19 h&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="103"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="282"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="491"&gt;         &lt;p&gt;&lt;b&gt;CLM Technical Library Documents:&lt;/b&gt;             &lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ff621363(WS.10).aspx"&gt;CLM Technical Library Documents&lt;/a&gt;             &lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ee808042(WS.10).aspx"&gt;Certificate Mangement Deployment&lt;/a&gt;             &lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/fim_cm_backup_and_restore(WS.10).aspx"&gt;FIM CM Backup and Restore Guide&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="71"&gt;4.25 h&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="103"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="282"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="491"&gt;&lt;a href="http://www.microsoft.com/learning/en/us/Course.aspx?ID=50382A&amp;amp;Locale=en-us"&gt;Course 50382A: Implementing Forefront Identity Manager 2010&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="71"&gt;32 h&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="103"&gt;Advanced&lt;/td&gt;        &lt;td valign="top" width="282"&gt;After completing the items recommended for this level, you should be able to build, deploy and troubleshoot solutions based on the product for enterprise customers. At this point, a consultant should be to lead customer engagements involving the product.&lt;/td&gt;        &lt;td valign="top" width="491"&gt;&lt;a href="http://technet.microsoft.com/en-us/magazine/ff472471.aspx"&gt;Exchange Provisioning using ILM 2007 and FIM 2010&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="71"&gt;1.5 h&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="103"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="282"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="491"&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ee808057(WS.10).aspx"&gt;FIM CM: Getting Started&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="71"&gt;4 h&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="103"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="282"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="491"&gt;         &lt;p&gt;&lt;b&gt;Extensible MA Development:              &lt;br /&gt;&lt;/b&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc720584(WS.10).aspx"&gt;Developing a File-Based Import Management Agent&lt;/a&gt;             &lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc720570(WS.10).aspx"&gt;Developing a File-Based Export Management Agent&lt;/a&gt;             &lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc720605(WS.10).aspx"&gt;Developing a Call-Based Export Management Agent&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="71"&gt;4 h&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="103"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="282"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="491"&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ff356871(WS.10).aspx"&gt;Modeling Business Policy Rules with FIM&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="71"&gt;1.5 h&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="103"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="282"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="491"&gt;&lt;a href="http://www.microsoft.com/learning/en/us/Course.aspx?ID=50383A&amp;amp;Locale=en-us"&gt;Course 50383A: Upgrading ILM 2007 to FIM 2010&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="71"&gt;32 h&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="103"&gt;Expert&lt;/td&gt;        &lt;td valign="top" width="282"&gt;After completing the items recommended for this level, you should be able to build solutions for complex usage scenarios (large scale, mission critical, integration, migration). &lt;/td&gt;        &lt;td valign="top" width="491"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd172120.aspx"&gt;Generate Specialized Test Data with a Custom Data Generator&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="71"&gt;3 h&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;b&gt;Community Resources:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;- &lt;a href="http://social.technet.microsoft.com/Forums/en-US/ilm2"&gt;FIM Technet Group&lt;/a&gt;    &lt;br /&gt;- &lt;a href="http://social.technet.microsoft.com/Forums/en-US/ilm2/thread/2c0d4e9c-aeeb-45e4-8f47-be1f2fab6158"&gt;FIM Experts Corner&lt;/a&gt;    &lt;br /&gt;- &lt;a href="http://social.technet.microsoft.com/Forums/en-US/ilm2/thread/807617bc-b560-4cbe-a137-b9f338bfbd8e"&gt;FIM Scriptbox&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Other:     &lt;br /&gt;&lt;/strong&gt;- &lt;a href="https://mvp.support.microsoft.com/communities/mvp.aspx?product=1&amp;amp;competency=Identity+Lifecycle+Manager"&gt;MVPs&lt;/a&gt;&amp;#160; &lt;br /&gt;- &lt;a href="http://www.identitychaos.com/2007/02/displayname-silent-idm-killer.html"&gt;displayName – The Silent Identity Management Killer&lt;/a&gt;    &lt;br /&gt;- &lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/identity-management-project-phase-one-joins-and-data-matching.aspx"&gt;Identity Management Project Phase One: Joins and Data Matching&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;     &lt;br /&gt;&lt;/strong&gt;&lt;b&gt;Extended Resource Library:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;- &lt;a href="http://download.microsoft.com/download/3/2/A/32A7B77A-7D3A-4D24-ACE7-5AA3A908B95E/Understanding%20FIM%202010.docx"&gt;Understanding FIM 2010&lt;/a&gt;    &lt;br /&gt;- &lt;a href="http://msdn.microsoft.com/en-us/library/ee652287.aspx"&gt;Xpath Reference&lt;/a&gt;    &lt;br /&gt;- &lt;a href="http://msdn.microsoft.com/en-us/library/ms734631(VS.90).aspx"&gt;Workflow Foundation Overview&lt;/a&gt;    &lt;br /&gt;- &lt;a href="http://msdn.microsoft.com/en-us/library/dd692925.aspx"&gt;Introduction to Sequential Workflows&lt;/a&gt;    &lt;br /&gt;- &lt;a href="http://msdn.microsoft.com/en-us/library/ee652258.aspx"&gt;Custom Activities &amp;amp; Workflows&lt;/a&gt;    &lt;br /&gt;- &lt;a href="http://msdn.microsoft.com/en-us/library/ff463694.aspx"&gt;Develop Custom Activities &amp;amp; WF&lt;/a&gt;    &lt;br /&gt;- &lt;a href="http://msdn.microsoft.com/en-us/library/ee652293.aspx"&gt;Create Custom Activity Library&lt;/a&gt;    &lt;br /&gt;- &lt;a href="http://msdn.microsoft.com/en-us/library/ee652363.aspx"&gt;Rendering Custom Activities in the FIM Portal&lt;/a&gt;    &lt;br /&gt;- &lt;a href="http://technet.microsoft.com/en-us/library/cc753754.aspx"&gt;Enterprise PKI Concepts&lt;/a&gt;    &lt;br /&gt;- &lt;a href="http://technet.microsoft.com/en-us/library/cc720629(WS.10).aspx"&gt;Technical Overview of CLM 2007&lt;/a&gt;    &lt;br /&gt;- &lt;a href="http://technet.microsoft.com/en-us/library/cc720569(WS.10).aspx"&gt;CLM 2007 Operations&lt;/a&gt;    &lt;br /&gt;- &lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/current-identity-lifecycle-manager-resources.aspx"&gt;ILM 2007 Resources&lt;/a&gt;     &lt;br /&gt;- &lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/forefront-identity-manager-fim-2010-webcasts-amp-videos.aspx"&gt;FIM 2010 Webcasts and videos&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Product Team and Microsoft Blogs:     &lt;br /&gt;&lt;/strong&gt;- &lt;a href="http://blogs.technet.com/b/identitymanagement/"&gt;Identity and Access Management Blog&lt;/a&gt;    &lt;br /&gt;- &lt;a href="http://blogs.msdn.com/b/imex/"&gt;Identity Management Extensibility&lt;/a&gt;    &lt;br /&gt;- &lt;a href="http://blogs.msdn.com/b/therabournidentity/"&gt;Shawn’s MIIS/ILM/FIM Code Experiment&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;MVPs and Experts Blogs (alphabetical by givenName &lt;img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/0878.wlEmoticon_2D00_smile_5F00_7C8EA00F.png" /&gt;)&lt;/strong&gt;:    &lt;br /&gt;- &lt;a href="https://mvp.support.microsoft.com/profile=52448F6F-32B3-4E9C-9884-BAB2A1198B38"&gt;Almero Steyn&lt;/a&gt;’s &lt;a href="http://puttyq.com/blog/"&gt;Puttyq&lt;/a&gt;     &lt;br /&gt;- &lt;a href="http://identityminded.wordpress.com/"&gt;Blain Checkley's Identity Minded&lt;/a&gt;    &lt;br /&gt;- &lt;a href="https://mvp.support.microsoft.com/profile=9A35D1CD-93A3-4031-97D1-EE5A642A3965"&gt;Brad Turner&lt;/a&gt;’s &lt;a href="http://www.identitychaos.com/"&gt;1dent1ty cHa0s&lt;/a&gt;    &lt;br /&gt;- &lt;a href="https://mvp.support.microsoft.com/profile=8A714EB5-9834-456F-8A8B-678CC591D919"&gt;Carol Wapshere&lt;/a&gt;’s &lt;a href="http://www.wapshere.com/missmiis/"&gt;Missmiis&lt;/a&gt;    &lt;br /&gt;- &lt;a href="https://mvp.support.microsoft.com/profile=CA744AE6-180D-4B38-BE45-D3DC51161CFC"&gt;Craig Martin&lt;/a&gt;’s &lt;a href="http://www.identitytrench.com/"&gt;Identity Trench&lt;/a&gt;     &lt;br /&gt;- &lt;a href="https://mvp.support.microsoft.com/profile=2EE5AB70-A86A-46E2-9985-877C1750D62F"&gt;David Lundell&lt;/a&gt;’s &lt;a href="http://www.ilmbestpractices.com/blog/blogger.html"&gt;ILM Best Practices&lt;/a&gt;     &lt;br /&gt;- Dmitry Kazantsev’s &lt;a href="http://lostandfoundidentity.wordpress.com/"&gt;Lost and Found Identity's blog&lt;/a&gt;    &lt;br /&gt;- &lt;a href="https://mvp.support.microsoft.com/profile=7AE26CD9-E6A6-466F-84F4-082AF519865C"&gt;Henrik Nilsson&lt;/a&gt;’s &lt;a href="http://www.idmcrisis.com/"&gt;Identity Management Crisis&lt;/a&gt;     &lt;br /&gt;- Jeremy Palenchar’s &lt;a href="http://identitynotes.palenchar.net/"&gt;Identity Notes&lt;/a&gt;    &lt;br /&gt;- &lt;a href="https://mvp.support.microsoft.com/profile=8B246834-4A98-4083-8669-4D2700A6B6B4"&gt;Joe Stepongzi&lt;/a&gt;’s &lt;a href="http://www.microsoftidm.com/"&gt;Microsoft IDM&lt;/a&gt;.    &lt;br /&gt;- Joe Zamora’s &lt;a href="http://c--shark.blogspot.com"&gt;CShark&lt;/a&gt;    &lt;br /&gt;- &lt;a href="https://mvp.support.microsoft.com/profile=F8C04F4A-BFF2-453E-9AED-7DFEDAB0BE10"&gt;Jorge de Almeida Pinto&lt;/a&gt;’s &lt;a href="http://blogs.dirteam.com/blogs/jorge"&gt;Jorge 's Quest For Knowledge!&lt;/a&gt;    &lt;br /&gt;- &lt;a href="http://www.identityblog.com/?p=354"&gt;Kim Cameron's Identity Weblog&lt;/a&gt;.    &lt;br /&gt;- Laura E. Hunter’s &lt;a href="http://www.shutuplaura.com/"&gt;Shut Up, Laura&lt;/a&gt;    &lt;br /&gt;- &lt;a href="https://mvp.support.microsoft.com/profile=F5D466B1-D148-46F1-A4FB-2CB60A40CF8D"&gt;Marc Mac Donell&lt;/a&gt;’s &lt;a href="http://assurancesinidentity.blogspot.com/"&gt;Assurances in Identity&lt;/a&gt;    &lt;br /&gt;- &lt;a href="https://mvp.support.microsoft.com/profile=E503F9C2-772D-44B3-BF4E-A98213E739FF"&gt;Naohiro Fujie&lt;/a&gt;’s &lt;a href="http://idmlab.eidentity.jp/"&gt;IdMlab&lt;/a&gt;    &lt;br /&gt;- &lt;a href="https://mvp.support.microsoft.com/profile=6FF557B9-EA87-4B04-BDBE-EE77BF7E6642"&gt;Paolo Tedesco&lt;/a&gt;’s &lt;a href="https://espace.cern.ch/idm/default.aspx"&gt;Identity Management at CERN&lt;/a&gt;.    &lt;br /&gt;- &lt;a href="https://mvp.support.microsoft.com/profile=E5177C0E-9265-441C-9F66-781BD1078BC0"&gt;Paul Loonen&lt;/a&gt;’s &lt;a href="http://be-id.blogspot.com/"&gt;be-Id&lt;/a&gt;.    &lt;br /&gt;- &lt;a href="https://mvp.support.microsoft.com/profile=450CE48A-5A2F-464B-8B50-D781E9424646"&gt;Peter Geelen&lt;/a&gt;’s &lt;a href="http://identityunderground.spaces.live.com/"&gt;Identity Underground&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3375021" width="1" height="1"&gt;</content><author><name>Juan Antonio Diaz - MSFT</name><uri>http://blogs.technet.com/juanand/ProfileUrlRedirect.ashx</uri></author><category term="ILM" scheme="http://blogs.technet.com/b/juanand/archive/tags/ILM/" /><category term="MIIS" scheme="http://blogs.technet.com/b/juanand/archive/tags/MIIS/" /></entry><entry><title>Playing with Windows Phone 7 as USB Storage</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/juanand/archive/2010/12/10/playing-with-windows-phone-7-as-usb-storage.aspx" /><id>http://blogs.technet.com/b/juanand/archive/2010/12/10/playing-with-windows-phone-7-as-usb-storage.aspx</id><published>2010-12-10T10:30:11Z</published><updated>2010-12-10T10:30:11Z</updated><content type="html">&lt;p&gt;&lt;em&gt;&lt;u&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt;&lt;/u&gt; Procedures here are fully unsupported. Use at your own risk.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Today I will post about my experiences trying to use Windows Phone 7 as a USB storage device. These “hacks” are already covered at many places and forums dedicated to Zune and Zune HD devices, but not for WP7. As long as I experienced some quirks playing with , I want to share them here.&lt;/p&gt;  &lt;p&gt;By default, WP7 is not visible in Windows 7 as a portable device, so it is not possible to transfer files to it except by uploading to SkyDrive or them as attachments to yourself, for example. It is not shown up in “Computer” applet, and in “Devices and Printers” applet it is shown as a portable MP3 player.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/3683.image_5F00_7AFD3998.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="left" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/0640.image_5F00_thumb_5F00_45A40166.png" width="300" height="182" /&gt;&lt;/a&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/8078.image_5F00_35B4BCA2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="left" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/2100.image_5F00_thumb_5F00_4961A636.png" width="244" height="183" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Enabling device storage visibility in Windows shell&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;First attempt was modify the following registry key: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_045E&amp;amp;PID_04EC&amp;amp;MI_00\6&amp;amp;53be20e&amp;amp;0&amp;amp;0000\Device Parameters]    &lt;br /&gt;“PortableDeviceNameSpaceExcludeFromShell”=dword:00000000 &lt;/p&gt;  &lt;p&gt;Doing so has the following effects (Zune software must be closed for most of the screenshots to show up like as here):&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;WP7 appears (twice) as Portable Media Player in Computer applet.&amp;#160; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/1638.image_5F00_72893E74.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/7506.image_5F00_thumb_5F00_7863E20D.png" width="244" height="125" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The following additional registry hack helps on removing the duplicate: &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p align="left"&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_045E&amp;amp;PID_04EC&amp;amp;MI_00\6&amp;amp;53be20e&amp;amp;0&amp;amp;0000\Device Parameters\ZuneDriver]      &lt;br /&gt;“UseWpdPrivateInterface”=dword:00000000&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;You can inspect some device details.Battery charge is wrong&lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/0068.wlEmoticon_2D00_smile_5F00_4931F676.png" /&gt;. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/2112.image_5F00_088FAA07.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/4452.image_5F00_thumb_5F00_5553709D.png" width="203" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;You can see how much space you have free. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/8562.image_5F00_4D5BCE3B.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/8507.image_5F00_thumb_5F00_6108B7CF.png" width="244" height="104" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;You may format the disk (WARNING: I did not have enough courage to try this, so you are alone here if you do so!) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/0181.image_5F00_6AEDA93A.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/5873.image_5F00_thumb_5F00_37453CDC.png" width="244" height="149" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;You can see some disk details. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/5367.image_5F00_48496ABF.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/4606.image_5F00_thumb_5F00_3C477A8B.png" width="244" height="204" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;You get “Import pictures and videos” option from device’s context menu (does fail though &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-sadsmile" alt="Sad smile" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/2146.wlEmoticon_2D00_sadsmile_5F00_0D158EF4.png" /&gt;). &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/3618.image_5F00_73AD8BB9.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/0508.image_5F00_thumb_5F00_79882F52.png" width="244" height="135" /&gt;&lt;/a&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/7848.image_5F00_31C6A66B.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/1072.image_5F00_thumb_5F00_57BC56C1.png" width="244" height="120" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;In “Devices and Printers” applet the context menu shows file system browsing option. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/5488.image_5F00_76FEFD94.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/6378.image_5F00_thumb_5F00_5A15D8BF.png" width="244" height="116" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;As covered in other blogs and forums, there are some other registry changes that are in theory needed for content access to work for Zune HD devices, such as:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;EnableLegacySupport = dword:00000001      &lt;br /&gt;ShowInShell = dword:00000001&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;However, for me it worked with just the specified setting for WP7 device. I was even able to create a “Documents” folder and add content to it:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/2158.image_5F00_593D72D5.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/4718.image_5F00_thumb_5F00_65CB1FF1.png" width="414" height="218" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Unfortunately, documents are not visible to applications on the phone and &lt;/strong&gt;i&lt;strong&gt;t only serves as a carry-on device. &lt;/strong&gt;That is, you can open files for viewing (pictures need to use Open from context menu). When opening files, they are first copied to user’s %Temp% folder, and opened from there. Files in tempo folder are read-only, and save attempts do not update the device copy and trying to save directly to device also fails. The only option is save somewhere else and then copy the updated file back to the device using Windows Explorer.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/7444.image_5F00_1207A6D6.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/1106.image_5F00_thumb_5F00_0A100474.png" width="339" height="209" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;A look at “Pictures” folder&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;When opening the WP7 device storage, you will only see a “Pictures” folder with your pictures and videos. Let’s take a quick look at it.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/3250.image_5F00_21C73BDA.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/8030.image_5F00_thumb_5F00_0786D2B6.png" width="360" height="270" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Interesting folder structures:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Named folders. &lt;/strong&gt;The ones you see with normal ones are just synched from your “Pictures” folder, with the folder structure you have in that folder. For example, if you inspect your pictures in your computer with Zune software and drag “%userprofile%\Pictures\Holidays\2010\On The Beach\DSC001.jpg” to the phone icon, you will get “Holidays\2010\On The Beach” folder hierarchy in WP7 storage, and then your JPG file inside. The good thing is that once copied to the WP7 device, you can freely reorganize the folder structure if you do not like having same folder depth or naming as on PC, for example. &lt;/li&gt;    &lt;li&gt;“&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {9ae241c6-e6cc-4080-a2ba-245e0f7c47c5}&lt;/strong&gt;”. This folder serves as location to save images and videos from WP7 camera. &lt;/li&gt;    &lt;li&gt;“&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {1e544589-04c4-492f-87ca-294a52149279}&lt;/strong&gt;”. This folder serves as location to save images downloaded from the Internet. &lt;/li&gt;    &lt;li&gt;“&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {4915925E-FB2A-11DE-AE1C-DD6355D89593}&lt;/strong&gt;”. This folder holds sample pictures that come with the device. &lt;/li&gt;    &lt;li&gt;“&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {9ae241c6-e6cc-4080-a2ba-245e0f7c47c6}&lt;/strong&gt;”. No idea what this empty folder is for yet, it looks empty in my device…. &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/0068.wlEmoticon_2D00_smile_5F00_4931F676.png" /&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I don’t know if these GUIDs are global or device-based, as I only plugged my own WP7 device.&amp;#160; &lt;br /&gt;Those spaces on the left are important though. If you rename those GUID’ed folders, you will experience that and it seems impossible to rename them back to the original names with those spaces at the beginning of the folder name. First time I rename one of those, I had to call my “&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {4915925E-FB2A-11DE-AE1C-DD6355D89593}&lt;/strong&gt;” to “Sample Pictures” &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/6470.wlEmoticon_2D00_winkingsmile_5F00_7F22FD5E.png" /&gt;. However, here is how you can get your names back:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Create a folder with the desired GUID in a hard disk, i.e. c:\tmp\{4915925E-FB2A-11DE-AE1C-DD6355D89593}”. &lt;/li&gt;    &lt;li&gt;Using command prompt, rename the folder to add those spaces: &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/5226.image_5F00_65BAFA24.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/4152.image_5F00_thumb_5F00_72B4DA35.png" width="594" height="21" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Drag the folder on the device. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Trying to disable exclusive access… just fails .. &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-confusedsmile" alt="Confused smile" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/6305.wlEmoticon_2D00_confusedsmile_5F00_23D414D6.png" /&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;If you launch Zune software with storage opened, you will see the following message:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/0451.image_5F00_354475AE.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/0535.image_5F00_thumb_5F00_6259627C.png" width="466" height="226" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;On the same hand, when Zune software is accessing the WP7 device, device storage looks empty. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/1512.image49_5F00_13789D1D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/4274.image49_5F00_thumb_5F00_1234043E.png" width="370" height="202" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If this is the case, check your favorite task manager for Zune.exe process. Sometimes Zune does not exit in a timely manner and remains opened for a while when you close its window. When Zune.exe is running, the device content cannot be accesed. Just kill existing instances (you may have two sometimes) to get access to storage content again.&lt;/p&gt;  &lt;p&gt;Sometimes also even when Zune.exe is not running, storage still looks emtpy and Zune software complains about “Portable Devices Namespace is using your device”. If this happens, you can try kill all Zune.exe instances, unplug the device, launch Zune so it promptf&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I tried to enable both Explorer shell and Zune software to access the device simultaneously by modifying the following registry key: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_045E&amp;amp;PID_04EC&amp;amp;MI_00\6&amp;amp;53be20e&amp;amp;0&amp;amp;0000\Device Parameters\WUDF]    &lt;br /&gt;“Exclusive”=dword:00000000 &lt;/p&gt;  &lt;p&gt;However, this value did not get the desired effect. Unplug/replug the device did not help neither. Nevertheless, I would prefer to leave exclusive access as it is by default, and go kill Zune.exe process when needed, just to avoid chances of data corruption &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/0068.wlEmoticon_2D00_smile_5F00_4931F676.png" /&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Different device types&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;There is an interesting registry value there… “PortableDeviceType”. It says “2” by default. If set to “0” it says “Portable Device”. “1” as “Digital Camera”. “3” as “Mobile Phone”. “4” and up as “Portable Device” again. None of these changes did not help with direct-editing attempts, but Zune software stops seeing it as a WP7 device.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/3583.image_5F00_3EDCBE17.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/7220.image_5F00_thumb_5F00_30321232.png" width="244" height="91" /&gt;&lt;/a&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/0550.image_5F00_6B1944FB.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/4276.image_5F00_thumb_5F00_35344FE1.png" width="244" height="83" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/4505.image_5F00_091752F0.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/2133.image_5F00_thumb_5F00_4C7F5452.png" width="244" height="80" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;strong&gt;Messing with drivers, Part 1&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;I have an old MP3 player that shows as portable device by default, and behaves just like WP7 in terms of Windows Explorer usage. I wanted to copy music to my MP3 using robocopy tool. Do do so, it worked to &lt;strong&gt;force &lt;/strong&gt;the device driver from “Portable Device” to “USB Mass Storage Device” and it did the trick perfectly, opening the device storage as a regular USB memory stick. So I wanted to give a try to this with WP7 … unfortunately “USB Mass Storage Device” was not an option, so I tried a few of what showed up as available …&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/3000.image_5F00_00B37D99.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/2438.image_5F00_thumb_5F00_06FA5427.png" width="244" height="45" /&gt;&lt;/a&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/7220.image_5F00_57C8688F.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/5265.image_5F00_thumb_5F00_645615AB.png" width="244" height="151" /&gt;&lt;/a&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/7725.image_5F00_07A30A51.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/7737.image_5F00_thumb_5F00_149CEA62.png" width="244" height="54" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;First attempt: “Windows Mobile-based device”. The driver does not load properly, and unplug/replug the device just updates to WP7 drivers and fixes it. The same happened with “WPD FileSystem Volume Driver”.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/5265.image_5F00_0CA54800.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/5672.image_5F00_thumb_5F00_59D5418B.png" width="244" height="137" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/7652.image_5F00_18C6C227.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/6747.image_5F00_thumb_5F00_1F0D98B5.png" width="236" height="43" /&gt;&lt;/a&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/3531.image_5F00_3E503F88.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/6354.image_5F00_thumb_5F00_21671AB3.png" width="244" height="37" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;However, “Zune” drivers did load properly. However, Zune software does not recognize the phone properly, and doing the reghacks does not make the device appear in Explorer shell &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-confusedsmile" alt="Confused smile" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/6305.wlEmoticon_2D00_confusedsmile_5F00_23D414D6.png" /&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/8738.image_5F00_40A9C186.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/0081.image_5F00_thumb_5F00_0DD9BB12.png" width="244" height="93" /&gt;&lt;/a&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/7356.image_5F00_740584E2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/2465.image_5F00_thumb_5F00_2C43FBFB.png" width="244" height="121" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;With all these driver hacks, a few interesting registry values appeared: AutoPlaySourceOnly, OptimalTransferSize, ConvertSerialNumberToANSI, DeviceSelectiveSuspended or PortableDeviceIsMassStorage.&amp;#160; &lt;/p&gt;  &lt;p&gt;With all this messing, Zune software and Explorer stop viewing the WP7 device &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/0068.wlEmoticon_2D00_smile_5F00_4931F676.png" /&gt;.     &lt;br /&gt;To get back to work, I had to open regedit as SYSTEM account (used psexec.exe –s –d –i cmd.exe) and delete existing messed “Device Parameters” subkey. Then unplug/replug the device, choose “Update driver” and pick “Windows Phone 7” in Device Manager to reload the right driver and “Device Parameters” subkey values.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/3146.image_5F00_64827313.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/2465.image_5F00_thumb_5F00_23E026A4.png" width="179" height="47" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Once restored original functionality, I gave a try to “PortableDeviceIsMassStorage” value. Though promising, setting to “1” hided the device in Windows shell, and 0 or deleting the value got back to good-old known visibility effects described above.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;strong&gt;Messing with drivers, Part 2&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;As messing with drivers from Windows side did not took me to any results, I tried from the WP7 device side. By using MFG tool I changed my WP7 device from “MS COMPOSITE” USB mode (default) to “MS DEFAULT”. For more information about MFG tool, search &lt;a href="http://www.bing.com/search?q=mfg+lg+%22windows+phone+7%22+tethering&amp;amp;form=QBRE&amp;amp;filt=all"&gt;here&lt;/a&gt; &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/0068.wlEmoticon_2D00_smile_5F00_4931F676.png" /&gt;.&lt;/p&gt;  &lt;p&gt;When plugging the phone back, I got the following:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/1488.image_5F00_4322CD77.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/3058.image_5F00_thumb_5F00_02808108.png" width="244" height="30" /&gt;&lt;/a&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/8764.image_5F00_417201A3.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/6201.image_5F00_thumb_5F00_474CA53C.png" width="244" height="104" /&gt;&lt;/a&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/5125.image_5F00_668F4C0F.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/7380.image_5F00_thumb_5F00_4CBB15E0.png" width="244" height="84" /&gt;&lt;/a&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/6281.image_5F00_6BFDBCB3.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/1817.image_5F00_thumb_5F00_1669EDD1.png" width="182" height="45" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/8838.image_5F00_3C5F9E27.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/3580.image_5F00_thumb_5F00_1042A136.png" width="244" height="171" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;No luck going further… Neither Windows Mobile Device Center nor Zune software can see the device …&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;If you know other/better USB storage tricks, please share them!    &lt;br /&gt;Thanks!     &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;strong&gt;Update:&lt;/strong&gt;&lt;/u&gt; There is now a tool that ease the process. You can find its (translated) descriptioin &lt;a href="http://www.microsofttranslator.com/bv.aspx?ref=Internal&amp;amp;from=&amp;amp;to=en&amp;amp;a=http://ultimate-networx.net/?p=241"&gt;here&lt;/a&gt;. Download link &lt;a href="http://ultimate-networx.net/wp-content/plugins/download-monitor/download.php?id=3"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3374296" width="1" height="1"&gt;</content><author><name>Juan Antonio Diaz - MSFT</name><uri>http://blogs.technet.com/juanand/ProfileUrlRedirect.ashx</uri></author><category term="Windows Phone 7" scheme="http://blogs.technet.com/b/juanand/archive/tags/Windows+Phone+7/" /></entry><entry><title>Internet Explorer Protected Mode Elevation Policy and Administrative Templates</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/juanand/archive/2010/10/29/internet-explorer-protected-mode-elevation-policy-and-administrative-templates.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="3272" href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-03-36-48-54/Elevation-Policy-ADMX.zip" /><id>http://blogs.technet.com/b/juanand/archive/2010/10/29/internet-explorer-protected-mode-elevation-policy-and-administrative-templates.aspx</id><published>2010-10-29T08:25:00Z</published><updated>2010-10-29T08:25:00Z</updated><content type="html">&lt;p&gt;&lt;span style="text-decoration: underline"&gt;&lt;strong&gt;Overview:&lt;/strong&gt;&lt;/span&gt;     &lt;br /&gt;You probably have run through the following popup when using Internet Explorer add-ons and extensions:&lt;/p&gt;  &lt;p style="text-align: center"&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/7776.image3_5F00_433DE570.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/3568.image3_5F00_thumb_5F00_78F32ACA.png" width="341" height="213" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In this example, I clicked a link in an Internet web page that pointed to an XPS file.    &lt;br /&gt;This prompt is due to the fact that Internet Explorer is running in &lt;a title="http://msdn.microsoft.com/en-us/library/bb250462(VS.85).aspx" href="http://windows.microsoft.com/en-US/windows-vista/What-does-Internet-Explorer-protected-mode-do"&gt;Protected Mode&lt;/a&gt;, and tries to open an application or extension outside of Protected Mode.&lt;/p&gt;  &lt;p&gt;The IE behavior regarding this prompt is governed by the following registry keys:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;HKLM\SOFTWARE\Microsoft\Internet Explorer\Low Rights\ElevationPolicy. &lt;/strong&gt;Some software installation programs register themselves under this key (each with its own subkey GUID) to manage Protected Mode behavior. On the same hand, if Microsoft determines that an application has a vulnerability and presents a danger to end users, Microsoft reserves the right to remove that application at any time from the elevation policy. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;HKCU\SOFTWARE\Microsoft\Internet Explorer\Low Rights\ElevationPolicy.&lt;/strong&gt; When the user checks the “Do not show me the warning for this program again” in the prompt dialog, Internet Explorer writes a subkey GUID and associated values under this key to “register” Protected Mode behavior for a given application for that particular user. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;You can check more details at &lt;a title="http://msdn.microsoft.com/en-us/library/bb250462(VS.85).aspx" href="http://msdn.microsoft.com/en-us/library/bb250462(VS.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/bb250462(VS.85).aspx&lt;/a&gt; and &lt;a title="http://blogs.msdn.com/b/ieinternals/archive/2009/12/01/understanding-internet-explorer-security-protected-mode-elevation-dialog.aspx" href="http://blogs.msdn.com/b/ieinternals/archive/2009/12/01/understanding-internet-explorer-security-protected-mode-elevation-dialog.aspx"&gt;http://blogs.msdn.com/b/ieinternals/archive/2009/12/01/understanding-internet-explorer-security-protected-mode-elevation-dialog.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If an administrator wants to deploy specific Protected Mode prompts for specific applications, can do two things:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Directly change HKLM\HKCU keys. &lt;/strong&gt;This can be implemented through logon scripts (HKCU part) or PC imaging/software deployment (HKLM part). The caveat is that the setting is not enforced (users can override it) and leaves traces on the system that need to be tracked back. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Apply changes in Policies branches&lt;/strong&gt;. This overrides the actual HKM\HKCU keys, enforces behaviors does not alter system configuration and cleanly disappear when the Group Policy settings are removed, so this is the recommended approach. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;span style="text-decoration: underline"&gt;&lt;strong&gt;Managing Elevation Policy through Group Policy:&lt;/strong&gt;&lt;/span&gt;     &lt;br /&gt;Using Group Policy infrastructure, you can actually change the Protected Mode behavior, to for example, always prompt for to allow an extension to run. &lt;strong&gt;Notice the greyed-out checkbox&lt;/strong&gt;. This prevents the user to check it and override this prompt.&lt;/p&gt;  &lt;p style="text-align: center"&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/7382.image_5F00_2B76883D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/0435.image_5F00_thumb_5F00_29598974.png" width="336" height="209" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In the same manner, you can use Group Policy to hide prompts for trusted applications automagically, so if you are deploying an application you can transparently run it through Protected Mode (i.e. Microsoft Office Live Meeting) whenever it gets deployed to the managed desktop computer, without bothering the user with the security warning.&lt;/p&gt;  &lt;p&gt;The problem here is that neither Windows Vista nor Windows 7 (or their server counterparts) include an Administrative template to manage these settings out of the box, so &lt;a href="http://support.microsoft.com/kb/918239"&gt;http://support.microsoft.com/kb/918239&lt;/a&gt; provides some guidance and templates to manage these configuration. However, the provided ADM/ADMX are not perfect. This is how it looks in GPEditor:&lt;/p&gt;  &lt;p style="text-align: center"&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/5722.image_5F00_11DED543.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/2514.image_5F00_thumb_5F00_1E004F6A.png" width="271" height="250" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The problems of this ADMX include:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Hardcoding. &lt;/strong&gt;The provided ADMX hardcodes registry values for the applications you want to manage in the ADMX itself, not through policy options. It actually behaves as an “configuration set” that applies elevation policies to applications as specified within the ADMX. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;No customization point for administrators.&lt;/strong&gt; Administrators only can set the policy to Enabled or Disabled, and does the registry changes included in the ADMX. If the ADMX includes three applications with specific elevation policies, administrators cannot configure just one of them or change the elevation policy from what is hardcoded in the ADMX. If there is need for delegated administrators to manage different policies or application sets, they need to generate separate ADMX files. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;So I decided to give ADMX creation a try, and end up with the following:&lt;/p&gt;  &lt;p style="text-align: center"&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/0451.image_5F00_0A06BCD4.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/7317.image_5F00_thumb_5F00_2870FDBD.png" width="511" height="139" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p style="text-align: center"&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/4667.image_5F00_65457F8F.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/6724.image_5F00_thumb_5F00_02D75A8F.png" width="401" height="366" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The advantages of this custom ADMX include:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Information for administrators.&lt;/strong&gt; ADML file includes details for administrators about what the policy does and how to configure it. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Allows to customize up to 15 applications (by default).&lt;/strong&gt;&amp;#160; Administrators can specify executable names, paths, CLSIDs and policy levels. Actually, the ADMX file can easily be extended to support whatever number is needed beyond 15. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Provide a common GUID &lt;a title="Hexspeak" href="http://en.wikipedia.org/wiki/Hexpeak" target="_blank"&gt;space&lt;/a&gt; for policies.&lt;/strong&gt; ADMX file uses registry subkeys under Software\Policies\Microsoft\Internet Explorer\Low Rights\ElevationPolicy in the form of GUIDs like {DEADBEEF-CAFE-DEAD-BEEF-00000000000&lt;strong&gt;1&lt;/strong&gt;}, {DEADBEEF-CAFE-DEAD-BEEF-00000000000&lt;strong&gt;2&lt;/strong&gt;}, {DEADBEEF-CAFE-DEAD-BEEF-00000000000&lt;strong&gt;3&lt;/strong&gt;}, up to {DEADBEEF-CAFE-DEAD-BEEF-0000000000&lt;strong&gt;15&lt;/strong&gt;}. For lower OU levels GPOs to override higher level OU GPOs, you just need to customize a few and set the rest to “Disable”. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Support for variables in extension path.&lt;/strong&gt; In the extension path textbox, administrators can specify %ProgramFiles%, %SystemRoot% or other variables to avoid hardcoding paths. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Here are the ADMX files. Just copy ADMX to “%SystemRoot%\PolicyDefinitions” and ADML to “%SystemRoot%\PolicyDefinitions\en-US”, or place them in &lt;a href="http://support.microsoft.com/kb/929841"&gt;Central Store&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3364854" width="1" height="1"&gt;</content><author><name>Juan Antonio Diaz - MSFT</name><uri>http://blogs.technet.com/juanand/ProfileUrlRedirect.ashx</uri></author><category term="Group Policy" scheme="http://blogs.technet.com/b/juanand/archive/tags/Group+Policy/" /><category term="Internet Explorer" scheme="http://blogs.technet.com/b/juanand/archive/tags/Internet+Explorer/" /></entry><entry><title>Dual Boot Hyper-V VHD</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/juanand/archive/2010/10/26/dual-boot-hyper-v-vhd.aspx" /><id>http://blogs.technet.com/b/juanand/archive/2010/10/26/dual-boot-hyper-v-vhd.aspx</id><published>2010-10-26T06:02:08Z</published><updated>2010-10-26T06:02:08Z</updated><content type="html">&lt;p&gt;This is a note to myself and others &lt;img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-93-metablogapi/8130.wlEmoticon_2D00_smile_5F00_0C0A683B.png" /&gt; about how I added a Windows Server 2008 Hyper-V VHD as dual boot over an existing Windows 7 installation.&lt;/p&gt;  &lt;p&gt;Before start, generate a new partition at the end of the Windows 7 partition, using diskmgmt.msc console. You can do this by shrinking the existing Windows 7 volume and add a new partition in the free space you get afterwards.&lt;/p&gt;  &lt;p&gt;If you are using Bitlocker in your Windows 7 partition, note that your VHD needs to boot from an unencrypted partition, so if you want to protect your Hyper-V VMs with Bitlocker, the way to go is running Hyper-V VM from unencrypted partition and mount your Windows 7 partition with your Bitlocker keys and load your protected VMs from there.&lt;/p&gt;  &lt;p&gt;Important: Ensure&amp;#160; that your Hyper-V dedicated partition has enough space to host both your Hyper-V VM and a pagefile.sys of the size of your physical RAM. In my case, my Hyper-V VM was 8,5 GB, and had to leave another 8 GB for paging file. It is also recommended to leave some more space for Windows Updates to the Hyper-V VM itself.&lt;/p&gt;  &lt;p&gt;Once you have your fresh new partition with your “Hyper-V.vhd” file on it and room for paging file, do the following:&lt;/p&gt;  &lt;p&gt;1.- Run BCEDIT without params to show boot entries and copy &amp;quot;Windows 7&amp;quot; entry GUID to clipboard&lt;/p&gt;  &lt;p&gt;2.- Copy Windows 7 boot entry as Hyper-V entry&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; bcdedit /copy {Win7-GUID} /d &amp;quot;Hyper-V&amp;quot;&lt;/p&gt;  &lt;p&gt;3.- List boot entries again (BCDEDIT) and copy &amp;quot;Hyper-V&amp;quot; entry GUID to clipboard&lt;/p&gt;  &lt;p&gt;4.- Change Hyper-V entry device and osdevice options to VHD&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; bcdedit /set {Hyper-V GUID} device&amp;#160;&amp;#160; vhd=[H:]\Hyper-V.vhd   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; bcdedit /set {Hyper-V GUID} osdevice vhd=[H:]\Hyper-V.vhd&lt;/p&gt;  &lt;p&gt;5.- You can also specify [LOCATE] as drive letter, so boot loader will seek existing   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; volumes for your VHD:&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; bcdedit /set {Hyper-V GUID} device&amp;#160;&amp;#160; vhd=[LOCATE]\Hyper-V.vhd   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; bcdedit /set {Hyper-V GUID} osdevice vhd=[LOCATE]\Hyper-V.vhd&lt;/p&gt;  &lt;p&gt;6.- You may need to enable Hypervisor with bcdedit if you are unable to enable Hyper-V role    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; even with VT extensions and DEP enabled in system BIOS, and you get the following warning     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; in the Hyper-V role event log:    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Event 5: Hyper-V launch aborted due to auto-launch being disabled in the registry.&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; bcdedit /set {Hyper-V GUID} hypervisorlaunchtype auto&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now you can restart and see your “Windows 7” and your “Hyper-V” entries in your boot menu.&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3363985" width="1" height="1"&gt;</content><author><name>Juan Antonio Diaz - MSFT</name><uri>http://blogs.technet.com/juanand/ProfileUrlRedirect.ashx</uri></author></entry><entry><title>SQL Script: Finding duplicates on supposedly unique values</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/juanand/archive/2010/08/12/sql-script-finding-duplicates-on-supposedly-unique-values.aspx" /><id>http://blogs.technet.com/b/juanand/archive/2010/08/12/sql-script-finding-duplicates-on-supposedly-unique-values.aspx</id><published>2010-08-12T12:18:36Z</published><updated>2010-08-12T12:18:36Z</updated><content type="html">&lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;&lt;em&gt;Unsupported: Use at your own risk&lt;/em&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Sometimes you load data into metaverse that is supposed to be unique and you do not want to use FindMVEntries technique due to performance impact.&lt;/p&gt;  &lt;p&gt;This SQL scripts allow you to find out directly from DB if you have unexpected duplicates so you can talk to data store owners to go and fix their data.&lt;/p&gt;  &lt;p&gt;The following example looks for repeated mailNickName attribute values in metaverse. Just replace “mailNickName” with “SAMAccountName”, “uid” or whatever attribute you have that should be unique:&lt;/p&gt;  &lt;div style="font-family: consolas; background: white; color: black; font-size: 10pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;SELECT&lt;/span&gt; &lt;span style="color: teal"&gt;mailNickName&lt;/span&gt;&lt;span style="color: gray"&gt;,&lt;/span&gt; &lt;span style="color: fuchsia"&gt;COUNT&lt;/span&gt;&lt;span style="color: gray"&gt;(&lt;/span&gt;&lt;span style="color: teal"&gt;mailNickName&lt;/span&gt;&lt;span style="color: gray"&gt;)&lt;/span&gt; &lt;span style="color: blue"&gt;AS&lt;/span&gt; &lt;span style="color: teal"&gt;NumOccurrences&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;FROM&lt;/span&gt; &lt;span style="color: teal"&gt;FIMSynchronizationService&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;dbo&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;mms_metaverse&lt;/span&gt; &lt;span style="color: blue"&gt;with &lt;/span&gt;&lt;span style="color: gray"&gt;(&lt;/span&gt;&lt;span style="color: blue"&gt;nolock&lt;/span&gt;&lt;span style="color: gray"&gt;)&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;where&lt;/span&gt; &lt;span style="color: teal"&gt;object_type&lt;/span&gt; &lt;span style="color: gray"&gt;=&lt;/span&gt; &lt;span style="color: red"&gt;'person'&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;GROUP&lt;/span&gt; &lt;span style="color: blue"&gt;BY&lt;/span&gt; &lt;span style="color: teal"&gt;mailNickName&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;HAVING &lt;/span&gt;&lt;span style="color: gray"&gt;(&lt;/span&gt; &lt;span style="color: fuchsia"&gt;COUNT&lt;/span&gt;&lt;span style="color: gray"&gt;(&lt;/span&gt;&lt;span style="color: teal"&gt;mailNickName&lt;/span&gt;&lt;span style="color: gray"&gt;)&lt;/span&gt; &lt;span style="color: gray"&gt;&amp;gt;&lt;/span&gt; 1 &lt;span style="color: gray"&gt;)&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;order&lt;/span&gt; &lt;span style="color: blue"&gt;by&lt;/span&gt; &lt;span style="color: teal"&gt;NumOccurrences&lt;/span&gt; &lt;span style="color: blue"&gt;desc&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;You could also use this technique to find the opposite, that is, records with a particular value that occur exactly once:&lt;/p&gt;  &lt;div style="font-family: consolas; background: white; color: black; font-size: 10pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;SELECT&lt;/span&gt; &lt;span style="color: teal"&gt;email&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;FROM&lt;/span&gt; &lt;span style="color: teal"&gt;FIMSynchronizationService&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;dbo&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;mms_metaverse&lt;/span&gt; &lt;span style="color: blue"&gt;with &lt;/span&gt;&lt;span style="color: gray"&gt;(&lt;/span&gt;&lt;span style="color: blue"&gt;nolock&lt;/span&gt;&lt;span style="color: gray"&gt;)&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;GROUP&lt;/span&gt; &lt;span style="color: blue"&gt;BY&lt;/span&gt; &lt;span style="color: teal"&gt;email&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;HAVING &lt;/span&gt;&lt;span style="color: gray"&gt;(&lt;/span&gt; &lt;span style="color: fuchsia"&gt;COUNT&lt;/span&gt;&lt;span style="color: gray"&gt;(&lt;/span&gt;&lt;span style="color: teal"&gt;email&lt;/span&gt;&lt;span style="color: gray"&gt;)&lt;/span&gt; &lt;span style="color: gray"&gt;=&lt;/span&gt; 1 &lt;span style="color: gray"&gt;)&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;However, the previous queries give just details about the number of records that you have duplicates or unique. Finding out more details about the metaverse records require more elaborated SQL query. &lt;/p&gt;  &lt;p&gt;In the following example, we first find duplicated sAMAccountName values and store in temporary “tblDups” table, that then we use to join with full metaverse (“MV”) and show “displayName” and “object_id” attributes.&lt;/p&gt;  &lt;div style="font-family: consolas; background: white; color: black; font-size: 10pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;select&lt;/span&gt; &lt;span style="color: teal"&gt;tblDups&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;sAMAccountName&lt;/span&gt;&lt;span style="color: gray"&gt;,&lt;/span&gt; &lt;span style="color: teal"&gt;MV&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;displayName&lt;/span&gt;&lt;span style="color: gray"&gt;,&lt;/span&gt; &lt;span style="color: teal"&gt;MV&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: fuchsia"&gt;object_id&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;FROM&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: gray"&gt;(&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;SELECT&lt;/span&gt; &lt;span style="color: teal"&gt;sAMAccountName&lt;/span&gt;&lt;span style="color: gray"&gt;,&lt;/span&gt; &lt;span style="color: fuchsia"&gt;COUNT&lt;/span&gt;&lt;span style="color: gray"&gt;(&lt;/span&gt;&lt;span style="color: teal"&gt;sAMAccountName&lt;/span&gt;&lt;span style="color: gray"&gt;)&lt;/span&gt; &lt;span style="color: blue"&gt;AS&lt;/span&gt; &lt;span style="color: teal"&gt;NumOccurrences&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;FROM&lt;/span&gt; &lt;span style="color: teal"&gt;FIMSynchronizationService&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;dbo&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;mms_metaverse&lt;/span&gt; &lt;span style="color: blue"&gt;with &lt;/span&gt;&lt;span style="color: gray"&gt;(&lt;/span&gt;&lt;span style="color: blue"&gt;nolock&lt;/span&gt;&lt;span style="color: gray"&gt;)&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;where&lt;/span&gt; &lt;span style="color: teal"&gt;object_type&lt;/span&gt; &lt;span style="color: gray"&gt;=&lt;/span&gt; &lt;span style="color: red"&gt;'person'&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;GROUP&lt;/span&gt; &lt;span style="color: blue"&gt;BY&lt;/span&gt; &lt;span style="color: teal"&gt;sAMAccountName&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;HAVING &lt;/span&gt;&lt;span style="color: gray"&gt;(&lt;/span&gt; &lt;span style="color: fuchsia"&gt;COUNT&lt;/span&gt;&lt;span style="color: gray"&gt;(&lt;/span&gt;&lt;span style="color: teal"&gt;sAMAccountName&lt;/span&gt;&lt;span style="color: gray"&gt;)&lt;/span&gt; &lt;span style="color: gray"&gt;&amp;gt;&lt;/span&gt; 1 &lt;span style="color: gray"&gt;)&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: gray"&gt;)&lt;/span&gt; &lt;span style="color: blue"&gt;as&lt;/span&gt; &lt;span style="color: teal"&gt;tblDups&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: teal"&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: gray"&gt;INNER&lt;/span&gt; &lt;span style="color: gray"&gt;JOIN&lt;/span&gt; &lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: teal"&gt;FIMSynchronizationService&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;dbo&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;mms_metaverse&lt;/span&gt; &lt;span style="color: blue"&gt;AS&lt;/span&gt; &lt;span style="color: teal"&gt;MV&lt;/span&gt; &lt;span style="color: blue"&gt;WITH &lt;/span&gt;&lt;span style="color: gray"&gt;(&lt;/span&gt;&lt;span style="color: blue"&gt;nolock&lt;/span&gt;&lt;span style="color: gray"&gt;)&lt;/span&gt; &lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;ON&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: teal"&gt;tblDups&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;sAMAccountName&lt;/span&gt; &lt;span style="color: gray"&gt;=&lt;/span&gt; &lt;span style="color: teal"&gt;MV&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;sAMAccountName&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;You can also add WHERE sentences at the end of the query to find specific values, such as those sAMAccountNames duplicates that belong to HR department:&lt;/p&gt;  &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;select&lt;/span&gt; &lt;span style="color: teal"&gt;tblDups&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;sAMAccountName&lt;/span&gt;&lt;span style="color: gray"&gt;,&lt;/span&gt; &lt;span style="color: teal"&gt;MV&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;displayName&lt;/span&gt;&lt;span style="color: gray"&gt;,&lt;/span&gt; &lt;span style="color: teal"&gt;MV&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: fuchsia"&gt;object_id&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;FROM&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0px"&gt;&lt;span style="color: gray"&gt;(&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;SELECT&lt;/span&gt; &lt;span style="color: teal"&gt;sAMAccountName&lt;/span&gt;&lt;span style="color: gray"&gt;,&lt;/span&gt; &lt;span style="color: fuchsia"&gt;COUNT&lt;/span&gt;&lt;span style="color: gray"&gt;(&lt;/span&gt;&lt;span style="color: teal"&gt;sAMAccountName&lt;/span&gt;&lt;span style="color: gray"&gt;)&lt;/span&gt; &lt;span style="color: blue"&gt;AS&lt;/span&gt; &lt;span style="color: teal"&gt;NumOccurrences&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;FROM&lt;/span&gt; &lt;span style="color: teal"&gt;FIMSynchronizationService&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;dbo&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;mms_metaverse&lt;/span&gt; &lt;span style="color: blue"&gt;with &lt;/span&gt;&lt;span style="color: gray"&gt;(&lt;/span&gt;&lt;span style="color: blue"&gt;nolock&lt;/span&gt;&lt;span style="color: gray"&gt;)&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;where&lt;/span&gt; &lt;span style="color: teal"&gt;object_type&lt;/span&gt; &lt;span style="color: gray"&gt;=&lt;/span&gt; &lt;span style="color: red"&gt;'person'&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;GROUP&lt;/span&gt; &lt;span style="color: blue"&gt;BY&lt;/span&gt; &lt;span style="color: teal"&gt;sAMAccountName&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;HAVING &lt;/span&gt;&lt;span style="color: gray"&gt;(&lt;/span&gt; &lt;span style="color: fuchsia"&gt;COUNT&lt;/span&gt;&lt;span style="color: gray"&gt;(&lt;/span&gt;&lt;span style="color: teal"&gt;sAMAccountName&lt;/span&gt;&lt;span style="color: gray"&gt;)&lt;/span&gt; &lt;span style="color: gray"&gt;&amp;gt;&lt;/span&gt; 1 &lt;span style="color: gray"&gt;)&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0px"&gt;&lt;span style="color: gray"&gt;)&lt;/span&gt; &lt;span style="color: blue"&gt;as&lt;/span&gt; &lt;span style="color: teal"&gt;tblDups&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0px"&gt;&lt;span style="color: teal"&gt;&lt;/span&gt;&amp;#160;&lt;/p&gt;  &lt;p style="margin: 0px"&gt;&lt;span style="color: gray"&gt;INNER&lt;/span&gt; &lt;span style="color: gray"&gt;JOIN&lt;/span&gt; &lt;/p&gt;  &lt;p style="margin: 0px"&gt;&lt;span style="color: teal"&gt;FIMSynchronizationService&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;dbo&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;mms_metaverse&lt;/span&gt; &lt;span style="color: blue"&gt;AS&lt;/span&gt; &lt;span style="color: teal"&gt;MV&lt;/span&gt; &lt;span style="color: blue"&gt;WITH &lt;/span&gt;&lt;span style="color: gray"&gt;(&lt;/span&gt;&lt;span style="color: blue"&gt;nolock&lt;/span&gt;&lt;span style="color: gray"&gt;)&lt;/span&gt; &lt;/p&gt;  &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;ON&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0px"&gt;&lt;span style="color: teal"&gt;tblDups&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;sAMAccountName&lt;/span&gt; &lt;span style="color: gray"&gt;=&lt;/span&gt; &lt;span style="color: teal"&gt;MV&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;sAMAccountName&lt;/span&gt;&lt;/p&gt;  &lt;div style="font-family: consolas; background: white; color: black; font-size: 10pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;WHERE&lt;/span&gt; &lt;span style="color: teal"&gt;MV&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;department&lt;/span&gt; &lt;span style="color: gray"&gt;=&lt;/span&gt; &lt;span style="color: red"&gt;'HR'&lt;/span&gt; &lt;/p&gt; &lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3349747" width="1" height="1"&gt;</content><author><name>Juan Antonio Diaz - MSFT</name><uri>http://blogs.technet.com/juanand/ProfileUrlRedirect.ashx</uri></author><category term="FIM Toolbox" scheme="http://blogs.technet.com/b/juanand/archive/tags/FIM+Toolbox/" /></entry><entry><title>SQL Script: Delete all CS and MV data</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/juanand/archive/2010/08/12/sql-script-delete-all-cs-and-mv-data.aspx" /><id>http://blogs.technet.com/b/juanand/archive/2010/08/12/sql-script-delete-all-cs-and-mv-data.aspx</id><published>2010-08-12T12:01:13Z</published><updated>2010-08-12T12:01:13Z</updated><content type="html">&lt;p&gt;&lt;font color="#ff0000"&gt;&lt;strong&gt;&lt;em&gt;Unsupported: Use at your own risk&lt;/em&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;This script will delete all the records from FIM Sync database tables without affecting the MAs. It is useful when you have lots of MAs and export srvconfig/restore empty db/import srvconfig means painful enter of login data against all data sources.   &lt;br /&gt;&lt;/p&gt;  &lt;div style="font-family: consolas; background: white; color: black; font-size: 10pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;TRUNCATE&lt;/span&gt; &lt;span style="color: blue"&gt;TABLE&lt;/span&gt; &lt;span style="color: teal"&gt;FIMSynchronizationService&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;dbo&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;mms_connectorspace&lt;/span&gt;&lt;span style="color: gray"&gt;;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;TRUNCATE&lt;/span&gt; &lt;span style="color: blue"&gt;TABLE&lt;/span&gt; &lt;span style="color: teal"&gt;FIMSynchronizationService&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;dbo&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;mms_cs_link&lt;/span&gt;&lt;span style="color: gray"&gt;;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;TRUNCATE&lt;/span&gt; &lt;span style="color: blue"&gt;TABLE&lt;/span&gt; &lt;span style="color: teal"&gt;FIMSynchronizationService&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;dbo&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;mms_csmv_link&lt;/span&gt;&lt;span style="color: gray"&gt;;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;TRUNCATE&lt;/span&gt; &lt;span style="color: blue"&gt;TABLE&lt;/span&gt; &lt;span style="color: teal"&gt;FIMSynchronizationService&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;dbo&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;mms_joiner_log&lt;/span&gt;&lt;span style="color: gray"&gt;;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;TRUNCATE&lt;/span&gt; &lt;span style="color: blue"&gt;TABLE&lt;/span&gt; &lt;span style="color: teal"&gt;FIMSynchronizationService&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;dbo&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;mms_metaverse&lt;/span&gt;&lt;span style="color: gray"&gt;;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;TRUNCATE&lt;/span&gt; &lt;span style="color: blue"&gt;TABLE&lt;/span&gt; &lt;span style="color: teal"&gt;FIMSynchronizationService&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;dbo&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;mms_metaverse_lineagedate&lt;/span&gt;&lt;span style="color: gray"&gt;;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;TRUNCATE&lt;/span&gt; &lt;span style="color: blue"&gt;TABLE&lt;/span&gt; &lt;span style="color: teal"&gt;FIMSynchronizationService&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;dbo&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;mms_metaverse_lineageguid&lt;/span&gt;&lt;span style="color: gray"&gt;;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;TRUNCATE&lt;/span&gt; &lt;span style="color: blue"&gt;TABLE&lt;/span&gt; &lt;span style="color: teal"&gt;FIMSynchronizationService&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;dbo&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;mms_metaverse_multivalue&lt;/span&gt;&lt;span style="color: gray"&gt;;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;TRUNCATE&lt;/span&gt; &lt;span style="color: blue"&gt;TABLE&lt;/span&gt; &lt;span style="color: teal"&gt;FIMSynchronizationService&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;dbo&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;mms_mv_link&lt;/span&gt;&lt;span style="color: gray"&gt;;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;TRUNCATE&lt;/span&gt; &lt;span style="color: blue"&gt;TABLE&lt;/span&gt; &lt;span style="color: teal"&gt;FIMSynchronizationService&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;dbo&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;mms_run_history&lt;/span&gt;&lt;span style="color: gray"&gt;;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;TRUNCATE&lt;/span&gt; &lt;span style="color: blue"&gt;TABLE&lt;/span&gt; &lt;span style="color: teal"&gt;FIMSynchronizationService&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;dbo&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;mms_step_history&lt;/span&gt;&lt;span style="color: gray"&gt;;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;TRUNCATE&lt;/span&gt; &lt;span style="color: blue"&gt;TABLE&lt;/span&gt; &lt;span style="color: teal"&gt;FIMSynchronizationService&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;dbo&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;mms_step_object_details&lt;/span&gt;&lt;span style="color: gray"&gt;;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;TRUNCATE&lt;/span&gt; &lt;span style="color: blue"&gt;TABLE&lt;/span&gt; &lt;span style="color: teal"&gt;FIMSynchronizationService&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;dbo&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;mms_tracking_entries&lt;/span&gt;&lt;span style="color: gray"&gt;;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;TRUNCATE&lt;/span&gt; &lt;span style="color: blue"&gt;TABLE&lt;/span&gt; &lt;span style="color: teal"&gt;FIMSynchronizationService&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;dbo&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;mms_tracking_entries_history&lt;/span&gt;&lt;span style="color: gray"&gt;;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&lt;/p&gt; &lt;font color="#808080"&gt;&lt;/font&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3349745" width="1" height="1"&gt;</content><author><name>Juan Antonio Diaz - MSFT</name><uri>http://blogs.technet.com/juanand/ProfileUrlRedirect.ashx</uri></author><category term="FIM Toolbox" scheme="http://blogs.technet.com/b/juanand/archive/tags/FIM+Toolbox/" /></entry><entry><title>SQL Script: Delete Run History</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/juanand/archive/2010/08/12/sql-script-delete-run-history.aspx" /><id>http://blogs.technet.com/b/juanand/archive/2010/08/12/sql-script-delete-run-history.aspx</id><published>2010-08-12T11:52:27Z</published><updated>2010-08-12T11:52:27Z</updated><content type="html">&lt;p&gt;&lt;font color="#ff0000"&gt;&lt;strong&gt;&lt;em&gt;Unsupported: Use at your own risk&lt;/em&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;These three simple lines allow you to clear the Run History.   &lt;br /&gt;You can use this when admin client does not allow you to clear the history through the UI. I've seen this a couple of times when History is huge.    &lt;br /&gt;    &lt;br /&gt;&lt;span style="color: blue"&gt;TRUNCATE&lt;/span&gt; &lt;span style="color: blue"&gt;TABLE&lt;/span&gt; &lt;span style="color: teal"&gt;FIMSynchronizationService&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;dbo&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;mms_run_history&lt;/span&gt;&lt;span style="color: gray"&gt;;     &lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;TRUNCATE&lt;/span&gt; &lt;span style="color: blue"&gt;TABLE&lt;/span&gt; &lt;span style="color: teal"&gt;FIMSynchronizationService&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;dbo&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;mms_step_history&lt;/span&gt;&lt;span style="color: gray"&gt;;     &lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;TRUNCATE&lt;/span&gt; &lt;span style="color: blue"&gt;TABLE&lt;/span&gt; &lt;span style="color: teal"&gt;FIMSynchronizationService&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;dbo&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: teal"&gt;mms_step_object_details&lt;/span&gt;&lt;span style="color: gray"&gt;;&lt;/span&gt;&lt;/p&gt;  &lt;div style="font-family: consolas; background: white; color: black; font-size: 10pt"&gt;   &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt; &lt;/div&gt;  &lt;div style="font-family: consolas; background: white; color: black; font-size: 10pt"&gt;&lt;font face="Tahoma"&gt;&amp;#160;&lt;/font&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3349736" width="1" height="1"&gt;</content><author><name>Juan Antonio Diaz - MSFT</name><uri>http://blogs.technet.com/juanand/ProfileUrlRedirect.ashx</uri></author><category term="FIM Toolbox" scheme="http://blogs.technet.com/b/juanand/archive/tags/FIM+Toolbox/" /></entry><entry><title>Standalone Network Emulator Tool</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/juanand/archive/2010/03/05/standalone-network-emulator-tool.aspx" /><id>http://blogs.technet.com/b/juanand/archive/2010/03/05/standalone-network-emulator-tool.aspx</id><published>2010-03-05T16:05:10Z</published><updated>2010-03-05T16:05:10Z</updated><content type="html">&lt;p&gt;&lt;em&gt;All credits go for &lt;/em&gt;&lt;a href="http://blogs.msdn.com/lkruger/archive/2009/06/24/creating-a-stand-alone-network-emulator-using-vs2010-beta-1-release.aspx" target="_blank"&gt;&lt;em&gt;Lonny Kruger&lt;/em&gt;&lt;/a&gt;&lt;em&gt; and &lt;/em&gt;&lt;a href="http://neganov.blogspot.com/2010/01/stand-alone-network-emulator-for-vs2010.html" target="_blank"&gt;&lt;em&gt;Ivan Neganov&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;NEWT (&lt;b&gt;N&lt;/b&gt;etwork &lt;b&gt;E&lt;/b&gt;mulator for &lt;b&gt;W&lt;/b&gt;indows &lt;b&gt;T&lt;/b&gt;oolkit) is a software-based emulator which can emulate the behavior of both wired and wireless networks using a reliable physical link, such as an Ethernet. A variety of network attributes are incorporated into the NEWT emulation model, including round-trip time across the network (&lt;i&gt;latency&lt;/i&gt;), the amount of available &lt;i&gt;bandwidth&lt;/i&gt;, &lt;i&gt;queuing&lt;/i&gt; behavior, packet &lt;i&gt;loss&lt;/i&gt;, &lt;i&gt;reordering&lt;/i&gt; of packets, and &lt;i&gt;error&lt;/i&gt; propagations. NEWT also provides flexibility in filtering network packets based on IP addresses or protocols such as TCP, UDP, and ICMP.&lt;/p&gt;  &lt;p&gt;NEWT (Network Emulation for Windows Toolkit) is a fabulous network emulator tool that allows you to simulate different network conditions, and include ports, protocols and interface filters. This tool is now part of Games for Windows LIVE SDK and XBOX XDK.&lt;/p&gt;  &lt;p&gt;Unfortunately for lots of IT professionals out there, these SDKs are not generally available, so they have to engage with networking guys, their knowledge and their devices and networks to perform tests related to how well or bad their infrastructures work under different network conditions.&lt;/p&gt;  &lt;p&gt;The good news is that driver portion of NEWT was transfered to Visual Studio 2010 Team to support the new load testing features, so then it became possible to develop NEWT-like tool. &lt;a href="http://blogs.msdn.com/lkruger/archive/2009/06/24/creating-a-stand-alone-network-emulator-using-vs2010-beta-1-release.aspx" target="_blank"&gt;Lonny Kruger&lt;/a&gt; posted about how to build a sample standalone network emulator source code for Visual Studio 2010 Beta 1 in those days. Later, &lt;a href="http://neganov.blogspot.com/2010/01/stand-alone-network-emulator-for-vs2010.html" target="_blank"&gt;Ivan Neganov&lt;/a&gt; posted a similar solution, already compiled for everyone to use, this time for Visual Studio 2010 Beta 2.&lt;/p&gt;  &lt;p&gt;The issue I find myself is that both of posts mean that you have to install/use Visual Studio 2010 to be able to run network emulation. This is how I do it know with this tool, just for those ITPro non-developer guys out there:&lt;/p&gt;  &lt;p&gt;1.- &lt;a href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx" target="_blank"&gt;&lt;strong&gt;Download Visual Studio 2010 RC&lt;/strong&gt;&lt;/a&gt; and extract files from vs_setup.msi. To do so you can use your favorite MSI extraction tool, or just install it in a VM or such a thing. You will need just a few files out of it.&lt;/p&gt;  &lt;p&gt;2.- Download and install &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=a9ef9a95-58d2-4e51-a4b7-bea3cc6962cb&amp;amp;displaylang=en" target="_blank"&gt;&lt;strong&gt;Microsoft.NET Framework 4.0 RC&lt;/strong&gt;&lt;/a&gt; from (not sure if &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=8c1e3964-5c6c-440d-91dd-14cc1f42af95&amp;amp;displaylang=en" target="_blank"&gt;client profile&lt;/a&gt; is enough).&lt;/p&gt;  &lt;p&gt;3.- Grab and install &lt;strong&gt;Visual C++ 2010 RC runtime installers&lt;/strong&gt; needed by network emulation driver for your platform from VS 2010 bits, located at %ProgramFiles%\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\vcredist_x86\ and %ProgramFiles%\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\vcredist_x64\.&lt;/p&gt;  &lt;p&gt;4.- Grab and install &lt;strong&gt;network emulation driver&lt;/strong&gt; from VS2010 bits. You can find them both for x86 and x64 at %ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\NetworkEmulation\x86\ and %ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\NetworkEmulation\x64\. Install network emulator driver (NDIS6 for Vista/2008/W7/2008R2, NDIS5 for XP/2003) for your platform. Just in case you do not remember how, here are the screenshots:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/juanand/WindowsLiveWriter/StandaloneNetworkEmulatorTool_EA85/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/juanand/WindowsLiveWriter/StandaloneNetworkEmulatorTool_EA85/image_thumb.png" width="189" height="240" /&gt;&lt;/a&gt;&amp;#160; &lt;a href="http://blogs.technet.com/blogfiles/juanand/WindowsLiveWriter/StandaloneNetworkEmulatorTool_EA85/image_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/juanand/WindowsLiveWriter/StandaloneNetworkEmulatorTool_EA85/image_thumb_2.png" width="244" height="222" /&gt;&lt;/a&gt; &lt;a href="http://blogs.technet.com/blogfiles/juanand/WindowsLiveWriter/StandaloneNetworkEmulatorTool_EA85/image_8.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/juanand/WindowsLiveWriter/StandaloneNetworkEmulatorTool_EA85/image_thumb_3.png" width="244" height="132" /&gt;&lt;/a&gt; &lt;a href="http://blogs.technet.com/blogfiles/juanand/WindowsLiveWriter/StandaloneNetworkEmulatorTool_EA85/image_10.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/juanand/WindowsLiveWriter/StandaloneNetworkEmulatorTool_EA85/image_thumb_4.png" width="244" height="182" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;5.- Get &lt;strong&gt;Ivan Negalov's Stand-Alone Network Emulator&lt;/strong&gt; bits from &lt;a href="http://neganov.blogspot.com/2010/01/stand-alone-network-emulator-for-vs2010.html"&gt;http://neganov.blogspot.com/2010/01/stand-alone-network-emulator-for-vs2010.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;6.- Grab the &lt;strong&gt;updated DLLs&lt;/strong&gt; from VS2010 RC bits and overwrite the ones included in Ivan Negalov’s package (Beta 2 files):&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;%ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\&lt;strong&gt;Microsoft.VisualStudio.QualityTools.NetworkEmulation.dll&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;%ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\DataCollectors\x86\Microsoft.VisualStudio.QualityTools.NetworkEmulationAPI.dll or %ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\DataCollectors\x64\Microsoft.VisualStudio.QualityTools.NetworkEmulationAPI.dll, &lt;strong&gt;depending on your platform&lt;/strong&gt;.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Now you have your own neat and simple Network Emulation Tool!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/juanand/WindowsLiveWriter/StandaloneNetworkEmulatorTool_EA85/image_12.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/juanand/WindowsLiveWriter/StandaloneNetworkEmulatorTool_EA85/image_thumb_5.png" width="644" height="306" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Best regards.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3317097" width="1" height="1"&gt;</content><author><name>Juan Antonio Diaz - MSFT</name><uri>http://blogs.technet.com/juanand/ProfileUrlRedirect.ashx</uri></author></entry><entry><title>Hacking Application Compatibility Toolkit 5.5 Logs</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/juanand/archive/2010/01/22/hacking-application-compatibility-toolkit-5-5-logs.aspx" /><id>http://blogs.technet.com/b/juanand/archive/2010/01/22/hacking-application-compatibility-toolkit-5-5-logs.aspx</id><published>2010-01-22T08:23:54Z</published><updated>2010-01-22T08:23:54Z</updated><content type="html">&lt;p&gt;&lt;font color="#ff0000"&gt;&lt;strong&gt;&lt;u&gt;Disclaimer:&lt;/u&gt;&lt;/strong&gt; The information in this article is for educational purposes only, provided &amp;quot;AS IS&amp;quot; with no warranties, and confers no rights. If you use it, you are actually hacking your ACT implementation, and therefore will be completely on your own, in an unsupported state. USE AT YOUR OWN RISK.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;After writing the needed disclaimer, today I would like to post about my findings trying to “trick” ACT 5.5 data in order to feed applications into the DB with actual DCP deployment.&lt;/p&gt;  &lt;p&gt;One of the features some customers request would like to see in ACT would be the ability to import their already existing software inventory data into ACT database to check for compatibility, instead of having to deploy DCP (Data Collection Packages) around to gather the “same” information they already have in the inventory.&lt;/p&gt;  &lt;p&gt;I intentionally quoted “same”. DCP inventory actually gathers information (“indicators” as it calls in XML logs it generates) about applications from many places that traditional inventories may not look at, such as AppPaths, path environment variable or file extension handlers, to name a few.&lt;/p&gt;  &lt;h3&gt;Inside AppIDs&lt;/h3&gt;  &lt;p&gt;The problem with “injecting” inventory data into ACT is the application IDs used to check gathered information against ACT web service. As covered by Chris Jackson at &lt;a title="http://technet.microsoft.com/en-us/magazine/2009.06.act.aspx" href="http://technet.microsoft.com/en-us/magazine/2009.06.act.aspx"&gt;http://technet.microsoft.com/en-us/magazine/2009.06.act.aspx&lt;/a&gt; and &lt;a title="http://blogs.msdn.com/cjacks/archive/2010/01/06/windows-7-vender-compatibility-data-now-available-in-act-5-5.aspx" href="http://blogs.msdn.com/cjacks/archive/2010/01/06/windows-7-vender-compatibility-data-now-available-in-act-5-5.aspx"&gt;http://blogs.msdn.com/cjacks/archive/2010/01/06/windows-7-vender-compatibility-data-now-available-in-act-5-5.aspx&lt;/a&gt;, applications are tied to compatibility data with a unique Application ID, generated using the name, version, vendor, and language (NVVL) of the application.&lt;/p&gt;  &lt;p&gt;Looking at the XML files consumed by the “ACT Log Processing Service”, they already contain those kind-of-magic AppIDs that allow ACM (Application Compatibility Manager) check for data, for example:&lt;/p&gt;  &lt;p&gt;&amp;lt;Application Name=&amp;quot;Microsoft Office Communicator 2005&amp;quot; ComponentType=&amp;quot;Application&amp;quot; EvidenceType=&amp;quot;Msi&amp;quot; […] Id=&amp;quot;&lt;strong&gt;ebe7afc679a82c6560bb8b8276c262ec&lt;/strong&gt;&amp;quot;&amp;gt; &lt;/p&gt;  &lt;p&gt;These hashes are generated by &lt;strong&gt;bucketizer.exe&lt;/strong&gt;, and are key to application compatibility checks against the Web service. Bucketizer program takes the XML file generated by collector.exe, looks at NVVL data and generates the hashes.&lt;/p&gt;  &lt;p&gt;So if I just managed to generate a properly formatted XML file similar to what Collector.exe creates, Bucketizer.exe may not notice the difference and generate the very same AppIDs in the XML that finally can be dropped into ACT logs folder to be processed by ACT Log Processing Service.&lt;/p&gt;  &lt;h3&gt;Your own Collector XML Template&lt;/h3&gt;  &lt;p&gt;So… next step in the hack will be generating our own collector XML file.    &lt;br /&gt;I managed to generate some sort of template for the collector XML that then we can distinguish in ACM as “imported” data, rather than “collected” data.&lt;/p&gt;  &lt;p&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-16&amp;quot; ?&amp;gt;    &lt;br /&gt;&amp;lt;Collector&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;SystemList&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ChassisInfo Vendor=&amp;quot;Microsoft&amp;quot; AssetTag=&amp;quot;&amp;quot; SerialNumber=&amp;quot;&amp;quot;/&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;OsInfo BuildNumber=&amp;quot;0&amp;quot; CsdVersion=&amp;quot;&amp;quot; MajorVersion=&amp;quot;6&amp;quot; MinorVersion=&amp;quot;1&amp;quot; PlatformId=&amp;quot;2&amp;quot; ProductType=&amp;quot;0&amp;quot; ServicePackMajor=&amp;quot;0&amp;quot; ServicePackMinor=&amp;quot;0&amp;quot; Suite=&amp;quot;0&amp;quot; WindowsDirectory=&amp;quot;&amp;quot; SystemDirectory=&amp;quot;&amp;quot;/&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;NetworkInfo Domain=&amp;quot;&amp;quot; MachineName=&amp;quot;_IMPORT_&amp;quot; UserName=&amp;quot;&amp;quot; SmsGuid=&amp;quot;&amp;quot; SmsHwId=&amp;quot;&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;NIC MacAddress=&amp;quot;00-00-00-00-00-00&amp;quot;/&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/NetworkInfo&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;HardwareInfo&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;MemoryInfo PageFile=&amp;quot;0&amp;quot; Ram=&amp;quot;0&amp;quot; Virtual=&amp;quot;0&amp;quot;/&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ProcessorInfo Name=&amp;quot;&amp;quot; Mhz=&amp;quot;0&amp;quot; Architecture=&amp;quot;x64&amp;quot; Family=&amp;quot;0&amp;quot; Type=&amp;quot;0&amp;quot; Level2CacheSize=&amp;quot;0&amp;quot; Level=&amp;quot;0&amp;quot; Vendor=&amp;quot;&amp;quot; Caption=&amp;quot;&amp;quot; ProcessorId=&amp;quot;&amp;quot;/&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/HardwareInfo&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;CustomValues&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/CustomValues&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;/SystemList&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;Collection&amp;gt;     &lt;br /&gt;&lt;font color="#ff0000"&gt;[ YOUR APPS INFO WILL BE HERE ]&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Collection&amp;gt;     &lt;br /&gt;&amp;lt;/Collector&amp;gt;&lt;/p&gt;  &lt;p&gt;This will look like this in ACM, so then you can filter it in/out in case you need it:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/juanand/image_00B29CBD.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/juanand/image_thumb_70572503.png" width="588" height="131" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/juanand/image_7D510514.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/juanand/image_thumb_4E1F197D.png" width="398" height="296" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h3&gt;Adding Application Data to your Collector XML file&lt;/h3&gt;  &lt;p&gt;The next step will be adding application data to your custom Collector XML file template. To do so, we need to be respectful with the expected tags and values as much as we can to avoid errors during log processing, so again I built a couple of templates for this. Here are for examples:&lt;/p&gt;  &lt;p&gt;&amp;lt;StaticProperty Type=&amp;quot;&lt;font color="#ff0000"&gt;Msi&lt;/font&gt;&amp;quot; &lt;font color="#0000ff"&gt;ProductName=&amp;quot;Microsoft Office Live Meeting 2007&amp;quot; CompanyName=&amp;quot;Microsoft Corporation&amp;quot; ProductVersion=&amp;quot;8.0.6338&amp;quot;&lt;/font&gt; InstallDate=&amp;quot;01/01/1900 00:00:00&amp;quot; Path=&amp;quot;&amp;quot; FileName=&amp;quot;&amp;quot; &lt;font color="#0000ff"&gt;Language=&amp;quot;0&amp;quot;&lt;/font&gt; ProductId=&amp;quot;RandomGUID_001&amp;quot; PackageId=&amp;quot;&amp;quot; GUID=&amp;quot;&amp;quot; RNP=&amp;quot;0&amp;quot; DNP=&amp;quot;0&amp;quot; UniqueId=&amp;quot;0&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;StaticProperty Type=&amp;quot;File&amp;quot; Name=&amp;quot;file.exe&amp;quot; Path=&amp;quot;C:\Program Files&amp;quot; Size=&amp;quot;0&amp;quot; PeChecksum=&amp;quot;0&amp;quot; Checksum=&amp;quot;0&amp;quot; LegalCopyright=&amp;quot;&amp;quot; OriginalFilename=&amp;quot;&amp;quot; InternalName=&amp;quot;&amp;quot; ProductName=&amp;quot;&amp;quot; CompanyName=&amp;quot;&amp;quot; ProductVersion=&amp;quot;&amp;quot; FileVersion=&amp;quot;&amp;quot; BinProductVersion=&amp;quot;&amp;quot; BinFileVersion=&amp;quot;&amp;quot; VerLanguage=&amp;quot;&amp;quot; FileDescription=&amp;quot;&amp;quot; LinkDate=&amp;quot;01/01/1900 00:00:00&amp;quot; Created=&amp;quot;01/01/1900 00:00:00&amp;quot; Modified=&amp;quot;01/01/1900 00:00:00&amp;quot; BinaryType=&amp;quot;32BIT&amp;quot; RNP=&amp;quot;0&amp;quot; DNP=&amp;quot;0&amp;quot; UniqueId=&amp;quot;0&amp;quot; LowerCaseLongPath=&amp;quot;&amp;quot;/&amp;gt;     &lt;br /&gt;&amp;lt;/StaticProperty&amp;gt; &lt;/p&gt;  &lt;p&gt;&amp;lt;StaticProperty Type=&amp;quot;&lt;font color="#ff0000"&gt;Msi&lt;/font&gt;&amp;quot; &lt;font color="#0000ff"&gt;ProductName=&amp;quot;Microsoft Office Communicator 2005&amp;quot; CompanyName=&amp;quot;Microsoft Corporation&amp;quot; ProductVersion=&amp;quot;1.0.557&amp;quot;&lt;/font&gt; InstallDate=&amp;quot;01/01/1900 00:00:00&amp;quot; Path=&amp;quot;&amp;quot; FileName=&amp;quot;&amp;quot; &lt;font color="#0000ff"&gt;Language=&amp;quot;1033&amp;quot;&lt;/font&gt; ProductId=&amp;quot;RandomGUID_002&amp;quot; PackageId=&amp;quot;&amp;quot; GUID=&amp;quot;&amp;quot; RNP=&amp;quot;0&amp;quot; DNP=&amp;quot;0&amp;quot; UniqueId=&amp;quot;0&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;StaticProperty Type=&amp;quot;File&amp;quot; Name=&amp;quot;file.exe&amp;quot; Path=&amp;quot;C:\Program Files&amp;quot; Size=&amp;quot;0&amp;quot; PeChecksum=&amp;quot;0&amp;quot; Checksum=&amp;quot;0&amp;quot; LegalCopyright=&amp;quot;&amp;quot; OriginalFilename=&amp;quot;&amp;quot; InternalName=&amp;quot;&amp;quot; ProductName=&amp;quot;&amp;quot; CompanyName=&amp;quot;&amp;quot; ProductVersion=&amp;quot;&amp;quot; FileVersion=&amp;quot;&amp;quot; BinProductVersion=&amp;quot;&amp;quot; BinFileVersion=&amp;quot;&amp;quot; VerLanguage=&amp;quot;&amp;quot; FileDescription=&amp;quot;&amp;quot; LinkDate=&amp;quot;01/01/1900 00:00:00&amp;quot; Created=&amp;quot;01/01/1900 00:00:00&amp;quot; Modified=&amp;quot;01/01/1900 00:00:00&amp;quot; BinaryType=&amp;quot;32BIT&amp;quot; RNP=&amp;quot;0&amp;quot; DNP=&amp;quot;0&amp;quot; UniqueId=&amp;quot;0&amp;quot; LowerCaseLongPath=&amp;quot;&amp;quot;/&amp;gt;     &lt;br /&gt;&amp;lt;/StaticProperty&amp;gt; &lt;/p&gt;  &lt;p&gt;&amp;lt;StaticProperty Type=&amp;quot;&lt;font color="#ff0000"&gt;Msi&lt;/font&gt;&amp;quot; &lt;font color="#0000ff"&gt;ProductName=&amp;quot;Adobe Reader 9.1.3&amp;quot; CompanyName=&amp;quot;Adobe Systems Incorporated&amp;quot; ProductVersion=&amp;quot;9.1.3&amp;quot;&lt;/font&gt; InstallDate=&amp;quot;01/01/1900 00:00:00&amp;quot; Path=&amp;quot;&amp;quot; FileName=&amp;quot;&amp;quot; &lt;font color="#0000ff"&gt;Language=&amp;quot;1033&amp;quot;&lt;/font&gt; ProductId=&amp;quot;RandomGUID_003&amp;quot; PackageId=&amp;quot;{F9157B99-840D-4ED4-BF61-E34C8B092756}&amp;quot; GUID=&amp;quot;&amp;quot; RNP=&amp;quot;0&amp;quot; DNP=&amp;quot;0&amp;quot; UniqueId=&amp;quot;0&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;StaticProperty Type=&amp;quot;File&amp;quot; Name=&amp;quot;file.exe&amp;quot; Path=&amp;quot;C:\Program Files&amp;quot; Size=&amp;quot;0&amp;quot; PeChecksum=&amp;quot;0&amp;quot; Checksum=&amp;quot;0&amp;quot; LegalCopyright=&amp;quot;&amp;quot; OriginalFilename=&amp;quot;&amp;quot; InternalName=&amp;quot;&amp;quot; ProductName=&amp;quot;&amp;quot; CompanyName=&amp;quot;&amp;quot; ProductVersion=&amp;quot;&amp;quot; FileVersion=&amp;quot;&amp;quot; BinProductVersion=&amp;quot;&amp;quot; BinFileVersion=&amp;quot;&amp;quot; VerLanguage=&amp;quot;&amp;quot; FileDescription=&amp;quot;&amp;quot; LinkDate=&amp;quot;01/01/1900 00:00:00&amp;quot; Created=&amp;quot;01/01/1900 00:00:00&amp;quot; Modified=&amp;quot;01/01/1900 00:00:00&amp;quot; BinaryType=&amp;quot;32BIT&amp;quot; RNP=&amp;quot;0&amp;quot; DNP=&amp;quot;0&amp;quot; UniqueId=&amp;quot;0&amp;quot; LowerCaseLongPath=&amp;quot;&amp;quot;/&amp;gt;     &lt;br /&gt;&amp;lt;/StaticProperty&amp;gt; &lt;/p&gt;  &lt;p&gt;&amp;lt;StaticProperty Type=&amp;quot;&lt;font color="#ff0000"&gt;AddRemoveProgram&lt;/font&gt;&amp;quot; &lt;font color="#0000ff"&gt;DisplayName=&amp;quot;Adobe Shockwave Player&amp;quot; CompanyName=&amp;quot;Adobe Systems, Inc.&amp;quot; Language=&amp;quot;1033&amp;quot; ProductVersion=&amp;quot;11.0&amp;quot;&lt;/font&gt; Path=&amp;quot;&amp;quot; RegistrySubKey=&amp;quot;&amp;quot; RegistryPath=&amp;quot;HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\MyApp&amp;quot; UninstallString=&amp;quot;&amp;quot; GUID=&amp;quot;&amp;quot; RNP=&amp;quot;0&amp;quot; DNP=&amp;quot;0&amp;quot; UniqueId=&amp;quot;0&amp;quot;/&amp;gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Looking at this XML data, you can notice that all the information is just fake data for Bucketizer.exe and Log Processing Service not to complain about it, but actually only NVVL data needs to be accurate.&lt;/p&gt;  &lt;p&gt;You also may notice that there are UniqueId values. However, they do not have to be unique for the purpose of the hack. What it has to is –just for MSI blocks– the ProductId value. Originally this is a GUID, but as you see, it doesn’t even have to be a former GUID, but some sort of different string across the applications represented in the XML.&lt;/p&gt;  &lt;p&gt;Another interesting thing, again for the MSI blocks, is that you need to add additional evidence data for it to work. In this case I added a completely fake info about “file.exe”. As you see, this file evidence is exactly the same for the three MSI applications I added, as it does not seem to matter much to the AppID generation we are looking for.&lt;/p&gt;  &lt;h4&gt;From NVVL data to AppID&lt;/h4&gt;  &lt;p&gt;For the exactly same AppID to be generated in your log file, we need to provide the very same application name, version, vendor and language information as a real DCP will gather in the data collection process.&lt;/p&gt;  &lt;p&gt;For example, if DCP puts “Microsoft Corp.” in the logs, and you write just “Microsoft” in your custom XML, the AppID will be completely different.&lt;/p&gt;  &lt;p&gt;Something I have notice though is that building a custom “MSI” or “AddRemoveProgram” block type makes a different AppID, so not only NVVL data is important, but also the evidence type you are trying to build. For example, if a normal DCP gathers an application as MSI, and you put the very same NVVL data in your XML, you will get a different AppID.&lt;/p&gt;  &lt;h3&gt;Building your Collector Log&lt;/h3&gt;  &lt;p&gt;So now we know what we have to include in the collector-like log to be processed properly by bucketizer.exe and get proper AppIDs to check with the ACT Web Service. So now.. how can I easily build that XML data?&lt;/p&gt;  &lt;p&gt;Well, that is completely up to you. My best friend in these type of cases is &lt;strong&gt;Excel&lt;/strong&gt;. If you can have your software inventory to export a CSV or similar Excel-friendly data with application name, vendor, version and language, you are ready to rock!&lt;/p&gt;  &lt;p&gt;Just use the CONCATENATE() function in Excel to concatenate the proper strings. For example, if you have appName, appVersion and appPublisher, you can build “XML MSI” column and “XML AddRemove” column to generate data to paste into your collector XML file template.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/juanand/image_13C3A39C.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/juanand/image_thumb_27708D30.png" width="659" height="214" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The formula for MSI blocks:&lt;/p&gt;  &lt;p&gt;=CONCATENATE(&amp;quot;&amp;lt;StaticProperty Type=&amp;quot;,CHAR(34),&amp;quot;Msi&amp;quot;,CHAR(34),&amp;quot; ProductName=&amp;quot;,CHAR(34),&lt;strong&gt;A20963&lt;/strong&gt;,CHAR(34),&amp;quot; CompanyName=&amp;quot;,CHAR(34),&lt;strong&gt;C20963&lt;/strong&gt;,CHAR(34),&amp;quot; ProductVersion=&amp;quot;,CHAR(34),&lt;strong&gt;B20963&lt;/strong&gt;,CHAR(34),&amp;quot; InstallDate=&amp;quot;,CHAR(34),&amp;quot;01/01/1900 00:00:00&amp;quot;,CHAR(34),&amp;quot; Path=&amp;quot;,CHAR(34),&amp;quot;&amp;quot;,CHAR(34),&amp;quot; FileName=&amp;quot;,CHAR(34),&amp;quot;&amp;quot;,CHAR(34),&amp;quot; Language=&amp;quot;,CHAR(34),&lt;strong&gt;&amp;quot;0&amp;quot;&lt;/strong&gt;,CHAR(34),&amp;quot; ProductId=&amp;quot;,CHAR(34),&amp;quot;&lt;font color="#ff0000"&gt;{&amp;quot;,RANDBETWEEN(10000000,99999999),&amp;quot;-&amp;quot;,RANDBETWEEN(1000,9999),&amp;quot;-&amp;quot;,RANDBETWEEN(1000,9999),&amp;quot;-&amp;quot;,RANDBETWEEN(1000,9999),&amp;quot;-&amp;quot;,RANDBETWEEN(100000000000,999999999999),&amp;quot;}&lt;/font&gt;&amp;quot;,CHAR(34),&amp;quot; PackageId=&amp;quot;,CHAR(34),&amp;quot;&amp;quot;,CHAR(34),&amp;quot; GUID=&amp;quot;,CHAR(34),&amp;quot;&amp;quot;,CHAR(34),&amp;quot; RNP=&amp;quot;,CHAR(34),&amp;quot;0&amp;quot;,CHAR(34),&amp;quot; DNP=&amp;quot;,CHAR(34),&amp;quot;0&amp;quot;,CHAR(34),&amp;quot; UniqueId=&amp;quot;,CHAR(34),&amp;quot;0&amp;quot;,CHAR(34),&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;StaticProperty Type=&amp;quot;,CHAR(34),&amp;quot;File&amp;quot;,CHAR(34),&amp;quot; Name=&amp;quot;,CHAR(34),&amp;quot;file.exe&amp;quot;,CHAR(34),&amp;quot; Path=&amp;quot;,CHAR(34),&amp;quot;C:\Program Files&amp;quot;,CHAR(34),&amp;quot; Size=&amp;quot;,CHAR(34),&amp;quot;0&amp;quot;,CHAR(34),&amp;quot; PeChecksum=&amp;quot;,CHAR(34),&amp;quot;0&amp;quot;,CHAR(34),&amp;quot; Checksum=&amp;quot;,CHAR(34),&amp;quot;0&amp;quot;,CHAR(34),&amp;quot; LegalCopyright=&amp;quot;,CHAR(34),&amp;quot;&amp;quot;,CHAR(34),&amp;quot; OriginalFilename=&amp;quot;,CHAR(34),&amp;quot;&amp;quot;,CHAR(34),&amp;quot; InternalName=&amp;quot;,CHAR(34),&amp;quot;&amp;quot;,CHAR(34),&amp;quot; ProductName=&amp;quot;,CHAR(34),&amp;quot;&amp;quot;,CHAR(34),&amp;quot; CompanyName=&amp;quot;,CHAR(34),&amp;quot;&amp;quot;,CHAR(34),&amp;quot; ProductVersion=&amp;quot;,CHAR(34),&amp;quot;&amp;quot;,CHAR(34),&amp;quot; FileVersion=&amp;quot;,CHAR(34),&amp;quot;&amp;quot;,CHAR(34),&amp;quot; BinProductVersion=&amp;quot;,CHAR(34),&amp;quot;&amp;quot;,CHAR(34),&amp;quot; BinFileVersion=&amp;quot;,CHAR(34),&amp;quot;&amp;quot;,CHAR(34),&amp;quot; VerLanguage=&amp;quot;,CHAR(34),&amp;quot;&amp;quot;,CHAR(34),&amp;quot; FileDescription=&amp;quot;,CHAR(34),&amp;quot;&amp;quot;,CHAR(34),&amp;quot; LinkDate=&amp;quot;,CHAR(34),&amp;quot;01/01/1900 00:00:00&amp;quot;,CHAR(34),&amp;quot; Created=&amp;quot;,CHAR(34),&amp;quot;01/01/1900 00:00:00&amp;quot;,CHAR(34),&amp;quot; Modified=&amp;quot;,CHAR(34),&amp;quot;01/01/1900 00:00:00&amp;quot;,CHAR(34),&amp;quot; BinaryType=&amp;quot;,CHAR(34),&amp;quot;32BIT&amp;quot;,CHAR(34),&amp;quot; RNP=&amp;quot;,CHAR(34),&amp;quot;0&amp;quot;,CHAR(34),&amp;quot; DNP=&amp;quot;,CHAR(34),&amp;quot;0&amp;quot;,CHAR(34),&amp;quot; UniqueId=&amp;quot;,CHAR(34),&amp;quot;0&amp;quot;,CHAR(34),&amp;quot; LowerCaseLongPath=&amp;quot;,CHAR(34),&amp;quot;&amp;quot;,CHAR(34),&amp;quot;/&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/StaticProperty&amp;gt;&amp;quot;)&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;strong&gt;Important:&lt;/strong&gt;&lt;/u&gt; You can see appName, appVendor and appVersion cells refered in the formula. However, in my test inventory data I had no language data, so I just used literal version data in the formula (bolded “0”), what causes lots of AppIDs not to be properly generated though. You can also notice that to generate unique GUIDs I used RANDBETWEEN() formula, to generate look-a-like numeric GUIDs.&lt;/p&gt;  &lt;p&gt;The formula for AddRemoveProgram blocks (again fixed language data):&lt;/p&gt;  &lt;p&gt;=CONCATENATE(&amp;quot;&amp;lt;StaticProperty Type=&amp;quot;,CHAR(34),&amp;quot;AddRemoveProgram&amp;quot;,CHAR(34),&amp;quot; DisplayName=&amp;quot;,CHAR(34),&lt;strong&gt;A45892&lt;/strong&gt;,CHAR(34),&amp;quot; CompanyName=&amp;quot;,CHAR(34),&lt;strong&gt;C45892&lt;/strong&gt;,CHAR(34),&amp;quot; Language=&amp;quot;,CHAR(34),&amp;quot;&lt;strong&gt;1033&lt;/strong&gt;&amp;quot;,CHAR(34),&amp;quot; ProductVersion=&amp;quot;,CHAR(34),&lt;strong&gt;B45892&lt;/strong&gt;,CHAR(34),&amp;quot; Path=&amp;quot;,CHAR(34),&amp;quot;&amp;quot;,CHAR(34),&amp;quot; RegistrySubKey=&amp;quot;,CHAR(34),&amp;quot;&amp;quot;,CHAR(34),&amp;quot; RegistryPath=&amp;quot;,CHAR(34),&amp;quot;HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\MyApp&amp;quot;,CHAR(34),&amp;quot; UninstallString=&amp;quot;,CHAR(34),&amp;quot;&amp;quot;,CHAR(34),&amp;quot; GUID=&amp;quot;,CHAR(34),&amp;quot;&amp;quot;,CHAR(34),&amp;quot; RNP=&amp;quot;,CHAR(34),&amp;quot;0&amp;quot;,CHAR(34),&amp;quot; DNP=&amp;quot;,CHAR(34),&amp;quot;0&amp;quot;,CHAR(34),&amp;quot; UniqueId=&amp;quot;,CHAR(34),&amp;quot;0&amp;quot;,CHAR(34),&amp;quot;/&amp;gt;&amp;quot;)&lt;/p&gt;  &lt;h3&gt;Bucketizing your Collector Log&lt;/h3&gt;  &lt;p&gt;Once you have your custom Collector log, you need to use Bucketizer.exe to generate the XML with the right AppIDs, that you then will manually drop in your ACT Logs folder to be consumed by Log Processing Service.&lt;/p&gt;  &lt;p&gt;bucketizer.exe /c &amp;quot;&amp;lt;custom collector log folder&amp;gt;&amp;quot; /o &amp;quot;&amp;lt;bucketizer log destination folder&amp;gt;&amp;quot; /b &amp;quot;&amp;lt;bucketizer log destination folder&amp;gt;&amp;quot; /d &amp;quot;&amp;lt;bucketizer log destination folder&amp;gt;&amp;quot; /s &amp;quot;_IMPORTED_&amp;quot;    &lt;br /&gt;    &lt;br /&gt;where:     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /c&amp;#160;&amp;#160;&amp;#160; Collector log directory path.     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /o&amp;#160;&amp;#160;&amp;#160; Output directory path.     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /b&amp;#160;&amp;#160;&amp;#160; Principle (bucketized) log directory path.     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /d&amp;#160;&amp;#160;&amp;#160; Dynamic agent log directory path.     &lt;br /&gt;    &lt;br /&gt;So you put your custom collector XML in a folder and bucketizer.exe processes it and dumps a bucketized XML in another folder.&lt;/p&gt;  &lt;p&gt;An interesting Bucketizer.exe switch is /m. Running bucketizer.exe without parameters it says that it is used for “Custom Md5 attributes xml file path.&amp;#160; This suppresses built-in Md5    &lt;br /&gt;attributes.”. I have not being able to get further information about this switch though.&lt;/p&gt;  &lt;h3&gt;Caveats&lt;/h3&gt;  &lt;p&gt;There are some caveats when using this hack that may cause your custom collector log unusable or without value, though, including:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;NVVL data has to be exactly the same&lt;/strong&gt; as the one used to generate hashes used as AppIDs in ACT web service. Any minimal difference in any NVVL field will generate a completely different AppID that then will not find a match in ACT web service. This applies also to standard ACT usage. If you deploy a vendor application using a customized MSI package and you change how they look like in the system, DCP will collect customized information and therefore generate a different AppID that ACM will not be able to match against the web service. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;MSI vs. AddRemoveProgram block.&lt;/strong&gt; AppID generated by bucketizer.exe is different if you use the very same NVVL data either in an MSI or an AddRemoveProgram block. If you don’t know wheather a particular app is installed through an MSI or not, you may need to generate both blocks and therefore have more noise in ACM. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Expect log processing errors. &lt;/strong&gt;Using this technique, some data generated in the custom collector log may not get properly processed. During my tests, I built an XML file with 1000 application blocks, and while bucketizer.exe did not complain, the generated log failed to get into ACM. However, it did work using just the first 500 application blocks, so you may need to find offending records. &lt;/li&gt; &lt;/ul&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3307489" width="1" height="1"&gt;</content><author><name>Juan Antonio Diaz - MSFT</name><uri>http://blogs.technet.com/juanand/ProfileUrlRedirect.ashx</uri></author></entry><entry><title>The Case Of… Windows 7 Network Connections empty folder</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/juanand/archive/2010/01/11/the-case-of-windows-7-network-connections-empty-folder.aspx" /><id>http://blogs.technet.com/b/juanand/archive/2010/01/11/the-case-of-windows-7-network-connections-empty-folder.aspx</id><published>2010-01-11T13:10:49Z</published><updated>2010-01-11T13:10:49Z</updated><content type="html">&lt;p&gt;Well... this is not an Identity Management specific post, but I would like to make my blog more content wide and cover other areas of work and experience, so here it goes the first non-Identity post :).&lt;/p&gt;  &lt;p&gt;For some unknown reason, it happened to me that my “Network Connections” folder in Windows 7 x64 got empty., Network connections all still work, and I could even go and change some settings through netsh, but I was commited to fix the issue. Hitting refresh button updated the status line of the window with “0 connections” message.&lt;/p&gt;  &lt;p&gt;After some “Bingging” ;-), I found similar issues and fixes for XP both in Microsoft Support Knowlege Base and some forums that were not applicable.&lt;/p&gt;  &lt;p&gt;System reboots, updating network drivers, removing and adding interfaces in Device Manager, removing network services related stuff such as network virtualization bridges, re-registering netshell.dll, netcfgx.dll and netman.dll, adding Network Service account to Local Administrators group (this one fixed another “Network and Sharing Center” empty screen issue in the past) were not helpful neither.&lt;/p&gt;  &lt;p&gt;Normally system restore points will have being really helpful here, but due to lack of disk space, I had not enough restore points to get back to a healthful state, specially after last three Windows Update packages came through.&lt;/p&gt;  &lt;p&gt;So after several hours and system reboots I was almost ready to give up when I decided to give &lt;strong&gt;Process Monitor&lt;/strong&gt; and myself a last chance before rebuilding my system. I added &lt;strong&gt;svchost.exe&lt;/strong&gt; and svchost.exe’s instance that holds &lt;strong&gt;“Network Connections” &lt;/strong&gt;service (NetMan) in ProcMon filters, like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/juanand/WindowsLiveWriter/Windows7NetworkConnectionsfolderempty_C5DB/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/juanand/WindowsLiveWriter/Windows7NetworkConnectionsfolderempty_C5DB/image_thumb_1.png" width="244" height="105" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I just got the needed svchost.exe instance PID by looking for Netman service in &lt;strong&gt;Process Explorer &lt;/strong&gt;tooltip, like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/juanand/WindowsLiveWriter/Windows7NetworkConnectionsfolderempty_C5DB/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/juanand/WindowsLiveWriter/Windows7NetworkConnectionsfolderempty_C5DB/image_thumb.png" width="244" height="75" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Then I looked at registry calls when hitting refresh button in &lt;strong&gt;ncpa.cpl&lt;/strong&gt; window (that is how you can launch “Network Connections” dialog quickly) and comparing it with the same activity in a healthy system.&lt;/p&gt;  &lt;p&gt;While the healthy system registry activity queried for NIC information in the registry, my faulty system was giving a BUFFER OVERFLOW result when quering for &lt;strong&gt;HKLM\SYSTEM\CurrentControlSet\Control\Network\Connections\ClassManagers &lt;/strong&gt;value. A simple look to this value seems fine, but when I edited it I just found that for some reason the faulty system had all 4 GUIDs ({B4C8DF59-D16F-4042-80B7-3557A254B7C5},{BA126AD3-2166-11D1-B1D0-00805FC1270E},{BA126AD5-2166-11D1-B1D0-00805FC1270E} and {BA126ADD-2166-11D1-B1D0-00805FC1270E}) in a single line, instead of in separate lines of this REG_MULTI_SZ value as it should be.&lt;/p&gt;  &lt;p&gt;So just fixing the REG_MULTI_SZ value to a proper format and hitting refresh in “Network Connections” dialog made network connection icons come back again!&lt;/p&gt;  &lt;p&gt;Hope this helps.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3304844" width="1" height="1"&gt;</content><author><name>Juan Antonio Diaz - MSFT</name><uri>http://blogs.technet.com/juanand/ProfileUrlRedirect.ashx</uri></author><category term="Troubleshooting" scheme="http://blogs.technet.com/b/juanand/archive/tags/Troubleshooting/" /></entry><entry><title>Things to Consider when Provisioning to AD / ADAM</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/juanand/archive/2009/05/12/things-to-consider-when-provisioning-to-ad-adam.aspx" /><id>http://blogs.technet.com/b/juanand/archive/2009/05/12/things-to-consider-when-provisioning-to-ad-adam.aspx</id><published>2009-05-12T19:56:24Z</published><updated>2009-05-12T19:56:24Z</updated><content type="html">&lt;p&gt;Active Directory / ADAM provisioning can be tricky (and same may apply to other LDAP directories) when you attempt to provision objects using potentially non-unique things like names, surnames or object descriptions (such as “CN=John Smith”).&lt;/p&gt;  &lt;p&gt;There are a few things you need to consider for best results and less errors during bulk provisioning:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;RDNs have to be unique within the same container. &lt;/strong&gt;If you have two “CN=John Smith” to get provisioned to the same container, you need to generate some sort of tie braker to rename one of them. In ILM Developer Reference there is a sample code snippet that shows how to handle this situation, by building an initial DN for the object, attempt to commit the connector, and if you get ObjectAlreadyExistsException then try to build an alternative DN using RDN with suffixes.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;RDN is limited to 64 characters. &lt;/strong&gt;You can extend this length (using ADSIEdit MMC to inspect the schema and changing the rangeUpper attribute value), but I would rather not change this particular length as other Windows components may have problems if you do so. Therefore, when building your RDN for provisioning, you will have check its length and shorten it if needed. If you apply the suffixing technique for RDNs, consider that when a collision occurs and you add a suffix, you may be hitting the 64 limit just by the suffix length, so another length to check :).&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Accented RDNs generate collisions.&lt;/strong&gt; If you provision “CN=John M&lt;strong&gt;ü&lt;/strong&gt;ller” in a given container, trying to provision “CN=John M&lt;strong&gt;u&lt;/strong&gt;ller” works in your provisioning code (no ObjectAlreadyExistsException raises), but you will get export errors because the object already exists. So you may need some normalization.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;RDN renames.&lt;/strong&gt; If, like I do sometimes, your provisioning logic uses some kind of OU assignment (ie. based on countries, departments, business units and such), and your “CN=John Smith – johnd” (because you decided to use uid as suffix for example) moves away from the same OU where “CN=John Smith” lives, now both objects could be named “CN=John Smith” without collisions, so you may apply the same RDN building logic both on Connectors.Count==0 and Connectors.Count==1 (to apply RDN renames). Also same checks are needed. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Provisioining in containers.&lt;/strong&gt; When the provisioning logic has to “calculate” the AD OU, I normally assume that the OU has being previously created in AD/ADAM from a given data source (i.e. a Departments MA). However, you may find that the “Departments Table” does not contain your “DeptXYZ”, while your “Users Table” says that “John Smith” is in “DeptXYZ”. In this case, your provisioning logic will attempt to create the object in a non-existing OU, so it will raise a MissingParentObjectException. So to handle this, your provisioning logic will need to catch both ObjectAlreadyExistsException (to change the RDN) and MissingParentObjectException (to change the “calculated” container with a default provisoining container). And again, the same logic needs to be included both with 0 or 1 connectors, to apply a proper &amp;quot;OU move” whenever the OU comes into your AD MA.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;sAMAccountName. &lt;/strong&gt;This is another fighting element. This attribute has to be unique across a given domain, and has characters and length restrictions. If you build this attribute based on names and surnames, you will have to apply normalization (again, &lt;em&gt;jmüller&lt;/em&gt; and &lt;em&gt;jmuller&lt;/em&gt; are considered the same user), length checks (max. is 20 characters) and characters validations so your provisioning logic works fine. I was not able to find detailed technical information, but these are some invalid characters and conditions:&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;It accepts unicode characters, but accented characters generate collisions. So you can provision jmüller today and if tomorrow you try to provision jmuller, you will get a collision. So better normalize your sAMAccountNames.&lt;/li&gt;      &lt;li&gt;The same sAMAccountName is valid across multiple domains (while better to avoid migration/consolidation issues later). This point leads to handling sAMAccountName uniqueness, but that is another story.&lt;/li&gt;      &lt;li&gt;These characters are invalid: \/:*?\&amp;quot;&amp;lt;&amp;gt;|=;&lt;/li&gt;      &lt;li&gt;Blanks (space) are allowed.&lt;/li&gt;      &lt;li&gt;The sAMAccountName cannot end with . (dot, full stop, period).&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;mailNickname. &lt;/strong&gt;If you happen to provision Exchange mailboxes too, mailNickname is another interesting attribute. Again, if you build this attribute based on names and surnames, you will have to apply normalization, length and characters validations so your provisioning logic works fine. This attribute has to conform the following:&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Ensure contains only format and lengh (up to 64)&lt;/li&gt;      &lt;li&gt;May use any of these ASCII characters:&lt;/li&gt;      &lt;ul&gt;       &lt;li&gt;Uppercase and lowercase English letters (a-z, A-Z)&lt;/li&gt;        &lt;li&gt;Digits 0 through 9&lt;/li&gt;        &lt;li&gt;Characters ! # $ % &amp;amp; ' * + - / = ? ^ _ ` { | } ~&lt;/li&gt;        &lt;li&gt;Character . (dot, period, full stop), provided that it is not the first or last character, and provided also that it does not appear two or more times consecutively. &lt;/li&gt;     &lt;/ul&gt;      &lt;li&gt;mailNickname uniqueness is important too. While it does not have to be unique by itself as sAMAccountName, it is used by Exchange to build the primary SMTP address. So it is very likely that you get SMTP address collisions if you have repeated mailNickname values. Again, uniqueness story here :)&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3239868" width="1" height="1"&gt;</content><author><name>Juan Antonio Diaz - MSFT</name><uri>http://blogs.technet.com/juanand/ProfileUrlRedirect.ashx</uri></author><category term="ILM" scheme="http://blogs.technet.com/b/juanand/archive/tags/ILM/" /><category term="MIIS" scheme="http://blogs.technet.com/b/juanand/archive/tags/MIIS/" /></entry><entry><title>Dealing with OpenLDAP XMA 1.1: Avoiding duplicate-object errors and bad csentry object type</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/juanand/archive/2009/04/30/dealing-with-openldap-xma-1-1-avoiding-duplicate-object-errors-and-bad-csentry-object-type.aspx" /><id>http://blogs.technet.com/b/juanand/archive/2009/04/30/dealing-with-openldap-xma-1-1-avoiding-duplicate-object-errors-and-bad-csentry-object-type.aspx</id><published>2009-04-30T18:39:12Z</published><updated>2009-04-30T18:39:12Z</updated><content type="html">&lt;p&gt;When you first try to import from an LDAP using this XMA, you may get duplicated objects. This is due to the way the XMA builds the LDAP queries that creates to perform object discovery: it will find the same object several times due to matching several object classes. &lt;/p&gt;  &lt;p&gt;You can fix it by tweaking the &amp;quot;Map Object Types&amp;quot; dialog in your XMA and also adjusting the &lt;a href="http://blogs.technet.com/juanand/archive/2009/04/30/dealing-with-openldap-xma-1-1-undocumented-parameters.aspx" target="_blank"&gt;undocumented&lt;/a&gt; &lt;strong&gt;excludedTypes&lt;/strong&gt; parameter.&lt;/p&gt;  &lt;p&gt;The XMA builds a search filters hashtable with object types (not object classes you have in your LDAP) specified in &amp;quot;Map Object Types&amp;quot; dialog as the objectclass to search for. It excludes there those object types specified in the &lt;strong&gt;excludedTypes&lt;/strong&gt; custom parameter.&lt;/p&gt;  &lt;p&gt;In the default configuration, object types are “organizationalUnit”, “top”, “inetOrgPerson” and “organizationalRole”, and &amp;quot;top&amp;quot; is in ExcludedTypes. &lt;/p&gt;  &lt;p&gt;Therefore, the XMA performs one search per non-excluded object type, per naming context, such as: &amp;quot;(|(objectclass=inetOrgPerson))&amp;quot; &amp;quot;(|(objectclass=organizationalRole))&amp;quot; &amp;quot;(|(objectclass=organizationalUnit))&amp;quot;.&lt;/p&gt;  &lt;p&gt;When defining the &lt;strong&gt;object class to object type mapping&lt;/strong&gt;, you have to specify all possible sequences (or begening part of sequences) as they appear in the import file, and map to the desired object type. &lt;strong&gt;This makes the csentry object type to be mapped properly to the object type you want to&lt;/strong&gt; (so your rules can work based on object types), otherwise you end up seeing users as &amp;quot;top&amp;quot; object types, and such. Also carefully exclude in excludedTypes those object classes that render a single object to be found more than once as per search filters. &lt;/p&gt;  &lt;p&gt;For example, if your users objects can be like three sets of object classes:&lt;/p&gt;  &lt;div style="font-family: courier new; background: white; color: black; font-size: 10pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;attr&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;objectClass&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;top&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;person&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;organizationalPerson&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;CustomPerson&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;mdsCVLink&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;wdmperson&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;mdsMVLink&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;inetOrgPerson&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;mdsSelfCareUser&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;CpPSMPrefs&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;CpEMIPrefs&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;CpUSRUserRecordAbs&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;CpUSRUserRecordAux&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;attr&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;attr&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;objectClass&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;top&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;person&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;organizationalPerson&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;CustomPerson&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;mdsCVLink&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;inetOrgPerson&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;mdsSelfCareUser&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;CpPSMPrefs&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;CpEMIPrefs&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;CpUSRUserRecordAbs&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;CpUSRUserRecordAux&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;attr&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;attr&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;objectClass&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;top&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;person&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;organizationalPerson&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;CustomPerson&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;mdsCVLink&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;wdmperson&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;mdsMVLink&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;CpPSMPrefs&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;CpEMIPrefs&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;CpUSRUserRecordAbs&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;attr&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;You can specify as mapping &amp;quot;top,person,organizationalPerson,CustomPerson&amp;quot; –&amp;gt; “CustomPerson”. This will map all three &amp;quot;supersets&amp;quot; of object classes to CustomPerson, providing that the mapping matches the begining values of objectClass tag. &lt;/p&gt;  &lt;p&gt;However, if an object for some reason comes in the DSML like:&lt;/p&gt;  &lt;p&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;attr&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;objectClass&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;top&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;person&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0px"&gt;&lt;strong&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;CustomPerson&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p style="margin: 0px"&gt;&lt;strong&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;organizationalPerson&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;mdsCVLink&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;wdmperson&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;mdsMVLink&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;CpPSMPrefs&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;CpEMIPrefs&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;CpUSRUserRecordAbs&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;attr&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;     &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0px"&gt;You will need to specify an&lt;strong&gt; additional mapping&lt;/strong&gt; like&amp;#160; &amp;quot;top,person,CustomPerson,organizationalPerson&amp;quot; –&amp;gt; “CustomPerson”, or you will see your customPerson objects to be mapped to an unwanted object type. You can check if this is occurring by performing a “Search Connector Space” and sort by object type.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3233563" width="1" height="1"&gt;</content><author><name>Juan Antonio Diaz - MSFT</name><uri>http://blogs.technet.com/juanand/ProfileUrlRedirect.ashx</uri></author><category term="OpenLDAP XMA" scheme="http://blogs.technet.com/b/juanand/archive/tags/OpenLDAP+XMA/" /></entry><entry><title>Dealing with OpenLDAP XMA 1.1: Undocumented Parameters</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/juanand/archive/2009/04/30/dealing-with-openldap-xma-1-1-undocumented-parameters.aspx" /><id>http://blogs.technet.com/b/juanand/archive/2009/04/30/dealing-with-openldap-xma-1-1-undocumented-parameters.aspx</id><published>2009-04-30T18:15:00Z</published><updated>2009-04-30T18:15:00Z</updated><content type="html">&lt;p&gt;Along with the parameters available in the Configuration Guide, there are a few that are not documented but can be kind of useful:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;excludedTypes&lt;/strong&gt;. Object types separated by comma. Provides a way to filter out certain object types in LDAP searches. This typically helps solving duplicated objects in DSML import file. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;storedChangeNumberOverride. &lt;/strong&gt;You can put a number that matches the lastChangeNumber you are interested in. Makes the XMA try &lt;number&gt;&lt;/number&gt;to use an override for 'lastChangeNumber' when using changelog. This can be used for troubleshooting to roll through changes again. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;deltaAttributeFormat. &lt;/strong&gt;The default format for the deltaAttribute parameter is a string that represents a timestamp in "yyyyMMddHHmmss" format. The deltaAttributeFormat custom parameter allows to override this format when the XMA uses System.DateTime.TryParseExact() to build watermarks. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ocFilter-&amp;lt;object type&amp;gt;&lt;/strong&gt;. Allows to define fine grain filters for the object types you get in your import file. Multiple filters can be defined for a single object type by separating LDAP filters with "~". For example: &lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;If you want only inetOrgPerson objects wich shoeSize attribute is between 35 and 40, and those that have 42, you can define the following custom parameter: &lt;br /&gt;&lt;strong&gt;ocFilter-inetOrgPerson = (&amp;amp;(shoeSize&amp;gt;=35)(shoeSize&amp;lt;=40))~(shoeSize=42) &lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;This parameter will produce two searches indeed:&amp;nbsp; &lt;br /&gt;(&amp;amp;(objectclass=inetOrgPerson)(&amp;amp;(shoeSize&amp;gt;=35)(shoeSize&amp;lt;=40))) and &lt;br /&gt;(&amp;amp;(objectclass=inetOrgPerson)(shoeSize=42)) &lt;br /&gt;&lt;br /&gt;This is the code snippet that builds the searchFilters when processing the ocFilter-* parameters (put into m_SearchFilters[] array): &lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;div style="font-family: courier new; background: white; color: black; font-size: 10pt;"&gt;
&lt;div style="font-family: courier new; background: white; color: black; font-size: 10pt;"&gt;
&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&lt;a href="http://blogs.technet.com/blogfiles/juanand/WindowsLiveWriter/DealingwithOpenL.1UndocumentedParameters_E73D/image_2.png"&gt;&lt;img height="307" width="976" src="http://blogs.technet.com/blogfiles/juanand/WindowsLiveWriter/DealingwithOpenL.1UndocumentedParameters_E73D/image_thumb.png" alt="image" border="0" title="image" style="display: inline; border: 0px;" /&gt;&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;Edit:&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;Recently I have found some quirks in the filtering feature.&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;For some reason, the following query returns invalid filter error to retrieve "accountStatus value is present but not equals XX":&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;(&amp;amp;(!(accountStatus=XX))(!(accountStatus=)))&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;So you have to specify the most simple form :):&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;(&amp;amp;(!(accountStatus=XX))(accountStatus=*))&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3233546" width="1" height="1"&gt;</content><author><name>Juan Antonio Diaz - MSFT</name><uri>http://blogs.technet.com/juanand/ProfileUrlRedirect.ashx</uri></author><category term="OpenLDAP XMA" scheme="http://blogs.technet.com/b/juanand/archive/tags/OpenLDAP+XMA/" /></entry><entry><title>Dealing with OpenLDAP XMA 1.1: Working with Deltas</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/juanand/archive/2009/04/30/dealing-with-openldap-xma-1-1-working-with-deltas.aspx" /><id>http://blogs.technet.com/b/juanand/archive/2009/04/30/dealing-with-openldap-xma-1-1-working-with-deltas.aspx</id><published>2009-04-30T18:01:35Z</published><updated>2009-04-30T18:01:35Z</updated><content type="html">&lt;p&gt;OpenLDAP XMA can run delta imports using a timestamp attribute you define or the changelog.&lt;/p&gt;  &lt;p&gt;The MA uses the attribute specified in “deltaAttribute” custom parameter in order to implement watermarks and detect object changes. You may experience a couple of issues using a delta attribute:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;If the attribute does not exist for all objects you import, you will need to specify a common timestamp attribute, or use separate MAs if your timestamp attribute differs among the objects you want to import.&lt;/li&gt;    &lt;li&gt;If the timestamp attribute is in string format different to &amp;quot;yyyyMMddHHmmss&amp;quot;, you will have to set the undocumented “&lt;strong&gt;deltaAttributeFormat&lt;/strong&gt;” custom parameter so the XMA is able to parse it when using System.DateTime.TryParseExact() to calculate watermarks.&lt;/li&gt;    &lt;li&gt;If the timestamp attribute is in an format that System.DateTime.TryParseExact() cannot parse, you will have to modify the XMA code to convert the attribute into a valid datetime value.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;If you find like me that the LDAP implementation you are connecting to does not use a timestamp attribute across all objects, your other option to use deltas is using &lt;strong&gt;changelog&lt;/strong&gt;. In this case, what you have to do is &lt;strong&gt;leave “deltaAttribute” custom parameter blank&lt;/strong&gt;, so the XMA will use changelog. If the account you are using in the XMA to access the LDAP is not administrative, you may need to adjust the permissions in cn=changelog to allow the XMA to work, adjusting the ACI to allow your MA account to read, compare and search all attributes for objects under cn=changelog.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3233540" width="1" height="1"&gt;</content><author><name>Juan Antonio Diaz - MSFT</name><uri>http://blogs.technet.com/juanand/ProfileUrlRedirect.ashx</uri></author><category term="OpenLDAP XMA" scheme="http://blogs.technet.com/b/juanand/archive/tags/OpenLDAP+XMA/" /></entry><entry><title>Dealing with OpenLDAP XMA 1.1: Inspecting Records in Inport File</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/juanand/archive/2009/04/30/dealing-with-openldap-xma-1-1-inspecting-records-in-inport-file.aspx" /><id>http://blogs.technet.com/b/juanand/archive/2009/04/30/dealing-with-openldap-xma-1-1-inspecting-records-in-inport-file.aspx</id><published>2009-04-30T17:41:28Z</published><updated>2009-04-30T17:41:28Z</updated><content type="html">&lt;p&gt;There is a great tool in &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=D3C7BD7A-E8D5-43CF-AD4D-4F1F0AE00D79" target="_blank"&gt;MIIS 2003 Resource Kit 2.0&lt;/a&gt; called FileViewer.exe. This tool provides a way to display or dump an entry or a range of entries from a file-based MA. This is specially useful when a particular object is generating some import/sync problems and you want to inspect the input file record but it is too big to be managed in your favorite text editor.&lt;/p&gt;  &lt;p&gt;FileViewer.exe uses a File-based MA XML export to in order to parse the import file properly. However, for XMAs such as OpenLDAP XMA, it does not recognizes the XML as a usable MA, so you have to do a little trick:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Create a “File-Based” MA for the file format your XMA generates. In this case, DSML 2.0.&lt;/li&gt;    &lt;li&gt;Input the XMA-generated file as template for your new File MA.&lt;/li&gt;    &lt;li&gt;Expor the File MA and use it as MA definition for FileViewer.exe.&lt;/li&gt; &lt;/ul&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3233527" width="1" height="1"&gt;</content><author><name>Juan Antonio Diaz - MSFT</name><uri>http://blogs.technet.com/juanand/ProfileUrlRedirect.ashx</uri></author><category term="OpenLDAP XMA" scheme="http://blogs.technet.com/b/juanand/archive/tags/OpenLDAP+XMA/" /></entry><entry><title>Dealing with OpenLDAP XMA 1.1: Template Bugs and Quick Fix</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/juanand/archive/2009/04/15/dealing-with-openldap-xma-1-1-template-bugs-and-quick-fix.aspx" /><id>http://blogs.technet.com/b/juanand/archive/2009/04/15/dealing-with-openldap-xma-1-1-template-bugs-and-quick-fix.aspx</id><published>2009-04-15T13:32:49Z</published><updated>2009-04-15T13:32:49Z</updated><content type="html">&lt;p&gt;I was not able to find much guidance out there about the issues I found when attempting to use this great XMA, so I decided to write this post in case others find it useful.&lt;/p&gt;  &lt;p&gt;After installing OpenLDAP XMA (&lt;a title="http://openldap-xma.sourceforge.net" href="http://openldap-xma.sourceforge.net"&gt;http://openldap-xma.sourceforge.net&lt;/a&gt;) MSI package, you will find a new MA available in ILM list of MAs, called “OpenLDAP XMA”. When creating the MA to connect to your LDAP directory, you have to input the connection information: server, port, user and password. After that, you will find the “Configure Additional Parameters” dialog and the first issues with it. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/juanand/WindowsLiveWriter/DealingwithOpenLDAPXMA1.1_A612/image_7.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/juanand/WindowsLiveWriter/DealingwithOpenLDAPXMA1.1_A612/image_thumb_1.png" width="291" height="174" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The XMA template (%ProgramFiles%\Microsoft Identity Integration Server\UIShell\XMLs\PackagedMAs\OLXMAPackage.xml) contains &lt;strong&gt;a few bugs&lt;/strong&gt; that make the MA fail with “stopped-extensible-extension-error” errors:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;SASL&lt;/strong&gt;. The source code does not treat this parameter at all, so having it makes the MA fail to run. This parameter is not mentioned in the Configuration Guide. As this is a parameter built into the XMA template, the “Remove” button is grayed-out (See notes about SASL support at &lt;a title="http://blogs.msdn.com/adamw/archive/2007/06/27/openldap-milestone-1-release-scheduled-for-6-29-07.aspx" href="http://blogs.msdn.com/adamw/archive/2007/06/27/openldap-milestone-1-release-scheduled-for-6-29-07.aspx"&gt;http://blogs.msdn.com/adamw/archive/2007/06/27/openldap-milestone-1-release-scheduled-for-6-29-07.aspx&lt;/a&gt;).&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;namingContext&lt;/strong&gt;. This parameter should be called namingContext&lt;strong&gt;s&lt;/strong&gt;. This parameter is properly documented in the Configuration Guide. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;pagedSearch&lt;/strong&gt;. It says “true” as default value. However, treating this parameter as boolean is commented out in the code, so if you use “true” or anything other than “NONE”, “PAGING” or “TRAWLING”, will default to “NONE”, so pagedSearch=true ends up not using paged searches at all. If the directory requires using paged searches, the MA will fail. This parameter is properly documented in the Configuration Guide. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;So here I have a &lt;a href="http://j1craq.blu.livefilestore.com/y1pzAglPJS5XoainLaj6TMhlPX5ro9zgMCCbWmL60DK3n7jCHEmMjnYAP3i0ee63I9EhdGujh7XqWL5VgPwOsRvBg/OLXMAPackage.xml" target="_blank"&gt;OLXMAPackage.xml replacement&lt;/a&gt; that you can drop in your “%ProgramFiles%\Microsoft Identity Integration Server\UIShell\XMLs\PackagedMAs” directory overwriting the existing one. It just removes SASL parameter, fixes the typo error for namingContexts parameter and sets default pagedSearch to “PAGING”, rather than “true” .&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3226663" width="1" height="1"&gt;</content><author><name>Juan Antonio Diaz - MSFT</name><uri>http://blogs.technet.com/juanand/ProfileUrlRedirect.ashx</uri></author><category term="OpenLDAP XMA" scheme="http://blogs.technet.com/b/juanand/archive/tags/OpenLDAP+XMA/" /></entry><entry><title>Connecting to Critical Path Directory Server with ILM 2007 FP1</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/juanand/archive/2009/04/15/dealing-with-openldap-xma.aspx" /><id>http://blogs.technet.com/b/juanand/archive/2009/04/15/dealing-with-openldap-xma.aspx</id><published>2009-04-15T10:57:28Z</published><updated>2009-04-15T10:57:28Z</updated><content type="html">&lt;p&gt;In my current customer I have to extract identity information from Critical Path directory. I was not able to find much information about this LDAP directory from the vendor’s website (&lt;a title="http://www.criticalpath.net/Services/Training/Directory%20Server.html" href="http://www.criticalpath.net/Services/Training/Directory%20Server.html"&gt;http://www.criticalpath.net/Services/Training/Directory%20Server.html&lt;/a&gt;) neither in WikiPedia (&lt;a title="http://en.wikipedia.org/wiki/Directory_service" href="http://en.wikipedia.org/wiki/Directory_service"&gt;http://en.wikipedia.org/wiki/Directory_service&lt;/a&gt;), so I first gave a try to built-in ILM 2007 FP1 MAs. &lt;/p&gt;  &lt;p&gt;In particular, I was previously able to connect ILM to some Netscape-based LDAP directories such as Fedora Directory Server and OpenLDAP by using the “Sun and Netscape directory servers” Management Agent just by tweaking the iPlanetMASupportedServers registry key (&lt;a title="http://support.microsoft.com/?kbid=842531" href="http://support.microsoft.com/?kbid=842531"&gt;http://support.microsoft.com/?kbid=842531&lt;/a&gt;) with what LDP shows in &lt;strong&gt;VendorVersion&lt;/strong&gt; RootDSE property when connecting to it, such as in this example:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/juanand/WindowsLiveWriter/DealingwithOpenLDAPXMA_8961/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="VendorVersion in LDP" border="0" alt="VendorVersion in LDP" src="http://blogs.technet.com/blogfiles/juanand/WindowsLiveWriter/DealingwithOpenLDAPXMA_8961/image_thumb.png" width="411" height="251" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I tried this, to discover that CP directory is not Netscape based directory, or at least it does not expose the VendorVersion property in the RootDSE that this MA looks for. I also gave a little chance to other built-in LDAP directories MAs such as “IBM Directory Server” or “Novell eDirectory” MA without success, but I had to try ;)&lt;/p&gt;  &lt;p&gt;So before attempting to write an extensible MA or using a file-based MA, I then decided to give a try to OpenLDAP XMA (&lt;a title="http://openldap-xma.sourceforge.net/" href="http://openldap-xma.sourceforge.net/"&gt;http://openldap-xma.sourceforge.net/&lt;/a&gt;). Despite of its name, this MA uses Microsoft .NET Framework 2.0 System.DirectoryServices.Protocols, so it works with other LDAP directories, even with Active Directory or ADAM if you want to.&lt;/p&gt;  &lt;p&gt;After a few dives into this MA code and some testing, I was able to successfully import the identities I needed from Critical Path’s Directory Server. I will post the issues found during this MA usage in a future post.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3226610" width="1" height="1"&gt;</content><author><name>Juan Antonio Diaz - MSFT</name><uri>http://blogs.technet.com/juanand/ProfileUrlRedirect.ashx</uri></author><category term="ILM" scheme="http://blogs.technet.com/b/juanand/archive/tags/ILM/" /><category term="MIIS" scheme="http://blogs.technet.com/b/juanand/archive/tags/MIIS/" /><category term="XMA" scheme="http://blogs.technet.com/b/juanand/archive/tags/XMA/" /></entry></feed>