在 Azure 虛擬桌面中新增及管理應用程式連結和 MSIX 應用程式連結應用程式
在此文章
提示
Azure 虛擬桌面的新版本應用程式連結可供使用。 選取本文頂端的按鈕,在應用程式連結 和 MSIX 應用程式連結 之間進行選擇,以查看相關文件。
應用程式連結可讓您將應用程式套件中的應用程式動態連結至 Azure 虛擬桌面中的使用者工作階段。 應用程式不會安裝在工作階段主機或映像本機上,可讓您為工作階段主機建立較少的自訂映像,並降低組織的營運負荷與成本。 使用應用程式連結傳遞應用程式,也可讓您更充分掌控使用者可在遠端工作階段中存取的應用程式。
MSIX 應用程式連結可讓您將應用程式套件中的應用程式動態連結至 Azure 虛擬桌面中的使用者工作階段。 應用程式不會安裝在工作階段主機或映像本機上,讓您更輕鬆地為工作階段主機建立自訂映像,並降低組織的營運負荷和成本。 使用 MSIX 應用程式連結傳遞應用程式,也可以讓您更充分掌控使用者可在遠端工作階段中存取的應用程式。
本文說明如何使用 Azure 入口網站和 Azure PowerShell,在 Azure 虛擬桌面中使用應用程式連結來新增和管理應用程式。 您無法使用 Azure CLI 新增或管理應用程式連結應用程式。 開始之前,請確認您已閱讀 Azure 虛擬桌面中應用程式連結和 MSIX 應用程式連結 的概觀。
本文說明如何使用 Azure 入口網站和 Azure PowerShell,在 Azure 虛擬桌面中新增和管理具有 MSIX 應用程式連結的 MSIX 套件。 您無法使用 Azure CLI 新增或管理 MSIX 應用程式連結應用程式。 開始之前,請確認您已閱讀 Azure 虛擬桌面中應用程式連結和 MSIX 應用程式連結 的概觀。
重要
您必須選擇是否要將應用程式連結或 MSIX 應用程式連結使用於主機集區。 同一主機集區無法同時使用兩種版本。
必要條件
若要在 Azure 虛擬桌面中使用應用程式連結,您需要下列項目:
若要在 Azure 虛擬桌面中使用 MSIX 應用程式連結,您需要符合必要條件:
您的工作階段主機必須加入 Microsoft Entra ID 或 Active Directory Domain Services (AD DS) 網域。
您的工作階段主機必須加入 Active Directory Domain Services (AD DS) 網域。 不支援 Microsoft Entra ID。
使用者帳戶必須是混合式帳戶 (在 AD DS 中建立,並同步至 Microsoft Entra ID)。 群組可以是混合式或 Microsoft Entra ID 群組。
與工作階段主機位於相同 Azure 區域中的 SMB 檔案共用。 主機集區中的所有工作階段主機都必須具有 讀取 其電腦帳戶的存取權限。 此檔案共用可用來儲存應用程式映像。 如需檔案共用需求的詳細資訊,請參閱 檔案共用 。
若要在工作階段主機加入 Microsoft Entra ID 時使用 Azure 檔案儲存體,您必須將 Reader and Data Access 這個 Azure 角色型存取控制 (RBAC) 角色指派給 Azure 虛擬桌面 和 Azure 虛擬桌面 ARM 提供者 服務主體。 若要瞭解如何將 Azure RBAC 角色指派給 Azure 虛擬桌面服務主體,請參閱 將 RBAC 角色指派給 Azure 虛擬桌面服務主體 。
與工作階段主機位於相同 Azure 區域中的 SMB 檔案共用。 主機集區中的所有工作階段主機都必須具有 讀取 其電腦帳戶的存取權限。 此檔案共用可用來儲存應用程式映像。 如需檔案共用需求的詳細資訊,請參閱 檔案共用 。
您從應用程式套件建立並儲存在檔案共用上的 MSIX 或 Appx 磁碟映像。 如需詳細資訊,請參閱 建立映像 ,您也可以下載預先建置的 MSIX 套件進行測試。
您從應用程式套件建立並儲存在檔案共用上的 MSIX 映像。 如需詳細資訊,請參閱 建立映像 ,您也可以下載預先建置的 MSIX 套件進行測試。
您必須使用 Az.DesktopVirtualization PowerShell 模組 4.2.1 版,其中包含支援應用程式連結的 Cmdlet。 您可以從 PowerShell 資源庫 下載並安裝 Az.DesktopVirtualization PowerShell 模組。
重要
所有 MSIX 應用程式套件都包含憑證。 您必須負責確定您的環境信任憑證。 自我簽署憑證支援適當的信任鏈結。
新增應用程式
若要將 MSIX 或 Appx 映像中的應用程式新增至 Azure 虛擬桌面作為應用程式連結套件,請針對您的案例選取相關的索引標籤並遵循步驟。
以下說明如何使用 Azure 入口網站,將 MSIX 或 Appx 映像新增為應用程式連結套件:
登入 Azure 入口網站 。
在搜尋列中,輸入 Azure 虛擬桌面 ,然後選取相符的服務項目以前往 Azure 虛擬桌面概觀。
選取 [應用程式連結] ,然後選取 [+ 建立] 。
在 [基本] 索引標籤上,輸入下列資訊:
參數
描述
訂用帳戶
從下拉式清單中選取您要新增 MSIX 或 Appx 映像的訂用帳戶。
資源群組
選取現有的資源群組或選取 [建立新項目],然後輸入名稱。
主機集區
從下拉式清單中選取現有的主機集區。
Location
選取應用程式連結套件的 Azure 區域。
完成此索引標籤之後,請選取 [下一步] 。
在 [映射路徑] 索引標籤上,完成下列資訊:
參數
描述
映像路徑
如果您的映像儲存在 Azure 檔案儲存體中,請從由 [從儲存體帳戶選取] ,或 輸入 UNC 以指定 UNC 路徑。 後續欄位取決於您選取的選項。
從儲存體帳戶選取
儲存體帳戶
選取您的映像所在地儲存體帳戶。
檔案共用
選取 [選取檔案] ,然後瀏覽至檔案共用和映像所在的目錄。 勾選您要新增的映像旁的方塊,例如 MyApp.cim
,然後選取 [選取] 。
MSIX 套件
從映像中選取 MSIX 或 Appx 套件。
輸入 UNC
UNC
輸入映像檔的 UNC 路徑。
MSIX 套件
從映像中選取 MSIX 或 Appx 套件。
任一選項
Display name
輸入應用程式的易記名稱。
版本
檢查預期的版本號碼是否已顯示。
註冊類型
選取您要使用的 [註冊類型] 。
州/省
選取套件的初始 狀態 。
失敗時的健康情況檢查狀態
如果套件無法在工作階段上運行,請選取套件的狀態。 AppAttachHealthCheck 會報告 工作階段主機健康情況檢查狀態 。
完成此索引標籤之後,請選取 [下一步] 。
提示
完成此索引標籤之後,您可以繼續選擇性地將應用程式指派給主機集區、使用者和群組。 或者,如果您想要個別設定指派,請選取 [檢閱 + 建立] ,然後前往 [指派應用程式連結套件] 。
選擇性 : 在 [指派] 索引標籤上,完成下列資訊:
對於 主機集區 ,選取您要指派應用程式的主機集區。 如果您已經將 MSIX 應用程式連結 使用於主機集區,您無法選取該主機集區,因為您無法將兩個版本的應用程式連結使用於同一主機集區。
選取 [新增使用者或使用者群組] ,然後搜尋並選取您要指派應用程式的使用者或群組。 完成後,選取 [選取] 。
檢閱您新增的指派,然後選取 [下一步] 。
選擇性 :在 [標籤] 索引標籤上,您可以輸入所需的任何名稱/值組,然後選取 [檢閱 + 建立] 。
在 [檢閱 + 建立] 索引標籤上,確認驗證通過,並檢閱部署期間將使用的資訊,然後選取 [建立] 以新增應用程式。
以下說明如何使用 Az.DesktopVirtualization PowerShell 模組,將 MSIX 或 Appx 映像新增為應用程式連結套件。 請務必將 <placeholder>
值變更為自己的值。
在 Azure 入口網站中使用 PowerShell 終端機類型開啟 Azure Cloud Shell ,或在本機裝置上執行 PowerShell。
在預覽期間,請執行下列命令,確認您有可用的 PowerShell Cmdlet:
Import-Module Az.DesktopVirtualization
Get-Command -Module Az.DesktopVirtualization -Noun "*AppAttach*"
您的輸出應該類似下列輸出:
CommandType Name Version Source
----------- ---- ------- ------
Function Get-AzWvdAppAttachPackage 4.2.1 Az.DesktopVirtualization
Function Import-AzWvdAppAttachPackageInfo 4.2.1 Az.DesktopVirtualization
Function New-AzWvdAppAttachPackage 4.2.1 Az.DesktopVirtualization
Function Remove-AzWvdAppAttachPackage 4.2.1 Az.DesktopVirtualization
Function Update-AzWvdAppAttachPackage 4.2.1 Az.DesktopVirtualization
執行下列命令,以取得您想要新增的映像屬性,並將它們儲存於變數中。 您需要指定主機集區,但它可以是工作階段主機能存取檔案共用的任何主機集區。
# Get the properties of the MSIX or Appx image
$parameters = @{
HostPoolName = '<HostPoolName>'
ResourceGroupName = '<ResourceGroupName>'
Path = '<UNCPathToImageFile>'
}
$app = Import-AzWvdAppAttachPackageInfo @parameters
執行下列命令,檢查應用程式屬性中只有一個物件:
$app | FL *
選擇性 :如果您在輸出中有多個物件,例如 x64 和相同應用程式的 x86 版本,可以執行下列命令,使用參數 PackageFullName
來指定您要新增的應用程式:
# Specify the package full name
$packageFullName = '<PackageFullName>'
# Get the properties of the application
$parameters = @{
HostPoolName = '<HostPoolName>'
ResourceGroupName = '<ResourceGroupName>'
Path = '<UNCPathToImageFile>'
}
$app = Import-AzWvdAppAttachPackageInfo @parameters | ? ImagePackageFullName -like *$packageFullName*
執行下列命令,將映像新增為應用程式連結套件。 在此範例中, 應用程式狀態 標示為 作用中 、應用程式註冊 設定為 隨選 ,而失敗時將 工作階段主機健康情況檢查 狀態設定為 NeedsAssistance :
$parameters = @{
Name = '<AppName>'
ResourceGroupName = '<ResourceGroupName>'
Location = '<AzureRegion>'
FailHealthCheckOnStagingFailure = 'NeedsAssistance'
ImageIsRegularRegistration = $false
ImageDisplayName = '<AppDisplayName>'
ImageIsActive = $true
}
New-AzWvdAppAttachPackage -AppAttachPackage $app @parameters
成功新增套件時,沒有任何輸出。
您可以執行下列命令來驗證套件已新增:
$parameters = @{
Name = '<AppName>'
ResourceGroupName = '<ResourceGroupName>'
}
Get-AzWvdAppAttachPackage @parameters | FL Name, ImagePackageApplication, ImagePackageFamilyName, ImagePath, ImageVersion, ImageIsActive, ImageIsRegularRegistration, SystemDataCreatedAt
輸出內容應會類似於下列範例:
Name : My App
ImagePackageApplication : {MyApp}
ImagePackageFamilyName : MyApp_abcdef123ghij
ImagePath : \\fileshare\Apps\MyApp\MyApp.cim
ImageVersion : 1.0.0.0
ImageIsActive : True
ImageIsRegularRegistration : True
SystemDataCreatedAt : 7/31/2023 3:03:43 PM
指派應用程式連結套件
您必須將應用程式連結套件指派給主機集區,以及群組和使用者。 針對您的案例選取相關的索引標籤,然後遵循步驟。
注意
使用者帳戶必須是混合式帳戶 (在 AD DS 中建立,並同步至 Microsoft Entra ID),但群組則否。
以下說明如何使用 Azure 入口網站將應用程式套件指派給主機集區、使用者和群組:
主機集區
從 Azure 虛擬桌面概觀中,選取 [應用程式連結] ,然後選取您要指派的應用程式連結套件名稱。
在 [管理 ] 區段中,選取 [主機集區] :
選取 [+ 指派] ,然後從下拉式清單中選取一或多個主機集區。 請確定主機集區中的所有會話主機都必須具有 讀取 其電腦帳戶的存取權限,如必要條件中所列。
選取 [新增]。
群組和使用者
從 Azure 虛擬桌面概觀中,選取 [應用程式連結] ,然後選取您要指派的應用程式連結套件名稱。
在 [管理] 區段中,選取 [使用者] :
從清單中選取一或多個群組及/或使用者,然後選取 [+ 新增] 。
選取選取 。
以下說明如何使用 Az.DesktopVirtualization PowerShell 模組,將應用程式套件指派給主機集區和群組和使用者。
主機集區
重要
您每次指定的主機集區識別碼都會覆寫任何現有的指派。 如果您想要在現有的主機集區清單中新增或移除主機集區,您必須指定您要指派應用程式的所有主機集區。
在相同的 PowerShell 工作階段中,執行下列命令,取得您要指派應用程式的主機集區的資源識別碼,並將其新增至陣列:
# Add a comma-separated list of host pools names
$hostPoolNames = "<HostPoolName1>","<HostPoolName2>"
# Create an array and add the resource ID for each host pool
$hostPoolIds = @()
foreach ($hostPoolName in $HostPoolNames) {
$hostPoolIds += (Get-AzWvdHostPool | ? Name -eq $hostPoolName).Id
}
擁有主機集區的資源識別碼之後,您可以執行下列命令,將應用程式套件指派給這些資源識別碼:
$parameters = @{
Name = '<AppName>'
ResourceGroupName = '<ResourceGroupName>'
Location = '<AzureRegion>'
HostPoolReference = $hostPoolIds
}
Update-AzWvdAppAttachPackage @parameters
若要從所有主機集區取消指派應用程式套件,您可以執行下列命令來傳遞空的主機集區陣列:
$parameters = @{
Name = '<AppName>'
ResourceGroupName = '<ResourceGroupName>'
Location = '<AzureRegion>'
HostPoolReference = @()
}
Update-AzWvdAppAttachPackage @parameters
群組和使用者
以下說明如何使用 Az.DesktopVirtualization PowerShell 模組,將應用程式指派給群組和使用者。
使用下列其中一個範例,取得您想要新增或移除應用程式之群組或使用者的物件標識碼,並將其新增至陣列。 我們建議您將應用程式指派給群組。
執行下列命令以取得群組或群組的物件識別碼,並將其新增至陣列。 本範例使用群組顯示名稱:
# Add a comma-separated list of group names
$groups = "Group1","Group2"
# Connect to Microsoft Graph
Connect-MgGraph -Scopes 'Group.Read.All'
# Create an array and add the ID for each group
$Ids = @()
foreach ($group in $groups) {
$Ids += (Get-MgGroup | ? DisplayName -eq $group).Id
}
執行下列命令以取得使用者的物件識別碼,並將其新增至陣列。 此範例使用使用者主體名稱 (UPN):
# Add a comma-separated list of user principal names
$users = "user1@contoso.com","user2@contoso.com"
# Connect to Azure AD
Connect-MgGraph -Scopes 'User.Read.All'
# Create an array and add the ID for each user
$userIds = @()
foreach ($user in $users) {
$userIds += (Get-MgUser | ? UserPrincipalName -eq $user).Id
}
擁有使用者或群組的物件識別碼之後,您可以使用下列其中一個範例,將使用者或群組的物件識別碼新增至應用程式,或將其從應用程式中移除,以指派 Desktop Virtualization User 這個 RBAC 角色。
若要將群組或使用者新增至應用程式,請執行下列命令:
$parameters = @{
Name = '<AppName>'
ResourceGroupName = '<ResourceGroupName>'
}
$appAttachPackage = Get-AzWvdAppAttachPackage @parameters
foreach ($userId in $userIds) {
New-AzRoleAssignment -ObjectId $userId -RoleDefinitionName "Desktop Virtualization User" -Scope $appAttachPackage.Id
}
若要將群組或使用者從應用程式移除,請執行下列命令:
$parameters = @{
Name = '<AppName>'
ResourceGroupName = '<ResourceGroupName>'
}
$appAttachPackage = Get-AzWvdAppAttachPackage @parameters
foreach ($userId in $userIds) {
Remove-AzRoleAssignment -ObjectId $userId -RoleDefinitionName "Desktop Virtualization User" -Scope $appAttachPackage.Id
}
注意
新增套件、將其設定為作用中,並將它指派給主機集區和使用者,將使應用程式可在桌面工作階段中自動成為可用。 如果您想要使用 RemoteApp,您必須將應用程式新增至 RemoteApp 應用程式群組。 如需詳細資訊,請參閱 使用 RemoteApp 應用程式群組發佈 MSIX 或 Appx 應用程式 。 您無法使用應用程式連結將 MSIX 或 Appx 應用程式新增至桌面應用程式群組。
變更註冊類型和狀態
您可以變更其 註冊類型 和 狀態 來管理 MSIX 和 Appx 套件。 針對您的案例選取相關的索引標籤,然後遵循步驟。
以下說明如何使用 Azure 入口網站來變更套件的註冊類型和狀態:
從 Azure 虛擬桌面概觀中,選取 [應用程式連結] 。 您應該會看到主機集區內所有現有套件的清單。
選取您想要變更的套件名稱。
若要變更註冊類型,請選取 [隨選] 或 [登入時註冊] ,然後選取 [儲存] 。
若要變更狀態,請選取 [非使用中] 或 [使用中] ,然後選取 [儲存] 。
以下說明如何使用 Az.DesktopVirtualization PowerShell 模組來變更套件的註冊類型和狀態。
在相同的 PowerShell 工作階段中,您可以執行下列命令來變更註冊類型和狀態:
執行下列命令來變更註冊類型。 將 IsRegularRegistration
設定為 $true
(適用於 [登入時註冊] ),或設定為 $false
(適用於 [隨選] )。
$parameters = @{
Name = '<Name>'
ResourceGroupName = '<ResourceGroupName>'
Location = '<AzureRegion>'
IsRegularRegistration = $true
}
Update-AzWvdAppAttachPackage @parameters
執行下列命令以變更狀態。 請將 IsActive
設定為 $true
以針對 作用中 ,或設定為 $false
以針對 非作用中 。
$parameters = @{
Name = '<Name>'
ResourceGroupName = '<ResourceGroupName>'
Location = '<AzureRegion>'
IsActive = $true
}
Update-AzWvdAppAttachPackage @parameters
使用 RemoteApp 應用程式群組發佈 MSIX 或 Appx 應用程式
您可以將它們發佈至 RemoteApp 應用程式群組,將 MSIX 和 Appx 應用程式提供給使用者。 當您使用應用程式連結時,您不需要將應用程式新增至桌面應用程式群組,因為您只需要 指派應用程式連結套件 。 您想要發佈的應用程式必須指派給主機集區。
以下說明如何使用 Azure 入口網站,從本文中新增的套件將應用程式新增至 RemoteApp 應用程式群組:
從 Azure 虛擬桌面概觀中,選取 [應用程式群組] ,然後選取您要新增應用程式的 RemoteApp 應用程式群組。
選取 [應用程式] ,選取 [+ 新增] 。 請確定在指派應用程式群組的主機集區中,至少有一個工作階段主機是開機狀態。
在 [基本] 索引標籤上,輸入下列資訊:
參數
值/描述
應用程式來源
從下拉式清單中選取 應用程式連結 。 如果您想要從 開始功能表 或藉由指定檔案路徑新增應用程式,請參閱 使用 RemoteApp 發佈應用程式 。
套件
從下拉式清單中選取主機集區可用的套件。 區域套件來自應用程式連結 。
申請
從下拉式清單中選取應用程式。
應用程式識別碼
輸入應用程式的唯一識別碼。
Display name
輸入使用者容易記住的應用程式名稱。
描述
輸入應用程式的描述。
完成此索引標籤之後,請選取 [下一步] 。
在 [圖示] 索引標籤上,選取 [預設] 以使用應用程式的預設圖示,或選取 [檔案路徑] 以使用自訂圖示。 對於 [檔案路徑] ,請選取下列其中一個選項:
瀏覽 Azure 檔案儲存體 ,以使用 Azure 檔案共用中的圖示。 依序選取 [選取儲存體帳戶] 和包含圖示檔案的儲存體帳戶,然後選取 [選取圖示檔案] 。 瀏覽至您圖示的檔案共享和目錄,勾選您要新增的圖示旁的方塊,例如 MyApp.ico
,然後選取 [選取] 。 您也可以使用 .png
檔案。 對於 [圖示索引] ,指定您想要使用的圖示索引編號。 這個數字通常是 0 。
[UNC 檔案路徑] 以使用檔案共用的圖示。 對於圖示路徑 ,請輸入圖示檔案的 UNC 路徑,例如 \\MyFileShare\MyApp.ico
。 您也可以使用 .png
檔案。 對於 [圖示索引] ,指定您想要使用的圖示索引編號。 這個數字通常是 0 。
完成此索引標籤之後,請選取 [檢閱 + 新增] 。
在 [檢閱 + 新增] 索引標籤上,確認通過驗證並檢閱用來新增應用程式的資訊,然後選取 [新增] ,將應用程式新增至 RemoteApp 應用程式群組。
以下說明如何使用 Az.DesktopVirtualization PowerShell 模組,將本文中所新增套件中的應用程式新增至 RemoteApp 應用程式群組。
在相同的 PowerShell 工作階段中,如果套件中有多個應用程式,您必須執行下列命令,以取得您想要從套件新增的應用程式應用程式識別碼:
Write-Host "These are the application IDs available in the package. Many packages only contain one application." -ForegroundColor Yellow
$app.ImagePackageApplication.AppId
記下您要發佈的應用程式識別碼 (例如 App
),然後執行下列命令,將應用程式新增至 RemoteApp 應用程式群組:
$parameters = @{
Name = '<ApplicationName>'
ApplicationType = 'MsixApplication'
MsixPackageFamilyName = $app.ImagePackageFamilyName
MsixPackageApplicationId = '<ApplicationID>'
GroupName = '<ApplicationGroupName>'
ResourceGroupName = '<ResourceGroupName>'
CommandLineSetting = 'DoNotAllow'
}
New-AzWvdApplication @parameters
執行下列命令,以確認應用程式群組中的應用程式清單:
$parameters = @{
GroupName = '<ApplicationGroupName>'
ResourceGroupName = '<ResourceGroupName>'
}
Get-AzWvdApplication @parameters
更新現有的套件
您可以提供包含已更新應用程式的新映像來更新現有的套件。 如需詳細資訊,請參閱 應用程式的新版本 。
若要就地更新現有的套件,請針對您的案例選取相關的索引標籤,並遵循步驟。
以下說明如何使用 Azure 入口網站更新現有的套件:
從 Azure 虛擬桌面概觀中,選取 [應用程式連結] 。 您應該會看到所有現有套件的清單。
選取您要更新的套件,然後從概觀中選取 [更新] 。
輸入更新套件的資訊:
訂用帳戶 和 資源群組 會預先填入目前套件的值。
選取您要更新套件的 主機集區 。
從 選取儲存體帳戶 或 輸入 UNC 選取映像路徑。 後續欄位取決於您選取的選項。
對於 從儲存體帳戶選取 ,請選取包含已更新映像的 儲存體帳戶 。 選取 [選取檔案] ,然後瀏覽至檔案共用和映像所在的目錄。 勾選您要新增的映像旁的方塊,例如 MyApp.cim
,然後選取 [選取] 。
對於 輸入 UNC ,請輸入映像檔的 UNC 路徑。
對於 MSIX 套件 ,從映像中選取 MSIX 或 Appx 套件。
完成欄位之後,請選取 [更新] 。
以下說明如何使用 Az.DesktopVirtualization PowerShell 模組來更新現有的套件。
在相同的 PowerShell 工作階段中,執行下列命令,以取得已更新應用程式的屬性,並將其儲存於變數中:
# Get the properties of the application
$parameters = @{
HostPoolName = '<HostPoolName>'
ResourceGroupName = '<ResourceGroupName>'
Path = '<UNCPathToImageFile>'
}
$app = Import-AzWvdAppAttachPackageInfo @parameters
執行下列命令,檢查應用程式屬性中只有一個物件:
$app | FL *
如果您在輸出中有多個物件,例如相同應用程式的的 x64 和 x86 版本,您可以執行下列命令,使用參數 PackageFullName
來指定您要新增的物件:
# Specify the package full name
$packageFullName = '<PackageFullName>'
# Get the properties of the application
$parameters = @{
HostPoolName = '<HostPoolName>'
ResourceGroupName = '<ResourceGroupName>'
Path = '<UNCPathToImageFile>'
}
$app = Import-AzWvdAppAttachPackageInfo @parameters | ? ImagePackageFullName -like *$packageFullName*
執行下列命令以更新現有的套件。 新的磁碟映像會取代現有的磁碟映像,但會保留現有的指派。 在使用者停止使用之前,請勿刪除現有的映像。
$parameters = @{
Name = '<PackageName>'
ResourceGroupName = '<ResourceGroupName>'
}
Update-AzWvdAppAttachPackage -AppAttachPackage $app @parameters
移除應用程式連結套件
您可以移除不再需要的應用程式連結套件。 您不需要先取消指派主機集區或使用者和群組。 針對您的案例選取相關的索引標籤,然後遵循步驟。
提示
您也可以使用與其他應用程式類型相同的方式,從應用程式群組中移除 MSIX 套件中以 RemoteApp 形式發佈的應用程式。 如需詳細資訊,請參閱 移除應用程式 。
以下說明如何使用 Azure 入口網站移除應用程式連結套件:
從 Azure 虛擬桌面概觀中,選取 [應用程式連結] 。 您應該會看到所有現有套件的清單。
勾選您要移除的套件名稱旁的方塊,然後選取 [移除] 。 該套件也會從其所指派的任何主機集區中移除。
以下說明如何使用 Az.DesktopVirtualization PowerShell 模組移除應用程式連結套件。
在相同的 PowerShell 工作階段中,執行下列命令來移除包含應用程式的套件:
$parameters = @{
Name = '<PackageName>'
ResourceGroupName = '<ResourceGroupName>'
}
Remove-AzWvdAppAttachPackage @parameters
將 MSIX 映像新增至主機集區
若要將 MSIX 映像新增至主機集區,請針對您的案例選取相關的索引卷標,並遵循步驟。
以下說明如何使用 Azure 入口網站新增 MSIX 映像:
登入 Azure 入口網站 。
在搜尋列中,輸入 Azure 虛擬桌面 ,然後選取相符的服務項目以前往 Azure 虛擬桌面概觀。
選取 [主機集區] ,然後選取您要新增 MSIX 映像的主機集區名稱。
從主機集區概觀中,選取 [MSIX 套件] ,然後選取 [+ 新增] 。
對於 MSIX 映像路徑 ,輸入指向檔案共用上 MSIX 映像的有效 UNC 路徑,例如 \\fileshare\Apps\MyApp\MyApp.cim
,然後選取 [新增] ,以檢查路徑是否有效。
一旦驗證路徑之後,會顯示更多欄位。 完成下列資訊:
參數
描述
MSIX 套件
從下拉式功能表中選取相關的 MSIX 套件名稱。
套件應用程式
這會顯示 應用程式 且無法設定。
Display name
輸入套件的易記名稱。
版本
檢查預期的版本號碼是否已顯示。
註冊類型
選取您要使用的 [註冊類型] 。
州/省
選取套件的初始 狀態 。
完成欄位之後,請選取 [新增] 。
以下說明如何使用 Az.DesktopVirtualization PowerShell 模組來新增 MSIX 套件。 請務必將 <placeholder>
值變更為自己的值。
在 Azure 入口網站中使用 PowerShell 終端機類型開啟 Azure Cloud Shell ,或在本機裝置上執行 PowerShell。
執行下列命令,以取得您要新增的 MSIX 映像中應用程式的屬性,並將其儲存於變數中:
# Get the properties of the MSIX image
$parameters = @{
HostPoolName = '<HostPoolName>'
ResourceGroupName = '<ResourceGroupName>'
Uri = '<UNCPathToImageFile>'
}
$app = Expand-AzWvdMsixImage @parameters
輸出內容應會類似於下列範例:
Name
----
hp01/expandmsiximage
執行下列命令,檢查應用程式屬性中只有一個物件:
$app | FL *
如果您在輸出中有多個物件,例如相同應用程式的的 x64 和 x86 版本,您可以執行下列命令,使用參數 PackageFullName
來指定您要新增的物件:
# Specify the package full name
$packageFullName = '<PackageFullName>'
# Get the properties of the application
$parameters = @{
HostPoolName = '<HostPoolName>'
ResourceGroupName = '<ResourceGroupName>'
Uri = '<UNCPathToImageFile>'
}
$app = Expand-AzWvdMsixImage @parameters | ? PackageFullName -like *$packageFullName*
執行下列命令,將 MSIX 映像新增至主機集區。 在此範例中,應用程式狀態 標示為 使用中 。
$parameters = @{
HostPoolName = '<HostPoolName>'
ResourceGroupName = '<ResourceGroupName>'
PackageAlias = $app.PackageAlias
DisplayName = '<DisplayName>'
ImagePath = $app.ImagePath
IsActive = $true
}
New-AzWvdMsixPackage @parameters
成功新增 MSIX 套件時,沒有任何輸出。
您可以執行下列命令來確認已新增 MSIX 套件:
$parameters = @{
HostPoolName = '<HostPoolName>'
ResourceGroupName = '<ResourceGroupName>'
}
Get-AzWvdMsixPackage @parameters | ? PackageFamilyName -eq $app.PackageFamilyName | FL *
輸出內容應會類似於下列範例:
DisplayName : My App
Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/avd/providers/Microsoft.DesktopVirtualization/hostpools/hp01/msixpackages/MyApp_1.0.0.0_neutral__abcdef123ghij
ImagePath : \\fileshare\Apps\MyApp\MyApp.cim
IsActive : True
IsRegularRegistration : False
LastUpdated : 7/27/2023 10:02:29 AM
Name : hp01/MyApp_1.0.0.0_neutral__abcdef123ghij
PackageApplication : {MyApp}
PackageDependency : {}
PackageFamilyName : MyApp_abcdef123ghij
PackageName : MyApp
PackageRelativePath : apps\MyApp_1.0.0.0_neutral__abcdef123ghij
SystemDataCreatedAt : 7/28/2023 9:04:00 AM
SystemDataCreatedBy : avdadmin@contoso.com
SystemDataCreatedByType : User
SystemDataLastModifiedAt : 7/28/2023 9:04:00 AM
SystemDataLastModifiedBy : avdadmin@contoso.com
SystemDataLastModifiedByType : User
Type : Microsoft.DesktopVirtualization/hostpools/msixpackages
Version : 1.0.0.0
變更註冊類型和狀態
您可以在主機集區中變更其 註冊類型 和 狀態 ,以管理主機集區中的 MSIX 套件。 針對您的案例選取相關的索引標籤,然後遵循步驟。
以下說明如何使用 Azure 入口網站來變更套件的註冊類型和狀態:
從 Azure 虛擬桌面概觀中,選取 [主機集區] ,然後選取要新增 MSIX 套件的主機集區名稱。
從主機集區概觀中,選取 MSIX 套件 。 您應該會看到主機集區內所有現有 MSIX 套件的清單。
選取您想要變更的 MSIX 套件名稱。
若要變更註冊類型,請選取 [隨選] 或 [登入時註冊] ,然後選取 [儲存] 。
若要變更狀態,請選取 [非使用中] 或 [使用中] ,然後選取 [儲存] 。
以下說明如何使用 Az.DesktopVirtualization PowerShell 模組來變更套件的註冊類型和狀態。
在相同的 PowerShell 工作階段中,執行下列命令,以取得主機集區上的 MSIX 套件清單及其目前的註冊類型和狀態:
$parameters = @{
HostPoolName = '<HostPoolName>'
ResourceGroupName = '<ResourceGroupName>'
}
Get-AzWvdMsixPackage @parameters | Select-Object DisplayName, ImagePath, Name, Version, IsRegularRegistration, IsActive
輸出內容應會類似於下列範例:
DisplayName ImagePath Name Version IsRegularRegistration IsActive
----------- --------- ----------------- ------- --------------------- --------
My App \\fileshare\Apps\MyApp\MyApp.cim hp01/MyApp_1.0.0.0_neutral__abcdef123ghij 1.0.0.0 False True
尋找您想要移除的套件,並使用 Name
參數的值,但一開始先移除 主機集區名稱 和 /
。 例如,hp01/MyApp_1.0.0.0_neutral__abcdef123ghij
會成為 MyApp_1.0.0.0_neutral__abcdef123ghij
。 以下是一些範例。
執行下列命令來變更註冊類型。 將 IsRegularRegistration
設定為 $true
(適用於 [登入時註冊] ),或設定為 $false
(適用於 [隨選] )。
$parameters = @{
FullName = '<FullName>'
HostPoolName = '<HostPoolName>'
ResourceGroupName = '<ResourceGroupName>'
IsRegularRegistration = $true
}
Update-AzWvdMsixPackage @parameters
執行下列命令以變更狀態。 請將 IsActive
設定為 $true
以針對 作用中 ,或設定為 $false
以針對 非作用中 。
$parameters = @{
FullName = '<FullName>'
HostPoolName = '<HostPoolName>'
ResourceGroupName = '<ResourceGroupName>'
IsActive = $true
}
Update-AzWvdMsixPackage @parameters
發佈 MSIX 應用程式
您可以將 MSIX 應用程式提供給使用者作為桌面或 RemoteApp 應用程式群組的一部分。 桌面應用程式群組可在使用者的開始功能表中提供應用程式,而 RemoteApp 應用程式群組則表示使用者可以個別串流應用程式。 如需應用程式群組的詳細資訊,請參閱 術語 。 針對您的案例選取相關的索引標籤,然後遵循步驟。
以下說明如何使用 Azure 入口網站,從本文中新增的套件將應用程式新增至 RemoteApp 應用程式群組:
從 Azure 虛擬桌面概觀中,選取 [應用程式群組] ,然後選取要新增應用程式的 RemoteApp 應用程式群組。
選取 [應用程式] ,選取 [+ 新增] 。 請確定在指派應用程式群組的主機集區中,至少有一個工作階段主機是開機狀態。
在 [基本] 索引標籤上,您看到的選項取決於您的應用程式群組是針對桌面還是 RemoteApp:
對於桌面應用程式群組,請完成下列資訊:
參數
值/描述
應用程式來源
MSIX 套件 會自動選取並呈現灰色。
套件
從下拉式清單中選取主機集區可用的套件。
應用程式識別碼
輸入應用程式的唯一識別碼。
Display name
輸入使用者容易記住的應用程式名稱。
描述
輸入應用程式的描述。
完成此索引標籤之後,請選取 [檢閱 + 新增] 。
對於 RemoteApp 應用程式群組,請完成下列資訊:
參數
值/描述
應用程式來源
從下拉式清單中選取 應用程式連結 。 如果您想要從 開始功能表 或藉由指定檔案路徑新增應用程式,請參閱 使用 RemoteApp 發佈應用程式 。
套件
從下拉式清單中選取主機集區可用的套件。 主機集區套件來自 MSIX 應用程式連結 。
申請
從下拉式清單中選取應用程式。
應用程式識別碼
輸入應用程式的唯一識別碼。
Display name
輸入使用者容易記住的應用程式名稱。
描述
輸入應用程式的描述。
完成此索引標籤之後,請選取 [下一步] 。
在 [圖示] 索引標籤上,選取 [預設] 以使用應用程式的預設圖示,或選取 [檔案路徑] 以使用自訂圖示。 對於 [檔案路徑] ,請選取下列其中一個選項:
瀏覽 Azure 檔案儲存體 ,以使用 Azure 檔案共用中的圖示。 依序選取 [選取儲存體帳戶] 和包含圖示檔案的儲存體帳戶,然後選取 [選取圖示檔案] 。 瀏覽至您圖示的檔案共享和目錄,勾選您要新增的圖示旁的方塊,例如 MyApp.ico
,然後選取 [選取] 。 您也可以使用 .png
檔案。 對於 [圖示索引] ,指定您想要使用的圖示索引編號。 這個數字通常是 0 。
[UNC 檔案路徑] 以使用檔案共用的圖示。 對於圖示路徑 ,請輸入圖示檔案的 UNC 路徑,例如 \\MyFileShare\MyApp.ico
。 您也可以使用 .png
檔案。 對於 [圖示索引] ,指定您想要使用的圖示索引編號。 這個數字通常是 0 。
完成此索引標籤之後,請選取 [檢閱 + 新增] 。
在 [檢閱 + 新增] 索引標籤上,確認通過驗證並檢閱用來新增應用程式的資訊,然後選取 [新增] ,將應用程式新增至應用程式群組。
以下說明如何使用 Az.DesktopVirtualization PowerShell 模組,將 MSIX 應用程式新增至應用程式群組。
在相同的 PowerShell 工作階段中,執行下列其中一個範例中的命令,將 MSIX 應用程式新增至應用程式群組。
若要將 MSIX 應用程式新增至桌面應用程式群組,請執行下列命令:
$parameters = {
Name = '<ApplicationName>'
ApplicationType = 'MsixApplication'
MsixPackageFamilyName = $app.PackageFamilyName
GroupName = '<ApplicationGroupName>'
ResourceGroupName = '<ResourceGroupName>'
CommandLineSetting = 'DoNotAllow'
}
New-AzWvdApplication @parameters
若要將 MSIX 應用程式新增至 RemoteApp 應用程式群組,如果在套件中有多個應用程式,您必須執行下列命令,以取得您想要從套件新增之應用程式的應用程式識別碼:
Write-Host "These are the application IDs available in the package. Many packages only contain one application." -ForegroundColor Yellow
$app.ImagePackageApplication.AppId
記下您要發佈的應用程式識別碼 (例如 App
),然後執行下列命令,將應用程式新增至 RemoteApp 應用程式群組:
$parameters = @{
Name = '<ApplicationName>'
ApplicationType = 'MsixApplication'
MsixPackageFamilyName = $app.PackageFamilyName
MsixPackageApplicationId = '<ApplicationID>'
GroupName = '<ApplicationGroupName>'
ResourceGroupName = '<ResourceGroupName>'
CommandLineSetting = 'DoNotAllow'
}
New-AzWvdApplication @parameters
執行下列命令,以確認應用程式群組中的應用程式清單:
$parameters = @{
GroupName = '<ApplicationGroupName>'
ResourceGroupName = '<ResourceGroupName>'
}
Get-AzWvdApplication @parameters
移除 MSIX 套件
您可以移除不再需要的 MSIX 套件。 針對您的案例選取相關的索引標籤,然後遵循步驟。
提示
您也可以使用與其他應用程式類型相同的方式,從應用程式群組中移除 MSIX 套件中的應用程式。 如需詳細資訊,請參閱 移除應用程式 。
以下說明如何使用 Azure 入口網站,從主機集區移除 MSIX 套件:
從 Azure 虛擬桌面概觀中,選取 [主機集區] ,然後選取要新增 MSIX 套件的主機集區名稱。
從主機集區概觀中,選取 MSIX 套件 。 您應該會看到主機集區內所有現有 MSIX 套件的清單。
勾選您要移除的 MSIX 套件名稱旁的方塊,然後選取 [移除] 。
以下說明如何使用 Az.DesktopVirtualization PowerShell 模組移除應用程式。
在相同的 PowerShell 工作階段中,執行下列命令,以取得主機集區上的 MSIX 套件清單:
$parameters = @{
HostPoolName = '<HostPoolName>'
ResourceGroupName = '<ResourceGroupName>'
}
Get-AzWvdMsixPackage @parameters | Select-Object DisplayName, ImagePath, PackageFamilyName, Version
輸出內容應會類似於下列範例:
DisplayName ImagePath Name Version
----------- --------- ----------------- -------
My App \\fileshare\Apps\MyApp\MyApp.cim hp01/MyApp_1.0.0.0_neutral__abcdef123ghij 1.0.0.0
尋找您想要移除的套件,並使用 Name
參數的值,但一開始先移除 主機集區名稱 和 /
。 例如,hp01/MyApp_1.0.0.0_neutral__abcdef123ghij
會成為 MyApp_1.0.0.0_neutral__abcdef123ghij
。 然後執行下列命令來移除套件:
$parameters = @{
FullName = '<FullName>'
HostPoolName = '<HostPoolName>'
ResourceGroupName = '<ResourceGroupName>'
}
Remove-AzWvdMsixPackage @parameters
停用自動更新
建議您停用 MSIX 和 Appx 應用程式的自動更新。 若要停用自動更新,您需要在工作階段主機上設定下列登錄值:
建議您停用 MSIX 應用程式的自動更新。 若要停用自動更新,您需要在工作階段主機上設定下列登錄值:
金鑰 : HKLM\Software\Policies\Microsoft\WindowsStore
類型: DWORD
名稱 :AutoDownload
值 :2
描述 :停用 Microsoft Store 自動更新。
金鑰 : HKCU\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager
類型: DWORD
名稱 :PreInstalledAppsEnabled
[值] :0
描述 :停用內容傳遞自動下載。
金鑰 :HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager\Debug
類型: DWORD
名稱 :ContentDeliveryAllowedOverride
值 :2
描述 :停用內容傳遞自動下載。
您可以使用群組原則或 Intune 來設定這些登錄值,視工作階段主機的管理方式而定。 您也可以在每台工作階段主機上,以系統管理員身分執行下列 PowerShell 命令來設定它們,但如果您這樣做,您也應該在作業系統映像中設定它們:
# Disable Microsoft Store automatic update
If (!(Test-Path "HKLM:\Software\Policies\Microsoft\WindowsStore")) {
New-Item -Path "HKLM:\Software\Policies\Microsoft\WindowsStore" -Force
}
New-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\WindowsStore" -Name AutoDownload -PropertyType DWORD -Value 2 -Force
# Disable content delivery automatic download
If (!(Test-Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager")) {
New-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Force
}
New-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name PreInstalledAppsEnabled -PropertyType DWORD -Value 0 -Force
# Disables content delivery automatic download
If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager\Debug")) {
New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager\Debug" -Force
}
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager\Debug" -Name ContentDeliveryAllowedOverride -PropertyType DWORD -Value 2 -Force
下一步
瞭解如何使用 RemoteApp 從開始功能表或檔案路徑發佈應用程式。 如需詳細資訊,請參閱 發佈應用程式 。