搭配虛擬化應用程式在虛擬環境內執行本機安裝的應用程式
您可以在虛擬環境中執行本機安裝的應用程式,以及使用 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 |
僅全域發佈 |
建立子機碼的步驟
使用下表中的資訊,使用可執行檔的名稱建立新的登錄機碼,例如 ,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
建立子機碼。
將新登錄子機碼的值設定為封裝的 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 套件的內容中啟動任何命令,無論套件目前是否正在執行。