共用方式為


使用虛擬化應用程式在虛擬環境中執行本機安裝的應用程式

適用於: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 時,您可以全域發佈套件或將套件發佈給使用者。

建立子機碼的步驟

  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建立子機碼。 請勿在兩個登錄區下新增相同應用程式的金鑰。

  1. 將新登錄子機碼的值設定為封裝的 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 套件的內容中啟動任何命令,無論套件目前是否正在執行。