From b145e4c063cd2ad2022ee08a862fa9c99e3139e3 Mon Sep 17 00:00:00 2001 From: Apress Date: Wed, 19 Oct 2016 22:07:48 +0100 Subject: [PATCH] First commit --- 9781484221693.jpg | Bin 0 -> 13807 bytes LICENSE.txt | 27 ++++ README.md | 15 ++ contributing.md | 14 ++ scripts/2016-CentralAdmin.ps1 | 39 +++++ scripts/2016Install.ps1 | 191 +++++++++++++++++++++++++ scripts/DisableLoopBackCheck.ps1 | 1 + scripts/JoinFarm-Distributed-Cache.ps1 | 7 + scripts/JoinFarm-Search.ps1 | 7 + scripts/JoinFarm-WFE.ps1 | 7 + scripts/hnsc.ps1 | 93 ++++++++++++ 11 files changed, 401 insertions(+) create mode 100644 9781484221693.jpg create mode 100644 LICENSE.txt create mode 100644 README.md create mode 100644 contributing.md create mode 100644 scripts/2016-CentralAdmin.ps1 create mode 100644 scripts/2016Install.ps1 create mode 100644 scripts/DisableLoopBackCheck.ps1 create mode 100644 scripts/JoinFarm-Distributed-Cache.ps1 create mode 100644 scripts/JoinFarm-Search.ps1 create mode 100644 scripts/JoinFarm-WFE.ps1 create mode 100644 scripts/hnsc.ps1 diff --git a/9781484221693.jpg b/9781484221693.jpg new file mode 100644 index 0000000000000000000000000000000000000000..824592b96a20bd3c9221bd6e6313b5dc50fc7f1f GIT binary patch literal 13807 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 r8)h3-vk~VI$h?wB+z}rwPHB# zD#^W?qS|ddw~hSB?nd_vc$u0WA^$?{(Gy{b$SZ46Y-@&N8`4NWP27u$U%n&_PuTW5 zz|}zIOM-&U@6A<9&wys*+qajbE8TC0p^}_gm9PC`S?0`cxSs)MqejX%6wNn0nu+VX zC1UdjSBg&;_F{vLaj$n0o&l-dFGp|hgelyvlm*UdA~W|_|{HTd8An+fxnU+E4x_(7VR z4)=s&UF7MKcsD)-#;LdLw#oTZ-27r|6Y9QCCQUzAB_iAbu3Rb&Usj^wM znGcCxxNTZcq~hq~#_jAp#nS;7unj#AWm+ASy!8kXO1YC*+fa*PQ58GeaultLe}Ecb zxN1%wR&HG9VLn}yb&t&eEx(9fq?A8h&H*1Zi9Tr*fF6SvuKIxx-)8`|)jhuCi4CtQ zbeC#7$p9lsv%6l;WA0_p0e$bDf+DR0FYetQkV$Crd1$g<}+j%EKAL3r7up_?kv*R;=5M8OA4dr6@0nF}m0( z*2_I&%WS4+KuXLFxw-oALYaimN;i8W;k{wYcR}Q*-#LM}Gd#fE$EA z%4Z&Dz*lqrTaYKjT$qZgOyko5jxnd-!ZY9ka{4|^s&ZS7JXQo}_K{hT$;WbZV9&tXoXnLucyhOTRx)8*=~3pz`&$ zE&>ZZV~@qeccg(AZ&>K}HpG71p7~18;L5yVKcnxIkIiPOAeV~^hjdrOJpcDNW}*+(|_`{_?nSRy$b{Zxl+&JlOp!yCb($I@&Uzs10&=A?nd`dR%9jD<;zw zMKRuPdOo1y#z8Jy6+Rs%mhJbBA)57F#C8T|lB$_QqAvzkZL~ehq-y+6N3XIIVb!84 z=f}4GrvpTn_lg+Dc$NsK`dRDiIG)1V#mW(|?%41xhv_s0WSm4%CnU;n?#2_a>J1y5 z-8@sgF@fyUu2*3QAX9^5LiFoTPyU_?#dRRE@vXjVCd5IYsZdgY*%OsINF&z!p7b#M zt;&l_|4euQ4v()FU+D=8MqWk51!s_#J`!opv7S!}(gxqD8scplG*-4kwue0hNAvd; z!Ke7i?;>JxWT=76!X=jkw~CYg+pZcp>fVtrulNRRGE#Cod}W1y98{%x|9@7zr5Qnr zATMDse`khBr(BKgqL&)F74}E&;u-MKfIgciJ(36Y=v`{SUl9*y+;7Stw|@ + +#Creates the Default Service Application Pool# + +New-SPServiceApplicationPool -Name “Default SharePoint Service App Pool” -Account “Tailspintoys\svc_svcacct” + +## Replace values between < > with correct values and remove < ># + +$DatabaseServerName = “SPAlias“ + +$AppPoolName = “Default SharePoint Service App Pool” + +$AppPoolUserName = “Tailspintoys\svc_svcacct“ + +$SAAppPool = Get-SPServiceApplicationPool -Identity $AppPoolName -EA 0 + +if($SAAppPool -eq $null) + +{ + +$AppPoolAccount = Get-SPManagedAccount -Identity $AppPoolUserName -EA 0 + +if($AppPoolAccount -eq $null) + +{ + +$AppPoolCred = Get-Credential $AppPoolUserName + +$AppPoolAccount = New-SPManagedAccount -Credential $AppPoolCred -EA 0 + +} + +$AppPoolAccount = Get-SPManagedAccount -Identity $AppPoolUserName -EA 0 + +if($AppPoolAccount -eq $null) + +{ + +Write-Host “Cannot create or find the managed account $appPoolUserName, please ensure the account exists.” + +Exit -1 + +} + +New-SPServiceApplicationPool -Name $SAAppPoolName -Account $AppPoolAccount -EA 0 > $null + +} + +##Configure Farm Service Applications + +## Create Usage and Health Data Collection Service and State Service Applications, replace variables with desired values for database names, etc. ## + +## Begin Variables for usage and health data collection and state service, make sure the E: location exists first ## +$usageSAName = “Usage and Health Data Collection Service” +$usageServiceDBName = “PRD_Usage_HealthDataDB” +$usageLogLocationOnDisk = “E:\logs\ULS\” +$stateSAName = “State Service” +$stateServiceDatabaseName = “PRD_StateServiceDataDB” +## End Variables ## + +Set-SPUsageService -LoggingEnabled 1 -UsageLogLocation $usageLogLocationOnDisk -UsageLogMaxSpaceGB 2 + +$serviceInstance = Get-SPUsageService + +New-SPUsageApplication -Name $usageSAName -DatabaseServer $DatabaseServerName -DatabaseName $usageServiceDBName -UsageService $serviceInstance > $null + +$stateServiceDatabase = New-SPStateServiceDatabase -Name $stateServiceDatabaseName + +$stateSA = New-SPStateServiceApplication -Name $stateSAName -Database $stateServiceDatabase + +New-SPStateServiceApplicationProxy -ServiceApplication $stateSA -Name “$stateSAName Proxy” -DefaultProxyGroup + +## Create Managed Metadata Service (If Upgrading Use Existing Database Name of database that was attached) ## + +$metadataSAName = “Managed Metadata Service” +$metadataDBName = “PRD_ManagedMetadataDB” + +$mmsApp = New-SPMetadataServiceApplication -Name $metadataSAName –ApplicationPool $AppPoolName -DatabaseServer $DatabaseServerName -DatabaseName $metadataDBName > $null + +New-SPMetadataServiceApplicationProxy -Name “$metadataSAName Proxy” -DefaultProxyGroup -ServiceApplication $metadataSAName > $null + +Get-SPServiceInstance | where-object {$_.TypeName -eq “Managed Metadata Web Service”} | Start-SPServiceInstance > $null + + + + + + +## Word ## + +$wordAutomationServiceName = “Word Automation Service Application” +$wordAutomationDatabaseName = “PRD_WordAutomationDataDB“ + +Get-SPServiceApplicationPool –Identity $AppPoolName | New-SPWordConversionServiceApplication -Name $wordAutomationServiceName -DatabaseName $wordAutomationDatabaseName + +## BDC (If Upgrading Use Existing Database Name) ## + +$BDCServiceName = “Business Data Connection Service Application” +$BDCDatabaseName = “PRD_BusinessDataConnectionDataDB“ + +New-SPBusinessDataCatalogServiceApplication –ApplicationPool “Default SharePoint Service App Pool” –DatabaseName $BDCDatabaseName –DatabaseServer $DatabaseServerName –Name $BDCServiceName + +### New-SPBusinessDataCatalogServiceApplicationProxy -Name “Business Data Connection Service Application Proxy” -ServiceApplication “Business Data Connection Service Application”## + +## Secure Store (If Upgrading Use Existing Database Name) ## + +#See page 162 - - previously did not have variable instantiation of the service app, and was trying to call the app by name on the proxy line versus the variable### + +$SecureStoreServiceAppName = “Secure Store Service Application” +$SecureStoreDBName = “PRD_SecureStoreServiceDB” + +$SecureStoreServiceApp = New-SPSecureStoreServiceApplication –ApplicationPool $AppPoolName –AuditingEnabled:$false –DatabaseServer $DatabaseServerName –DatabaseName $SecureStoreDBName –Name $SecureStoreServiceAppName + +New-SPSecureStoreServiceApplicationProxy –Name “Secure Store Service Application Proxy” –ServiceApplication $SecureStoreServiceApp -DefaultProxyGroup + +## Performance Point (If Upgrading Use Existing Database Name) ## + +$PerformancePointAppProxyName = “Performance Point Service Application Proxy” +$PerformancePointAppName = “Performance Point Service Application” +$PerformancePointDatabase = “PRD_PerformancePointDataDB” + + +New-SPPerformancePointServiceApplication -Name $PerformancePointAppName -ApplicationPool $AppPoolName -DatabaseName $PerformancePointDatabase + +New-SPPerformancePointServiceApplicationProxy -Name $PerformancePointAppProxyName -ServiceApplication $PerformancePointAppName -Default + + +## Create Subscription Settings and App Management Services ## See minute 40 point int video dated 8/4/2014#### + +$SubSettingssName = “Subscription Settings Service” + +$SubSettingsDatabaseName = “PRD_SubscriptionSettingsDB” + +$AppManagementName = “App Management Service” + +$AppManagementDatabaseName = “PRD_AppManagementDB” + +$AppPoolName = “Default SharePoint Service App Pool” + +$DatabaseServerName = “SPAlias“ + +Write-Host “Creating Subscription Settings Service and Proxy…” + +$SubSvc = New-SPSubscriptionSettingsServiceApplication –ApplicationPool $AppPoolName –Name $SubSettingssName –DatabaseName $SubSettingsDatabaseName + +$SubSvcProxy = New-SPSubscriptionSettingsServiceApplicationProxy –ServiceApplication $SubSvc + +Get-SPServiceInstance | where-object {$_.TypeName -eq $SubSettingssName} | Start-SPServiceInstance > $null + +Write-Host “Creating App Management Service and Proxy…” + +$AppManagement = New-SPAppManagementServiceApplication -Name $AppManagementName -DatabaseServer $DatabaseServerName -DatabaseName $AppManagementDatabaseName –ApplicationPool $AppPoolName + +$AppManagementProxy = New-SPAppManagementServiceApplicationProxy -ServiceApplication $AppManagement -Name “$AppManagementName Proxy” + +Get-SPServiceInstance | where-object {$_.TypeName -eq $AppManagementName} | Start-SPServiceInstance > $null + +Set-SPAppDomain apps.Tailspintoys.com + +Set-SPAppSiteSubscriptionName -Name “apps” -Confirm:$false + +## Create Machine Translation Service ## + +$AppPool = “Default SharePoint Service App Pool” + +$MTSInst = “Machine Translation Service” + +$MTSName = “Translation Service” + +$MTSDB = “PRD_MachineTranslationDB” + +$AppPoolName = Get-SPServiceApplicationPool $AppPool + +Get-SPServiceInstance | ? {$_.GetType().Name -eq $MTSInst} | Start-SPServiceInstance + +$MTS = New-SPTranslationServiceApplication -Name $MTSName -ApplicationPool $AppPoolName -DatabaseName $MTSDB + +$MTSProxy = New-SPTranslationServiceApplicationProxy –Name “$MTSName Proxy” –ServiceApplication $MTS –DefaultProxyGroup + + +Write-Host "Time to configure User Profile Service, Visio, Excel,Performance Point. . ." -ForegroundColor White +Write-Host "##########################################################################################" -ForegroundColor White +Write-Host "Configure Publishing Infrastructure. . ." -ForegroundColor White +Write-Host "##########################################################################################" -ForegroundColor White +Write-Host "And, Time to run the enable .Net Session State and install Workflow Manager 1.0. . ." -ForegroundColor White +Write-Host "##########################################################################################" -ForegroundColor White +Write-Host "Have a great SharePoint Day. . ." -ForegroundColor White +Write-Host "##########################################################################################" -ForegroundColor White \ No newline at end of file diff --git a/scripts/DisableLoopBackCheck.ps1 b/scripts/DisableLoopBackCheck.ps1 new file mode 100644 index 0000000..4dc704d --- /dev/null +++ b/scripts/DisableLoopBackCheck.ps1 @@ -0,0 +1 @@ +New-ItemProperty HKLM:\System\CurrentControlSet\Control\Lsa -Name “DisableLoopbackCheck” -value “1” -PropertyType dword \ No newline at end of file diff --git a/scripts/JoinFarm-Distributed-Cache.ps1 b/scripts/JoinFarm-Distributed-Cache.ps1 new file mode 100644 index 0000000..99df3e4 --- /dev/null +++ b/scripts/JoinFarm-Distributed-Cache.ps1 @@ -0,0 +1,7 @@ +Connect-SPConfigurationDatabase -DatabaseName PRD_SharePoint_ConfigDB -DatabaseServer SPAlias -Passphrase (ConvertTo-SecureString "1Qaz2Wsx3Edc4Rfv" -AsPlainText -Force) -localserverrole distributedCache +Install-SPHelpCollection -All +Initialize-SPResourceSecurity +Install-SPService +Install-SPFeature -AllExistingFeatures +Install-SPApplicationContent +Start-Service SPTimerV4 \ No newline at end of file diff --git a/scripts/JoinFarm-Search.ps1 b/scripts/JoinFarm-Search.ps1 new file mode 100644 index 0000000..e33a09f --- /dev/null +++ b/scripts/JoinFarm-Search.ps1 @@ -0,0 +1,7 @@ +Connect-SPConfigurationDatabase -DatabaseName PRD_SharePoint_ConfigDB -DatabaseServer SPAlias -Passphrase (ConvertTo-SecureString "1Qaz2Wsx3Edc4Rfv" -AsPlainText -Force) -localserverrole Search +Install-SPHelpCollection -All +Initialize-SPResourceSecurity +Install-SPService +Install-SPFeature -AllExistingFeatures +Install-SPApplicationContent +Start-Service SPTimerV4 \ No newline at end of file diff --git a/scripts/JoinFarm-WFE.ps1 b/scripts/JoinFarm-WFE.ps1 new file mode 100644 index 0000000..a1cb05a --- /dev/null +++ b/scripts/JoinFarm-WFE.ps1 @@ -0,0 +1,7 @@ +Connect-SPConfigurationDatabase -DatabaseName PRD_SharePoint_ConfigDB -DatabaseServer SPAlias -Passphrase (ConvertTo-SecureString "1Qaz2Wsx3Edc4Rfv" -AsPlainText -Force) -localserverrole WebFrontEnd +Install-SPHelpCollection -All +Initialize-SPResourceSecurity +Install-SPService +Install-SPFeature -AllExistingFeatures +Install-SPApplicationContent +Start-Service SPTimerV4 \ No newline at end of file diff --git a/scripts/hnsc.ps1 b/scripts/hnsc.ps1 new file mode 100644 index 0000000..8544d75 --- /dev/null +++ b/scripts/hnsc.ps1 @@ -0,0 +1,93 @@ +<# +INSTRUCTIONS for 2016: + +- Check the values for the variables in lines 21-26 and adapt to your values in your domain +- - Run lines 21-26 +- Make sure you like port number on line 21, 52, and 60. Change it if you dont like it. Use a high port +- - Run line 52 - Create the WEB Application +- Change the values for the variables in lines 56-60 and adapt to your values in your domain +- - Run line 62 - Create the Top Level Site +- Set the BackConnectionHostNames registry entries, Host file entries, and Binding on the applicable machines +- Set the values for the database names on lines 74 & 75 and make sure lines 85 & 86 and lines 90 & 91 "look ok" (e.g. have dns entries for the Cnames that are referenced in the URL & you like titles) - change to your domain if needed +- Set the site template at the end of lines 88 & 93, currently it is set for a blank site (STS#1) you might want a team site (STS#0) or maybe a publishing portal or search center - use get-spwebtemplate to find the templates for your desired site collection. +- - Run line 88 & line 93 +- After the site is created open IIS on the servers that have the site and assign the SSL Certificate - - If, and God forbid, you're not running SSL, then go through this and change all the https to http - - "I didnt say that" +#> + + + +#Build a web application and place an empty site collection in it, a site collection with no site, e.g. pick site later or create with powershell as follows: + +$applicationPool = "SharePoint - HNSC - 33333" +$ServiceAcct = "tailspintoys\svc_Content" +$svcacctmail = "svc_Content@tailspintoys.com" +$WebApp = "SharePoint HNSC Web Application" +$webAppURL = "https://hnsc.tailspintoys.com/" +$contentDB = "Prd_HNSC_ContentDB" + +#######################################################################################################################################MAKE SURE TO UPDATE PORT##### + +<# +MOST OF THIS SCRIPT IS FOR SHAREPOINT 2016 or 2013 - - 2016 and 13 vs the earlier versions - Claims or no claims + +The primary diffrence is whether your using claims or not. +If you're creating a HNSC for SharePoint 2013 you should use a claims based web application. For 2016 you must use a claims based web application. +Send the claims authentication provider by calling the new-spauthenticationprovider cmdlet into a variable as: $Provider = New-spauthenticationprovider + +THIS IS FOR A 2010 - NON claims based web application - or can use in 2013 if needed, normally you would use the $Provider = New-spauthenticationprovider along with the -AuthenticationProvider + +New-SPWebApplication -ApplicationPool $applicationPool -ApplicationPoolAccount $serviceAcct -Name $WebApp -Port 33333 -databaseName $contentDB -securesocketslayer + +#> + +###########################################################################################################################################MAKE SURE TO UPDATE PORT##### + ## + ## ## +## ## ## MAKE SURE TO UPDATE PORT IF YOU DONT LIKE IT + ## ## +## ## + +#If doing for 2013 or 2016 + +New-SPWebApplication -ApplicationPool $applicationPool -ApplicationPoolAccount $serviceAcct -Name $WebApp -Port 33333 -AuthenticationProvider (new-spauthenticationprovider) -databaseName $contentDB -secureSocketsLayer + +#Now that the web app is there, add the bindings, build the empty site collection, assign the site collection admins + +$primarySiteCollectionOwnerAcct = "tailspintoys\svc_content" +$PrimarySCOwnerEmail = "svc_content@tailspintoys.com" +$SecondarySiteCollectionOwnerAcct = "tailspintoys\spadmin" +$SecondarySCOwnerEmail = "spadmin@tailspintoys.com" +$webApp0URL = "https://hnsc.tailspintoys.com:33333" + +New-SPSite -URL $webApp0URL -OwnerAlias $primarySiteCollectionOwnerAcct -OwnerEmail $PrimarySCOwnerEmail -SecondaryOwnerAlias $SecondarySiteCollectionOwnerAcct -SecondaryEmail $SecondarySCOwnerEmail -Template STS#1 + +################################### +##### ##### +##### ADD THE BINDINGS IN IIS ##### - - - #### On All Servers, Add the BackconnectionHostNames #### +##### on the servers ##### +##### that have the sites ##### - - - #### Add host file entries on servers that have websites in IIS #### +##### ##### +################################### + +#Instantiate some DB names for the script + +$HNSC1DB = "Prd_IT_ContentDB" +$HNSC2DB = "Prd_TBSPUG_ContentDB" + + +#Build some content databases for your new HNSC's + +new-SPContentDatabase -Name $HNSC1DB -WebApplication $WebApp -WarningSiteCount 0 -MaxSiteCount 1 +new-SPContentDatabase -Name $HNSC2DB -WebApplication $WebApp -WarningSiteCount 0 -MaxSiteCount 1 + +#Now build some HNSC's + +$HNSC1Name = "Information Technology" +$HNSC1URL = "https://it.tailspintoys.com" + +New-SPSite -url $HNSC1URL -HostHeaderWebApplication $webApp0URL -Name $HNSC1Name -ownerAlias $PrimarySiteCollectionOwnerAcct -owneremail $PrimarySCOwnerEmail -SecondaryOwnerAlias $SecondarySiteCollectionOwnerAcct -SecondaryEmail $SecondarySCOwnerEmail -contentDatabase $HNSC1DB -Template STS#1 + +$HNSC2Name = "Tailspintoys Best SharePoint Users Group" +$HNSC2URL = "https://TBSPUG.tailspintoys.com" + +New-SPSite -url $HNSC2URL -HostHeaderWebApplication $webApp0URL -Name $HNSC2Name -ownerAlias $PrimarySiteCollectionOwnerAcct -owneremail $PrimarySCOwnerEmail -SecondaryOwnerAlias $SecondarySiteCollectionOwnerAcct -SecondaryEmail $SecondarySCOwnerEmail -contentDatabase $HNSC2DB -Template STS#1