Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.

The Verba PowerShell Deployment Toolkit simplifies the process of the Verba deployments and upgrades in large environments. The toolkit consists of two PowerShell files:

  • autoinstall.ps1 : Configurable PowerShell script for uninstalling, installing and upgrading Verba servers and components.
  • verba.psm1 : A PowerShell library which contains a collection of functions usable for Verba deployments. For the documentation of the functions see: Verba PowerShell Deployment Library


Verba Prerequisites

The Verba PowerShell Deployment Toolkit does not install the prerequisites of the Verba services (Java, Visual C++, etc.) nor does the registration of the SfB/Lync Filter application in the SfB/Lync pool. These have to be done manually.

Deployment Toolkit Prerequisites


Make sure the x64 version of PowerShell (C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe) is being used!

On the machine where the Verba Powershell Deployment Toolkit will be started, the SqlServer Powershell module has to be installed. Do the following steps in order to install the module:

Step 1 - Download and install PowerShell 5.1. After the installation, restart the machine.

Step 2 - Open PowerShell as administrator.

titleScript execution policy

Script execution may be restricted in the domain. In order to remove the restriction, execute the following command:

Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope LocalMachine -Force

Step 3 - Execute the following command. This will set the security protocol being used at the subsequent commands when communicating through the internet.

Code Block
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

Step 4 - Execute the following command. When asked, type in Yes and press enter to allow the operation. This will download the NuGet package provide provider, and registers it as the default repository for PowerShell modules.

Code Block
Install-PackageProvider -Name NuGet -MinimumVersion -Force

Step 5 - Execute the following command. When asked, type in Yes and press enter to allow the operation. This will download the SqlServer module.

Code Block
Install-Package -Name SqlServer -RequiredVersion 21.1.18235 -AllowClobber

Group Memberships

The Windows User who runs the script (logged in to the server) must be added to the following local groups at all Verba servers.

  • Administrators
  • Remote Management Users


If database mirroring is used, make sure that the primary database (based on the Verba configuration) is the principal!


The Verba PowerShell Deployment Toolkit can be configured by editing the autoinstall.ps1 file. The configuration part can be found at the beginning of the file, between the "Configuration" and "End of configuration" lines. Edit the values of the following variables:

VariableDescriptionExample value
$installerPathA network folder which contains the Verba executables (VerbaRecording.msi, VerbaAdditionalRoles.msi). The network folder has to be accessible for the windows user which is used for running the script."\\storage\Verba\8.8\"
$tempPathFolder path for temporary files. This folder will be created on each server."C:\verba_install\"
$appPathVerba installation directory."C:\Program Files\Verba\"

Tests the servers
The script test the following:

  • If the script can log into the server
  • If the Verba prerequisites are installed
  • If the server can reach the database server on the port 1433
  • Is there enough disk space
$uninstallSets whether the script will uninstall the specified servers. The script removes the Verba software, the registry set and the files from the server. This setting is ignored when $upgrade=1 is used.1

Installs the Verba application on the servers. This setting is ignored when $upgrade=1 is used.


Sets whether the script will upgrade the specified servers. The upgrade involves the following process:

  • Backups the existing configuration in the registry and the list of activated Verba services.
  • Uninstalls the current Verba software.
  • Installs the new version using the executables specified at the $path value.
  • Restores the previously saved configuration (registry).
  • Activates and starts the Verba services based on the previous configuration.

If turned on, then the $uninstall, $install, $backupconfiguration and $restoreconfiguration values will be ignored.

$backupconfigurationBackups the list of the activated services and the registry from the servers. The filenames going to be hostnames of the servers. If the files already exist, the filename going to end with .bak. This setting is ignored when $upgrade=1 is used.1
$restoreconfigurationRestores the list of the activated services and the registry from the files named with the corresponding server hostnames. This setting is ignored when $upgrade=1 is used.1
$apiUsernameVerba API username.verbaapi
$apiPasswordVerba API password.
$AdministratorUsernameVerba Administrator username.administrator
$AdministratorPasswordVerba Administrator password.
$keepLogsSets whether the script should remove the log folder in case of uninstalling or upgrading.1
$resetApiPasswordSet to $true if you want to reset the API user's password. It is recommended when you are upgrading from 8.9.$false
$removeLegacyCertificateSettingsSet to $true if you want to delete old legacy certificate settings from the profiles. It is recommended when you are upgrading from 8.9.$true

The properties of the SSL certificate generated for the Media Repository or Single server. In case of multiple Media Repository server, this setting also has to be multiplied. ($sslCertificate1, $sslCertificate2, ...) Usage:

New-VerbaCertificateRequest  -Subject <string> [-SAN <string> -FirendlyName <string> -Country <string> -State <string> -City <string> -Organization <string> -OrganizationUnit <string>]

New-VerbaCertificateRequest  -Subject "testmr1.verbatest.local" -SAN "testm1,"
$skipNodeRegistrationCheckIf enabled, it turns off the automatic node registration at the installed Verba servers.$false

List of Verba servers and their role and certificate configuration.

Install server with legacy configuration without Advanced API
New-VerbaServer -FQDN <string> -Role <string> -UseLegacyAPI [<CommonParameters>]

Install server with Advanced API with existing certificate
New-VerbaServer -FQDN <string> -Role <string> -ServerCertThumbprint <string> [-UseAdvancedAPI] [<CommonParameters>]

Install server with Advanced API and generate Verba signed certificate
New-VerbaServer -FQDN <string> -Role <string> [-UseAdvancedAPI] [-GenerateCertificates] [-CA] [-CAFQDN <string>] [-CertificateRequest <CertificateRequest>] [-SSLCertifica
teRequest <CertificateRequest>] [<CommonParameters>]

Install server with legacy configuration (Verba 8.x) without Advanced API
$servers = @(
(New-VerbaServer -FQDN "testmr2.verbatest.local" -Role MR -UseLegacyAPI -SSLCertificateRequest $sslCertificate),
(New-VerbaServer -FQDN "testrs1.verbatest.local" -Role RS -UseLegacyAPI)

Install Verba 9.x with Verba signed certificates
$servers = @(
(New-VerbaServer -FQDN "testmr1.verbatest.local" -Role MR -CA -UseAdvancedAPI -GenerateCertificates -SSLCertificateRequest $sslCertificate),
(New-VerbaServer -FQDN "testrs1.verbatest.local" -Role RS -CAFQDN "testmr1.verbatest.local" -UseAdvancedAPI -GenerateCertificates),
(New-VerbaServer -FQDN "testrs2.verbatest.local" -Role RS -CAFQDN "testmr1.verbatest.local" -UseAdvancedAPI -GenerateCertificates),
(New-VerbaServer -FQDN "testfe1sfb.verbatest.local" -Role LF -CAFQDN "testmr1.verbatest.local" -UseAdvancedAPI -GenerateCertificates),
(New-VerbaServer -FQDN "testfe2sfb.verbatest.local" -Role LF -CAFQDN "testmr1.verbatest.local" -UseAdvancedAPI -GenerateCertificates)

Install Verba 9.x with existing certificates
$servers = @(
(New-VerbaServer -FQDN "testmr1.verbatest.local" -Role MR -ServerCertThumbprint 7E3C477D6A308ADAAE1AA9E2C5AE8BE0744A6BD1 -UseAdvancedAPI -SSLCertificateRequest $sslCertificate),
(New-VerbaServer -FQDN "testrs1.verbatest.local" -Role RS -ServerCertThumbprint 7E3C477D6A308ADAAE1AA9E2C5AE8BE0744A6BD1 -UseAdvancedAPI),
(New-VerbaServer -FQDN "testrs2.verbatest.local" -Role RS -ServerCertThumbprint 7E3C477D6A308ADAAE1AA9E2C5AE8BE0744A6BD1 -UseAdvancedAPI),
(New-VerbaServer -FQDN "testfe1sfb.verbatest.local" -Role LF -ServerCertThumbprint 7E3C477D6A308ADAAE1AA9E2C5AE8BE0744A6BD1 -UseAdvancedAPI),
(New-VerbaServer -FQDN "testfe2sfb.verbatest.local" -Role LF -ServerCertThumbprint 7E3C477D6A308ADAAE1AA9E2C5AE8BE0744A6BD1 -UseAdvancedAPI)


The startup type of the Verba services:

  • 0: Disabled
  • 1: Manual
  • 2: Automatic
  • 3: AutomaticDelayed
$serviceUsernameThe Windows domain account used as a service account in the case of the Verba SfB/Lync Filter installation."contoso\verba-service"
$servicePasswordThe password of the Windows domain account."P@ssw0rd"
$databaseHostThe hostname of the server where the Verba database hosted."SQLSERVER"
$databaseNameThe name of the Verba database."Verba"
$sqlAuthSets whether SQL Authentication will be used for the SQL connection. If set to 0, then Windows authentication will be used for the SQL connection.1
$sqlUsernameUsername for the SQL connection. If the $sqlAuth setting is set to 1, then a SQL user has to be provided. If the $sqlAuth setting is set to 0, then a Windows domain user has to be provided in "domain\user" format."verba-user"
$sqlPasswordThe password of the SQL connection."P@ssw0rd"
$enableCouldModeSets whether cloud mode will be used for the Node Manager1
$mrPoolNameThe Media Repository pool name."testmr1"
$mrPortNumberThe port used at the Media Repository for the incoming registration requests.4432
$tokenPasswordThe password of the registration token."P@ssw0rd"

When the configuration is done, the script can be started.

Running the Deployment Toolkit

In order to run the Deployment Toolkit, start the autoinstall.ps1 script with an administrator PowerShell.

At the start of the execution, the script will ask if you want to enable CredSSP authentication. This is required if Windows authentication is being used for the SQL Server access.