The online docs don’t exactly get it right when it comes to installing MIM on SharePoint 2016, the compatibility is set for SharePoint2010 that was the level FIM supported. However this isn’t available in SharePoint 2016 and moreover its not needed as MIM supports it out of the box. I also like to specify my databases on the command line so I can make them all uniform. Here is the config I use:
So run the normal SharePoint 2016 install but don’t run the config wizard after instead run these commands:
psconfig.exe -cmd configdb -create -server fim-sql -database SharePoint_central_config -user domain\mimsp -password mypassword -passphrase mypassphrase -admincontentdatabase SharePoint_admin_content -localserverrole SingleServerFarm
So I have specified the database and the server role makes things a little tidier, also always use a SQL alias this is a ninja technique and will make life so much easier in a DR or server move situation.
Now we create the MIM portal site:
You may not need the above command if you are using the same account as specified in the initial command as that puts it’s a farm admin.
The online install docs assume you are installing on SP2013 so don’t mention you have to change compatibility level to 15, any less than 15 won’t work.
$dbManagedAccount = Get-SPManagedAccount -Identity domain\mimsp New-SpWebApplication -Name "MIM Portal" -ApplicationPool "MIMAppPool" -ApplicationPoolAccount $dbManagedAccount -AuthenticationMethod "Kerberos" -Port 80 -URL http://mim.mimninja.com -DatabaseName SharePoint_WSS_Content -DatabaseServer fim-sql $t = Get-SPWebTemplate -compatibilityLevel 15 -Identity "STS#1" $w = Get-SPWebApplication http://mim.mimninja.com New-SPSite -Url $w.Url -Template $t -OwnerAlias domain\fimsp -CompatibilityLevel 15 -Name "MIM Portal" -SecondaryOwnerAlias domain\fimsync $s = SpSite($w.Url)
$s.AllowSelfServiceUpgrade = $false $s.CompatibilityLevel
Then continue as normal
$contentService = [Microsoft.SharePoint.Administration.SPWebService]::ContentService; $contentService.ViewStateOnServer = $false; $contentService.Update();