Installing the Collector

Contents

Installing the Collector

You must install the Collector in all the devices from which you want to get end-user analytics. Depending on the number of devices and their geographical distribution in your corporate network, the installation of the Collector may be a technically challenging task.

The recommended way to install the Collector and keep it up to date is to use the Updater, a component that verifies the presence of the Collector and its version in the devices of the end-users and automatically installs or updates it when needed. You are free nevertheless to choose the installation method that best suits your needs.

For medium to large size setups, the installation of the Collector or the Updater requires the use of automatic deployment tools in practice.

Installing the Collector with the Updater

Nexthink recommends to install and update the Collector with the help of a single component called the Updater, especially when you have to manage a large number of devices. By using the Updater, you can easily control the update process of the Collector from the Finder.

The Updater is a small Windows service that detects whether the Collector is installed in a single computer or not. If the Collector is indeed installed, the Updater can then detect if the Collector is up-to-date or if there is a new version of the Collector available. The Updater works in collaboration with the Engine to know if a Collector is outdated and, if this is the case, download and install the most recent version of the Collector from a centralized location. The configuration file of the Engine stores the installation options for the Collector and the configuration parameters of the Updater. Modify these settings following the instructions in the section Updating the Collector.

What you will need One or more client computers
Web access to the console
What you need to know Engine IP address or DNS name
TCP port number where the Engine is listening for the Updater

The installation of the Updater is very flexible. There are different possibilities to install the Updater in your end-user computers and you may combine them as you like, as long as they do not interfere with each other. Depending on your particular needs, you may want to take one of the following approaches:

  1. Individual installation: you install the Updater on a single machine at a time, providing the configuration parameters of the Updater (Engine IP address and listening port number for Updater) to the setup program.
  2. Manual deployment: instead of having to provide the configuration parameters of the Updater at every installation, you may want to generate a setup program holding pre-set configuration parameters with the help of Nexthink V5 Updater Installer tool. Then, you distribute the generated setup program to the end-user computers and execute it by whatever means you prefer (for instance, using a remote execution program such as psexec).
  3. Deployment with external tools: you can also use your preferred deployment tool to distribute and install the Updater in your set of end-user computers.

No matter what option you chose, if you installed the Updater in a client device with the correct configuration parameters, you are now able to control the installation of the Collector in that device from the Finder. The Finder not only lets you install the Collector, but it also interacts with the Engine and the Updater to let you see the update status of the Collector on every device. With the help of the Finder, you are able to manage the Collector deployment process and follow it step by step.

Installing the Updater on a single device

To install the Updater in a single machine, a setup program in the form of an MSI package is provided. Get the MSI package of the Updater from the Web Console:

  1. Open the Web Console in your web browser.
  2. Go to the Engines tab.
  3. Select the Downloads section.
  4. Download the Nexthink Collector Archive, a ZIP file that holds a set of tools to install the Collector.
  5. Extract the file NEXThink_Updater.msi from the Collector Archive.

The MSI can work both in interactive or silent modes. In interactive mode, you set the configuration parameters of Updater as you are asked to do so by the setup program. Alternatively, you can install the Updater silently by providing the configuration parameters in the command line.

To install the Updater in interactive mode:

  1. After retrieving the setup program of Updater from the Engine Downloads page, execute it in your client computer by double-clicking on the MSI file (its name is NEXThink_Updater.msi). The welcome screen of the setup program is displayed, including Updater version information. Click on Next. Nexthink Updater Setup - Step1.png
  2. Set the IP address or DNS server name of the Engine and the TCP port where it listens for the Updater requests. Remember that these values must match the values that you set in the configuration of Engine. Nexthink Updater Setup - Step2.png
  3. The setup program now asks you to confirm your settings or go back to review them and, possibly, modify them. Nexthink Updater Setup - Step3.png
  4. Once you are sure about the settings, click on Install to start the actual installation process.
  5. After a few seconds, the setup is completed and Updater is successfully installed. Click Finish to end the installation.


Alterinatively, you can install the Updater silently by using the command line. You use the standard Windows Installer command line program msiexec.exe for that purpose. In silent mode, instead of supplying the Updater configuration parameters interactively, you specify them as properites within the same command that launches msiexec.exe. The public properties of Updater are:

  • UPD_IP: property holding the Engine IP address or DNS name.
  • UPD_PORT: property holding the port number where the Engine is listenting for the Updater requests.
  • UPD_HTTPS: this property is optional and it should not be normally changed. When set to 1, Updater uses the secure protocol HTTPS to communicate with the Engine. When set to 0, Updater uses HTTP instead. By default, this property is set to 0.

To install the Updater silently:

  1. Open a Windows command line by pressing Windows key + R in your keyboard and then type cmd followed by [ENTER].
  2. A command line interface window opens. Type the following command on it:
    msiexec.exe /qn /i Nexthink_Updater.msi UPD_IP=192.168.84 UPD_PORT=8888
  3. Updater installs without giving any notification to the user.

Generate the Nexthink Updater Installer

For installations with a large number of end-user computers, specifying configuration settings for the Updater in every machine can be tedious and error prone. The Nexthink Updater Installer lets you create a silent setup program with the settings that you choose embedded in it.

  1. Connect to Console and go to Engine > Downloads
  2. Download the complete Nexthink Collector archive: you get a zip file called collector-<version number>.zip.
  3. Unzip the archive with your favorite decompression tool and extract the Nexthink Updater Installer. This is the file NEXThink_Updater_Installer.exe that you will find under the installer directory once you unzip the archive.
  4. Execute the Nexthink Updater installer and set the configuration values for the Engine IP address, Engine port for the Updater and protocol (HTTPS or HTTP, as explained above). Nexthink Updater Installer.png
  5. Specify additional options:
    • Hide from Add/Remove programs prevents end-users from uninstalling Updater.
    • Support Server Installations (XenApp, RDS) indicates whether the setup program should also install in server versions of Windows or not. Usually, you do not want to install Collector nor Updater in your servers.
    • Output Directory is the path where you want the setup program to be generated, that is, the executable that you will use to install Updater in your end-user computers.
    • Logs Directory specifies the location where the Updater installer will upload error messages in case of problems with the installation of Updater. We recommend that you specify a shared folder in your network for this field. All Updater installers will then report errors to the same location. (By default, the error log goes into the %TEMP% folder)
  6. Click on Create and the program generates an executable file and a text file with the configuration parameters that you just entered in the location that you specified. This executable is able to install Updater in all the versions of Windows supported by Updater.

Installing the Collector without the Updater

What you will need One or more client computers
What you need to know Engine IP address or DNS name
UDP port number where the Engine is listening for the Collector

Installing the Collector on a single computer

The Collector MSI package can be used for installing Collector in two modes: interactive mode and silent (or unattended) mode. In the latter case, no user interaction is required once the installation process is started.

To install the Collector in interactive mode:

  1. Double-click the Nexthink Collector MSI file (NEXThink_Collector.msi) and the following Screen is displayed.Nexthink Collector Setup - Step1.png
  2. Enter the IP address or DNS of the Engine and the UDP port open for Collector communication. Nexthink Collector Setup - Step2.png
  3. Click Install to begin the installation. Nexthink Collector Setup - Step3.png
  4. Click Finish to close the dialog and end the installation. Nexthink Collector Setup - Step4.png

After the MSI has successfully installed the Collector (and the Control Panel extension if selected), you may be prompted to reboot the computer if you are upgrading the Collector. It is best practice not to install the Nexthink Collector Control Panel Extension when deploying the Collector on a production environment. The Collector Control Panel Extension is an optional tool and is not required on the endpoint system for Collector to function correctly. This additional component has been developed in order to assist during troubleshooting or testing phase.

Alternatively, use msiexec.exe on the command-line to install the Collector in silent mode. The executable program msiexec.exe comes pre-installed with every Microsoft Windows operating system. Custom parameters are provided directly on the command-line and they are not saved from one installation to another. Therefore, this is not the recommended method to install the Collector, since commands are prone to typos. Instead, for a single installation, use the graphical installation method. For larger deployments without the Updater, we recommend to use the MSI Transform.

The mandatory parameters are:

  • DRV_IP: this property must be set to the Engine IP address or DNS name.
  • DRV_PORT: this property must be set to the Engine port number.

Here is an example of an unattended installation:

  1. Type in the command line:
    msiexec.exe /qn /i Nexthink_Collector.msi DRV_IP=192.168.84 DRV_PORT=999 CPL_INSTALL=1
  2. Wait for the installation process to complete.

For a comprehensive list of available options for the Nexthink Collector, see the Collector MSI Parameters reference.

See also: Windows Installer (msiexec.exe) Command-Line options Reference.

Deploying the Collector using the Nexthink Collector Installer

The Nexthink Collector Installer is a tool that helps you deploy the Collector in situations where you cannot use the Updater. The tool is found in the archive of the Collector (collector-<version number>.zip) that you can find in the Engine->Downloads section of the Web Console. The name of the file is NEXThink_Collector_Installer.exe.

The Collector Installer generates a standalone executable file that holds the MSI files for both the 32-bit and 64-bit versions of the Collector. Therefore, you can use the same executable to install the Collector on any machine that runs a supported version of Windows. When generating the executable, use the graphical interface of the Nexthink Collector Installer to set the installing options of the Collector:

Nexthink Collector Installer

Specify the configuration settings of the Engine that will receive Collector information:

  • Address: DNS or IP address of the Engine.
  • Port: Number of the UDP port where the Engine listens to data from the Collectors.

If you check the option Reuse configuration during upgrade, the installer gets these settings from the configuration of any Collector previously installed in the device to upgrade. If no Collector is present in the device at the time of the upgrade, the installer reverts to the provided Address and Port values as Engine settings.

There are some other self-explanatory installation options that you can check as well. In particular, check the option Web and Cloud Data if you have purchased the Web and Cloud module. Furthermore, click the button Settings to the right of this option to open a dialog where you can list the domains for which you want to store the full URL paths of web requests. That is, for every web request that falls under one of the specified domains, the Collector reports the full URL path to the Engine and not just the domain.

Finally, you specify a couple of directories:

  • Ouptut directory: the place where the executable files to install or uninstall the Collector are generated.
  • Logs directory: the network place where the installation logs of the Collectors deployed with this method are written.

When you click on Create, three files are generated:

  • NEXThink_Collector[engine_address].exe: Executable file to install the Collector.
  • NEXThink_collector_Uninstaller[engine_address].exe: Executable file to uninstall the Collector.
  • NEXThink_Collector[engine_address].exe.txt: Text file with the list of the settings used to create the executable installer.

Nexthink Collector Installer error codes

The installer executable returns one of the following values:

  • 0: Success; reboot is not required.
  • -1: Success; reboot is required.
  • 3: Failure; Collector installation has started but msiexec failed.
  • other: Failure; the actual value corresponds to a Windows Internal error code.

The uninstaller executable returns one of the following values:

  • 0: Success; reboot is not required.
  • -1: Success; reboot is required.
  • 1: Success; Collector was not found (nothing was uninstalled).
  • 3: Failure; Collector uninstallation has started but msiexec failed.
  • other: Failure; the actual value corresponds to a Windows Internal error code.

Interaction of the Collector with other software

To get valuable information from a device, part of the Collector needs to run in privileged mode as a kernel driver. Contrary to user applications, the programs that run in privileged mode can access the memory and the hardware of the device directly. Typically, these are the programs that control the peripherals in your device; such as the mouse, the keyboard, the hard disks or the network card. Other special programs, like antivirus software, may also need to run in privileged mode, at least partially. Errors in programs that run in privileged mode are not protected by the process isolation provided by the operating system and, therefore, they may result in system failure. Moreover, since all of these programs share the same memory space, a misbehaviour of one of them can destabilize all the others.

The Collector has been carefully designed and thoroughly tested to avoid any kind of program errors. It has also been engineered following the best practices for the development of kernel drivers, behaving as a good citizen with respect to the other drivers that are loaded into the system. Still, in some very rare cases, an elusive programming error may defeat our rigorous testing process or a misbehaving third-party driver can trigger a fault in the Collector. In these unfortunate situations, the Collector may become unstable and possibly lead to a system failure in the device of the end-user.

To protect you against driver misbehaviour, keep your Windows drivers up to date. Older versions of Windows drivers often contain more bugs that can lead to instabilities. If a third-party driver consistently destabilizes the Collector, the Collector can prevent the system from crashing again and again if you activate its Crash Guard Protection. This mechanism cancels the loading of the Collector at system startup if the system crashes more than a specified number of times within a configurable security interval after system boot. See the definition of the parameters DRV_CRASHGUARD and DRV_CGPI of the Collector installer to configure the Crash Guard Protection during installation. Use the Control Panel extension of the Collector or the Collector configuration tool to modify the settings of the Crash Guard Protection after installation.

In any case, if you suspect that there is a compatibility problem between any of the drivers loaded into the end-user devices of your company and the Collector, please contact Nexthink Support.

Deploying the Updater or the Collector through GPO

In this section, learn how to deploy the Updater or the Collector over large groups of end-user devices using a standard Window technology such as Active Directory Group Policy. Nexthink recommends you to deploy the Updater rather than the Collector. The Updater, in its turn, installs the Collector and maintains it up-to-date in succesive updgrades. Additionally, it lets you follow and control the deployment process through the Finder. If you directly deploy the Collector instead, you need to redeploy it on every new update of the software. The installation policy in your company may however require you to directly deploy the Collector and avoid any installer agent such as the Updater. Choose whether to deploy the Updater or directly the Collector depending on your specific circumstances.

This section assumes that you are a systems administrator with a basic understanding of the Windows operating system and deploying enterprise software, and that you are familiar with Group Policy and Active Directory.

Creating a distribution point

  1. Log on to the server as an Administrator user.
  2. Create a shared network folder (this folder will contain the MSI package).
  3. Set permissions on this folder in order to allow access to the distribution package.
  4. Copy MSI(s) in the shared folder.
  5. Copy MST(s) generated in the shared folder.

Creating a Group Policy Object

  1. Click on the Start button, go to All Programs, select Administrative Tools and then select Active Directory Users and Computers.
  2. Right-click your domain name in the console tree, select New and click Organizational Unit.
  3. In the New Object dialog box, type a descriptive name for the new organizational unit, and then click OK.
  4. In the right panel, select Computers and click on the computer that you want add to your Organizational Unit.
  5. Drag and Drop these computers in the name of the Organizational Unit created. In the right panel, select Nexthink_Collector_Deploy, you will see all the computers tied to your Organizational Unit.
  6. Click on the Start button, go to All Programs, select Administrative Tools and then select Group Policy Management.
  7. Right-click your domain name in the console tree and select Create a GPO in this domain, and Link it here....
  8. In the New GPO dialog box, type a descriptive name for the new policy, and then click OK.

Assigning a MSI package

  1. Click on the Start button, go to All Programs, select Administrative Tools and then select Group Policy Management.
  2. Right-click your GPO name and select Edit....
  3. On this Group Management Editor, expand Computer Policies, Software Settings and Software Installation, select New and then click Package....
  4. In the Open dialog box, browse to the distribution point you created for the Nexthink Collector during the distribution point.
  5. Select the MSI file containing the Collector installer you want to deploy, and then click Open.
  6. In the Deploy Software dialog box, select Advanced, and then click OK.
  7. In the Properties dialog box for the package you created.
    1. Click the Deployment tab, and then select Uninstall this application when it falls out of the scope of management.
    2. Click Advanced on the Deployment tab, choose Ignore language when deploying this package, uncheck the option Make this 32-bit X86 application available to Win64 machines, and then click OK.
    3. On the Modifications tab, specify any modification transforms you want to apply when the package is installed by clicking Add and then opening each transform from its network location.
    4. On the Security tab, verify the name(s) of any computer(s) to which you are assigning software.
    5. Click OK to close the Properties dialog box.
  8. In the Group Policy dialog box, expand Computer Configuration, Administrative Templates, and Windows Components.
    1. In the Windows Components folder, select Windows Installer.
    2. Select Always install with elevated privileges.
      1. Select Properties.
      2. In the Always install with elevated privileges Properties dialog box, click the Setting tab, select Enabled, and then click OK.
  9. In the Windows Installer panel of the Group Policy dialog box, right-click Logging, and then select Properties.
    1. In the Logging Properties dialog box, on the Setting tab, select Enabled.
    2. Then, in the Logging text box, type iweaprcv.
    3. Click OK to close the Logging Properties dialog box.
  10. In the Group Policy dialog box, click File, and then click Exit.

Note: The GPO must be propagated to the Active Directory Global Catalog and then to the individual computers. For this reason, allow 5-10 minutes before restarting the computers to which you are assigning the Nexthink Collector, or plan to restart the client computers twice before the system policies are synchronized.

Testing your results

  1. Go to a the target PC that is member of the OU you tied the policy to.
  2. Click Start, Run and type gpupdate /force.
  3. A logoff or a restart message will appear: type Y and Enter.
  4. When you restart, you should see the message Installing Nexthink Collector... for about a minute depending on the speed of your network and pc.
  5. Click Start, Run and type eventvwr.msc to show the event viewer message. In the left pane, select Application, you will see some source events MsiInstaller logged as a Success Audit event.
  6. If you have some errors, go to C:Windows/Temp/Msi.log and see the error log generated.

Redeploying a MSI package

Sometimes you may need to redeploy a package (for example when doing an upgrade). For redeploying a package you can follow these steps:

  1. Click the Start button, go to Programs, select Administrative Tools and then select Group Policy Management.
  2. Right-click your domain name in the console tree and select the Properties context menu.
  3. Go to the Group Policy tab, select the object you used to deploy the package and click Edit.
  4. Expand the Software Settings element (per-user or per-machine) which contains the deployed package.
  5. Expand the Software Installation element which contains the deployed package.
  6. Right-click the package in the right pane of the Group Policy window.
  7. Select the All Tasks menu and click Redeploy application.
  8. Click the Yes button for reinstalling the application wherever it is installed
  9. Close the Group Policy Management Editor, click OK and exit the Group Policy Management.

Note that the GPO must be propagated to the Active Directory Global Catalog and then to the individual computers. For this reason, allow 5-10 minutes before restarting the computers to which you are assigning the Collector, or plan to restart the client computers twice before the system policies are synchronized.

Removing a MSI package

  1. Click on the Start button, go to Programs, select Administrative Tools and then select Group Policy Management.
  2. Right-click your domain name in the console tree and select the Properties context menu.
  3. Go to the Group Policy tab, select the object you used to deploy the package and click Edit.
  4. Expand the Software Settings element (per-user or per-machine) which contains the deployed package.
  5. Expand the Software Installation element which contains the deployed package.
  6. Right-click the package in the right pane of the Group Policy window.
  7. Select the All Tasks menu and click Remove.
  8. Select from the following options:
    • Immediately uninstall the software from users and computers.
    • Allow users to continue to use the software but prevent new installations.
  9. Click the OK button to continue.
  10. Close the Group Policy Management Editor, click OK and exit the Group Policy Management.

Note that the GPO must be propagated to the Active Directory Global Catalog and then to the individual computers. For this reason, allow 5-10 minutes before restarting the computers to which you are assigning the Collector, or plan to restart the client computers twice before the system policies are synchronized.

Deploying the Updater or the Collector through SCCM 2007

In this section, learn how to deploy the Updater or the Collector over groups of end-user devices using Microsoft System Center Configuration Manager. As explained in the deployment through GPO, Nexthink recommends you to deploy the Updater rather than the Collector, but you can choose whether to deploy the Updater or directly the Collector depending on your specific circumstances.

This section assumes that you are a systems administrator with a basic understanding of the Windows operating system and deploying enterprise software, and that you are familiar with SCCM.

Creating a collection

  1. Click on the Start button, go to All Programs, select Microsoft System Center, select Configuration Manager 2007 and then select ConfigMgr Console.
  2. In the Configuration Manager Console, navigate to System Center Configuration Manager / Site Database / Computer Management.
  3. Right-click Collections, and then click New Collection.
  4. On the General dialog box of the New Collection Wizard, enter a name for the collection.
  5. Click Next and click the computer icon, which opens the Create Direct Membership Rule Wizard. Click Next.
  6. On the Search for Resources dialog box:
    1. Click the Resource class drop-down menu and select System Resource.
    2. Click the Attribute name drop-down menu and select Name.
    3. In the Value field enter %, and then click Next.
  7. On the Collection Limiting dialog box, click the Browse... button, select All Windows Workstation or Professional Systems, and then click Next.
  8. On the Select Resources dialog box, select the check box for each of the targeted computer resources.
  9. Click Next, and then on the Finished dialog box, click Finish.
  10. On the Membership Rules dialog box of the New Collection Wizard, click Next.
  11. On the Advertisements dialog box, for now, do not assign an advertisement because it is not yet created.
  12. Click Next. On the Security dialog box, accept the defaults, click Next, and then click Close.

Creating a package source directory

  1. Click on the Start button, go to All Programs, select Microsoft System Center, select Configuration Manager 2007 and then select ConfigMgr Console.
  2. Navigate to System Center Configuration Manager / Site Database / Computer Management / Software Distribution.
  3. Right-click Packages, point to New, and then click Package.
  4. On the General dialog box of the New Package Wizard, enter the:
    • Name
    • Version
    • Manufacturer
    • Language
  5. Click Next and do the the following:
    1. Select This package contains source files.
    2. Click the Set button and then enter the path for the location of the source files in the Source directory field.
  6. Click Next and accept the default settings on all of the following dialog boxes: Data Access, Distribution Settings, Reporting, and Security.
  7. On the Wizard Completed dialog box, click Close.

Creating a distribution point

To use a server as a distribution point for providing packages to distribute packages to your client computers, you must first designate a site system as a distribution point. To select a distribution point for the newly created package:

  1. Right-click Distribution Points, click New Distribution Points, click Next, and then click the check box for the distribution point.
  2. Click Next. Upon completion of the New Distribution Points Wizard, click Close.

Creating a program with setup and install parameters

  1. Right-click Programs, point to New, and then click Program.
  2. On the General dialog box:
    1. Enter a name for the package in the Name field.
    2. In the Command line field, browse and select the appropriate executable file.
    3. In the Run field, click the drop-down menu and select Hidden.
    4. In the After running field, verify the default of No action required is selected.
  3. Click Next and accept the defaults on the Requirements dialog box.
  4. On the Environment dialog box:
    1. Click the Program can run drop-down box and select Whether or not a user is logged on. This will enable Run with administrative rights for the Run mode.
    2. Leave the default for Drive mode to Runs with UNC name.
  5. Click Next.
  6. On the Advanced dialog box, select the check box for Suppress program notifications, and then click Next.
  7. To view the Summary dialog box, click Next.
  8. To finish the process of creating the new program, click Next, which will then display the Wizard Completed dialog box.
  9. To exit from the New Program Wizard, click Close.

Verify that the package was installed on the distribution point, by:

  • Navigating to System Center Configuration Manager, Site Database, Computer Management, Software Distribution, Packages, Collector package name, Package Status, Package Status.
  • Checking the status changing from Install Pending to Installed.

Creating the advertisement

  1. Right-click Advertisements, point to New, and then click Advertisement.
  2. On the General dialog box of the New Advertisement Wizard:
    1. Enter a name for the advertisement in Name field.
    2. Click the Browse button for the Package field, and click on the package you want to advertise and then click OK.
    3. Click the Browse button for the Collection field, click on the collection.
  3. Click OK, and then click Next.
  4. On the Schedule dialog box, enter the date and time in the Advertisement start time fields for when the advertisement will begin, and then click the asterisk button for Mandatory Assignments.
  5. On the Assignment Schedule dialog box, click the Schedule button and enter the same date and time that you previously entered in the Advertisement start time fields on the Schedule dialog box.
  6. To return to the Schedule dialog box, click OK.
  7. Accept the default values on the Distribution Points, Interaction, Security, and Summary dialog boxes.
  8. Upon successful completion of the New Advertisement Wizard, click Close on the Wizard Completed dialog box.

On the client, wait for the next Machine Policy Retrieval & Evaluation Cycle.

Testing your results

  1. Go to a the target PC that is member of the Collections you have created to deploy.
  2. Click Start, Run and type eventvwr.msc to show the event viewer message.
  3. In the left pane of the Event Viewer, select Application, you will see some source events MsiInstaller logged as a Success Audit event.
  4. If you have some errors, Go to C:Windows/Temp/Msi.log and see the error log generated.

Removing the package

  1. Open the Systems Management Server console and expand the Package that contains the Collector.
  2. Open the Program Properties dialog box, and then on the General tab:
    1. In the Command line field, browse and select the Collector file.

The package will be removed silently at the next Machine Policy Retrieval & Evaluation Cycle from the end-user device.

Installing the Collector with Windows Master image

WARNING The Nexthink Collector and Nexthink Updater must not be included in a Windows Master image without checking the procedure with Nexthink Professional Services or Certified Partners.
The operations described in this article should only be performed by a Nexthink Engineer or a Nexthink Certified Partner.

If you need help or assistance, please contact your Nexthink Certified Partner.