Ein .AppV File ist in erster Linie ein „Zip“ Archiv. Dieses kann nach dem Umbenennen im Dateisystem ausgepackt werden. Im ausgepackten Zustand ergibt sich die folgende Dateistruktur. Alle Datei und Ordnernamen werden über html Encoding codiert. Beispiel, ein Leerzeichen wird zu %20 also „Neuer Ordner“ zu „Neuer%20Ordner“.

Es muss zwischen den eigentlichen Installationsdateien für das System, und speziellen Verzeichnissen, wie Profildaten (appdata) oder gemeinsamen Dateien unterschieden werden. Diese Ortner befinden sich im VFS Verzeichnis.

 

Ordneraufbau

STAMMORDNER

Konfigurateionsdateien (.xml)

Registry.dat (virtuelle Registrierung des .AppV Datei)

ROOT-Ordner

            Installationsdateien (ProgramFilesX86, Programfiles)

            VFS (Spezielle Verzeichnisse )

                        ...

                        SystemX86 (entspricht c:\windows\syswow64 oder system32)

                        Windows

                        LocalAppdataLow (entspricht %LOCALAPPDATA%)

                        ....

Die genannten Systemverzeichnisse entsprechen in vielen Fällen den Locations für eine MSI Generierung. Genauere Informationen sind hier zu finden:

http://msdn.microsoft.com/en-us/library/windows/desktop/dd765197(v=vs.85).aspx

Einige Verzeichnisse und deren Lokation finden Sie in der folgende Tabelle (für eine 32 Bit Anwendung auf einem 64 Bit Windows)

AppV 5 Dateiname WiX MSI Parameter Dateisystem
AppData AppDataFolder C:\users\<USERNAME>\appdata\roaming
Common%20AppData CommonAppDataFolder C:\ProgramData
Fonts FontsFolder C:\Windows\Fonts
LocalAppDataLow LocalAppDataFolder C:\users\<USERNAME>\appdata\LocalLow
Profile ? Cusers\<username>\
ProgramFilesCommonX86 CommonFilesFolder C:\program Files x86\Common Files
SystemX86 SystemFolder C:\Windows\syswow64\
Windows WindowsFolder C:\WindowsFolder

Aufbau der AppV 5 Registrierung

Die Datei Registry.dat kann mit regedit32.exe importiert, betrachtet und bearbeitet werden. Eine Analyse für AppV kann auch Extern mit dem Tool Reglookup (http://projects.sentinelchicken.org/reglookup/) erfolgen.

In der Registrierung sind die Folgenden Zweige zu betrachten:

App-V Regkey Bedeutung
/REGISTRY/MACHINE/ Einstellungen für das System
/REGISTRY/USER/[{AppVCurrentUserSID} Einstellungen für den Benutzer
/REGISTRY/USER/S-1-5-19 Einstellungen NT-Autorität
/REGISTRY/USER/\[\{AppVCurrentUserSID\}\]_CLASSES  
... Weitere spezifische  

AppV Verwendet eigene Variablen, um die Anwendung bei der Ausführung an das System an zupassen. Diese werden in codierten Strings hinterleget.  Die ValueID hat wiederum ein anderes Fomat als wie die bekannten Values (REG_SZ, DWORD etc.). Wir konnten die folgenden ID Elemente über das Tool Reglookup wie folgt zuordnen. Es gibt hier sicher weitere.

# 0x00400001 = "Reg_SZ"

# 0x00400002 = "Reg_SZ"

# 0x00020000 = _Binary

# 0x00040000 = ?  ",%00%00%00%00," Standard key und Reg_sz!

# 0x00040001 = "Reg_SZ

# 0x00440001 = "REG_SZ"

# 0x00400007 = Reg_SZ

Nach einer erfolgreichen Dekodierung finden sich in manchen Reg_SZ Elementen die folgenden AppV Variablen. Die Zielverzeichnisse entsprechen dabei denen aus der Ordnertabelle oben.

 

App-V Reg Variable
[{AppVPackageRoot}]
[SystemFolder]
[{ProgramFilesCommonX86}]
[{Programs}]
[{Common Programs}]
[{Windows}]
[{Local AppData}]
[{AppData}]
[{Common AppData}]
[{Fonts}]
 

In Einigen Fällen werden zusätzlich Elemente zur Kennzeichnung von „DOS“ ShortPath Elementen an die Variable gehängt.

[{AppVPackageRoot}{~}]

Zusätzlich kann dieses Element gefunden werden. Die Bedeutung ist aktuell unklar.

[<VARIABLE>{?}]