搭配虛擬化應用程式在虛擬環境內執行本機安裝的應用程式

您可以在虛擬環境中執行本機安裝的應用程式,以及使用 Microsoft Application Virtualization (App-V) 進行虛擬化的應用程式。 如果您:

  • 想要在本機用戶端電腦上安裝和執行應用程式,但想要虛擬化並執行與該本機應用程式搭配運作的特定外掛程式。

  • 正在針對 App-V 用戶端套件進行疑難排解,並想要在 App-V 虛擬環境中開啟本機應用程式。

使用下列任何一種方法,在 App-V 虛擬環境內開啟本機應用程式:

每個方法基本上都會完成相同的工作,但某些方法可能比其他方法更適合某些應用程式,視虛擬化應用程式是否已在執行而定。

RunVirtual 登錄機碼

若要將本機安裝的應用程式新增至封裝或連線群組的虛擬環境,您可以在登錄編輯程式中將子機碼新增至 RunVirtual 登錄機碼,如下列各節所述。

沒有可用來管理此登錄機碼的群組原則設定,因此您必須使用 System Center Configuration Manager 或其他電子軟體發佈 (ESD) 系統,或手動編輯登錄。

使用 RunVirtual 時,支援發行套件的方法

App-V 版本 支援的發佈方法

App-V 5.0 SP3

全域發佈或發佈給使用者

App-V 5.0 到 App-V 5.0 SP2

僅全域發佈

建立子機碼的步驟

  1. 使用下表中的資訊,使用可執行檔的名稱建立新的登錄機碼,例如 ,MyApp.exe

    套件發佈方法 要在何處建立登錄機碼

    全域發佈

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Client\RunVirtual

    範例:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Client\RunVirtual\MyApp.exe

    發佈給使用者

    HKEY_CURRENT_USER\SOFTWARE\Microsoft\AppV\Client\RunVirtual

    範例:HKEY_CURRENT_USER \SOFTWARE\Microsoft\AppV\Client\RunVirtual\MyApp.exe

    連線群組可以包含:

    • 僅全域發佈或僅發佈給使用者的套件

    • 全域發佈給使用者的套件

    HKEY_LOCAL_MACHINE或HKEY_CURRENT_USER鍵,但下列所有專案都必須成立:

    • 如果您想要在虛擬環境中包含多個套件,則必須將其包含在已啟用的連線群組中。

    • 只為連線群組中的其中一個套件建立一個子機碼。 例如,如果您有一個全域發佈的套件,而另一個套件已發行給使用者,則您會為其中一個套件建立子機碼,但不會同時建立兩者。 雖然您只為其中一個套件建立子機碼,但連線群組中的所有套件,加上本機應用程式,都可在虛擬環境中使用。

    • 您用來建立子機碼的金鑰必須符合您用於封裝的發行方法。

      例如,如果您將套件發佈給使用者,您必須在 底下 HKEY_CURRENT_USER\SOFTWARE\Microsoft\AppV\Client\RunVirtual 建立子機碼。

  2. 將新登錄子機碼的值設定為封裝的 PackageId 和 VersionId,並以底線分隔值。

    語法: < PackageId > _ < VersionId>

    範例:4c909996-afc9-4352-b606-0b74542a09c1_be463724-Oct1-48f1-8604-c4bd7ca92fa

    上一個範例中的應用程式會產生登錄匯出檔案 (.reg 檔案) 如下所示:

    Windows Registry Editor Version 5.00 
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Client\RunVirtual] 
    @="" 
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Client\RunVirtual\MyApp.exe] 
    @="aaaaaaaa-bbbb-cccc-dddd-eeeeeeee_11111111-2222-3333-4444-555555555
    

Get-AppvClientPackage PowerShell Cmdlet

您可以使用 Start-AppVVirtualProcess Cmdlet 來擷取套件名稱,然後在指定套件的虛擬環境中啟動進程。 這個方法可讓您在 App-V 套件的內容中啟動任何命令,無論套件目前是否正在執行。

使用下列範例語法,並將套件的名稱取代為< Package >

$AppVName = Get-AppvClientPackage <Package>

Start-AppvVirtualProcess -AppvClientObject $AppVName cmd.exe

如果您不知道套件的確切名稱,您可以使用命令列Get-AppvClientPackage *executable\,其中 *executable是應用程式的名稱,例如:Get-AppvClientPackage *Word*。

命令列參數 /appvpid: < PID>

您可以將/appvpid: < PID >參數套用至任何命令,這可讓該命令在您選取的虛擬進程中執行,方法是將其進程識別碼指定 (PID) 。 使用此方法會在已執行的可執行檔所在的相同 App-V 環境中啟動新的可執行檔。

例子: cmd.exe /appvpid:8108

若要在 App-V 進程的 PID) (尋找進程識別碼,請從提升許可權的命令提示字元執行命令 tasklist.exe

命令列攔截開關 /appvve: < GUID>

此參數可讓您在 App-V 套件的虛擬環境中執行本機命令。 不同于 /appvid 交換器,虛擬環境必須已經在執行中,此參數可讓您啟動虛擬環境。

語法: cmd.exe /appvve:<PACKAGEGUID_VERSIONGUID>

例子: cmd.exe /appvve:aaaaaaaa-bbbb-cccc-dddd-eeeeeeee_11111111-2222-3333-4444-55555555

若要取得應用程式的套件 GUID 和版本 GUID,請執行 Get-AppvClientPackage Cmdlet。 使用下列命令串連 /appvve 參數:

  • 冒號

  • 所需套件的套件 GUID

  • 底線

  • 所需套件的版本識別碼

如果您不知道套件的確切名稱,請使用命令列Get-AppvClientPackage *executable\,其中 *executable是應用程式的名稱,例如:Get-AppvClientPackage *Word*。

這個方法可讓您在 App-V 套件的內容中啟動任何命令,無論套件目前是否正在執行。

App-V 5.0 技術參考資訊