使用虛擬化應用程式 (5.1) ,在虛擬環境中執行本機安裝的應用程式
您可以在虛擬環境中執行本機安裝的應用程式,以及使用 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.1 | 全域發佈或發佈給使用者 |
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 套件的內容中啟動任何命令,無論套件目前是否正在執行。