appVBlockedge 180x180App-V 5.x ermöglicht es einer lokal installierten Anwendung auf einem Windows System in eine virtuelle Blase hinein zu starten. Also den Inhalt des Virtuellen Paketes für lokale An-wendung sichtbar zu machen. Das ist nicht nur für Middleware interessant, sondern auch zum Debuggen von App-V Paketen. Hier gibt es mehrere Verfahren.

In diesem Artikel werden die einzelnen Möglichkeiten aufgeführt und mit Beispielen erklärt.

Starten einer Anwenung in eine virtuelle Blase über die commandline

Der Aufruf der Applikation erfolgt über einen Commandline, der nach der Installation des App-V 5.x Clients für jede Exe Datei angenommen wird. Zum einen ist das eine Anweisung zum Starten in die Blase über die Guid und zum anderen zum Starten über die ProzessID möglich.

starten einer Anwendung in einer virtuellen Blase:

/appvve:<PACKAGEGUID_VERSIONGUID>

Beispielsweise

CMD.exe /appvve: 697829d3-0352-40fa-adeb-d9628b41edad_ e5be3f82-1a15-4fa9-af72-53f3560c8915

Nun sind im CMD Fenster alle Dateien und Pfade des Paketes sichtbar. Die PACKAGEGUID und die VERSIONSID eines lokal veröffentlichten Paketes kann mit Powershell ermittelt werden:

Get-AppvClientPackage <WILDCARD>

Beispielsweise:

Ermittlung PackageID VersionsID App-V Powershell

 Anwendungsfälle:

• Erstellen eines App-V Paketes für VisualFox Pro Runtimes und starten der FoxPro An-wendung mit MyFoxpro.exe /appvve: <PackageId>_<VersionId>
• Starten des Internet Explorers mit einer bestimmten Java Version IExplore.exe /appvve: <PackageId>_<VersionId>. Oder starten mehrerer IE Verknüpfungen für mehrere An-wendungen
• Erstellen von Shortcuts mit /appvve Parameter
• Direkter Zugriff auf die Registrierung einer virtuellen Anwendung
• Direkter Zugriff auf das Dateisystem einer virtuellen Anwendung

Weiterhin gibt es die Möglichkeit, das Ganze für einen laufenden Prozess zu starten. Hier kann die PID leicht über den Task Manager ausgelesen werden.
Der Parameter hier ist „Appvpid“

/appvpid:<PID>

Beispielsweise:

Wir nehmen einmal an, die Prozessid des Registrierungseditiors ist 1234. Dann würde der folgende Aufruf den Zugriff auf die virtuelle Registrierung ermöglichen.

Regedit.exe /appvpid:1234

Tipp: Einmal mit F5 aktualisieren

Dokumentation von Microsoft zu dieser Funktion:
https://support.microsoft.com/en-us/kb/2848278

Starten einer Anwendung in einer virtuellen Blase mit Powershell

Als Alternative gibt es weiterhin die Möglichkeit, eine Anwendung mit dem PowerShell Befehlt Start-AppvVirtualProcess zu starten.

Start-AppvVirtualProcess
- -FilePath] <String> – Pfad auf die Exe
- -ArgumentList [<String[]>]] Parameter der Anwendungsexe (Komma getrennt)
- -LoadUserProfile –laden des Benutzerprofiles für die Anwendung
- -NoNewWindow –kein Neues Fenster
- [-Wait] – Warten auf des Prozessende
- [-WorkingDirectory [<String>]] – Arbeitsverzeichnis
- Weitere Parameter für diese Anweisung mit

 

Get-Help Start-AppvVirtualProcess

Beispielsweise:

$AppVObj = Get-AppvClientPackage –Name "NU*"
Start-AppvVirtualProcess -FilePath "C:\windows\system32\regedit.exe" –AppvClientObject $AppVObj

 Startet den Registry Editor (64 Bit) in das NVU1 Paket aus dem letzten Beispiel

Festlegen des Startverhaltens über die Registrierung (Run Virtual)

Der Registrierungsschlüssel „RunVirtual“ ermöglicht es, lokale Anwendungen festzulegen, die in eine virtuelle Blase starten sollen. Das ist besonders sinnvoll, wenn man keine Ver-knüpfungen mit einem Parameter versehen möchte, sondern eine „exe“ das gleich von sich aus machen soll.

Versionsunterstützung für „RunVirtual“

* Globale oder per User Veröffentlichung Ab App-V 5.0 SP3
* Globale Veröffentlichung App-V 5.0 bis SP3

Anlegen eines Globalen „RunVirtual“ Keys

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Client\RunVirtual\MEINEAPP.EXE

Darunter den Default Key mit dem Syntax <PackageId>_<VersionId>
Anhand des Default-Schlüssels weiß der App-V Client, in welche virtuelle Blase die An-wendung hinein gestartet werden kann.

Die Parameter werden wiederum mit folgendem Befehl ermittelt

Get-AppvClientPackage

Beispiel RegFile für einen Start der Anwendung „MyApp.exe“ in die Anwendung NVU

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Client\RunVirtual\ MEINEAPP]
@="697829d3-0352-40fa-adeb-d9628b41edad_ e5be3f82-1a15-4fa9-af72-53f3560c8915”

Anlegen eines Per User „RunVirtual“ Keys
HKEY_CURRENT_USER \SOFTWARE\Microsoft\AppV\Client\RunVirtual\MyApp.exe

Das ist etwas unflexibel, denn der Schlüssel muss erst einmal in die Anwenderregistrierung geschrieben werden. Beispielsweise über ein Logon Skript.

Weitere Quellen und vertiefende Informationen:

Von Casper van der Kooij es noch einen Vergleichstest, was besser ist, AppVVe oder Run-Virtual. Auf den Punkt gebracht, ist AppVVe der Gewinner.

RunVirtual vs. AppVVE in SP3. Who wins?
https://packnowledge.wordpress.com/2015/04/08/runvirtual-vs-appvve-in-sp3-who-wins/#more-352

Powershell script to run external exe in virtual environment (Updated 5-sept-2013)
https://packnowledge.wordpress.com/2013/04/23/powershell-script-to-run-external-exe-in-virtual-environment-2/

Running a Locally Installed Application Inside a Virtual Environment with Virtualized Applications
https://technet.microsoft.com/en-us/library/dn858703.aspx