Archive for October, 2011

SharePoint prerequisites, this is how you do it!

October 18, 2011 2 comments

This post will cover most of what you need to know about the prerequisites of SharePoint Server 2010.
There are a few tricks to it that can help you out, there are a few things never before documented…and there are links that need to be collected into one place.
That, is what will show up in this post eventually…

Adding the obvious starting point for now, this is an absolute must before starting to fiddle with alternate ways of installing the prerequisites:
Install prerequisites from a network share (SharePoint Server 2010)

Finding them and Collecting them:
All of the requirements needed for a successful installation of SharePoint Server 2010 or SharePoint Foundation 2010 are listed in the technet article:
Hardware and software requirements (SharePoint Server 2010)

There is a full set of prerequisites that have to be on the servers before installing the SharePoint binaries.
Server (IIS) role
Application Server role
Microsoft .NET Framework version 3.5 SP1
SQL Server 2008 Express with SP1
Microsoft Sync Framework Runtime v1.0 (x64)
Microsoft Filter Pack 2.0
Microsoft Chart Controls for the Microsoft .NET Framework 3.5
Windows PowerShell 2.0
SQL Server 2008 Native Client
Microsoft SQL Server 2008 Analysis Services ADOMD.NET
ADO.NET Data Services Update for .NET Framework 3.5 SP1
Windows Identity Foundation (WIF) (If the Geneva framework is previouisly installed, it needs to be uninstalled before WIF is installed)
(A hotfix for the .NET Framework 3.5 SP1 that provides a method to support
token authentication without transport security or message encryption in WCF.)
For Windows Server 2008 SP2, download the Windows6.0-KB979917-x64.msu (Vista) file.
For Windows Server 2008 R2, download the Windows6.1-KB979917-x64.msu (Win7) file.
The prerequisites installer will take care of it for you in most cases, but in a controlled environment you do not want everyserver to download every package from the internet.
Either you have full access to internet when setting up your server nd don’t care about downloading them over and obver, then there is no real need to download the files separately or even know here to find them. But, if you are looking for a way to install from local files, then this is the way, use the script download.ps1 at the end of this post to down load all of the prereqs to a specified subfolder, name it PrerequisiteInstallerFiles and you can use the installer script as well.

If you don’t want to run the script, collect the prerequisites one by one:
Microsoft Sync Framework Runtime v1.0 (x64)
Microsoft Chart Controls for the Microsoft .NET Framework 3.5
Microsoft .NET Framework 3.5 Service Pack 1
Windows PowerShell 2.0
Windows Identity Framework (Win2008 R2)
WCF fix for Win2008 SP2
WCF fix for Win2008 R2
Windows Identity Framework (Win2008 SP2)
SQL Server 2008 Native Client
Microsoft SQL Server 2008 Analysis Services ADOMD.NET
ADO.NET Data Services v1.5 CTP2 (Win2008 SP2)“,
IIS management cmdlets
SQL 2008 R2 Reporting Services SharePoint 2010 Add-in
Microsoft Server Speech Platform Runtime
Microsoft Server Speech Recognition Language – TELE(en-US)

Or you can create and run the script download.ps1 mentioned at the bottom of this post. This will put all of the requirement add-on’s into one folder to be used during intall.
For the server roles to be added and configured no extra software is needed.

Applying them:

Ok, to install and apply all of the prerequisites you can choose one out of several options.

Online will be the simplest way to install the prerequisites, perhaps in a lab or test environemnt, on a single server, but in a real scenario, perhaps not.

Online 1.
Install manually…I guess this is an option but I can’t think of why you would want to…pick the roles you need manually and install them, install all of the add-ons one by one…
This is not a good or safe way to do it, but possible.

Online 2.
The absolutely simplest way, no major braining needed, execute the PrerequisitesInstaller.exe. Done!
It can be that simple…and it usually is. The prerequisites installer is one of the best little helpers you have ever seen, thank you Microsoft for this. It collects all the software and installs them all into the right place. This works…if you are only installing one server, and you have a fast internet connection, and your server is connected to Internet, and you enjoy not having full control…
Normally, if you are installing a single server environment and the server is fully connected to the Internet and all is swell, run the PrerequisitesInstaller and let it fix up the server for you. (For all other scenarios, I would have a look at the Offline section below.)
But, what if you were…offline…

Offline is a completely different matter. The PrerequisitesInstaller.exe is still a great tool and you will want to use it, but you need to do some thinking first. How will the Installer get the files it needs to install if it can’t download them from the internet?

Offline 1.
Run the prerequisitesinstaller with an Arguments file in order to use the add-on files you have downloaded.
Create a textfile, name it PrerequisitesInstaller.Arguments.txt (Important! this has to be exactly right) and paste the second scripttext located at the end of this post.

Offline 2.
Create and run a script that will do it all for you, add the roles, use the local files….
This is a pretty good solution, it will be the same every time and you will only download the files once. The indiciduals installing SharePoint can only be told to run a script that does it all.
In order to do this, you can create a textfile, name it installPrerequisitesFromShare.ps1 and paste the code under InstallPrerequisitesFromFileshare.ps1 at the bottom of the post. This script assumes that you have all of the requirements in one folder located in a subfolder named PrerequisiteInstallerFiles. This method works very well and will install it all for you, you will only have to execute one powershellscript and it will install it all, roles, add-ons and all.

What if:

You uninstall SharePoint from the server, what then?

I will try to ad dmore value here later, but I can say one thing for certain now, uninstall SharePoint and the RSservice will be broken. The Resporting services add on for SharePoint, installs before SHarePoint, during SharePoint install(or before?) it adds a lot of folders and files under the 14 Hive. If you uninstall SHarePoint and delete the 14 hive to get the server clean, you will have to first uninstall the rsservice, then install it again, then reinstall SharePoint.

You uninstall a prereq, what then?

This will hopefully be covered later. Time did not permit it at this point in time.

* * * * SCRIPTS * * * *

Paste into a textfile, rename to: ‘download.ps1′.

Start copy ‘download.ps1′ here:

## Prompt
for the destination path
$DestPath =
Read-Host -Prompt "- Enter the destination path for downloaded files"
## Check
that the path entered is valid
(Test-Path "$DestPath" -Verbose)
If destination path is valid, create folder if it doesn't already exist
= "$DestPath\PrerequisiteInstallerFiles"
-ItemType Directory $DestFolder -ErrorAction SilentlyContinue
" - Destination path appears to be invalid."
" - Please check the path, and try running the script again."
"- Press any key to exit..."
= $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
## We use
the hard-coded URL below, so that we can extract the filename (and use it to
get destination filename $DestFileName)
## Note:
These URLs are subject to change at Microsoft's discretion - check the
permalink next to each if you have trouble downloading.
$UrlList =
- Microsoft Sync Framework Runtime v1.0 (x64) 
# ""
- Microsoft Chart Controls for the Microsoft .NET Framework 3.5
- Microsoft .NET Framework 3.5 Service Pack 1
# ""
- Windows PowerShell 2.0    
# ""
- Windows Identity Framework (Win2008 R2)
- WCF fix for Win2008 SP2
- WCF fix for Win2008 R2
# ""
- Windows Identity Framework (Win2008 SP2)
# ""
- SQL Server 2008 Native Client
# ""
- Microsoft SQL Server 2008 Analysis Services ADOMD.NET
# ""
- ADO.NET Data Services v1.5 CTP2 (Win2008 SP2)
- IIS management cmdlets
- SQL 2008 R2 Reporting Services SharePoint 2010 Add-in
- Microsoft Server Speech Platform Runtime
- Microsoft Server Speech Recognition Language - TELE(en-US)
($Url in $UrlList)
Get the file name based on the portion of the URL after the last slash
= $Url.Split('/')[-1]
Check if destination file already exists
(!(Test-Path "$DestFolder\$DestFileName"))
Begin download
-Source $Url -Destination $DestFolder\$DestFileName -DisplayName
"Downloading `'$DestFileName`' to $DestFolder" -Priority High
-Description "From $Url..." -ErrorVariable err
($err) {Throw ""}
" - File $DestFileName already exists, skipping..."
" - An error occurred downloading `'$DestFileName`'"
## View the
downloaded files in Windows Explorer
## Pause
"- Downloads completed, press any key to exit..."
$null =

:End copy ‘download.ps1‘ here.

Paste below into a textfile, name it ‘PrerequisitesInstaller.Arguments.txt‘ and put it in your SharePoint media folder, same folder as the PrerequisitesInstaller.exe. The string has to be formatted exactly like it is here, with a single newline and a space between each argument and nothing else.

Start copy ‘PrerequisitesInstaller.Arguments.txt‘ here:

/SQLNCli:Prerequisites\sqlncli.msi /ChartControl:Prerequisites\MSChart.exe /Sync:Prerequisites\Synchronization.msi /KB976462:Prerequisites\Windows6.1-KB976462-v2-x64.msu /IDFXR2:Prerequisites\Windows6.1-KB974405-x64.msu /FilterPack:Prerequisites\FilterPack\FilterPack.msi /ADOMD:Prerequisites\SQLSERVER2008_ASADOMD10.msi /ReportingServices:Prerequisites\rsSharePoint.msi /Speech:Prerequisites\SpeechPlatformRuntime.msi /SpeechLPK:Prerequisites\MSSpeech_SR_en-US_TELE.msi /NETFX35SP1:Prerequisites\dotnetfx35.exe

:End copy ‘PrerequisitesInstaller.Arguments.txthere.

Paste below into a textfile, name it ‘InstallPrerequisitesFromFileshare.ps1′

Start copy ‘InstallPrerequisitesFromFileshare.ps1′ here:

# get current folder $folder = Get-Location # install requirements Start-Process "$folder\PrerequisiteInstaller.exe" -Wait -ArgumentList "/unattended ` /SQLNCli:`"$folder\PrerequisiteInstallerFiles\sqlncli.msi`" ` /ChartControl:`"$folder\PrerequisiteInstallerFiles\MSChart.exe`" ` /NETFX35SP1:`"$folder\PrerequisiteInstallerFiles\dotnetfx35.exe`" ` /PowerShell:`"$folder\PrerequisiteInstallerFiles\Windows6.0-KB968930-x64.msu`" ` /KB976394:`"$folder\PrerequisiteInstallerFiles\Windows6.0-KB976394-x64.msu`" ` /KB976462:`"$folder\PrerequisiteInstallerFiles\Windows6.1-KB976462-v2-x64.msu`" `
/IDFX:`"$folder\PrerequisiteInstallerFiles\Windows6.0-KB974405-x64.msu`" ` /IDFXR2:`"$folder\PrerequisiteInstallerFiles\Windows6.1-KB974405-x64.msu`" ` /Sync:`"$folder\PrerequisiteInstallerFiles\Synchronization.msi`" ` /FilterPack:`"$folder\PrerequisiteInstallerFiles\FilterPack\FilterPack.msi`" ` /ADOMD:`"$folder\PrerequisiteInstallerFiles\SQLSERVER2008_ASADOMD10.msi`" ` /ReportingServices:`"$folder\PrerequisiteInstallerFiles\rsSharePoint.msi`" ` /Speech:`"$folder\PrerequisiteInstallerFiles\SpeechPlatformRuntime.msi`" ` /SpeechLPK:`"$folder\PrerequisiteInstallerFiles\MSSpeech_SR_en-US_TELE.msi`""

:End copy ‘InstallPrerequisitesFromFileshare.ps1′ here.

* * * * END SCRIPTS * * * *

SharePoint 2010 Language packs, finding them, collecting them and deploying them

October 18, 2011 3 comments

A few thousand years ago, humans were a race of hunter/gatherers. We also lived in caves and were a very simple and crude race. At times when working with SharePoint, you can find that the old mindset is coming back…if only for a few seconds.

Language Packs.

I have been in the situation myself where I find myself lost regarding language packs, so I was forced to find all these things out and here are my findings for you to reuse at will.

This post will not cover what language to use when and when you need to do some more work to get a site completely localized, that is for another post. This is about deploying them, getting the correct bits onto the servers and getting them to work.

What do I need to install:

First: Technet states that: SharePoint Foundation 2010 language packs are not required for SharePoint Server 2010.(Deploy language packs (SharePoint Server 2010))
Perhaps there are different opinions as there are about what to install regarding CU’s, but I have followed this advise without any issues or missing language bits.

Now, you have a series of different LP’s and namings are different in different places, I’ll focus on the clean SharePoint 2010 Foundation and Server. No Project or other unrelated stuff touched here…

At the very end of this post you will find the complate list of Languages available. (Updated 11-11-04)

1. Foundation:

You need the Language Pack files for the language you need to have present in your sites. English, German, French, Arabic…at this point in time, I would recommend that you install the LP and its SP1.

2. Server

The same goes for Foundation as well as for server.

Find the binaries:

Correct me if you think that I’m wrong, but it was never easy to find the files you need. I have simply collected the links you need in one place.

1. Foundation

Language Packs for SharePoint Foundation 2010

Service Pack 1 for Microsoft SharePoint Foundation 2010 Language Pack (KB2460059) (Naming is brilliantly describing, thank you Microsoft)

Description from Microsoft, judging by the english LPSP1 at 9MB there has not been many updates which is a good thing:
Service Pack 1 (SP1) for Microsoft SharePoint Foundation 2010 Language Pack contains new updates which improve security, performance, and stability.
Additionally, the SP is a roll-up of all previously released updates.
The KB:

See Server for details on the actual downloads. Difference here is that the name of the complate package for foundation is ‘SharePointLanguagePack.exe’ instead of  ‘ServerLanguagePack.exe’ for Server. I would rename the  ‘SharePointLanguagePack.exe’ to ‘SPFoundationLanguagePack_en-us.exe’ . The LPSP1 for foundation has a nice spf in front of it (spflanguagepack2010sp1-kb2460059-x64-fullfile-en-us.exe), placing it on your foundation servers. Although, maybe ‘FoundationLanguagePackSP1_en-us.exe’ would be easier and more explaining…

2. Server

2010 Server Language Packs for SharePoint Server 2010, Project Server 2010, Search Server 2010, and Office Web Apps 2010 (is the ‘short’ name of this LP)

Service Pack 1 for Server Language Pack 2010 (KB2460056) (again, naming is a bit off…no mentioning of SharePoint which can throw you off a bit…)

The KB:

The design of the downloadpage will change based on what language you select, and in a few languages you must press ‘Change’ or the button that corresponds in that language. After you have pressed change, or as in for example the english page, that will redirect on the dropdown-select and a click on the page, you can start the download (you will get it). The file you will get is named ‘ServerLanguagePack.exe’ no matter what language it is for. A nice best practise is to rename it during or after it is downloaded to something like SPServerLanguagePack_en-us.exe or similar, so that you can separate your different language pack files later on.

For the Language Pack Service Pack 1, you obviously have something completely different. The site will look a little different but generally the same, it will just like the LP page look different in different languages, so that needs no further description.
What is really different is the files you get. They are here named as: serverlanguagepack2010sp1-kb2460056-x64-fullfile-en-us.exe, Obviously…I rename them simply ServerLanguagePackSP1_en-us.exe as they will most likely end up together in one folder.

All download pages and packages are localized in itself, so if you need to install for example an arabic LP and don’t speak arabic, make sure to memorize the location and meaning of the buttons, but also remember that they will be mirrored.

Install the binaries:

1. Foundation

This is the official technet version:

Use any method you prefer, clicking on them one by one and wait for it to finish, then click the next, and so on. Or…you do as I usually do, create a script. In a multitier farm this is essential so that you can save time to do other great things.

My simple script looks like this for the Swedish and German LP’s + LPSP1: (saved in a text file as Install_LP.cmd)

“C:\Updates Binaries\SPFoundationLanguagePack_sv-se.exe” /quiet
“C:\Updates Binaries\SPFoundationLanguagePack_de-de” /quiet
“C:\Updates Binaries\SPFoundationLanguagePackSP1_sv_se.exe” /quiet
“C:\Updates Binaries\SPFoundationLanguagePackSP1_de-de.exe” /quiet

Install the binaries on every Application and Web server in your farm!
This is the only approach that will be accepted when you want to run the PSConfig/Config Wizard to finalize the update in the farm. The technet instruction above is a bit shaky on this particular subject but this is a fact, you need the exact same Language Packs’s on all of your servers, except off course the Database servers and the email servers…

In order to run PSConfig, I also use a script to do it, save a text file in the same folder as the updates and name it Install_PSConfig.cmd (or something you like better). It needs a single line:

“C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\BIN\psconfig” -cmd upgrade -inplace b2b -wait

Direct it to where your 14 Hive is located. This way, you don’t have to look up the exact functions of the PSConfig tool every time…
(if you have a multitier farm with many servers, store the scriptfiles on a fileshare and the path will be the same on all servers, you will also only have to update it in one place.)

2. Server

This is the official technet version:

Same store as for FOundation, the files are different but the method needs to be the same. The script would now look something like:

“C:\Updates Binaries\SPServerLanguagePack_sv-se.exe” /quiet
“C:\Updates Binaries\SPServerLanguagePack_de-de” /quiet
“C:\Updates Binaries\SPServerLanguagePackSP1_sv_se.exe” /quiet
“C:\Updates Binaries\SPServerLanguagePackSP1_de-de.exe” /quiet
(The SP1’s takes very long time to apply…if memory serves me right)

Slipstreaming the SharePoint Language Packs, do or not to do?

During the SharePoint installation, the answer is NO! Not supported, can’t do it! The /Updates folder is only for SharePoint updates and SharePoint updates alone, ServicePacks and Cumulative updates and the likes, functional add-ons like LP’s not included. Try it if you will, but it will simply not work.
During the Language Pack installation…given the way I do it with a silent script, I would say Do NOT. Slipstreaming the LP updates is possible but it does not really save you a lot of time and I know that there have been issues. You will easily loose more than you win.


After you have found, downloaded and installed your Languages, how do you see that they are installed at all…? There are a few places to look.
Control panel on one of your SharePoint Web or Application servers:

The Language Pack.

View in Control Panel, Uninstall or change a program

View in Control Panel, Uninstall or change a program

The Language Pack Service Pack 1

View in Control Panel, Uninstall an Update

View in Control Panel, Uninstall an Update

In CA you will find information on upgrades in 3 places, Servers in farm, Check Product And Patch Istallation Status and Check Upgrade Status. If your Check Upgrade statyus looks like this you can relax, for this time…

All Done!

All Done!

I almost forgot! Powershell. Check out installed and missing updates by running:
Get-SPProduct | select *
Get-SPProduct | select -ExpandProperty PatchableUnitDisplayNames
(Requires that you first run add-pssnapin Microsoft.SharePoint.powershell)


There are probably things that should be here that I have missed, or that you think is incorrect or that should be included. Please let me know so that I can correct this and make this a better place of information on Language pack finding, collection and deployment.

1 down, at least 3500 steps left to get your ultimate SharePoint 2010 farm in order…

List of available languages (list updated September 16, 2010 at

Arabic 1025

Basque 1069

Bulgarian 1026

Catalan 1027

Chinese (Simplified) 2052
Chinese (Traditional) 1028

Croatian 1050

Czech 1029

Danish 1030

Dutch 1043

English 1033

Estonian 1061

Finnish 1035

French 1036

Galician 1110

German 1031

Greek 1032

Hebrew 1037

Hindi 1081

Hungarian 1038

Italian 1040

Japanese 1041

Kazakh 1087

Korean 1042

Latvian 1062

Lithuanian 1063

Norwegian (Bokmål) 1044

Polish 1045

Portuguese (Brazil) 1046

Portuguese (Portugal) 2070

Romanian 1048

Russian 1049

Serbian (Latin) 2074

Slovak 1051

Slovenian 1060

Spanish 3082

Swedish 1053

Thai 1054

Turkish 1055

Ukrainian 1058