how to best setup sharepoint 2013, web apps, workflow manager with powershell
DESCRIPTION
Learn how to best practice set up SharePoint 2013 with Powershell, and don't Forget the surrounding Systems like Microsoft Web Apps 2013 and Workflow Manager 1.0. Additionally you get some Advice to set up SQL Server 2012 for SharePoint. All is done by Powershell, you get all the Code for the Setup within the Presentation.TRANSCRIPT
Samuel Zürcher, Sen. ConsultantExperts Inside GmbH
SHAREPOINT 2013, WEBAPPS, WORKFLOWS AND APPS
SPEAKER
Samuel ZürcherSenior Consultant / EvangelistSharePoint und SQL ServerMCTS, MCITP, MCT, MVP
Kontakt und [email protected] [email protected] Blog: http://sharepointszu.com Community: http://www.sharepointcommunity.ch Konferenz: http://www.collaborationdays.ch XING: https://www.xing.com/profile/Samuel_Zuercher3 Facebook: http://www.facebook.com/sharepointszu Twitter: @sharepointszu
Samuel Zürcher [MVP] hat Langjährige Erfahrung mit SharePoint seit der Version 2.0, breites Technologie Know-how und ist seit 15 Jahren in der IT tätig. Er ist im Projektmanagement in verschiedenen Projektgrössen und Komplexitätsstufen daheim, kennt sich aber auch mit dem innersten Kern von SharePoint aus. Verschiedene Zertifizierungen für SharePoint und der Microsoft Certified Trainer runden sein Profil ab (MCT, MCTS, MCIPT). Er ist der Initiant und zusammen mit Stefan Heinz Begründer der www.sharepointcommunity.ch und Co-Organisator der Collaboration Days.
ARCHITECTURE AND TOPPOLOGY
Preparation for SharePoint 2013
TOPOLOGY DIFFERENCES WITH 2013
Streamlined› New Topology Model› Maximise performance for
Users› Distributed Cache› Frontend Servers› Batch Processing Servers› Specialized workloads› Database Servers
Classic› Traditional three-tier Model› Frontend Servers› Application Servers› Database Servers
Reference: http://technet.microsoft.com/en-us/library/jj219591.aspx
CLASSICAL TOPOLOGY
STREAMLINED TOPOLOGY
GOALS OF STREAMLINED TIERSRole Goal
Distributed Cache Consistent latency:• Latency — very low (<5 millisecond)• Throughput — very high• Resource utilization — medium
Frontend Fast response to user requests with consistent latency:• Latency — low (<500 millisecond)• Throughput — medium• Resource utilization — low-medium
Batch-processing Maximize resources with high throughput:• Latency — high (>1 minute)• Throughput — high• Resource utilization — high to very high
Specialized Fairly consistent latency:• Latency — low (<500 milliseconds)• Throughput — medium• Resource utilization — low-high
Databases Fast response and consistent latency:• Latency — very low (<5 milliseconds)• Throughput — very high• Resource utilization — low-medium
SERVICES LEVELS
Tier Components and services
Distributed Cache • Distributed Cache• Request Management
• Web Application
Frontend • Access Services• Data Connectivity• Central Administration• Managed Metadata• Web Application
• Secure Store Service• State• Subscription Settings• User Code• User Profile• Visio Graphics
Batch-processing • Crawl Target• Machine Translation• Web Application• PowerPoint Conversion
• User Profile Sync• Word Automation• Work Management• Workflow timer service
Specialized • Excel Calculation• PerformancePoint• Project
• Web Application• Search
FROM CLASSICAL TO STREAMLINED
MICROSOFTS FARMBUILD
SCALING SINGLE AND SMALL
< 100 Users
< 1'000 Users
SCALING MIDDLE
< 10'000 Users
SCALING BIG
> 10'000 Users
SQL SERVER
SQL Server is the Engine of SharePoint
FIRST THINGS FIRST
› SQL Server is the Heart of SharePoint, don’t forget!
› 8 Cores and 16GB RAM min.› Be aware of Disk I/O, you mostly find there
the Bottleneck› Access Services generally go into a 2nd
Instance, we will not follow this guideline in the following Demo because of time
NEW HIGH AVAILLABILITY MODEL
› AlwaysOn as new High Availability Model for SharePoint 2013
› Based on availability groups› Main benefit:
› Be able to have one big muscled SQL Server to failover to n availability groups with lower cost Hardware
› Delegate heavy read databases to be used from secondary replicaReference: http://technet.microsoft.com/en-us/library/jj715261.aspx
EXAMPLE FOR SHAREPOINT 2013
CREATE ACCOUNTS WE WILL NEEDAccount Description
Sp-Setup Account to Set Up SharePoint (Needs Local Admin on SharePoint server and Sysadmin in SQL Server)
Sp-CacheAdmin For Publishing sites, to admin the Cache
Sp-CacheReader For Publishing sites, to read from Cache
Sp-Farm To run SharePoint Farm
Sp-My To run My Site Portal
Sp-Portal To run Intranet Portal
Sp-Services To run Service Applications
Sp-Sql To run SQL Server
Sp-upi To do User Profile Import (Replicate Directory Changes)
Sp-Access To run Access Services
Sp-Workflow To run Workflow Manager
SQL SERVER INSTALLATION
SUPPORT FILES INSTALLATION
LICENSE INPUT
LICENSE TERMS
LOOKING FOR UPDATES
FIREWALL PORTS
Port tcp 1433, 1434. To Install «Domain Off»
SETUP ROLE
FEATURE SELECTION
Für AccessFor Access Services 2013
Standard Path
INSTALLATION RULES
NAMED INSTANCE
DISKSPACE
SERVICE ACCOUNT
Domain Account
Attention! Collation
COLLATION SELECTION
CUSTOMIZE COLLATION
LATIN1_GENERAL_CI_AS_KS_WS
Is the closest to an NTFS Filesystem
AUTHENTICATION MODE
Domain Group
Be aware of Tabs!
For Access Services only
DATA DIRECTORIES
Separate Data, Log and TempDB
ERROR REPORTING
INSTALLATION RULES
SUMMARY
WAIT, WAIT, WAIT
THIS IS WHAT YOU WANT TO SEE
POST CONFIGURATION
› Min / Max Memory (be aware of other Instances and give 3GB to OS)
› Fill Factor 70%› Backup Compression› Max Degree of Parallelism to 1 (std.)› Local Sec. Pol «Perform Volume
Maintenance Tasks» and «Lock Pages in Memory»
FILL FACTOR / BACKUP COMPRESSION
MIN / MAX MEMORY
FOR ACCESS SERVICES
› Enable Contained Databases = True› Allow Triggers to Fire Others = True (std.)› Default Language = English (std.)› TCP/IP Protocol = Enabled (std.)› Named Pipes Protocol= Enabled › Windows Firewall Inbound Ports TCP
1433, TCP 1434, and UDP 1434
MIXED MODE
CONTAINED DATABASES
NAMED PIPES
FIREWALL SETTINGS INBOUND RULES
SHAREPOINT 2013
The basic Installation of SharePoint 2013 with Powershell
FIRST THINGS FIRST
› The Frontends are more RAM intense than in SharePoint 2010
› 4-8 CPU Cores and min. 12 GB RAM› For Standalone SharePoint 24 GB RAM› Streched Farms are supportet again, but only
rarely make sense› Be aware of SharePoint roles (Toppology)
especially with Search and Distributed Cache
FIRST THINGS FIRST
› Still the following Versions› SharePoint Foundation› SharePoint Server Standard› SharePoint Server Enterprise
› No more Fast for SharePoint, no more SharePoint for Internet, it’s in the Product
› Allways install in English and then use Language Packs!!!
STEP 1 – PREREQUISITES
NEXT
ACCEPT LICENSE AGREEMENT
WAIT FOR PROGRESS
REBOOT IF NEEDED
WAIT FOR INSTALLS
STEP 1 - PREREQUISITES DONE
STEP 2 – SHAREPOINT BITS
KEY
ACCEPT LICENSE TERMS
ALWAYSE «COMPLETE»
DON’T TOUCH FILE LOCATION
WAIT FOR INSTALLATION TO FINISH
INSTALL UPDATES
› Public Updates:› Required to install› Always to be installed
› Cumulative Updates:› Free to choose› Only install if needed
STEP 2 – SHAREPOINT BITS DONE
Deselect!!
STEP 3 – FARM INITIAL
Start Powershell ISE
ISE HAS MANY ADVANTAGES
Write Scripts
Input directly
List of Commands
Preparation - Variables# Application Pool for Services and Access $SaAppPoolName = "SharePoint Web Services Default" $AppPoolUser = "demo\sp-services"$AccessAppPoolName = "Access Services App Pool"$AccessAppPoolUser = "demo\sp-access"
# SQL Alias $SQLAliasName = "SharePointDB_Prod" $SQLServerName = "SQL1\SHAREPOINT"
#Include Instance Name $x86 = "HKLM:\Software\Microsoft\MSSQLServer\Client\ConnectTo" $x64 = "HKLM:\Software\Wow6432Node\Microsoft\MSSQLServer\Client\ConnectTo" $ConfigPassphrase = "MySharePointIs2013"
# Giving the Names for Databases $dbConfig = "TBD_DEMO_SharePoint_Config" $dbCentralAdmin = "TBD_DEMO_SharePoint_CentralAdmin"
# Central Admin Port and Authentication Method $CaPort = 11111 $CaAuthProvider = "NTLM«
# Register Sharepoint 2013 Powershell Commandlets pushd 'C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\CONFIG\POWERSHELL\Registration' .\SharePoint.ps1 popd
Preparation - System# Check if Registry Key Paths for SQL-Alias already exist, create them if not if ((test-path -path $x86) -ne $True) {
write-host "$x86 doesn't exist" New-Item $x86
} if ((test-path -path $x64) -ne $True) {
write-host "$x64 doesn't exist" New-Item $x64
}
# Creating String to add TCP/IP Alias $TCPAlias = ("DBMSSOCN," + $SQLServerName)
#Creating our TCP/IP Aliases New-ItemProperty -Path $x86 -Name $SQLAliasName -PropertyType String -Value $TCPAlias New-ItemProperty -Path $x64 -Name $SQLAliasName -PropertyType String -Value $TCPAlias
# Open cliconfig to verify the aliases Start-Process C:\Windows\System32\cliconfg.exe Start-Process C:\Windows\SysWOW64\cliconfg.exe
# Farm Passphrase $s_configPassphrase = (ConvertTo-SecureString -String $ConfigPassphrase -AsPlainText -force)
CHECK IF ALIAS WAS CREATED
Alias is a must, you will get in trouble, if you want to change SQL
Server and have no Alias
Simulate Config Wizzard# Make SharePoint PowerShell Availlable Add-PSSnapin Microsoft.SharePoint.PowerShell
# Creating SharePoint Configuration Database Write-Output "Creating the configuration database $dbConfig" Write-Host "Bitte Farm Credentials eingeben" -ForegroundColor Green $farmAccount = Get-Credential New-SPConfigurationDatabase -DatabaseName $dbConfig -DatabaseServer $SQLAliasName -AdministrationContentDatabaseName $dbCentralAdmin -Passphrase $s_configPassphrase -FarmCredentials $farmAccount
# Check to make sure the farm exists and is running. if not, end the script $Farm = Get-SPFarm if (!$Farm -or $Farm.Status -ne "Online") {
Write-Output "Farm was not created or is not running" exit
} Write-Output "Create the Central Administration site on port $CaPort" New-SPCentralAdministration -Port $CaPort -WindowsAuthProvider $CaAuthProvider
# Perform the config wizard tasks Write-Output "Install Help Collections" Install-SPHelpCollection -All Write-Output "Initialize security" Initialize-SPResourceSecurity Write-Output "Install services" Install-SPService Write-Output "Register features" Install-SPFeature -AllExistingFeatures Write-Output "Install Application Content" Install-SPApplicationContent
Write-Host "Farm build complete." -ForegroundColor Green
Managed Account and App Pool# Add managed accounts Write-Host "Creating managed accounts ... "Write-Host "Bitte Services Account Credentials eingeben" -ForegroundColor Green $servicesAccount = Get-Credential New-SPManagedAccount -credential $servicesAccountWrite-Host "Bitte Access Services Account Credentials eingeben" -ForegroundColor Green $AccessservicesAccount = Get-Credential New-SPManagedAccount -credential $AccessservicesAccountWrite-Host "Bitte Portal Account Credentials eingeben" -ForegroundColor Green $portalAccount = Get-Credential New-SPManagedAccount -credential $portalAccount Write-Host "Bitte MySite Account Credentials eingeben" -ForegroundColor Green $MySiteAccount = Get-Credential New-SPManagedAccount -credential $MySiteAccount
# Creating App Pool for Service ApplicationsNew-SPServiceApplicationPool -Name $SaAppPoolName -Account (Get-SPManagedAccount –Identity $AppPoolUser)New-SPServiceApplicationPool -Name $AccessAppPoolName -Account (Get-SPManagedAccount –Identity $AccessAppPoolUser)
STEP 3 – FARM INITIAL DONE
Step 4.1 – Usage and Health# Usage and Health Data Collection # Parameters $UsageSAName = "Usage and Health Data Collection" $dbUsageService = "TBD_DEMO_Usage_and_Health_Data" $UsageLogLocation = "C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\LOGS" $MaxUsageLogSpace = 5 #in GB
# Create Service Application Write-Host "Creating Usage and Health Data Collection..." Set-SPUsageService -LoggingEnabled 1 -UsageLogLocation $UsageLogLocation -UsageLogMaxSpaceGB $MaxUsageLogSpace $UsageService = Get-SPUsageService New-SPUsageApplication -Name $UsageSAName -DatabaseServer $SQLAliasName -DatabaseName $dbUsageService -UsageService $UsageService
# As Proxy ist stopped after this, provision in $UsageSAProxy = Get-SPServiceApplicationProxy | where-object {$_.TypeName -eq “Usage and Health Data Collection Proxy”} $UsageSAProxy.Provision()
Step 4.2 – State Service# State Service # Parameters $StateSAName = "State Service" $dbStateService = "TBD_DEMO_State"
# Create Service Write-Host "Creating State Service..." New-SPStateServiceDatabase -Name $dbStateService $StateSAPipe = New-SPStateServiceApplication -Name $StateSAName -Database $dbStateService New-SPStateServiceApplicationProxy -Name "$StateSAName Proxy" -ServiceApplication $StateSAPipe -DefaultProxyGroup
Step 4.3 – a: Managed Metadata# Managed Metadata Service Application # Parameters $ManagedMetadataSAName = "Managed Metadata Service" $dbManagedMetadata = "TBD_DEMO_Managed_Metadata"
# Create Service Application Write-Host "Creating Managed Metadata Service..." New-SPMetadataServiceApplication -Name $ManagedMetadataSAName –ApplicationPool $SaAppPoolName -DatabaseServer $SQLAliasName -DatabaseName $dbManagedMetadata New-SPMetadataServiceApplicationProxy -Name "$ManagedMetadataSAName Proxy" -ServiceApplication $ManagedMetadataSAName -DefaultProxyGroup Get-SPServiceInstance | where-object {$_.TypeName -eq "Managed Metadata Web Service"} | Start-SPServiceInstance
B: OPTIONS FOR MMS PROXY
c: MMS Proxy Settings# Get Metadata service application proxy $MMSProxy = Get-SPServiceApplicationProxy | Where-Object {$_.TypeName -eq "Managed Metadata Service Connection"}
# This service application is the default storage location for Keywords. $MMSProxy.Properties["IsDefaultKeywordTaxonomy"] = $true
# This service application is the default storage location for column specific term sets. $MMSProxy.Properties["IsDefaultSiteCollectionTaxonomy"] = $true
# Consumes content types from the Content Type Gallery $MMSProxy.Properties["IsNPContentTypeSyndicationEnabled"] = $false
# Push-down Content Type Publishing updates from the Content Type Gallery to sub-sites and lists using the content type. $MMSProxy.Properties["IsContentTypePushdownEnabled"] = $true $MMSProxy.Update()
Step 4.4 – a: Search Parameters# Search Service Application and Topology # Parameters $SearchMachine = "WFE1" $SearchSAName = "Search Service" $dbSearchDatabase = "TBD_DEMO_Search" $IndexLocation = "C:\SPIndex"if (!(Test-Path -path $Indexlocation)) {New-Item $Indexlocation -Type Directory}
b: Create Search SA# Create Service Application Write-Host "Creating Search Service Application…" Write-Host "Starting Service…" Start-SPEnterpriseSearchQueryAndSiteSettingsServiceInstance $SearchMachine Start-SPEnterpriseSearchServiceInstance $SearchMachine Write-Host "Creating Search Service Application…" $SearchSA = New-SPEnterpriseSearchServiceApplication -Name $SearchSAName -ApplicationPool $SaAppPoolName -DatabaseServer $SQLAliasName -DatabaseName $dbSearchDatabase $SearchInstance = Get-SPEnterpriseSearchServiceInstance -Local Write-Host "Defining the Search Topology…" $InitialSearchTopology = $SearchSA | Get-SPEnterpriseSearchTopology -Active $NewSearchTopology = $SearchSA | New-SPEnterpriseSearchTopology Write-Host "Creating Admin Component…" New-SPEnterpriseSearchAdminComponent -SearchTopology $NewSearchTopology -SearchServiceInstance $SearchInstance Write-Host "Creating Analytics Component…" New-SPEnterpriseSearchAnalyticsProcessingComponent -SearchTopology $NewSearchTopology -SearchServiceInstance $SearchInstance Write-Host "Creating Content Processing Component…" New-SPEnterpriseSearchContentProcessingComponent -SearchTopology $NewSearchTopology -SearchServiceInstance $SearchInstance Write-Host "Creating Query Processing Component…" New-SPEnterpriseSearchQueryProcessingComponent -SearchTopology $NewSearchTopology -SearchServiceInstance $SearchInstance Write-Host "Creating Crawl Component…" New-SPEnterpriseSearchCrawlComponent -SearchTopology $NewSearchTopology -SearchServiceInstance $SearchInstance Write-Host "Creating Index Component…" New-SPEnterpriseSearchIndexComponent -SearchTopology $NewSearchTopology -SearchServiceInstance $SearchInstance -RootDirectory $IndexLocation Write-Host "Activating the new topology…" $NewSearchTopology.Activate() Write-Host "Creating Search Application Proxy…" New-SPEnterpriseSearchServiceApplicationProxy -Name "$SearchSAName Proxy" -SearchApplication $SearchSA
Step 4.5 – Word Automation SA
# Word Conversion Service Application $WordSAName = "Word Automation Service" $dbWordAutomation = "TBD_DEMO_WordAutomation"
# Create Service Application Write-Host "Creating Word Automation Service..." New-SPWordConversionServiceApplication -Name $WordSAName -ApplicationPool $SaAppPoolName -DatabaseName $dbWordAutomation -DatabaseServer $SQLAliasName –DefaultGet-SPServiceInstance | where-object {$_.TypeName -eq "Word Automation Services"} | Start-SPServiceInstance
Step 4.6 – Business Connectivity# Business Conectivity Services Service Application $BcsSAName = "Business Connectivity Service" $dbBcs = "TBD_DEMO_BusinessConnectivity"
# Create Service Application Write-Host "Creating Business Connectivity Service..." New-SPBusinessDataCatalogServiceApplication –ApplicationPool $SaAppPoolName –DatabaseName $dbBcs –DatabaseServer $SQLAliasName –Name $BcsSANameGet-SPServiceInstance | where-object {$_.TypeName -eq "Business Data Connectivity Service"} | Start-SPServiceInstance
Step 4.7 – Secure Store# Secure store Service Application $SecureStoreSAName = "Secure Store Service" $dbSecureStore = "TBD_DEMO_Secure_Store"
# Create Service Application Write-Host "Creating Secure Store Service..." $SecureStoreSAPipe = New-SPSecureStoreServiceApplication –ApplicationPool $SaAppPoolName –AuditingEnabled:$false –DatabaseServer $SQLAliasName –DatabaseName $dbSecureStore –Name $SecureStoreSAName New-SPSecureStoreServiceApplicationProxy –Name "$SecureStoreSAName Proxy" –ServiceApplication $SecureStoreSAPipe -DefaultProxyGroup Get-SPServiceInstance | where-object {$_.TypeName -eq "Secure Store Service"} | Start-SPServiceInstance
Step 4.8 – Performance Point# Performance Point Service Application $PerformancePointSAName = "Performance Point Services" $dbPerformancePoint = "TBD_DEMO_PerformancePoint"
# Create Service Application Write-Host "Creating PerformancePoint Service..." $PerformancePointSAPipe = New-SPPerformancePointServiceApplication -Name $PerformancePointSAName -ApplicationPool $SaAppPoolName -DatabaseName $dbPerformancePoint New-SPPerformancePointServiceApplicationProxy -Name "$PerformancePointSAName Proxy" -ServiceApplication $PerformancePointSAPipe –DefaultGet-SPServiceInstance | where-object {$_.TypeName -eq "PerformancePoint Service"} | Start-SPServiceInstance
Step 4.9 – Visio Services
# Visio Service Application $VisioSAName = "Visio Services"
# Create Service Application Write-Host "Creating Visio Service..." New-SPVisioServiceApplication -Name $VisioSAName -ApplicationPool $SaAppPoolName New-SPVisioServiceApplicationProxy -Name "$VisioSAName Proxy" -ServiceApplication $VisioSANameGet-SPServiceInstance | where-object {$_.TypeName -eq "Visio Graphics Service"} | Start-SPServiceInstance
Step 4.10 – User Profile SA# User Profile Service Application $UserProfileSAName = "User Profile Service" $dbUserProfile = "TBD_DEMO_UserProfile_Profiles" $dbUserSocial ="TBD_DEMO_UserProfile_Social" $dbUserSync ="TBD_DEMO_UserProfile_Sync"
# Create Service Application Write-Host "Creating User Profile Service..." $UserProfileSAPipe = New-SPProfileServiceApplication -Name $UserProfileSAName -ApplicationPool $SaAppPoolName -ProfileDBServer $SQLAliasName -ProfileDBName $dbUserProfile -SocialDBServer $SQLAliasName -SocialDBName $dbUserSocial -ProfileSyncDBServer $SQLAliasName -ProfileSyncDBName $dbUserSync New-SPProfileServiceApplicationProxy -Name "$UserProfileSAName Proxy" -ServiceApplication $UserProfileSAPipe -DefaultProxyGroup Get-SPServiceInstance | where-object {$_.TypeName -eq "User Profile Service"} | Start-SPServiceInstance
Step 4.11 – App Management# App management Service Application $AppManagementSAName = "App Management Service" $dbAppManagement = "TBD_DEMO_App_Management"
# Create Service Application Write-Host "Creating App Management Service…" $AppManagementSAPipe = New-SPAppManagementServiceApplication -Name $AppManagementSAName -DatabaseServer $SQLAliasName -DatabaseName $dbAppManagement –ApplicationPool $SaAppPoolName New-SPAppManagementServiceApplicationProxy -Name "$AppManagementSAName Proxy" -ServiceApplication $AppManagementSAPipe Get-SPServiceInstance | where-object {$_.TypeName -eq "App Management Service"} | Start-SPServiceInstance
Step 4.12 – Translation Service# Machine Translation Service Application $TranslationSAName = "Machine Translation Service" $dbTranslation = "TBD_DEMO_Machine_Translation"
# Create Service Application Write-Host "Creating Machine Translation Service..." New-SPTranslationServiceApplication -Name $TranslationSAName -ApplicationPool $SaAppPoolName -DatabaseName $dbTranslation -DefaultGet-SPServiceInstance | where-object {$_.TypeName –eq "Machine Translation Service"} | Start-SPServiceInstance
Step 4.13 – Work Management# Work Management Service Application $WorkMgmtSAName = "Work Management Service"
# Create Service Application Write-Host "Creating Work Management Service..." $WorkManagementSAPipe = New-SPWorkManagementServiceApplication –Name $WorkMgmtSAName –ApplicationPool $SaAppPoolName New-SPWorkManagementServiceApplicationProxy -name "$WorkMgmtSAName Proxy" -ServiceApplication $WorkManagementSAPipe -DefaultProxyGroupGet-SPServiceInstance | where-object {$_.TypeName –eq "Work Management Service"} | Start-SPServiceInstance
4.13.1 – GIVE RIGHTS IN DB
› Grant the account that the Work Management service is running as "Full Control" to the User Profiles Using "administrators" and "permissions" button on the ribbon
› $webApp = Get-SpWebApplication [URL of the MYSite web application] $webapp.GrantAccessToProcessIdentity("[Work Management account]")
› This should add the WMS Account to: User Policy of the WebApp, to Config DB with WSS_Content_Applicaiton_Pools, to My Site DB with SPDataAccess Role
4.13.2 – GIVE RIGHTS TO APPPOOL
Give the Services App Pool Account full Rights to User Profile Service
Application
Step 4.14 – Excel Services# Excel Services $ExcelSAName = "Excel Services"
# Create Service Application Write-Host "Creating Excel Service..." New-SPExcelServiceApplication -Name $ExcelSAName -ApplicationPool $SaAppPoolName -Default Get-SPServiceInstance | where-object {$_.TypeName –eq "Excel Calculation Services"} | Start-SPServiceInstance
Step 4.15 – Subscription Settings
Subscription Settings Service is for Multi Tenancy ScenariosAlso needed for Access Services 2013
# Subscription Settings Service Application $SubscriptionSAName = "Subscription Settings Service" $dbSubscription = "TBD_DEMO_Subscription_Settings"
# Create Service Application Write-Host "Creating Subscription Settings Service…" $SubscriptionSAPipe = New-SPSubscriptionSettingsServiceApplication –ApplicationPool $SaAppPoolName –Name $SubscriptionSAName –DatabaseName $dbSubscription New-SPSubscriptionSettingsServiceApplicationProxy –ServiceApplication $SubscriptionSAPipe Get-SPServiceInstance | where-object {$_.TypeName -eq "Microsoft SharePoint Foundation Subscription Settings Service"} | Start-SPServiceInstance
Step 4.16 – a: Access ServicesWill only work after App Configuration (follows next)Concider using an Extra App Pool (special configuration)
# Access Services $AccessSAName = "Access Services"
# Create Service Application Write-Host "Creating Access Service…" New-SPAccessServicesApplication -Name $AccessSAName -ApplicationPool $AccessAppPoolName -Default Get-SPServiceInstance | where-object {$_.TypeName -eq "Access Services"} | Start-SPServiceInstanceWhite Paper: http://www.microsoft.com/en-us/download/details.aspx?id=30445
B: SQL FEATURE PACK
› Microsoft SQL Server 2012 Local DB (SQLLocalDB.msi)
› Microsoft SQL Server 2012 Data-Tier Application Framework (DACFramework.msi)
› Microsoft SQL Server 2012 Native Client (sqlncli.msi)› Microsoft SQL Server 2012 Transact-SQL ScriptDom
(sqldom.msi) › Microsoft System CLR Types for Microsoft SQL Server
2012 (SQLSysClrTypes.msi)
Feature Pack: http://www.microsoft.com/en-us/download/details.aspx?id=29065
C: APP POOL CONFIG
› 1. Advanced Settings› 2. Load User Profile › 3. Restart Server
D: SECURE STORE
Go to Secure Store Service
and generate a new Key
Enter any secure String
E: TARGET DB SERVER
Navigate to Access Services Service App,
expand «New Application Database»
In Our Case we use std. SQL Server,
normally use dedicated
F: SETTING SQL RIGHTS FOR APP POOL› Give demo\sp-access following
Rights:› Configuration Database: DBO› Content Databases: DBO› App Management Database:
SPDataAccess
G: OFFICE DEPLOYMENTS
› If you have Office deployed in different Languages, you must deploy all these Languages as SharePoint Language Pack
› User will get an error if not
STEP 4.17 – OTHER SERVICES
› Claims to windows Token: If you have Scenarios with external Data Access
› Document Conversion: If you want to convert Documents to HTML
› Lotus Notes Connector: Self explaining
› Sandboxed Code: To run Sandboxed Solutions (recomended)
› PowerPoint Conversion: If you want to implement ppt > pptx Conversion
› Request Management: If you want to load balance SharePoint 2013
› User Profile Synchronization: If you are using FIM to synchronise User Profiles
STEP 4.18 – CREATE WEBAPPS
› Create an Intranet Portal with the Team Site Template
› Create a My Site Portal with the My Site Host Template
STEP 4.19 – CONFIGURE MY SITE
› Go to User Profile Service Application› Click to «Steup My Sites»› Add http://my.demo.local to My Site Host› Hit OK› Go to Webapplications, on My Site Web
App configure Self Service to yes› Add Managed Path «Personal»
STEP 4.20 – IMPORT USERS FROM AD
› There are two Methods to do this:› Forefront Identity Manager (like in 2010)› AD Direct Import
› Depends on your Scenario› Done in User Profile Service Application› Import Account needs «Replicate
Directory Changes» Right on AD
Step 4.21 – Cache Users$wa = Get-SPWebApplication -Identity "http://intranet.demo.local" $wa.Properties["portalsuperuseraccount"] = "i:0#.w|demo\sp-cacheadmin" $wa.Properties["portalsuperreaderaccount"] = "i:0#.w|demo\sp-cachereader" $wa.Update()
STEP 5 – SHAREPOINT APPS
› Apps is the new Model for Development in SharePoint 2013
› Access Services is used like Apps› An App can be
› SharePoint hosted› Auto hosted› Provider hosted
› We need to configure it specially
PREPARING FOR APPS
› We need to configure a new Domain Name
› Nothign to do with Active Directory!!› We call it Appdomain› In our case demoapps.local› Done in DNS Manager› Used to forward to SharePoint
ADD NEW ZONE
NEXT
NEXT
NEXT
ENTER DOMAIN NAME
NEXT
FINISH
ADD NEW HOST TO APPDOMAIN
Right click and select
«New Host»
POINT * TO FRONTEND OR NLB This will point
all Apps to SharePoint
CREATE SERVER WEBAPPLICATION
› Needed for Host Header Web Apps and Host named Site Collections
› No Host Header› Inf not created, redirect to App will not take
place› Be aware of DB Name and App Pool Account
«STANDARD WEBSITE» OFF
Make sure, Default Web Site
is stopped
CONFIGURE APP URLS
CREATE APP CATALOG
› App Catalog is managed per Web Application
› Create a App Catalog under each Web Application you have in your Company
› It’s a normal Site Collection
NEW APP CATALOG DIALOG
THE WEBAPPS
Installation and Integration of Office WebApps in SharePoint 2013
FIRST THINGS FIRST
› Web Apps are no longer a Service Application
› Web Apps are a standallone Server and cannot be installed on SharePoint WFE
› Web Apps can be used from Fileshares, Outlook Web Access and so on
› Licensing is still a user based License (Office Package)
Step 1 – Preparation# Add needed Roles to Server Import-Module ServerManager Add-WindowsFeature Web-Server,Web-Mgmt-Tools,Web-Mgmt-Console,Web-WebServer,Web-Common-Http,Web-Default-Doc,Web-Static-Content,Web-Performance,Web-Stat-Compression,Web-Dyn-Compression,Web-Security,Web-Filtering,Web-Windows-Auth,Web-App-Dev,Web-Net-Ext45,Web-Asp-Net45,Web-ISAPI-Ext,Web-ISAPI-Filter,Web-Includes,InkandHandwritingServicesServer need Restart after this
STEP 2 – INSTALLATION
INSTALL NOW
WAIT FOR INSTALL TO FINISH
CLOSE
APPLY UPDATE KB2810007
Update Link: http://www.microsoft.com/en-us/download/details.aspx?id=38378
WAIT FOR UPDATE TO FINISH
UPDATE DONE
Create Web Apps Farm# Create Office Web Apps Farm (Single Farm) New-OfficeWebAppsFarm –InternalURL "http://WebApps.demo.local" –AllowHttp -EditingEnabledCheck if Discovery Service answers (with an XML) http://webapps.demo.local/hosting/discovery
Bind Web Apps to SharePointRun on SharePoint Server!# Create new WOPI Binding for SharePoint to Web Apps Server New-SPWOPIBinding -ServerName webapps -AllowHTTP Get-SPWOPIZone Set-SPWOPIZone –zone "internal-http" Get-SPWOPIZone (Get-SPSecurityTokenServiceConfig).AllowOAuthOverHttp $config = (Get-SPSecurityTokenServiceConfig) $config.AllowOAuthOverHttp = $true $config.Update() (Get-SPSecurityTokenServiceConfig).AllowOAuthOverHttp
WORKFLOWS 2013
Integration of Workflow Manager in SharePoint 2013
FIRST THINGS FIRST
› Workflows changed in SharePoint 2013
› Needs it’s own Installation (Workflow Manager)
› Can run on SharePoint Frontend or Standalone Server
LAUNCH WORKFLOW MANAGER
INSTALL
ACCEPT TERMS
USE MS UPDATES
WAIT FOR INSTALL
CONTINUE
CONFIGURATION WIZZARD
ADD DB SERVER, USER, PASSPHRASE
WAIT FOR CONFIG TO FINISH
CONFIG READY TO INSTALL
WAIT FOR INSTALL
WORKFLOW FARM CREATED
FINISH
EXIT
Add WF Manager to SharePoint# Register Workflow Service Register-SPWorkflowService –SPSite "http://intranet.demo.local" –WorkflowHostUri "http://wfe1.demo.local:12291" –AllowOAuthHttp
PORTS FOR WORKFLOWS
› 12290 – Management Port› 9355 – Secure Deployment› 12291 – Unsecured Management Port› 9354 – TCP Deployment› 9356 – Message Broker› 9000-9003 – Internal Communication
NOW YOU CAN USE 2013 WF
PERFORMANCE TESTING
Using Visual Studio and SQLIO to do Performance Testing
SQLIO
Parameter DescriptionSqlio Program Call-kR / -kW Measure Read oder Write Performance-t32 No. of Threads-s60 Duration in Seconds-dF What drive is tested (Driveletter)-o64 No. of outstanding Requests-frandom Random Operations (Sequential is mostly
not used)-b64 Blocksize in bytesDownload: http://www.microsoft.com/en-us/download/details.aspx?id=20163
SQLIO Test Batchsqlio -kW -t16 -s60 -dF -o4 -frandom -b64 -BH -LS Testfile.datsqlio -kW -t16 -s60 -dF -o8 -frandom -b64 -BH -LS Testfile.datsqlio -kW -t16 -s60 -dF -o16 -frandom -b64 -BH -LS Testfile.datsqlio -kW -t16 -s60 -dF -o32 -frandom -b64 -BH -LS Testfile.datsqlio -kW -t16 -s60 -dF -o64 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t16 -s60 -dF -o4 -frandom -b64 -BH -LS Testfile.datsqlio -kR -t16 -s60 -dF -o8 -frandom -b64 -BH -LS Testfile.datsqlio -kR -t16 -s60 -dF -o16 -frandom -b64 -BH -LS Testfile.datsqlio -kR -t16 -s60 -dF -o32 -frandom -b64 -BH -LS Testfile.datsqlio -kR -t16 -s60 -dF -o64 -frandom -b64 -BH -LS Testfile.dat
sqlio -kW -t32 -s60 -dF -o4 -frandom -b64 -BH -LS Testfile.datsqlio -kW -t32 -s60 -dF -o8 -frandom -b64 -BH -LS Testfile.datsqlio -kW -t32 -s60 -dF -o16 -frandom -b64 -BH -LS Testfile.datsqlio -kW -t32 -s60 -dF -o32 -frandom -b64 -BH -LS Testfile.datsqlio -kW -t32 -s60 -dF -o64 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t32 -s60 -dF -o4 -frandom -b64 -BH -LS Testfile.datsqlio -kR -t32 -s60 -dF -o8 -frandom -b64 -BH -LS Testfile.datsqlio -kR -t32 -s60 -dF -o16 -frandom -b64 -BH -LS Testfile.datsqlio -kR -t32 -s60 -dF -o32 -frandom -b64 -BH -LS Testfile.datsqlio -kR -t32 -s60 -dF -o64 -frandom -b64 -BH -LS Testfile.dat
sqlio -kW -t64 -s60 -dF -o4 -frandom -b64 -BH -LS Testfile.datsqlio -kW -t64 -s60 -dF -o8 -frandom -b64 -BH -LS Testfile.datsqlio -kW -t64 -s60 -dF -o16 -frandom -b64 -BH -LS Testfile.datsqlio -kW -t64 -s60 -dF -o32 -frandom -b64 -BH -LS Testfile.datsqlio -kW -t64 -s60 -dF -o64 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t64 -s60 -dF -o4 -frandom -b64 -BH -LS Testfile.datsqlio -kR -t64 -s60 -dF -o8 -frandom -b64 -BH -LS Testfile.datsqlio -kR -t64 -s60 -dF -o16 -frandom -b64 -BH -LS Testfile.datsqlio -kR -t64 -s60 -dF -o32 -frandom -b64 -BH -LS Testfile.datsqlio -kR -t64 -s60 -dF -o64 -frandom -b64 -BH -LS Testfile.dat
VISUAL STUDIO ULTIMATE
QUESTIONS & ANSWERS
….Questions?!
Kontakt:[email protected]
Mehr zum Thema:http://sharepointszu.com/category/die-serie-best-practice/