Remko Weijnen's Blog (Remko's Blog)

About Virtualization, VDI, SBC, Application Compatibility and anything else I feel like

Archive for the ‘Unattended Installation’ Category

I was troubleshooting an unattended installation of a particular application. The install seemed to hang right away so I figured it was presenting some kind of message (error?).

Using a Window Spy tool I made the setup process visible and saw the following message:


The unattended install was supplied by the vendor and apparently they use InstallAware.

The setup tries to create a Tray Icon, probably a setup progress indicator, but this fails because there is no shell running (the installation is pushed from a deployment server).


Script to install SNMP

In my project the monitoring group required that SNMP was installed and configured on all servers.

I wrote scripts for Windows 2003 and Windows 2008 that I deploy from my Altiris Server.

This is the script for Windows 2003:

Kofax VRS Unattended Install

Recently I needed to create an Unattended Install for an application that uses a piece of software (for scanning) called Kofax VRS.

This Kofax software comes with an .msi file but there was no documentation on the install options.

In fact it didn’t seem like the Vendor anticipated on an Unatttended Install.

I browsed in the msi file using Microsoft’s Orca tool and tried some of the properties I found in the public properties table.


Another packaging challenge

Another post on something that happened last week, this time it’s about a Java based Application again.

This particular application wanted to download three DLL’s from the Webserver to the Java bin directory.

This presents us with several issues on a multi user server such as a Citrix of Terminal Server:

  1. The user does not have write permissions in this directory
  2. If we we give the user write permissions here what happens when the DLL’s are in use by another user?

I assumed that if I preinstalled the DLL’s the application wouldn’t try to overwrite them but that didn’t work.

Then I monitored with Process Monitor if the Application wrote some kind of check file but at first I didn’t find anything.

So I decided to use the CorrectFilePaths shim to redirect the DLL’s to the user’s homedirectory (see Using the CorrectFilePaths shim to redirect an ini file to a writable location for an explanation).


Troubleshoot CorrectFilePath shim

A few days ago I was packaging an application that was writing an INI file in the application directory.

If you have read my earlier article, Using the CorrectFilePaths shim to redirect an ini file to a writable location, then you will probably think: create a nice shim and redirect that ini file!

But this application had a few challenges, the first being that it writes %COMPUTERNAME%.INI. The application’s developer probably assumed that a user is bound to one pc and that no other user’s use that pc.

To solve it we we need to catch all possible computer names (it would be nice if the CorrectFilePaths shims was able to accept wildcards and environment variables).

But it doesn’t so it means we have to add a parameter for each possible computer name. In my case that was doable because I have only 8 Citrix servers.

So I created a Fix using the Application Compatibility Manager as described in my previous post.

However it didn’t work, so I started to trace what happens.


Java Webapplication, certificates and Citrix

Yesterday I created an Unattended Installation of a webapplication. Of course it was “just a web link” and the application vendor usually says: you don’t need to install it just go the URL and that’s it.

The reality is usually that you go to the URL and need to install several (ActiveX) components and maybe other dependencies such as Java.

While a user may have the permissions for this on his own pc, on a Citrix or Terminal Server environment this is highly unlikely.

So we need to package and pre-install this for the users.

Nothing special so far but this particular application had some special things that were interesting enough to blog about.

So let’s start with what happened, I visited the URL of an application called Centric Key 2 Financien.

First I got a few popups with Certificates that needed to be accepted:


The application’s instructions say that the user must accept this and set the “Always trust content from this publisher” checkbox.


Fixing Applications: The Next Step

Lately I wrote a few articles about fixing bad applications using Compatibility Shims. If you didn’t read them yet, here are the links: 

I also described that you can install an Application Compatibility Database using the sdbinst command.

At first I just took a script task in my Altiris Server to deploy the database using sdbinst -q <dbname> but later on I got a better idea.


Another Oracle Error

My collegue that is working with me on the current project was packaging another application that uses Oracle.

The interesting thing about it is that he ran into the same error I did: the Oracle client tries to create (and access) an Object in the Global namespace.

But he got an entirely different error message:

OCIEnvCreate failed with return code -1 but error message text was not available

To confirm it was the same issue I gave a test user the Create Global Objects privilege and after logging on again the problem went away.

So I applied the same fix that I wrote about yesterday in Redirect Global Object to Local Objects (aka fix that bad app!) to this application and it worked nicely!

Today I was working on Unattended Installation of an Application called SmartDocuments.

The application seemed to behave nicely on a Multi User (Citrix/Terminal Server) environment: it writes user configuration to the user part of the registry and writes configuration files in a user accessible path.

When testing with a normal user account I ran into a problem though, I got an Oracle ORA-01019 error message:


The English message is ORA01019: unable to allocate memory in the user side.


Today I wanted to install the Dutch Language pack for Internet Explorer 8, the Dutch language comes as part of the Windows Internet Explorer 8 MUI Pack (in my case the version for Windows Server 2003 SP2).

If you install the MUI Pack you will always end up with all 35 (!) languages installed. This behaviour is the same as the language pack for Internet Explorer 7 that I wrote about earlier (see Modifying Microsoft Updates and/or hotfixes)

The solution is really the same as for the IE7 language pack: you modify the inf file (in my case update_srv03.inf) but if you run update.exe it will refuse to use your modified inf file:


So we need to patch update.exe to accept your modified version!