使用虛擬化應用程式在虛擬環境中執行本機安裝的應用程式
適用於:Windows 7 SP1、Windows 10、Windows 11、Windows Server 2012 R2、Windows Server 2016
您可以在虛擬環境中執行本機安裝的應用程式,以及使用 Microsoft Application Virtualization (App-V) 進行虛擬化的應用程式。 如果您:
想要在本機用戶端電腦上安裝和執行應用程式,但想要虛擬化並執行與該本機應用程式搭配運作的特定外掛程式。
正在針對 App-V 用戶端套件進行疑難解答,並想要在 App-V 虛擬環境中開啟本機應用程式。
每個方法基本上都會完成相同的工作,但某些方法可能比其他方法更適合某些應用程式,視虛擬化應用程式是否已在執行而定。
RunVirtual 登錄機碼
若要將本機安裝的應用程式新增至封裝或連線群組的虛擬環境,您可以在註冊表編輯器中將子機碼新增至 RunVirtual
登錄機碼,如下列各節所述。
沒有可用來管理此登錄機碼的組策略設定。 因此,您必須使用 Microsoft Intune 或 Configuration Manager、另一個電子軟體發佈 (ESD) 系統,或手動編輯登錄。
從 App-V 5.0 SP3 開始,使用 RunVirtual 時,您可以全域發佈套件或將套件發佈給使用者。
建立子機碼的步驟
- 使用下表中的資訊,使用可執行檔案的名稱建立新的登入機碼,例如 ,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 Windows PowerShell Cmdlet
您可以使用 Start-AppVVirtualProcess Cmdlet 來擷取套件名稱,然後在指定套件的虛擬環境中啟動進程。 這個方法可讓您在 App-V 套件的內容中啟動任何命令,無論套件目前是否正在執行。
使用下列範例語法,並將套件的名稱取代為 <Package>
:
$AppVName = Get-AppvClientPackage <Package>
Start-AppvVirtualProcess -AppvClientObject $AppVName cmd.exe
如果您不知道套件的確切名稱,您可以使用命令行 Get-AppvClientPackage YourExecutable
,其中 YourExecutable
是應用程式的名稱。 例如,輸入 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 YourExecutable
,其中 YourExecutable
是應用程式的名稱。 例如,輸入 Get-AppvClientPackage Word
。
這個方法可讓您在 App-V 套件的內容中啟動任何命令,無論套件目前是否正在執行。