How to Create an MSI with SCCM Standalone Remote Control Viewer Components

SCCM Remote Control Viewer Standalone

In most large organizations, first tier support, like the Help Desk, will require remote control access to user’s workstations. While Microsoft has provided an excellent tool for full remote viewing and control, the administrative components are only provided by Microsoft as a part of the SCCM administrative console.

Providing Help Desk users with access to the SCCM administrative console is likely overkill and unnecessary given the only component that they may require is remote control.

Since Microsoft does not provide an easily deployable remote control client, this article demonstrates how an administrator can bundle the Configuration Manager remote control components together into a Windows Installer (MSI) application package.

Requirements
In order to be able to run the Configuration Manager Remote Control, there are three files that must be installed on the workstation:

  • CmRcViewer.exe
  • RdpCoreSccm.dll
  • 00000409\CmRcViewerRes.dll

In addition, if the Remote Control Viewer is going to report back to the SCCM Site Server with which client is remote controlled and by whom, the registry key

HKLM\SOFTWARE\Microsoft\ConfigMgr10\AdminUI\Connection
Server=”<Site Server Name>”

Server=”<Site Server Name>” must also be included.

While this sounds simple enough, the better approach will be to create an application package that contains these components and deploy it to each workstation that needs it.

What are the challenges of doing this manually?

The biggest issue to just copying the files manually to workstations are maintenance and compatibility.

First, these files will change multiple times a year, always with each major SCCM release and possibly with any SCCM hotfix release.

Second, if the components are copied manually, they may not be compatible if one day, the full SCCM administrative console is deployed to that system in the future.

Building the SCCM Remote Control Viewer Standalone Package

What I’ve provided here is the complete solution to this problem. I wrote a PowerShell script that can be run to automatically create a new MSI with the standalone Remote Control Viewer components.

The PowerShell script requires one command line option pointing to the SCCM Primary Server and uses the exact same components that are used by the native installer. Since the same components are used, installing the SCCM administrative console in the future on the same workstation will not cause any issues.

A new version can be built at any time there is a requisite SCCM upgrade, and each new version will automatically upgrade the previous Remote Control Viewer version. If your organization uses digital signing, there is an additional command line option to digitally sign the code with your organization’s code signing certificate.

To get started, download the file: SCCM_RCV

Extract the contents to your working directory. All required support files are included in the zip file.

What is in the script? How does it work?

The PowerShell script and the supporting binaries were co-developed with Microsoft Premier Field Support. There are some basic functions for updating the MSI PackageCode and multiple MSI Properties. The first script parameter is to define the Site Server. And the second script parameter will define your digital certificate.

The update-PackageCode function will update the PackageCode which is unique to every build.

The update-MSIProperty function will update several MSI Property table entries, when called.

This part of the script will create the build folder and copy the necessary files to that folder. This includes all the required files for the Remote Control Viewer.

This part of the script will build the new RemoteControl.msi. There is a “rebuild check” in the code that ensures the existing version is not accidentally rebuilt.

The script uses msidb to execute table import functions. It also uses two vbScripts, one to update all the file properties and the MsiFileHash Table, and the other to compile the cab file and import the cab as an embedded stream.

This part of the script will copy the completed MSI to the build folder and begin file and folder cleanup.

This last part of the script is optional. It will digitally sign the MSI

Running the script
To run the script, execute it from an elevated PowerShell command prompt.

NOTE: Like any other script, this one can be signed with your own digital signature if necessary

Create an MSI containing the ConfigMgr Remote Control Viewer

.\msi.ps1 -siteserver “cm2.corp.contoso.com”

Create an MSI containing the ConfigMgr Remote Control Viewer that is digitally signed

.\msi.ps1 -siteserver “cm2.corp.contoso.com” -codesigningcert “C:\certs\mycert.p12”

This completes the process. We hope this information makes it useful for you to contruct a Windows Installer (MSI) Application Package that includes Configuration Manager remote control components.

Is your organization looking to upgrade ITSM efforts? Contact us for a 30-minute consultation to anwser your questions.

Mike Doneson
Senior Consultant
Critical Design Associates