How-to: App-V 5 SHIM

met Geen reacties

Sinds de komst van App-V versie 5 zijn er meer mogelijkheden met betrekking tot (.osd)-scripting. Waar je voorheen in oudere App-V versies slechts met user credentials kon werken heb je nu ook de beschikking over system credentials. Dit biedt veel handige extra’s bij het packagen van exotische applicaties. Voorbeelden zijn drivers of applicaties die met elevated privileges draaien.


Onderstaand schema biedt een overzicht van de verschillende mogelijkheden die App-V versie 5 biedt.
Dynamic-Deployment-File-Scripting

Bron: http://www.tmurgent.com/TmBlog/?p=1154

Voor dit how-to artikel item zal ik als voorbeeld het elevated draaien van een applicatie binnen de App-V bubble inzichtelijk maken. Dit proces kent 2 stappen:

  1. Aanmaken SHIM database
  2. SHIM database toevoegen aan App-V 5 sequence

Aanmaken SHIM database

Via het Microsoft Download Center is de Microsoft Application Compatibility Toolkit 5.6 te downloaden. Deze toolkit bevat de Compatibilty Administrator.

Selecteer New Database(1) [Untitled_1] en klik hierna in de toolbar op Fix.

Vul vervolgens de programma naam, naam leverancier en bestandsnaam in, in dit geval vlc.exe (de applicatie dient hiervoor wel geïnstalleerd te zijn).

Create new application fix

In het ‘ Compatibility Modes’ scherm klik je op Next

In het ‘Compatibility Fixes’ scherm kies je voor:

  • ElevateCreateProcess
    Indien het creëren van een nieuw proces faalt wordt de stap herhaald met verhoogde rechten
  • ForceAdminAccess
    Indien een applicatie expliciet vereist dat de applicatie wordt uitgevoerd met Administrator rechten
  • LocalMappedObject
    Deze fix wijzigt de global prefix naar de local prefix voordat de API wordt uitgevoerd (gebruikers hebben standaard geen rechten in de global namespace)
  • VirtualizeHKCRLite
    Deze fix zorgt ervoor dat tijdens het registreren van COM objecten de registratie niet plaatsvindt in HKLM\Software\Classes maar in HKCU\Software\Classes

Select-Compatibility-Fixes-Fikira

Wanneer je je nu Test Run… aanklikt start de applicatie. Vanuit de taskmanager is te zien dat de applicatie evelated draait.

SHIMS-Taskmanager-Fikira

Klik hierna op Next.

Volgend scherm heeft geen aanpassingen nodig. Klik op Next.

Application-Fix-Matching-Information-Fikira

Sla hierna de gemaakte database op onder de naam VLC. Je hebt nu een VLC.sdb bestand.

SHIM database toevoegen aan App-V 5 sequence

Zoals hierboven genoemd is het binnen App-V 5 mogelijk om scripting onder system credentials te gebruiken. Hieronder maak ik gebruik van het AddPackage en RemovePackage script om onder SYSTEM credentials sbinst.exe aan te roepen (meer informatie: Using the Sdbinst.exe Command-Line Tool).

  1. Onderstaande scripts worden toegevoegd aan de deploymentconfig xml.

<MachineScripts>

     <AddPackage>

       <Path>sdbinst</Path>

       <Arguments>-q “[{AppVPackageRoot}]\..\Scripts\VLC.sdb”</Arguments>

       <Wait RollbackOnError=”true” Timeout=”15″/>

     </AddPackage>

En

<MachineScripts>

     <RemovePackage>

       <Path>sdbinst</Path>

       <Arguments>-u “[{AppVPackageRoot}]\..\Scripts\VLC.sdb”</</Arguments>

       <Wait RollbackOnError=”true” Timeout=”15″/>

     </RemovePackage>

 

  1. Via de Sequencer wordt het bestand VLC.sdb toegevoegd aan de sequence binnen de directory Scripts.

Binnen de App-V Sequencer, ga naar Package Files, ga naar Scripts en klik op Add.

Add-Script-AppV-Fikira

Kies het gemaakt VLC.sdb bestand om toe te voegen.

New-virtual-file-system-mapping-Fikira

Klik op OK. Onderstaande zal het resultaat zijn. Het bestand VLC.sdb is nu beschikbaar binnen de App-V bubbel.

Script-in-bubble-fikira

Deployment

Scripting toestaan voor App-V packages:

  • Set-AppvClientConfiguration -EnablePackageScripts 1

Toevoegen App-V package (met DeploymentConfig):

  • Add-AppvClientPackage -Path C:\App-V\VLC\VLC.appv -DynamicDeploymentConfiguration c:\App-V\VLC\VLC_DeploymentConfig.xml
    VLC.sdb wordt geïnstalleerd. Wanneer de applicatie VLC.exe nu gestart wordt zal deze de instellingen uit VLC.sdb bevatten.

Verwijderen App-V package:

  • Remove-AppvClientPackage -Name VLC
    Met dit commando wordt de installatie van VLC.sdb eveneens ongedaan gemaakt.

Harm-Jan Kolthof, Fikira BV