I am attempting to Deploy SSH Tectia Client 6.1.5 via Microsoft System Center Config Manager 2007. The installation itself completes successfully, but the license file (stc61.dat) never reaches the "*\SSH Tectia AUX\licenses" directory. It does, however, arrive in the ccm cache in C:\Windows\System32\CCM\Cache, so I know that the package is built correctly.
I have followed the documentation on using the MSI CLI-arguments to perform silent installations. My current install command is:
The /m switch is used by the SCCM client to track installation progress, and report success or failure.
The application itself functions as intended, but has a notification of using the 45-day trial license. I can manually copy the .DAT file in place and everything works.
If I execute the command above on a workstation directly, using the cached copy of the package, then the license file is correctly placed.
The stc61.dat file is absolutely located beside the msi folder, both within the source package, and the ccm cache. When the MSI file executes via SCCM, it is launched by the 32-bit version of msiexec (because ccmexec.exe is 32-bit and 32-bit processes cannot spawn 64-bit processes), and under the SYSTEM context. I suspect that UAC sandboxing in Windows 7 prevents msiexec from checking the cache directory for any files not explicitly required by the MSI. I have been using ORCA (MS tool for examining and editing MSI/MST/MSP files), and Process Monitor (sysinternals, now microsoft-owned, tool to record and examine all filesystem and registry actions) to reverse-engineer the MSI installer.
Here's what I have learned: MSIEXEC never checks the CCM\Cache\ directory for stc61.dat. It will check the root of the system drive (C:) and the root of the system directory (C:\Windows\System32) but stc61.dat will not be cached in either of those locations.
What I need to know is, how do I either make the SSH Tectia MSI installer specifically require stc61.dat to be present prior to installation (meaning no trial period), or, how to force MSIEXEC to check the CCM\Cache directory.
I realize I could write a batch file to simply copy the stc61.dat file into the correct place after the installation completes, but I am trying to demonstrate that the MSI installer has a problem and should be patched.
The way the license copying works in Tectia Client (and Server) is that the installer looks for a file named in a particular way (This would be stc61.dat for a 6.1 client) in the same directory as the msi package is located.
If found, it picks it up and copies it to the "INSTALLDIR\SSH Tectia AUX\licenses" directory, otherwise it performs an evaluation installation.
As you already figured out, if you manually copy the license file there the client uses that.
The license file should also be automatically copied when doing a silent install, however it needs to be located in the same directory as the msi package (on the target host).
Could it be that when SCCM performs the msiexec command on the target host the license file is not in the same location as the msi package?
answered Mar 08 '11 at 21:01