There are already several blog posts about how to install SharePoint 2013, so I won’t duplicate them here. But all of these posts are written assuming that you SharePoint server can access the Internet. You need this to be able to automatically download the 10 additional prerequisites that need to be installed BEFORE you can install SharePoint 2013. But what if your SharePoint server is behind a firewall or in a disconnected Virtual machine? How can you get the prerequisites installed then?
You could download them manually, copy them to the server and install them. but this presents several challenges. For example, the first pre-requisite is .Net Framework 4.5. Try using your search engine to find an official Microsoft site where you can download that. Once you do you are left with the question of whether to install the Beta or Release Candidate version. Once you’ve done all that you still have to find and download the other nine prerequisites. But there is an easier way.
In the past you could find Powershell scripts on the Internet that you could use to download all the SharePoint prerequisites to a subdirectory. In this post I’ve taken one of those scripts and updated it with the right links for the SharePoint 2013 prerequisites. Then once the prerequisites are downloaded and copied to the SharePoint server I’ve created a batch file that you can use to install all the prereqs using the SharePoint prerequisite installer. I’ve also included a list of the prerequisites and where you can download them from in case you want to get them manually.
1: Import-Module BitsTransfer
2: ## Prompt for the destination path
3: $DestPath = Read-Host -Prompt "- Enter the destination path for downloaded files"
4: ## Check that the path entered is valid
5: If (Test-Path "$DestPath" -Verbose)
6: {
7: ## If destination path is valid, create folder if it doesn't already exist
8: $DestFolder = "$DestPath\PrerequisiteInstallerFiles"
9: New-Item -ItemType Directory $DestFolder -ErrorAction SilentlyContinue
10: }
11: Else
12: {
13: Write-Warning " - Destination path appears to be invalid."
14: ## Pause
15: Write-Host " - Please check the path, and try running the script again."
16: Write-Host "- Press any key to exit..."
17: $null = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
18: break
19: }
20: ## We use the hard-coded URL below, so that we can extract the filename (and use it to get destination filename $DestFileName)
21: ## Note: These URLs are subject to change at Microsoft's discretion - check the permalink next to each if you have trouble downloading.
22: $UrlList = ("http://download.microsoft.com/download/D/0/F/D0F564A3-6734-470B-9772-AC38B3B6D8C2/dotNetFx45_Full_x86_x64.exe", # Microsoft .NET Framework 4.5
23: "http://download.microsoft.com/download/5/2/B/52B59966-3009-4F39-A99E-3732717BBE2A/Windows6.1-KB2506143-x64.msu", # Windows Management Framework 3.0 (CTP2)
24: "http://download.microsoft.com/download/9/1/3/9138773A-505D-43E2-AC08-9A77E1E0490B/1033/x64/sqlncli.msi", #Microsoft SQL Server 2008 r2 Native Client
25: "http://download.microsoft.com/download/D/7/2/D72FD747-69B6-40B7-875B-C2B40A6B2BDD/Windows6.1-KB974405-x64.msu", #Windows Identity Foundation (KB974405)
26: "http://download.microsoft.com/download/E/0/0/E0060D8F-2354-4871-9596-DC78538799CC/Synchronization.msi", # Microsoft Sync Framework Runtime v1.0 SP1 (x64)
27: "http://download.microsoft.com/download/A/6/7/A678AB47-496B-4907-B3D4-0A2D280A13C0/WindowsServerAppFabricSetup_x64.exe", #Windows Server AppFabric
28: "http://download.microsoft.com/download/0/1/D/01D06854-CA0C-46F1-ADBA-EBF86010DCC6/r2/MicrosoftIdentityExtensions-64.msi", # Windows Identity Extensions
29: "http://download.microsoft.com/download/9/1/D/91DA8796-BE1D-46AF-8489-663AB7811517/setup_msipc_x64.msi", # Microsoft Information Protection and Control Client
30: "http://download.microsoft.com/download/8/F/9/8F93DBBD-896B-4760-AC81-646F61363A6D/WcfDataServices.exe", # Microsoft WCF Data Services 5.0
31: "http://download.microsoft.com/download/7/B/5/7B51D8D1-20FD-4BF0-87C7-4714F5A1C313/AppFabric1.1-RTM-KB2671763-x64-ENU.exe" # CU 1 for AppFabric 1.1 (KB2671763)
32: )
33: ForEach ($Url in $UrlList)
34: {
35: ## Get the file name based on the portion of the URL after the last slash
36: $DestFileName = $Url.Split('/')[-1]
37: Try
38: {
39: ## Check if destination file already exists
40: If (!(Test-Path "$DestFolder\$DestFileName"))
41: {
42: ## Begin download
43: Start-BitsTransfer -Source $Url -Destination $DestFolder\$DestFileName -DisplayName "Downloading `'$DestFileName`' to $DestFolder" -Priority High -Description "From $Url..." -ErrorVariable err
44: If ($err) {Throw ""}
45: }
46: Else
47: {
48: Write-Host " - File $DestFileName already exists, skipping..."
49: }
50: }
51: Catch
52: {
53: Write-Warning " - An error occurred downloading `'$DestFileName`'"
54: break
55: }
56: }
57: ## View the downloaded files in Windows Explorer
58: Invoke-Item $DestFolder
59: ## Pause
60: Write-Host "- Downloads completed, press any key to exit..."
61: $null = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
In case you don’t want to use Powershell, or just want to download one of the prereqs that you missed. Here are the direct download links for all the prereqs.