{"id":2004,"date":"2012-03-18T06:27:54","date_gmt":"2012-03-18T06:27:54","guid":{"rendered":"https:\/\/poiseddevelopers.com\/reality-tech\/?p=2004"},"modified":"2024-05-13T10:45:46","modified_gmt":"2024-05-13T10:45:46","slug":"joining-a-server-to-the-farm","status":"publish","type":"post","link":"https:\/\/poiseddevelopers.com\/reality-tech\/joining-a-server-to-the-farm\/","title":{"rendered":"Joining a Server To The Farm"},"content":{"rendered":"<p>Joining a server to the farm, how hard could that be?\u00a0 Heck, it\u2019s just a command\u2026let\u2019s have a look at how to do it, and what to do if\u00a0things don\u2019t go smoothly.<\/p>\n<p>First, let\u2019s get the passphrase into a secure string.\u00a0 This is the object that is required for all things password-related.<\/p>\n<pre>$plaintextphrase=\"your password\"<\/pre>\n<p>Beware of the need to escape special characters.\u00a0 For example a password with \u201c$\u201d has to be represented as `$<\/p>\n<pre>$securepw\u00a0= convertto-securestring\u00a0-string\u00a0$plaintextphrase\u00a0-asplaintext\u00a0-force\r\nConnect-SPConfigurationDatabase\u00a0-DatabaseServer\u00a0\"your DB server\" -DatabaseName\u00a0\"SharePoint\" -Passphrase $securepw<\/pre>\n<p>If you have difficulty recalling your Passphrase, no worries!\u00a0 Just set a new one:<\/p>\n<pre>Set-SPPassPhrase\u00a0-PassPhrase\u00a0$securepw\u00a0-Confirm<\/pre>\n<p>If you are lucky, the new server will join the farm.\u00a0 Now here\u2019s where the pain can start.\u00a0 I recently encountered an error stating that the farms did not have identical software.\u00a0 After a very exhaustive comparison between servers, I found that the installed product inventory is stored in the Registry on the server.<\/p>\n<p>To make sure that absolutely the same \u201cProducts\u201d are installed (as SharePoint sees it) first, check the registry on the existing and the Server to be added. The SKUs\u00a0in the following registry entry need to match 100%: HKEY_LOCAL_MACHINESOFTWAREMicrosoftShared ToolsWeb Server Extensions14.0WSSInstalledProducts (e.g. You will find a \u2018926E4E17-087B-47D1-8BD7-91A394BC6196\u2019 for Office Web Apps)<\/p>\n<p>Get a list of which Products SharePoint\u00a0is actually aware of being installed. On the Server that is in the Farm, open up a SharePoint\u00a0Powershell, then run<\/p>\n<pre>Get-SPFarm | select Products<\/pre>\n<p>This returns an array of the GUIDs\u00a0of installed production SKUs in SharePoint.\u00a0\u00a0 This will allow you to compare what the candidate server has in its registry to what the farm believes is running.\u00a0 If this does not match the list in the Registry, run the following:<\/p>\n<pre>Set-SPFarmConfig\u00a0-installedproductsrefresh<\/pre>\n<p>This will \u201csynchronize\u201d the registry with the list of products in the farm.\u00a0 Then re-run<\/p>\n<pre>Get-SPFarm | select Products<\/pre>\n<p>Check if all your installed products are now shown, you should be able to join your Server to the Farm.<\/p>\n<p>Within the Farm database, the list of products can be viewed:<\/p>\n<pre>SELECT [Product], [Version], [PatchableUnit], [PatchableUnitName]\r\nFROM [SharePoint_Config].[dbo].[ServerVersionInformation]<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Joining a server to the farm, how hard could that be?\u00a0 Heck, it\u2019s just a command\u2026let\u2019s have a look at how to do it, and what to do if\u00a0things don\u2019t go smoothly. First, let\u2019s get the passphrase into a secure string.\u00a0 This is the object that is required for all things password-related. $plaintextphrase=&#8221;your password&#8221; Beware [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":2007,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[26],"tags":[],"class_list":["post-2004","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-powershell"],"acf":[],"_links":{"self":[{"href":"https:\/\/poiseddevelopers.com\/reality-tech\/wp-json\/wp\/v2\/posts\/2004","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/poiseddevelopers.com\/reality-tech\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/poiseddevelopers.com\/reality-tech\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/poiseddevelopers.com\/reality-tech\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/poiseddevelopers.com\/reality-tech\/wp-json\/wp\/v2\/comments?post=2004"}],"version-history":[{"count":2,"href":"https:\/\/poiseddevelopers.com\/reality-tech\/wp-json\/wp\/v2\/posts\/2004\/revisions"}],"predecessor-version":[{"id":3957,"href":"https:\/\/poiseddevelopers.com\/reality-tech\/wp-json\/wp\/v2\/posts\/2004\/revisions\/3957"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/poiseddevelopers.com\/reality-tech\/wp-json\/wp\/v2\/media\/2007"}],"wp:attachment":[{"href":"https:\/\/poiseddevelopers.com\/reality-tech\/wp-json\/wp\/v2\/media?parent=2004"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/poiseddevelopers.com\/reality-tech\/wp-json\/wp\/v2\/categories?post=2004"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/poiseddevelopers.com\/reality-tech\/wp-json\/wp\/v2\/tags?post=2004"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}