Wednesday, November 7, 2012

Download SharePoint 2013 Pre-requisites in one go

When I started installation of SharePoint Server 2013 RTM on Windows Server 2012 virtual machine, I got an error screen showing that I have to install pre-requisites for SharePoint 2013.

ErrorScreen

I found a very nice blog post where all downloadable links for required pre-requisites software are listed. Have a look at here. http://blogs.msdn.com/b/ocarpen/archive/2012/07/31/sharepoint-2013-preview-pre-requisites-download-links.aspx

In the above mentioned blog post, another post is mentioned where I found a cool PowerShell script which downloads all required software for me automatically. I just need to run that script and after some time, all required components will be downloaded in desired location on my disk. URL for this post is http://wellytonian.com/2012/07/sharepoint-2013-pre-requisites-downloader/

I am posting that script here too in case (for any reason) that blog post is removed. Copy this script and paste in a PS1 file and run it with PowerShell.

###############SharePoint 2013 Pre Requisite Software Downloader############
############################################################################
###Author: Aben Samuel####Date:27/10/2012###################################
##########Version:2#########################################################
#####URL#####EDIT IF Microsoft Makes Changes to the URL#####################
$UrlList = ("http://download.microsoft.com/download/1/E/3/1E3220BD-1D17-4EE7-8D7F-333422D1BA4B/enu_netfx/x64/netfx_full_x64.msi", # Microsoft .NET Framework 4.5
"http://download.microsoft.com/download/5/2/B/52B59966-3009-4F39-A99E-3732717BBE2A/Windows6.1-KB2506143-x64.msu", # Windows Management Framework 3.0 (CTP2)
"http://download.microsoft.com/download/9/1/3/9138773A-505D-43E2-AC08-9A77E1E0490B/1033/x64/sqlncli.msi", #Microsoft SQL Server 2008 r2 Native Client
"http://download.microsoft.com/download/D/7/2/D72FD747-69B6-40B7-875B-C2B40A6B2BDD/Windows6.1-KB974405-x64.msu", #Windows Identity Foundation (KB974405)
"http://download.microsoft.com/download/E/0/0/E0060D8F-2354-4871-9596-DC78538799CC/Synchronization.msi", # Microsoft Sync Framework Runtime v1.0 SP1 (x64)
"http://download.microsoft.com/download/A/6/7/A678AB47-496B-4907-B3D4-0A2D280A13C0/WindowsServerAppFabricSetup_x64.exe", #Windows Server AppFabric
"http://download.microsoft.com/download/0/1/D/01D06854-CA0C-46F1-ADBA-EBF86010DCC6/r2/MicrosoftIdentityExtensions-64.msi", # Windows Identity Extensions
"http://download.microsoft.com/download/9/1/D/91DA8796-BE1D-46AF-8489-663AB7811517/setup_msipc_x64.msi", # Microsoft Information Protection and Control Client
"http://download.microsoft.com/download/8/F/9/8F93DBBD-896B-4760-AC81-646F61363A6D/WcfDataServices.exe", # Microsoft WCF Data Services 5.0
"http://download.microsoft.com/download/7/B/5/7B51D8D1-20FD-4BF0-87C7-4714F5A1C313/AppFabric1.1-RTM-KB2671763-x64-ENU.exe" # CU Package 1 for Microsoft AppFabric 1.1 for Windows Server (KB2671763)
)
####Destination Directory for the files to be downloaded######################
$DestPath = "C:\SP2013B2"
######################################DO NOT EDIT BELOW THIS LINE##################################################
###################################################################################################################
Write-Warning "Executing Script"
##Importing Bits Module######
Import-Module BitsTransfer
Write-Host
######HouseKeeping#################################################################################################
###################################################################################################################
Remove-Item $DestPath -recurse -erroraction SilentlyContinue
New-Item $DestPath -type directory -erroraction SilentlyContinue
"Folder Created"
Write-Host
## Check that the path entered is valid
If (Test-Path "$DestPath" -Verbose)
{
## If destination path is valid, create folder if it doesn't already exist
$DestFolder = "$DestPath\PrerequisiteInstallerFiles"
New-Item -ItemType Directory $DestFolder -ErrorAction SilentlyContinue
}
Else
{
Write-Warning " - Destination path appears to be invalid."
## Pause
Write-Host " - Please check the path, and try running the script again."
Write-Host "- Press any key to exit..."
$null = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
break
}
#########Downloading#################################################################################################
#####################################################################################################################
ForEach ($Url in $UrlList)
{
$DestFileName = $Url.Split('/')[-1]
Try
{
If (!(Test-Path "$DestFolder\$DestFileName"))
{
## Start the download process
Start-BitsTransfer -Source $Url -Destination $DestFolder\$DestFileName -DisplayName "Downloading `'$DestFileName`' to $DestFolder" -Priority High -Description "From $Url..." -ErrorVariable err
If ($err) {Throw ""}
}
Else
{
Write-Host " - File $DestFileName already exists, skipping..."
}
}
Catch
{
Write-Warning " - An error occurred downloading `'$DestFileName`'. Check whether Internet connectivity is enabled on this device"
break
}
}
Write-Host "- Downloads completed"
Invoke-Item $DestFolder
Write-Warning "Press any key to exit"
$null = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")

I ran this script using PowerGUI and here is screenshot.

script

All downloaded executable are here in this folder.

files