{"id":1998,"date":"2014-06-10T22:10:32","date_gmt":"2014-06-10T20:10:32","guid":{"rendered":"http:\/\/michlstechblog.info\/blog\/?p=1998"},"modified":"2014-06-11T08:26:07","modified_gmt":"2014-06-11T06:26:07","slug":"windows-cannot-bring-up-cluster-networkname-resources","status":"publish","type":"post","link":"https:\/\/michlstechblog.info\/blog\/windows-cannot-bring-up-cluster-networkname-resources\/","title":{"rendered":"Windows: Cannot bring up Cluster Networkname Resources"},"content":{"rendered":"<div class=\"twoclick_social_bookmarks_post_1998 social_share_privacy clearfix 1.6.4 locale-en_US sprite-en_US\"><\/div><div class=\"twoclick-js\"><script type=\"text\/javascript\">\/* <![CDATA[ *\/\njQuery(document).ready(function($){if($('.twoclick_social_bookmarks_post_1998')){$('.twoclick_social_bookmarks_post_1998').socialSharePrivacy({\"services\":{\"flattr\":{\"uid\":\"Michl\",\"status\":\"on\",\"the_title\":\"Windows%3A%20Cannot%20bring%20up%20Cluster%20Networkname%20Resources\",\"the_excerpt\":\"Hi%2C%0D%0A%0D%0Aa%20customer%20has%2C%20accidentally%2C%20deleted%20multiple%20Active%20Directory%20Computer%20objects%20which%20correspond%20to%20Network%20Name%20Resources%20of%20a%20Windows%20Cluster%20%3A-%28%20.%0D%0A%0D%0AThe%20cluster%20network%20name%20itself%20was%20also%20affected%20and%20no%20backup%20of%20the%20AD%20Database%20to%20restore%20the%20objects%20was%20available.%0D%0A%0D%0AAll%20solutions%20that%20I%27ve%20found%20to%20get%20the%20cluster%20working%20again%20are%20based%20on%20the%20restore%20of%20the%20AD%20objects.%0D%0A%0D%0AB%20...\",\"txt_info\":\"2 clicks for more data protection:\\r\\n\\r\\nOnly when you click here, the button will be come active and you can send your recommendation to Flattr. When activating, data are transmitted to third parties. \",\"perma_option\":\"off\"}},\"txt_help\":\"When you activate these fields by clicking, information to Flattr may be transferred abroad, and probably may also stored there.\",\"settings_perma\":\"Enable permanently and accept data transmission. \",\"info_link\":\"http:\\\/\\\/www.heise.de\\\/ct\\\/artikel\\\/2-Klicks-fuer-mehr-Datenschutz-1333879.html\",\"uri\":\"https:\\\/\\\/michlstechblog.info\\\/blog\\\/windows-cannot-bring-up-cluster-networkname-resources\\\/\",\"post_id\":1998,\"post_title_referrer_track\":\"Windows%3A+Cannot+bring+up+Cluster+Networkname+Resources\",\"display_infobox\":\"on\"});}});\n\/* ]]> *\/<\/script><\/div><p>Hi,<\/p>\n<p>a customer has, accidentally, deleted multiple Active Directory Computer objects which correspond to Network Name Resources of a Windows Cluster \ud83d\ude41 .<\/p>\n<p>The cluster network name itself was also affected and no backup of the AD Database to restore the objects was available.<\/p>\n<p>All solutions that I&#8217;ve found to get the cluster working again are based on the restore of the AD objects.<\/p>\n<p>But there is also another way respective hack \ud83d\ude42 . This works for me on a Windows 2008 R2 Cluster.<br \/>\nTypical error are:<\/p>\n<ul>\n<li>Event ID 1207 is logged to the Eventlog: &#8220;Unable to get Computer Object using GUID&#8221; &#8220;There is no such object on the server.&#8221;<\/li>\n<li>Or in the C:\\Windows\\Cluster\\Reports\\cluster.log file (exported with <code>cluster.exe log g<\/code>)<br \/>\nNetwork Name &lt;Clustername&gt;: Unable to Logon. winError 1326<\/li>\n<\/ul>\n<p><!--more--><\/p>\n<p>It is not sufficient to create new AD Computerobjects, because the <a title=\"Technet Blog\" href=\" http:\/\/blogs.technet.com\/b\/csstwplatform\/archive\/2010\/10\/15\/cluster-network-name-resource-cluster-name-cannot-be-brought-online-unable-to-get-computer-object-using-guid.aspx\" target=\"_blank\">ObjectGUID<\/a> of the Computerobject is different to the GUID stored in the recource properties of Networkname resource in the clusters database.<\/p>\n<p>All further steps in Powershell require that the following code with functions is already loaded. Adjust the LDAP Search variable and\u00a0 copy and paste it into a powershell window which is started with administrator permissions on a cluster node.<\/p>\n<p><span style=\"text-decoration: underline;\"><strong>Legend<\/strong><\/span><\/p>\n<p>Domain: subdom.domain.local<\/p>\n<p>Cluster Node 1: node1.subdom.domain.local<\/p>\n<p>Cluster Node 2: node2.subdom.domain.local<\/p>\n<p>Cluster Networkname: cno.subdom.domain.local<\/p>\n<pre class=\"brush: powershell; title: ; notranslate\" title=\"\">\r\n$sLDAPRoot=&quot;LDAP:\/\/DC=subdom,DC=domain,DC=local&quot;\r\nfunction fGetADComputerObjectFromName(&#x5B;System.String]$sComputerName,&#x5B;System.String]$sLDAPSearchRoot){\r\n\t$oADRoot = New-Object System.DirectoryServices.DirectoryEntry($sLDAPSearchRoot)\r\n\t$sSearchStr =&quot;(&amp;(objectCategory=computer)(objectClass=computer)(samaccountname=&quot;+$sComputerName+&quot;$))&quot;\r\n\twrite-host &quot;SEARCH&quot; $sSearchStr\r\n\t$oSearch=New-Object directoryservices.DirectorySearcher($oADRoot,$sSearchStr)\r\n\t$oFindResult=$oSearch.FindAll()\r\n\tif($oFindResult.Count -eq 1){\r\n\t\twrite-host &quot;OK, Computer Object found in AD&quot;\r\n\t\treturn($oFindResult)\r\n\t}\r\n\telse{\r\n\t\treturn($false);\r\n\t\twrite-warning &quot;No computerobject found in AD.&quot;\r\n\t}\r\n}\r\n# Convert GUID as stored in AD to\r\n# GUID Stored in Cluster Registry\r\n# as described here http:\/\/blogs.technet.com\/b\/csstwplatform\/archive\/2010\/10\/15\/cluster-network-name-resource-cluster-name-cannot-be-brought-online-unable-to-get-computer-object-using-guid.aspx\r\nfunction fConvertGuidADToGuidClusterRegistry(&#x5B;byte&#x5B;]]$aGUIDAsByteArray)\r\n{\r\n\tif($aGUIDAsByteArray.Count -ne 16){write-warning &quot;Wrong AD ObjectGUID format.&quot;}\r\n\t&#x5B;byte&#x5B;]]$aBytesConverted=new-object byte&#x5B;] 16\r\n\tfor($iLoop=0;$iLoop -le 3;$iLoop++){\r\n\t\t$aBytesConverted&#x5B;3-$iLoop]=$aGUIDAsByteArray&#x5B;$iLoop]\r\n\t}\r\n\tfor($iLoop=0;$iLoop -le 1;$iLoop++){\r\n\t\t$aBytesConverted&#x5B;5-$iLoop]=$aGUIDAsByteArray&#x5B;$iLoop+4]\r\n\t}\r\n\tfor($iLoop=0;$iLoop -le 1;$iLoop++){\r\n\t\t$aBytesConverted&#x5B;7-$iLoop]=$aGUIDAsByteArray&#x5B;$iLoop+6]\r\n\t}\r\n\tfor($iLoop=8;$iLoop -le 15;$iLoop++){\r\n\t\t$aBytesConverted&#x5B;$iLoop]=$aGUIDAsByteArray&#x5B;$iLoop]\r\n\t}\r\n\treturn New-Object System.Guid @(,$aBytesConverted)\r\n}\r\nfunction fCheckNetworkNameGUID(&#x5B;string]$sNetworkName)\r\n{\r\n\t# Get AD Object\r\n\t$oComputer=fGetADComputerObjectFromName $sNetworkName $sLDAPRoot\r\n\tif($oComputer){\r\n\t\t# GUID from AD use ADSIEdit and the detail view of the objectguid Property\r\n\t\t$oGUIDRegistryShouldBe=fConvertGuidADToGuidClusterRegistry $oComputer.Properties&#x5B;&quot;objectguid&quot;].item(0)\r\n\t\t# Get GUID from Registry  HKLM:\\Cluster\\Resources\\ResourceID\\parameters\\ObjectGUID\r\n\t\t$oNetworkName=Get-ChildItem  HKLM:\\Cluster\\Resources|%{New-Object -Type PSObject @{&quot;PSPath&quot;=$_.Name;&quot;RESOURCEID&quot;=$_.PSChildName;&quot;NAME&quot;=$_.GetValue(&quot;Name&quot;);&quot;GUID&quot;=$_.OpenSubKey(&quot;Parameters&quot;).GetValue(&quot;ObjectGUID&quot;)}}|where-Object{$_.Name -eq $sNetworkName}\r\n\t\tif($oGUIDRegistryShouldBe.ToString(&quot;N&quot;) -eq $oNetworkName&#x5B;&quot;GUID&quot;])\r\n\t\t{\r\n\t\t\twrite-host &quot;GUID between AD and Cluster Registry are in sync.&quot;\r\n\t\t\treturn $true\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\twrite-warning &quot;GUID mismatch between Cluster Registry and AD&quot;\r\n\t\t\twrite-host -foregroundcolor green &quot;Cluster Resource         : &quot; $oNetworkName&#x5B;&quot;RESOURCEID&quot;]\r\n\t\t\twrite-host -foregroundcolor green &quot;GUID expected in registry: &quot; $oGUIDRegistryShouldBe.ToString(&quot;N&quot;)\r\n\t\t\twrite-host -foregroundcolor red &quot;GUID found in registry   : &quot; $oNetworkName&#x5B;&quot;GUID&quot;]\r\n\t\t\treturn $false\r\n\t\t}\r\n\t}\r\n}\r\n<\/pre>\n<p>Recreate the computer object in AD and check the GUID with the following Powershell Script. The parameter to the fCheckNetworkNameGUID function is the NetworkName of the resource. Of course the check fails.<\/p>\n<pre class=\"brush: powershell; title: ; notranslate\" title=\"\">\r\nPS C:\\ fCheckNetworkNameGUID &quot;con&quot;\r\nSEARCH (&amp;(objectCategory=computer)(objectClass=computer)(samaccountname=con$))\r\nOK, Computer Object found in AD\r\nWARNING: GUID mismatch between Cluster Registry and AD\r\nCluster Resource\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 :\u00a0 26d49be5-7428-4aca-9321-b0e2ad77f47d\r\nGUID expected in registry:  da52a193e646a142a3fe71dc62110c36\r\nGUID found in registry   :  c6784f21779746caae76b07a61690d0f\r\nFalse\r\n<\/pre>\n<p>This has to be corrected. Save the expected GUID and the Cluster Resource ID to a file. Both was needed later.<\/p>\n<p>Editing the clusters registry under HKLM:\\Cluster do not work, the cluster did not recognize any changes there. The changes must be done &#8220;offline&#8221;.<\/p>\n<p>Do the following steps:<\/p>\n<ul>\n<li>Before you begin Logon to one cluster node,\u00a0 i.e. node1.subdom.domain.local, and shutdown all other nodes in the cluster<\/li>\n<li>One the remaining node, set the Startuptype for the cluster service to disabled<br \/>\n<code>sc config ClusSvc start= disabled<br \/>\n[SC] ChangeServiceConfig SUCCESS<\/code><\/li>\n<li>Reboot the node, Login again<\/li>\n<li>Start an cmd with administrator rights. Check if the cluster service is not running<br \/>\n<code><code><br \/>\nC:\\Windows\\system32&gt;sc query ClusSvc<\/code><\/code><br \/>\n<code>SERVICE_NAME: clussvc<br \/>\nTYPE\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : 20\u00a0 WIN32_SHARE_PROCESS<br \/>\nSTATE\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : 1\u00a0 STOPPED<br \/>\nWIN32_EXIT_CODE\u00a0\u00a0\u00a0 : 1077\u00a0 (0x435)<br \/>\nSERVICE_EXIT_CODE\u00a0 : 0\u00a0 (0x0)<br \/>\nCHECKPOINT\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : 0x0<br \/>\nWAIT_HINT\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : 0x0<\/code><\/li>\n<li>Backup the clusters config<br \/>\n<code>robocopy \/S C:\\Windows\\Cluster C:\\Windows\\Cluster.save<\/code><\/li>\n<li>Load the clusters Registry Hive C:\\Windows\\Cluster\\CLUSDB<br \/>\nEither load it with regedit.exe, select HKLM, menu File,\u00a0 load hive and browse to C:\\Windows\\Cluster\\CLUSDB, Name is clus<br \/>\nor use <code>reg LOAD HKLM\\CLUS C:\\Windows\\Cluster\\CLUSDB<\/code><\/li>\n<li>The Clusters registry hive is now &#8220;mounted&#8221; at HKLM\\CLUS<\/li>\n<li>Locate the previously noticed NetworkName resource at HKLM\\CLUS\\Resources by its Resource ID with regedit, in this example<br \/>\nHKLM\\CLUS\\Resources\\26d49be5-7428-4aca-9321-b0e2ad77f47d<\/li>\n<li>Change to subkey <strong>&#8220;Parameters&#8221;<\/strong><\/li>\n<li>And set the<strong> &#8220;ObjectGUID&#8221;<\/strong> Value to the already noticed <strong>&#8220;expected GUID&#8221;,<\/strong> in this example<br \/>\n<strong>&#8220;ObjectGUID&#8221;<\/strong>=da52a193e646a142a3fe71dc62110c36<\/li>\n<li>Unload the registry hive<br \/>\n<code>reg.exe UNLOAD HKLM\\CLUS<\/code><\/li>\n<li>Open MMC SnapIn Active Directory Users an Computers and look for the already created Computer Object.<\/li>\n<li>Set Fullcontrol permissions to all Computer objects with failed Networkname Resources for Clusternetworkname (cno.subdom.domain.local) Computer Object and for each nodes (node1.subdom.domain.local, node2.subdom.domain.local) in the cluster.<\/li>\n<li>Reset each the Active Directory Computer Objects for each failed Networkname Resource<\/li>\n<li>Now, set the cluster service to startup type auto<br \/>\n<code>sc config ClusSvc start= auto<br \/>\n[SC] ChangeServiceConfig=SUCCESS<\/code><\/li>\n<li>And reboot the node<\/li>\n<\/ul>\n<p>If the node is up. Rerun the powershell fCheckNetworkNameGUID function.<\/p>\n<pre class=\"brush: powershell; title: ; notranslate\" title=\"\">\r\nPS C:\\ fCheckNetworkNameGUID &quot;con&quot;\r\nSEARCH (&amp;(objectCategory=computer)(objectClass=computer)(samaccountname=con$))\r\nOK, Computer Object found in AD\r\nGUID between AD and Cluster Registry are in sync.\r\nTrue\r\n\r\n<\/pre>\n<p>If the failed Networkname Resource is the Clusternetworkname itself, select the Cluster in the Cluster MMC Plugin, and choose the &#8220;Repair Active Computer Object&#8221; in the &#8220;More Actions&#8221; menu.<\/p>\n<p>For all other Networkname Resource there is no repair option, simply bring the resource online.<\/p>\n<p>Start all other cluster nodes and try to move the Services or Application to them.<\/p>\n<p>Note: This is a deep intervention in the Clusters Database, but the last chance for me to get the cluster up.<\/p>\n<p>Michael<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hi, a customer has, accidentally, deleted multiple Active Directory Computer objects which correspond to Network Name Resources of a Windows Cluster \ud83d\ude41 . The cluster network name itself was also affected and no backup of the AD Database to restore the objects was available. All solutions that I&#8217;ve found to get the cluster working again &hellip; <a href=\"https:\/\/michlstechblog.info\/blog\/windows-cannot-bring-up-cluster-networkname-resources\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Windows: Cannot bring up Cluster Networkname Resources<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[491,493,492,490,494,20,495],"class_list":["post-1998","post","type-post","status-publish","format-standard","hentry","category-windowsknowhow","tag-cluster","tag-deleted-computer-object","tag-eventid-1207","tag-microsoft","tag-networkname-resource","tag-windows-2","tag-winerror-1326"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/michlstechblog.info\/blog\/wp-json\/wp\/v2\/posts\/1998","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/michlstechblog.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/michlstechblog.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/michlstechblog.info\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/michlstechblog.info\/blog\/wp-json\/wp\/v2\/comments?post=1998"}],"version-history":[{"count":36,"href":"https:\/\/michlstechblog.info\/blog\/wp-json\/wp\/v2\/posts\/1998\/revisions"}],"predecessor-version":[{"id":6751,"href":"https:\/\/michlstechblog.info\/blog\/wp-json\/wp\/v2\/posts\/1998\/revisions\/6751"}],"wp:attachment":[{"href":"https:\/\/michlstechblog.info\/blog\/wp-json\/wp\/v2\/media?parent=1998"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/michlstechblog.info\/blog\/wp-json\/wp\/v2\/categories?post=1998"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/michlstechblog.info\/blog\/wp-json\/wp\/v2\/tags?post=1998"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}