How to best setup SharePoint 2013, Web Apps, Workflow Manager with Powershell

Post on 08-Dec-2014

9.210 views 6 download

Tags:

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 of How to best setup SharePoint 2013, Web Apps, Workflow Manager with Powershell

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 Webauftritteszu@expertsinside.com Samuel.Zuercher@sharepointcommunity.ch 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:szu@expertsinside.com

Mehr zum Thema:http://sharepointszu.com/category/die-serie-best-practice/