Silent install Unified Remote

Unified Remote is a mobile app that let’s you control your computer from your mobile phone.

Unfortunately there is no silent installer, MSI file or anything made available to easily silent install Unified Remote, yet…

Illustration image of Unified Remote on mobile devices

Solving the driver problem

Unified Remote comes with a dedicated driver to work. So even if you run a silent install this will eventually popup.

The reason for this is because Windows does not know if you should trust the certificate of this driver, so it is asking you.

The popup defeats the purpose of a silent install, right?

There is no way to leave the driver out either ๐Ÿ˜ž. The official documentation says you can just leave out “Enable driver input simulation“, but the popup still appears.

The best way to get the driver installed silently is by installing the driver separately prior to the software installation.

In order to do that we need a second “reference machine“, but we only have to do this once so don’t worry.

  1. First, install Unified Remote on a reference machine
  2. Backup the Unified Remote driver from the reference machine
  3. Manually install the driver certificate to the reference machine
  4. Export the certificate from the reference machine

Then we can proceed to make a silent installer that installs the certificate and continues installing Unified Remote.

1. Extract driver from the EXE

Since I am smart, I already know that the installer is an “Inno setup installer“. That means we can use innoextract to extract the contents of the EXE file with this command:

innounp.exe -x ServerSetup-

We can find the driver file in the folder C:\UR\{app}\uvhid.

2. Extract the certificate from the driver

Alternative 1:

Use the PowerShell script posted by Annih on stackoverflow. Replace C:\UR\{app}\uvhid\uvhid,1.sys with the location of wherever you extracted your drivers in the previous step. Replace C:\UR\{app}\uvhid\output.cer with the location in which you want to save the certificate file:

$driverFile = 'C:\UR\{app}\uvhid\uvhid,1.sys';
$outputFile = 'C:\UR\{app}\uvhid\output.cer';
$exportType = [System.Security.Cryptography.X509Certificates.X509ContentType]::Cert;

$cert = (Get-AuthenticodeSignature $driverFile).SignerCertificate;
[System.IO.File]::WriteAllBytes($outputFile, $cert.Export($exportType));

Alternative 2:

Use RussellEmenaker’s guide on how to silent install software that has unsigned drivers.

Silent install Unified Remote

Now that you have the certificate file you can use certutil as a line in your silent install script to add the certificate to the computer.

Add something like this to your silent installer script:

certutil.exe -addstore -f "TrustedPublisher" driver\DriverCert.cer

My script looks like this:

@echo off
rem Set the title of the batch file
title Install Unified Remote

rem Go to the directory of this script
pushd "%~dp0"

rem Go to sub directory in this current folder called "installer"
cd /d "installer" 2>Nul || Exit /B

rem For every file beginning with the specified name that contains the extension do...

certutil.exe -addstore -f "TrustedPublisher" DriverCert.cer

for %%A In (ServerSetup*.exe) Do start "" /w "%%A" /VERYSILENT /LOADINF=settings.inf /SUPPRESSMSGBOXES /ALLUSERS /NOCANCEL /NORESTART

The directory looks like this:

๐Ÿ“„ install.bat
๐Ÿ“ installer
โ €โคท โš™ ServerSetup-
โ €โคท โš™ settings.inf
โ €โคท โš™ DriverCert.cer

That’s it. Deploy that shit like a boss! ๐Ÿ˜Ž

Bonus solution: Unified Remote does not launch when computer starts?

In some cases, I have noticed that Unified Remote does not start when the computer boots, even if the “driver input simulation” was enabled during the installation.

In that case, you can make a Windows Task schedule that starts Unified Remote When the computer starts.

Just remember to enable “Run with highest priviliges” and “Run wether the user is logged on or not“.

Leave a Reply

Your email address will not be published. Required fields are marked *