HomeWindows InstallationPrinter Friendly Version

Windows Installation

Installation instructions and tips on the Windows platform

1. General

1.1. Do I need to uninstall the old version before installing a new version?

No. Each PureCM installer will install over a previous installation.

The only exception to this is when installing the 2009/2 server or above for the first time. The installer will ask you to manually uninstall your previous version.

1.2. How can I deploy PureCM via AD?

You can run the downloaded exes with the /extract parameter to generate the msi. For example...

purecm-client-win32-9-2c.exe /extract purecm-2009-2c

... will generate the msi into the purecm-2009-2c directory.

2. Service User

2.1. Which service user should I choose?

Using the ‘LocalService' account is typically the best choice here. You might want to use a different account if either:-

  • you're considering using Microsoft SQL Server with Integrated/Windows Authentication (check with your SQL Server Administrator if relevant);
  • or you want PureCM Server to store data on some form of Network Attached Storage, in which case the server will need to run as a user that can authenticate with the NAS server and use UNC paths (e.g. \\server\\sharename) for your data paths.


2.2. Folder and Registry permissions

When you install the PureCM Service, the installer/MSI sets permissions on two items in order to secure the installation.  These are :-

  1. The C:\PureCM folder (or wherever you've selected).  The Administrator group is given Full Access to the folder and the Service user (which you select in the Installer and is typically LocalService) is given rights to modify the folder and write to files etc.
  2. The HKLM\System\CurrentControlSet\Services\PureCM Service\Parameters registry key.  Similar permissions are set for this registry key.  This key contains basic service information such as the location of C:\PureCM and the port number to listen on etc.
If you decide to change the service to use different credentials (for example, change from LocalService to NetworkService) you'll need to update the permissions on both of these object.  Alternatively, re-installing the PureCM Service may be easier since then the Installer will perform this task (remember to take a copy/backup of C:\PureCM before you do do). 

3. Using a SQL Server database

3.1. Why choose SQL Server as my database?

SQL Server is more scalable than SQLite and will support more concurrent users typically. It also benefits from other inherent SQL Server features such as integrating into your overnight backup procedures. There is, however, a small amount of extra configuration work needed in order to use SQL Server with PureCM.

We typically recommend, when using SQL Server, that you use a SQL Server host located either on the same host as PureCM Server or at least on the same network. If you're looking to support remote clients it may be worth considering using the PureCM Proxy Server.

3.2. Which versions of SQL Server are supported?

PureCM currently supports SQL Server 2005, 2008 and 2008 R2 in any of Standard, Enterprise and DataCenter editions. Using SQL Server Express is not currently a supported configuration.

3.3. What do I need to set up before installing the PureCM server?

  1. Using SQL Server requires the Microsoft ‘SQL Native Client' drivers to be installed before starting PureCM server installation. If they're not present you will be prompted to download them before proceeding.
  2. Create a new database that PureCM will use
  3. Consider the following options:

    1. Database ‘autoshrink' option

      The SQL Server default is to set this to ‘false'. Setting this option to ‘True' is a simple zero maintenance way of handling SQL Server Transaction log truncation. With it set to false you need to handle transaction log backup/truncation in your backup procedures. We would typically recommend that you enable this option unless your Database Administrator thinks otherwise.

    2. Authentication Mode

      The simplest way to allow PureCM to authenticate with SQL Server is to use SQL Server Authentication. With this option, you define a username and password within SQL Server that you provide to the PureCM Installer. PureCM will require an account with most available privileges for the database you choose (as well as SELECT,UPDATE and DELETE the server can also issue CREATE TABLE, DROP TABLE and ALTER TABLE requests during startup/repository creation. Note that we do not recommend use of the default ‘sa' account other than for testing/evaluation (this is the administrative account and has all privileges).

      A slightly better authentication mechanism is to use Integrated/Windows authentication. This means that the Windows account that PureCM is running as must be given access to the database. For this to be easy to administer, it's likely that you'll need to create a Domain Account and specify in the PureCM Server Installer that the PureCM Service should run as this user. The privileges required by the user will be the same as per SQL Server authentication.

    3. Snapshot Isolation

      PureCM works well with the new ‘snapshot isolation' support in SQL Server 2005 and later. This is not enabled by default when creating a database. The Transact/SQL script below will typically need to be run to enable this feature (substituting ‘purecm' for the name of your SQL database below). Snapshot isolation results in reduced locking contention and therefore typically greater throughput.

      alter database purecm set allow_snapshot_isolation ON
      alter database purecm set read_committed_snapshot ON

      select is_read_committed_snapshot_on,
      snapshot_isolation_state from sys.databases where name='purecm'


3.4. What connection details do I need to enter during installation?

The PureCM server installation will prompt you for the following details:


The fields that need to be entered are as follows:-

  • Server Name - Defaults to ‘localhost' and should be the DNS or IP Address of your Microsoft SQL Server machine.
  • SQL Instance - Needs to be defined if you don't intend to use the default SQL Server instance
  • Database Name - The name of the database you want PureCM to store its data in
  • Username - If you use SQL Server Authentication (and not Integrated/Windows authentication) you need to supply a username and password.
  • Password - Again, only used for SQL Server authentication


4. SSL Security

4.1. Setup SSL Security

The PureCM Server can enable connections from clients over an SSL/TLS link.  This provides transport layer security which is necessary in order to stop other people from intercepting network traffic between client machines and the server in order to find passwords etc. .

PureCM does not supply or create the Certificate that is used as the basis of the SSL link.  It is the responsibility of the System Administrator to ensure that a suitable certificate is installed.  A certificate can be obtained by one of :-

  • A commercial Certificate Authority such as VeriSign or Thawte
  • A free CA such as CACert
  • Your Company's CA (e.g. the Microsoft CA on Windows 2003)
Typically we find that the easiest way to obtain the Certificate is to use the IIS Administration tools to obtain an SSL Certificate for the IIS Webserver on the machine (see this link for details). It can sometimes be useful when you import the Certificate to your machine that you mark the Private Key as 'Exportable' (which then allows you to backup the Certificate to a .pfx file).

Once you have the Certificate on your machine you need to make it available to the PureCM Service. We recommend using the Microsoft WinHttpCertCfg.exe Utility. A typical command line would be :-
C:\Program Files\Windows Resource Kits\Tools\WinHttpCertCfg.exe -g -c LOCAL_MACHINE\MY -s "IssuedToName" -a "AccountName"
Where "IssuedToName" would typically be the 'Common Name' of the Certificate (e.g. 'myserver.mycompany.com') and 'AccountName' should match the account that the PureCM Service runs under (by default 'Local Service' which would typically be specified as 'SERVICE' or 'ServerName\SERVICE' (where ServerName is the name of the Server). Once complete this should allow PureCM Service the right to access the Private Key part of the Certificate (which it needs in order to process SSL messages).

The PureCM Service on Windows will attempt to load the certificate from the store on startup.  If anything is goes wrong with this process you should see messages logged to the Application Event Log (events I0007,W0128,W0109 are the most significant here). By default, PureCM attempts to load a Certificate with a Common Name matching the FQDN (Fully Qualified Domain Name) of the Server (e.g. 'myserver.mycompany.com'). If your Certificate doesn't match the Hostname for whatever reason, you can override this behaviour by setting a Registry value
 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\PureCM Service\Parameters\CertCommonName
which should be of type REG_SZ and should be set to the Common Name of your Certificate.
If you have problems using a certificate and/or SSL with PureCM, please contact Support by submitting a ticket. 

4.2. Restrict server access to SSL connections

If you want to maximise the security of your server you can opt to only allow SSL connections.  This is achieved using the 'Policy Admin' node in the GUI when logged in as an administrative user.

If you edit the 'Default Policyset' (which applies to everyone that logs in) you can see the list of current policies as in the image below.


Policy List



You then need to add the 'SSL/TLS Connections only' and ensure it's set to 'True'. 


New Policies


5. Problems installing server

5.1. Error 1920. Service failed to start

During installation of the server, if you encounter the message .. 

' Error 1920. Service PureCM Service (PureCM Service) failed to start. Verify that you have sufficient privileges to start the system services.'

 After confirming that you do indeed have the relevant permissions, please have a look in your application event log to see if there are any useful messages.

 The links below may be of help ..

5.2. Missing Microsoft Visual C++ Redistributable Package

The message ..

SideBySide event 'Microsoft.VC90.CRT, processor ... could not be found ..'

implies the Microsoft VC++ redistibutable package is missing. We distribute this with the installer, but occasionally this doesn't install correctly. Try restarting your machine and trying the installation again.

If this fails again you can get the package from the Microsoft
website ..


5.3. The PureCM service is not being removed on uninstall

It is a known issue that if you have the Windows 'Administrative Tools | Services' window open then the PureCM Server will not uninstall properly. This is a common Windows issue because the Services window keeps a handle on all running services.

The solution is to close the Services window before uninstalling.

Another potential problem can occur if one of the PureCM dlls has been registered as a shared dll. In the Registry Editor check the 'HKLM/Software/Microsoft/Windows/CurrentVersion/SharedDLLs' key does not contain any values which reference a PureCM file. You can safely remove any values which do.

If you are still having problems then please run 'purecm-server-win32-[version].exe /uninstall /log log.txt' in a command line and send the log to support@purecm.com.

5.4. Unable to install without uninstalling the previous version

There have been a few instances where the latest version is not able to install because the previous version is not uninstalled. To get round this do the following:

In a command prompt run the installer with the '/extract .' parameters (e.g. purecm-server-win32-10-1b.exe /extract .).

This will generate a msi file.

Run the msi directly. If this gives you the option to 'Repair/Remove' then select to remove the installation. Then try running the original exe installer again.