Let’s say you have a fresh Windows Server 2012 R2 machine and you start to install SharePoint 2016 IT Preview. If the Microsoft SharePoint Products Preparation Tool execution will fail at the Application Server Role, Web Server (IIS) Role step, most likely this is happening due to the fact you are missing the Side-by-Side folder required to install features like ASP.NET 4.5.
The log file is actually providing some hints about where the problem is.
Installing windows server roles and features. 2015-08-27 00:03:43 - "C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe" -ExecutionPolicy Bypass "C:\Users\SRV_SP~1\AppData\Local\Temp\PreA1FB.tmp.PS1 -logFile C:\Users\SRV_SP~1\AppData\Local\Temp\PreA1FB.tmp.PS1.log" 2015-08-27 00:03:44 - Request for install time of Application Server Role, Web Server (IIS) Role 2015-08-27 00:03:45 - Request for install time of Application Server Role, Web Server (IIS) Role 2015-08-27 00:03:46 - Request for install time of Application Server Role, Web Server (IIS) Role 2015-08-27 00:03:47 - Request for install time of Application Server Role, Web Server (IIS) Role 2015-08-27 00:03:48 - Request for install time of Application Server Role, Web Server (IIS) Role 2015-08-27 00:03:49 - Request for install time of Application Server Role, Web Server (IIS) Role 2015-08-27 00:03:50 - Request for install time of Application Server Role, Web Server (IIS) Role 2015-08-27 00:03:51 - Request for install time of Application Server Role, Web Server (IIS) Role 2015-08-27 00:03:52 - Request for install time of Application Server Role, Web Server (IIS) Role 2015-08-27 00:03:53 - Request for install time of Application Server Role, Web Server (IIS) Role 2015-08-27 00:03:54 - Request for install time of Application Server Role, Web Server (IIS) Role 2015-08-27 00:03:55 - Request for install time of Application Server Role, Web Server (IIS) Role 2015-08-27 00:03:56 - Request for install time of Application Server Role, Web Server (IIS) Role 2015-08-27 00:03:57 - Request for install time of Application Server Role, Web Server (IIS) Role 2015-08-27 00:03:58 - Request for install time of Application Server Role, Web Server (IIS) Role 2015-08-27 00:03:59 - Request for install time of Application Server Role, Web Server (IIS) Role 2015-08-27 00:04:00 - Request for install time of Application Server Role, Web Server (IIS) Role 2015-08-27 00:04:00 - Install process returned (0X3E8=1000) 2015-08-27 00:04:00 - [In HRESULT format] (0X800703E8=-2147023896) 2015-08-27 00:04:00 - Last return code (0X3E8=1000) 2015-08-27 00:04:00 - Reading the following DWORD value/name... 2015-08-27 00:04:00 - Flags 2015-08-27 00:04:00 - from the following registry location... 2015-08-27 00:04:00 - SOFTWARE\Microsoft\Updates\UpdateExeVolatile 2015-08-27 00:04:00 - Reading the following string value/name... 2015-08-27 00:04:00 - PendingFileRenameOperations 2015-08-27 00:04:00 - from the following registry location... 2015-08-27 00:04:00 - SYSTEM\CurrentControlSet\Control\Session Manager 2015-08-27 00:04:00 - Reading the following registry location... 2015-08-27 00:04:00 - SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired 2015-08-27 00:04:00 - Error: The tool was unable to install Application Server Role, Web Server (IIS) Role. 2015-08-27 00:04:00 - Last return code (0X3E8=1000) 2015-08-27 00:04:00 - Options for further diagnostics: 1. Look up the return code value 2. Download the prerequisite manually and verify size downloaded by the prerequisite installer. 3. Install the prerequisite manually from the given location without any command line options. 2015-08-27 00:04:00 - Cannot retry
If we look into what does Application Server Role, Web Server (IIS) Role step means, we will see a PowerShell script who does, well … application server and web server role installation.
Param( [String]$logFile ) Import-Module Servermanager Start-Transcript -path $logFile $operation = Add-WindowsFeature Application-Server,Web-Server,` windows-identity-foundation,NET-Framework-45-ASPNET,Web-Mgmt-Console,` Web-Mgmt-Compat,Web-Metabase,Web-Lgcy-Mgmt-Console,Web-Lgcy-Scripting,` Web-Mgmt-Tools,Web-WMI,AS-Web-Support,Web-Common-HTTP,NET-HTTP-Activation,` NET-Non-HTTP-Activ,NET-WCF-HTTP-Activation45 -verbose if ($operation.ExitCode -eq 'SuccessRestartRequired') { Stop-Transcript $host.SetShouldExit(3010) exit } elseif (!$operation.Success){ Stop-Transcript $host.SetShouldExit(1000) exit }
If you will try separately to execute the PowerShell script, then the solution to the problem is revealed.
Solution 1
https://technet.microsoft.com/en-us/library/hh825020.aspx
My playground environment has GPO’s with Specify settings for optional component installation and component repair defined, but this time I decided to isolate the SharePoint 2016 installation from my playground and I encountered the OOB “experience”.
Solution 2
I still recommend to go with solution no. 1 (simply because it will apply to all the other servers and is a solid one), but in case you are in an isolated network, or simply just want to move on with the SP2016 setup, then I recommend to execute the following command before re-running the preparation tool.
Add-WindowsFeature Application-Server,Web-Server,windows-identity-foundation,` NET-Framework-45-ASPNET,Web-Mgmt-Console,Web-Mgmt-Compat,Web-Metabase,` Web-Lgcy-Mgmt-Console,Web-Lgcy-Scripting,Web-Mgmt-Tools,Web-WMI,AS-Web-Support,` Web-Common-HTTP,NET-HTTP-Activation,NET-Non-HTTP-Activ,NET-WCF-HTTP-Activation45 ` -Source 'Z:\sources\sxs'
where Z:\sources\sxs is the location of the Side-by-Side folder (available on the Windows OS installation media)
Re-run the SharePoint 2016 Products Preparation Tool and go further.
And if you already started to test SharePoint 2016, here are listed couple of known issues.