{"id":1504,"date":"2010-05-12T10:31:19","date_gmt":"2010-05-12T08:31:19","guid":{"rendered":"http:\/\/contoso.se\/blog\/?p=1504"},"modified":"2010-05-12T10:31:19","modified_gmt":"2010-05-12T08:31:19","slug":"active-directory-connector-behavior","status":"publish","type":"post","link":"http:\/\/contoso.se\/blog\/?p=1504","title":{"rendered":"Active Directory connector behavior"},"content":{"rendered":"<p>This week my friend <a href=\"http:\/\/www.litware.se\/\">Patrik Sundqvist<\/a> and I delivered a Service Manager event together with Microsoft in Sweden. There were a lot of good questions from the audience and a great interest in the product. One of the questions was if the Active Directory synchronize blank attributes from Active Directory if there is a value in the CMDB. Of course we have tried this in a sandbox J<\/p>\n<p>1. I created a new user account in Active Directory. I did not change any default values so the Office attribute (PhysicalDeliveryOfficeName) was set to &lt; Not Set &gt;<br \/>\n2. I ran the Active Directory connector synchronization<br \/>\n3. I verified that I had a blank Office attribute in the CMDB<br \/>\n4. I updated the attribute in the CMDB<br \/>\n5. I logged in and out with the account on a workstation<br \/>\n6. I ran the Active Directory connector synchronization<br \/>\n7. The Office attribute in the CMDB is back to blank<\/p>\n<p>If my AD user object is updated, in this case some attributes was updated when the user loged into a workstation, the watermark on the user object is updated, then the whole user will be synchronized back to the CMDB.<\/p>\n<p>Remember this! What you see is not always what you think in Service Manager. You might think that looking at a computer in the computer form is in fact looking at a single object in the CMDB. This is seldom the truth since most forms in Service Manager targets TypeProjections (which could be seen as a view displaying data from several objects related to each other). As an example you might take a look at the type projection acting as source to the \u00e2\u20ac\u0153computer form\u00e2\u20ac\u009d in Service Manager. As you can see in the definition below, quite a few different objects support the computer form.<\/p>\n<p>Microsoft.Windows.Computer.ProjectionType :<\/p>\n<blockquote><p>&lt;TypeProjection Accessibility=&#8221;Public&#8221;&gt;<\/p>\n<p>&lt;Component Path=&#8221;$Context\/Path[Relationship=&#8217;ConfigurationManager!Microsoft.SystemCenter.ConfigurationManager.DeployedComputerRunsWindowsComputer&#8217; SeedRole=&#8217;Target&#8217;]$&#8221; Alias=&#8221;PhysicalComputer&#8221; \/&gt;<\/p>\n<p>\u00c2\u00a0&lt;Component Path=&#8221;$Context\/Path[Relationship=&#8217;Windows!Microsoft.Windows.ComputerHostsOperatingSystem&#8217;]$&#8221; Alias=&#8221;OperatingSystem&#8221; \/&gt;<\/p>\n<p>\u00c2\u00a0&lt;Component Path=&#8221;$Context\/Path[Relationship=&#8217;Windows!Microsoft.Windows.ComputerHostsLogicalDevice&#8217; TypeConstraint=&#8217;Peripherals!Microsoft.Windows.Peripheral.NetworkAdapter&#8217;]$&#8221; Alias=&#8221;NetworkAdapter&#8221; \/&gt;<\/p>\n<p>&lt;Component Path=&#8221;$Context\/Path[Relationship=&#8217;Windows!Microsoft.Windows.ComputerHostsLogicalDevice&#8217; TypeConstraint=&#8217;Peripherals!Microsoft.Windows.Peripheral.Processor&#8217;]$&#8221; Alias=&#8221;Processor&#8221; \/&gt;<\/p>\n<p>&lt;Component Path=&#8221;$Context\/Path[Relationship=&#8217;Windows!Microsoft.Windows.ComputerHostsLogicalDevice&#8217; TypeConstraint=&#8217;Peripherals!Microsoft.Windows.Peripheral.PhysicalDisk&#8217;]$&#8221; Alias=&#8221;PhysicalDisk&#8221; \/&gt;<\/p>\n<p>&lt;Component Path=&#8221;$Context\/Path[Relationship=&#8217;Windows!Microsoft.Windows.ComputerHostsLogicalDevice&#8217; TypeConstraint=&#8217;Peripherals!Microsoft.Windows.Peripheral.LogicalDisk&#8217;]$&#8221; Alias=&#8221;LogicalDisk&#8221; \/&gt;<\/p>\n<p>&lt;Component Path=&#8221;$Context\/Path[Relationship=&#8217;System!System.ComputerPrimaryUser&#8217;]$&#8221; Alias=&#8221;PrimaryUser&#8221; \/&gt;<\/p>\n<p>&lt;Component Path=&#8221;$Context\/Path[Relationship=&#8217;System!System.ConfigItemOwnedByUser&#8217;]$&#8221; Alias=&#8221;Custodian&#8221; \/&gt;<\/p>\n<p>&lt;Component Path=&#8221;$Context\/Path[Relationship=&#8217;WorkItem!System.WorkItemRelatesToConfigItem&#8217; SeedRole=&#8217;Target&#8217;]$&#8221; Alias=&#8221;ImpactedWorkItem&#8221; \/&gt;<\/p>\n<p>&lt;Component Path=&#8221;$Context\/Path[Relationship=&#8217;WorkItem!System.WorkItemAboutConfigItem&#8217; SeedRole=&#8217;Target&#8217;]$&#8221; Alias=&#8221;RelatedWorkItem&#8221; \/&gt;<\/p>\n<p>&lt;Component Path=&#8221;$Context\/Path[Relationship=&#8217;SupportingItem!System.ConfigItemHasFileAttachment&#8217;]$&#8221; Alias=&#8221;FileAttachment&#8221; \/&gt;<\/p>\n<p>&lt;Component Path=&#8221;$Context\/Path[Relationship=&#8217;System!System.ConfigItemRelatesToConfigItem&#8217;]$&#8221; Alias=&#8221;RelatedConfigItem&#8221; \/&gt;<\/p>\n<p>&lt;Component Path=&#8221;$Context\/Path[Relationship=&#8217;System!System.ConfigItemRelatesToConfigItem&#8217; SeedRole=&#8217;Target&#8217;]$&#8221; Alias=&#8221;RelatedConfigItemSource&#8221; \/&gt;<\/p>\n<p>&lt;Component Path=&#8221;$Context\/Path[Relationship=&#8217;CoreKnowledge!System.EntityLinksToKnowledgeDocument&#8217;]$&#8221; Alias=&#8221;RelatedKnowledgeArticles&#8221; \/&gt;<\/p>\n<p>\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 &lt;\/TypeProjection&gt;<\/p><\/blockquote>\n<p>A short summary of this is \u00e2\u20ac\u009dlast-write wins\u00e2\u20ac\u009d and that you should be very aware that a form can be a mix of the result of a number of connectors and synchronized data.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This week my friend Patrik Sundqvist and I delivered a Service Manager event together with Microsoft in Sweden. There were a lot of good questions from the audience and a great interest in the product. One of the questions was if the Active Directory synchronize blank attributes from Active Directory if there is a value &hellip; <a href=\"http:\/\/contoso.se\/blog\/?p=1504\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0},"categories":[25],"tags":[],"_links":{"self":[{"href":"http:\/\/contoso.se\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1504"}],"collection":[{"href":"http:\/\/contoso.se\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/contoso.se\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/contoso.se\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/contoso.se\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1504"}],"version-history":[{"count":8,"href":"http:\/\/contoso.se\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1504\/revisions"}],"predecessor-version":[{"id":1512,"href":"http:\/\/contoso.se\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1504\/revisions\/1512"}],"wp:attachment":[{"href":"http:\/\/contoso.se\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1504"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/contoso.se\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1504"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/contoso.se\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1504"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}