I was working with a global customer lately who has datacenters in various global regions (as most global orgs do). The customer had not decided, and basically, hadn’t even thought about what language packs to install on their Office Web Apps Servers (OWAS). I suggested that there are 49 language packs including the English pack that I install by default on every OWAS server. Those languages are:
Irish – Ireland
The customer decided on which language packs to install.
If you’ve ever tried to install these, you know you go to the language pack download page, and pick your desired language. When the next page comes up, you notice that it’s in the language of the desired language pack. You hope you’re clicking on the right link, download the file, then run the installer, which is mostly in the desired language, and go from there. It can be somewhat confusing, but extremely repetitive – especially if you’re installing a lot of language packs. It got me thinking that this was an area ripe for automation (what area isn’t?).
Well, as I’ve mentioned on this blog before, I’m lazy (as most coders are). So I wrote this script to make my life easier, and as a result, you gain from it. Here’s what the script does:
- Detects which (if any) language packs are installed on the local machines. This is accomplished by looking for the correct GUID in the Uninstall branch of the registry.
- Displays a grid list of the language packs that are available and not already installed on the machine (see image below). You can select one or more language packs to install and click “Ok”.
- The script will download the language pack(s)
- It will mount (if they are an .img file), or extract (if an .exe).
- It will silently install the language pack
- It will clean up after itself (unmount or clean up extracted files)
Here is the selection list presented. Notice that English is not in the list as that language pack is already installed.
Once installation is completed, you’re left with your language packs installed and a nice little log file.
Extract the files to any folder. The script and the .csv file MUST be in the same folder. Run it by calling Install-OWASLanguagePack.ps1 and it will default to using the following path structure (which it will create if it doesn’t already exist):
|c:\_Install||Root working folder. Can be changed using -TargetFolder when calling the script.|
|c:\_Install\logs||Log files from the script are stored here|
|c:\_Install\OWASLanguagePacks||Downloaded language pack files are stored here. Folder name can be changed using -OWASLanguagePackFolder. Language packs are placed in sub folders of this folder. The sub folders match the language of the language pack.|
A little bit of a rant. I *REALLY* wish the language packs were an MSI file that supported silent install instead of an .img file that must be mounted or an .exe that must be extracted, and then each called with complex syntax.
Install-OWASLanguagePacks.ps1 [[-TargetFolder] <object width="300" height="150">][[-OWASLanguagePackFolder] <object>] [-WhatIf] [-Confirm] [-IncludeTotalCount] [-Skip <uint64>] [-First <uint64>][<commonparameters>]</commonparameters></uint64></uint64></object>
Execution Policy: Third-party PowerShell scripts may require that the PowerShell Execution Policy be set to either AllSigned, RemoteSigned, or Unrestricted. The default is Restricted, which prevents scripts – even code signed scripts – from running. For more information about setting your Execution Policy, see Using the Set-ExecutionPolicy Cmdlet.
v1.0 – 03-07-2015 – Install-OWASLanguagePacks.v1.0.zip
See the changelog for information on what’s changed/included in each version.