Category Archives: Training

Ontrex Software Package Atelier Neuigkeiten

Do’s & Don’ts regarding Client Design

Don’ts:

Customized Shortcut Locations

Why? People are getting used to certain pattern/schematics. Starting office right from Office Folder is the way they are also used at home. Going through some special fancy menu design (e.g Standard Applications/Office Application/Office 2010/) just wastes time and is sometimes very difficult to implement for some software installers (e.g Adobe CS5)

Quicklaunch Icons

Why? Because they are anyway obsolet for Windows 7. And they are stored Per-User, so youll have to implement CU Duplication Mechanism (ActiveSetup, Advertised Shortcut) just to deploy them.

(All Users) Desktop Icons

Why? 1. They cant be deleted by non administrativ users which leads to 2. May result in helpdesk calls for deleting a full blown desktop.

Change every application setting

Why? Keep it simple! Every configuration change leads to greater complexity which in turn increases the complexity for packaging the software. There are of course Exceptions: Server configurations & settings regarding the corporate identity (e.g default fonts, font size etc.)

Folder Redirection

Why? Redirecting folders may sound like a good idea. But why? There are many programs which have a problem with UNC Path. There are many older Java Application which simply wont work if you redirect the APPDATA Folder onto an UNC Path

Do’s

Lockdown the user rights!

Why? Nowadays there is nearly no application which cannot be run without administrator rights. and even if they claim/need it there are several workarounds available: Shims, Selective permission changes (INSTALLDIR e.g), Manifest Tricks (AsInvoker)

BGInfo Background

Why? The first action of any helpdesk technician is to connect remotely to the users computer. A nice bginfo background instantly informs the user about any relevant fact, even last boot time or free hard disc space is immediately available.

Create an additional Data Partiton [Power Users, Notebook Users]

Why? Somestimes a local data directory comes in very handy. Many Power Users like to have some files temporary on his/her local computer before moving them to the network drive.

E.g extracting ZIp Files, local cache directories for power user applications. However instruct the users about the non-existing backup of this drive 🙂

General advise

Keep everything as default as possible: As you possibly can imagine a vendor can not test his application for all varieties of application configuration. The more you are staying at the base the more the program will react as the vendor has intended.

 

 

 

ICE27 Error Unknown Action: MsiConfigureServices on AdminStudio 2012 SP2

The newest .CUB File from Admin Studio 2012 SP2 contains an error. As you can see if you validate a MSI Package:

28.03

 This error message is not really an error from the validated MSI and can be ignored but it’s not very beautiful to get this error on every validation.

There is only one new line needed inside the CUB File (which contains the validation rules) and it can be fixed very fast:

You need the actual darice.cub file to modify the validation rules, this file can be found here:

“C:Program Files (x86)InstallShield2012SpringSupportValidationdarice.cub”

Open this file with a standard Windows Installer Editor (Insted or Orca) and go to the table _Action. Add a new row into this table with the following options:

MsiConfigureServices

Action: MsiConfigureServices
SectionFlag: 8
Prohibited: 31
Required: 0

Save and close the darice.cub file.

28.03_002

 

You should no longer receive  this validation error.

 

Windows 8 SDK (contains newest Windows Installer SDK 5.0)

The newest darice.cub, where this changes are already applied, is also available on the following page:

http://msdn.microsoft.com/en-US/windows/desktop/hh852363.aspx

Download the SDK and install the newest Version of Orca. You will find the darie.cub inside the main installation folder. Replace this one with the old validation file inside the InstallShield Directory.

Regards,

SPA Team

 

Ontrex SPA YouTube Channel

We are happy to announce our newest service addition for our customers.

The Ontrex SPA Software Packaging Channel

As from now we are excited to publish free youtube tutorials/casts in several packaging disciplines/tools like AdminStudio, APP-V & Wix.

We will also cover any topics about the recent EOL announcement of Wise Package Studio including but not limited to “Migration to AdminStudio” casts.

Regards,

SPA Team

How to repackage a NDIS driver

Several months ago I met a new challenge in shape of a device driver I’ve never seen before called…

NDIS – Network Driver Interface Specification.

I dont want to loose much time with talking about the “driver type” itself, because you can get all information from a well written wikipedia article.

Such a driver usually consists of the very typical driver files:

Inf File, Cat File & Sys File. Everything signed as you might expect of course.

My first attempt was to install the driver the “Ontrex Best Practices” way which usually means either to use the difxapp merge module or the dpinst.exe executable (custom action).

Unfortunately, none of them led to to same result as the original package had behave.

After googling around a bit I finally came to the tipping point: netcfg.exe

This executable is present on every windows at least since windows 2000 and basically helps you to automate any “Network Card” related installation tasks like

– Installing/servicing/uninstalling Network Protocols (e.g. Internet Protocol Version 4 (TCP/IPv4)

– Installing/servicing/uninstalling Network services (e.g. QoS Packet Scheduler)

– Installing/servicing/uninstalling Network Clients (e.g. Client for Microsoft Networks)

Kindly asked the program offers me the following command line parameters:

So the last missing information in the puzzle is how do I know the component id for my driver?

Solution was simple: I had installed the original package and searched through the registry  using the INF Filename and this offered me the following result:

 

Now I had all required information to schedule a custom action in my package to install the driver.

Because netcfg.exe is already on every windows installation I used the type “Execute Program From Destination” (MSI SDK: Custom Action Type 34)

[System64Folder]netcfg.exe -l “[#netlwf.inf]” -c s -i BNNS_NdisLwf

In our case the target operating system  was a x64 OS and therefore we needed to specify the [System64Folder].

Because the action changes the system state it logicaly belongs to the “deferred” installation sequence.

 

 

The module failed to load

Neulich bei einem Regsvr32.exe /silent Aufruf einer DLL Datei wurde folgende Fehlermeldung (obwohl der Silent-Paramenter verwendet wurde) ausgegeben:

The module xyz.dll failed to load.
Make sure the binary is stored at the specified path or debug it to check for problems with the binary or dependent .DLL files.
The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line systrace.exe tool for more detail.

Eigentlich dürfte dieses Fenster nicht erscheinen, da der /silent parameter verwendet wurde.

Man sollte sich auch nicht durch die side-by-side configuration in die Irre führen lassen und einfach den guten alten Dependency Walker verwenden.

Der Depency Walker zeigt die fehlenden Komponenten an, welche vor der Registration auf dem Rechner vorhanden sein müssen.

Es geht auch Stück für Stück mit dem Event-Log, der in einem Error Eintrag die benötigte DLL anzeigt.

Kurz gesagt, neue Meldung, altes Problem

Managed Office Addins

Als Managed Office Addins bezeichnet man in .NET entwickelte Erweiterung für die Office Suite. In diesem Artikel gehen wir auf einige wissenswerte Informationen ein.
Per User Addin -> ONLY!
In Office 2007 konnte man “Managed Office Addins” bisher nur auf per User Basis installieren. Für jeden Setup Author /Repackager in “Multi-User” Umgebungen eine wahre Katastrophe.
In Office 2010 hat Microsoft die uns erhöhrt und erlaubt per Machine “Managed Office Addins”. Und das allerschönste? Per (optionaler)Patch und Registry Tweak funktioniert dies nun auch unter Office 2007.
Troubleshooting
Das Addon disabled sich sofort und keine Ahnung warum? Mittels einfacher Environment Variabel macht man “Managed Office Addins” sehr gesprächig.
Man erfasst folgende Environment Variable (oder setzt sie bevor man die Office Applikation startet).
VSTO_SUPPRESSDISPLAYALERTS = 0
Und schon sind die Addins informationsfreudiger:
Quellen:

ActiveSetup unter x64 Betriebsystem

Ein in der Repaketierung sehr beliebtes Instrument um “Per-User” Resourcen zu installieren stellt das ActiveSetup dar.

Wer erwägt seine MSI-Pakete ebenfalls auf einem x64 OS zu installieren muss diesen allerdings doppelt erfassen.  Wieso fragen Sie sich sicher?

Das Problem liegt im Detail: Die Windows Shell auf einem x64 Betriebsystem ist natürlich, überraschung ein 64-Bit Prozess,  und der Active-Setup Registry Bereich ist gemäss Microsoft kein “gesharter” Key Bereich. Daher wird beim Logon-Prozess nur der x64 Bereich “abgearbeitet”.

Eine saubere und TerminalServer-Aware Lösung für dieses Problem sieht wie folgt aus:

Die Komponente für das ActiveSetup wird doppelt implementiert, und einmal mit aktivierten “64-Bit Component” Flag, damit die Registry Keys auch definitiv im 64-Bit Bereich geschrieben werden.

Da Registry Keys jeweils nur zu einer Komponente gehören dürfen, müssen diese natürlich doppelt erfasst werden:

Ansonsten gelten natürlich die üblichen ActiveSetup Best Practices. Und um es nochmals definitiv klarzustellen: Diese Implementation wird auch bei x86-Paketen benötigt.

 

 

Generelle App-V Troubleshooting Techniken

Wie viele vielleicht bereits wissen ist das SPA Atelier auch in der Software-Virtualisierung tätig.

Aufgrund den Erfahrungen aus diversen Kundenprojekten mit APP-V haben sich gewisse “grundlegende” Troubleshooting-Techniken bei uns eingebürgert, welche wir auch unseren Kunden empfehlen.

Wichtig ist jedoch zu wissen, das diese Techniken nur für Virtualisierungs-“Kandidaten” funktionieren. Bekannte technische Einschränkungen wie System-Treiber etc. können hiermit nicht umgangen werden.

Installation in default Path

Auch im Jahr 2010 gibt es leider immer noch Applikationen mit “hardcodierten” Pfäden. Nach einer Installation auf das Asset-Drive verweigern diese Programme dann natürlich jegliche Dienste.
Eine Installation in den default Path ist die Lösung für dieses Problem.

Enforce Security Descriptors

Ist seit APP-V 4.5 standardmässig aktiv. Bedeudet nichts anderes als das “Berechtigungen” auch innerhalb der APP-V Bubble gelten.

Das deaktivieren dieser Option hat folgenden Effekt für die App-V Benutzer:

  • Schreibrechte auf alle im APP-V Paket (existierende) Registry Keys
  • Schreibreche auf alle im APP-V Pakete existierende VFS Files
  • Voller Zugriff auf den Assetfolder (Q:example.001

Die meisten Berechtigungsprobleme sollten dann Passé sein.

LOCAL INTERACTION ALLOWED

Haben Sie folgende Phänomene in einer virtuellen Applikation?

  • MAILTO: Funktioniert nicht.
  • Interaktionen mit “Basis”/nicht virtualisierten Applikationen funktioniert nicht.

Dann hilft der LOCAL_INTERACTION_ALLOWED Flag! Dieser lässt sich wie folgt aktivieren:

„VIRTUALENV” öffnen.

Rechtsklick auf “VIRTUALENV”.

„Element” -> „Add” -> „Policies”.

Dann ebenfalls Rechtsklick auf „Policies”. 
„Element” -> „Add” -> „LOCAL_INTERACTION_ALLOWED”.

Nun wählt man das Element „LOCAL_INTERACTION_ALLOWED” aus und trägt beim „Element Text „ den Wert „TRUE” ein.

Dieser muss übrigens pro Applikation/OSD aktiviert werden.

Auf X86 OS mit X86 Sequencer sequenzieren

Last but not least sollte man, sofern es sich um eine 32-Bit/x86 Applikation handelt, die Applikation auf einem x86 Betriebsystem zu sequenzieren.
Wichtig: Man darf danach das Projekt nicht mehr mit einem x64 Sequencer öffnen!

Erweiterte Troubleshooting Techniken

CMD in Applikationscontext starten.

Um Probleme besser analysieren zu können, muss man die Registry/File Ansicht aus Applikationssicht sehen.

Mittels folgendem Trick kann man eine beliebige „base” Applikation aus der Bubble hinaus starten und somit alle virtualisierten Files & Registry Keys sehen:

Sfttray.exe /exe „cmd.exe” /launch „Microsoft WOrd 2010 14.0.xxx”

„Cmd.exe” kann durch jede beliebige Applikation ersetzt werden (bsp. Regedit etc.).

„Microsoft WOrd 2010 14.0.xxx” ist der Applikationsname der virtualisierten Applikation.

PROCMON

Schlagen alle bisherigen Techniken fehl bleibt nur noch das Troubleshooting mittels Procmon & ProcExp.

Folgender Ablauf wird empfohlen:

  • ProcMon starten mit Standard Filter Rules.
  • Applikation starten bis Fehler auftaucht.
  • Capture stoppen und mittels Process Explorer ermitteln welcher exakte Prozess die Fehlermeldung anzeigt.
  • Filter setzen für diese Applikation.
  • Nach Gefühl filtern, die üblichen Verdächtigen sind:
  • NAME_NOT_FOUND
  • ACCESS_DENIED

Adobe Reader X

Seit letztem Freitag steht der neue Adobe Reader X von Adobe zum Download bereit.

Die wichtigste Neuerung ist ein Sandbox Modus welcher für eine allgemeine Erhöhung der Sicherheit sorgen soll.

Die Software wird natürlich demnächst als Direct-Package-Download in unserem Portal zur Verfügung stehen.

Quelle: http://www.heise.de/security/meldung/Adobe-Reader-X-mit-Sandbox-fuer-Windows-verfuegbar-1139095.html

16-Bit Applikationen mit APP-V Sequencen

Microsoft hat ab APP-4.5 das Registry Hooking vom Kernel-Mode in den User-Mode verschoben (Quelle: http://technet.microsoft.com/en-us/library/cc843672.aspx), dies verursacht bei 16-Bit Applikationen das Problem das diese nicht mehr korrekt sequenziert werden (fehlende Registry Keys).
Damit das Sequencen auch bei 16-Bit Applikationen weiterhin korrekt funktioniert ist daher ein kleiner Eingriff notwendig, so das jede “Windows NT Virtual Dos Machine” in einem seperaten Prozess aufgestartet wird.
Mit folgendem Workaround funktioniert das Sequencen wieder Ordnungsgemäss:
Unter “HKLMSYSTEMCurrentControlSetControlWOW” setzt man den “DefaultSeparateVDM” Value auf “yes”.
Danach ist nur noch ein Neustart des Betriebsystems notwendig und die 16-Bit Applikationen sollten sich wieder korrekt sequenzieren lassen.
Diese Einstellung muss man übrigens NICHT auf den Ziel-Clients durchführen.