Install silently using a dedicated service account

If you want to install XProtect VMS unattended, you must start the installer with the arguments in the table below. Arguments must be created and saved in an arguments XML file that you generate prior to the installation.

Argument Description
--quiet Forces silent installation.
--arguments The path to the arguments XML file with full configuration. The path could be: C:\Arguments.xml.
--license The path to the license file.

Using a dedicated service account

This description is based on the use of a dedicated service account for integrated security. The services always run on the dedicated account no matter which user is logged in, and you must make sure that the account has all required permissions to, for example, perform tasks and to access network, files and shared folders.

The service account must be specified in an argument XML file for the following keys:

SERVICEACCOUNT

SERVICEACCOUNT_NONLOC

The password for the service account must be specified in plain text in the value for the following key:

ENCRYPTEDPASSWORD

Example: command line to start the installation in silent mode:

"Milestone XProtect VMS Products 2023 R2 System Installer.exe" --quiet --arguments=C:\Arguments.xml --license=C:\M01-C01-231-01-ABCDEF.lic

Example: Arguments file based on the use of a dedicated service account

<?xml version="1.0" encoding="utf-8"?>
<CommandLineArguments xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:milestone-systems">
  <InstallEnvironment>
    <Parameters>
      <KeyValueParametersOfStringString>
        <Value>true</Value>
        <Key>USERACCOUNT</Key>
      </KeyValueParametersOfStringString>
      <KeyValueParametersOfStringString>
        <Value>domain\sampleaccount</Value>
        <Key>SERVICEACCOUNT</Key>
      </KeyValueParametersOfStringString>
      <KeyValueParametersOfStringString>
        <Value>domain\sampleaccount</Value>
        <Key>SERVICEACCOUNT_NONLOC</Key>
      </KeyValueParametersOfStringString>
      <KeyValueParametersOfStringString>
        <Value>sampleaccountpasswordplaintext</Value>
        <Key>ENCRYPTEDPASSWORD</Key>
      </KeyValueParametersOfStringString>
      <KeyValueParametersOfStringString>
        <Value>%PROGRAMFILES%\Milestone</Value>
        <Key>TARGETDIR</Key>
      </KeyValueParametersOfStringString>
      <KeyValueParametersOfStringString>
        <Value>true</Value>
        <Key>IsXPCO</Key>
      </KeyValueParametersOfStringString>
      <KeyValueParametersOfStringString>
        <Value>true</Value>
        <Key>IsDPInstaller</Key>
      </KeyValueParametersOfStringString>
      <KeyValueParametersOfStringString>
        <Value>false</Value>
        <Key>LEGACY</Key>
      </KeyValueParametersOfStringString>
      <KeyValueParametersOfStringString>
        <Value>yes</Value>
        <Key>SQL-KEEP-DATA</Key>
      </KeyValueParametersOfStringString>
      <KeyValueParametersOfStringString>
        <Value>no</Value>
        <Key>SQL-CREATE-DATABASE</Key>
      </KeyValueParametersOfStringString>
      <KeyValueParametersOfStringString>
        <Value>True</Value>
        <Key>IS_EXTERNALLY_MANAGED</Key>
      </KeyValueParametersOfStringString>
      <KeyValueParametersOfStringString>
        <Value>Data Source=server.database.windows.net;Initial Catalog=Surveillance;Persist Security Info=True;TrustServerCertificate=True;Authentication=ActiveDirectoryIntegrated</Value>
        <Key>SQL_CONNECTION_STRING_MS</Key>
      </KeyValueParametersOfStringString>
      <KeyValueParametersOfStringString>
        <Value>Data Source=server.database.windows.net;Initial Catalog=Surveillance_IDP;Persist Security Info=True;TrustServerCertificate=True;Authentication=ActiveDirectoryIntegrated</Value>
        <Key>SQL_CONNECTION_STRING_IDP</Key>
      </KeyValueParametersOfStringString>
      <KeyValueParametersOfStringString>
        <Value>Data Source=server.database.windows.net;Initial Catalog=Surveillance_IM;Persist Security Info=True;TrustServerCertificate=True;Authentication=ActiveDirectoryIntegrated</Value>
        <Key>SQL_CONNECTION_STRING_IM</Key>
      </KeyValueParametersOfStringString>
      <KeyValueParametersOfStringString>
        <Value>Data Source=server.database.windows.net;Initial Catalog=Surveillance;Persist Security Info=True;TrustServerCertificate=True;Authentication=ActiveDirectoryIntegrated</Value>
        <Key>SQL_CONNECTION_STRING_ES</Key>
      </KeyValueParametersOfStringString>
      <KeyValueParametersOfStringString>
        <Value>Data Source=server.database.windows.net;Initial Catalog=Surveillance_LogServerV2;Persist Security Info=True;TrustServerCertificate=True;Authentication=ActiveDirectoryIntegrated;Application Name=Surveillance_LogServerV2</Value>
        <Key>SQL_CONNECTION_STRING_LOG</Key>
      </KeyValueParametersOfStringString>
    </Parameters>
  </InstallEnvironment>
</CommandLineArguments>

Prerequisites to be completed prior to performing the installation:

  • The service account as well as the account used to perform the installation must be created.

  • The service account must be allowed to log on as a service on the computer where the installation is performed. See Log-on-as-a-service.

  • The databases to be used by XProtect must be created, and the databases must be named in the arguments XML file, for example:

Database name
Surveillance
Surveillance_IDP
Surveillance_IM
Surveillance_LogServerV2
  • The databases must be configured according to the following list:

Database configuration

The default collation must be set to “SQL_Latin1_General_CP1_CI_AS

ALLOW_SNAPSHOT_ISOLATION must be set to ON

READ_COMMITTED_SNAPSHOT must be set to ON

  • An SQL server logon must be created for the service account and for the account used to perform the installation in each of the databases. A database user must be created in each of the databases, and the user must be a member of the db_owner role on each database.