在 Azure 虛擬桌面中使用 RemoteApp 發佈應用程式
在此文章
必要條件
將應用程式新增至 RemoteApp 應用程式群組
將應用程式指派給使用者
發佈 Microsoft Store 應用程式
發佈 Windows 沙箱
下一步
顯示其他 2 個
在 Azure 虛擬桌面中,有兩種方式可以將應用程式提供給使用者:成為完整桌面的一部分,或成為個別的應用程式並搭配 RemoteApp。 您可以將應用程式新增至與主機集區和工作區相關聯的應用程式群組,然後指派給使用者,藉以發佈應用程式。 如需應用程式群組的詳細資訊,請參閱詞彙 。
您發佈應用程式的案例如下:
若是 RemoteApp 應用程式群組,您發佈應用程式以進行遠端串流,這些應用程式安裝在工作階段主機的本機上,或是使用應用程式連結 和 MSIX 應用程式連結 動態提供,然後在其中一個支援的遠端桌面用戶端 中,以個別應用程式的方式提供給使用者。
若是桌面 應用程式群組,您只能利用 MSIX 應用程式連結 ,以 MSIX 套件形式發佈一個完整的桌面及所有應用程式,才能在桌面工作階段中顯示在使用者的開始功能表中。 如果您使用應用程式連結 ,應用程式不會新增至桌面應用程式群組。
本文說明如何利用 Azure 入口網站和 Azure PowerShell,使用 RemoteApp 發佈安裝在本機的應用程式。 您無法使用 Azure CLI 發佈應用程式。
重要
可存取桌面應用程式群組和指派給相同主機集區 RemoteApp 應用程式群組的使用者,只能存取由主機集區慣用應用程式群組類型所決定之應用程式群組的應用程式類型。 如需詳細資訊,請參閱 集區主機集 區的慣用應用程式群組類型行為。
若要將應用程式發佈至 RemoteApp 應用程式群組,您需要下列項目:
若要將應用程式發佈至 RemoteApp 應用程式群組,您需要下列項目:
具有有效訂用帳戶的 Azure 帳戶。
具有工作階段主機 的現有主機集區 、RemoteApp 應用程式群組和工作區 。
在獲派應用程式群組的主機集區中,至少有一個工作階段主機是開機狀態。
您要發佈的應用程式會安裝在獲派應用程式群組之主機集區中的工作階段主機上。 如果您使用應用程式連結,您必須將 MSIX 套件新增並指派給主機集區。 如需詳細資訊,請參閱新增和管理應用程式連結應用程式 。
您使用的 Azure 帳戶在資源群組或訂用帳戶中,必須至少具有內建角色型存取控制 (RBAC) 角色:桌面虛擬化應用程式群組參與者 ,您才能建立資源。
如果您想要發佈應用程式連結應用程式,您必須使用 Az.DesktopVirtualization PowerShell 模組版本 4.2.0 或更新版本,其中包含支援應用程式連結的 Cmdlet。 您可以從 PowerShell 資源庫 下載並安裝 Az.DesktopVirtualization PowerShell 模組。
如果您想要發佈 Microsoft Store 的應用程式,您還需要屬於 Windows 的 Appx 模組。
將應用程式新增至 RemoteApp 應用程式群組
若要將應用程式新增至 RemoteApp 應用程式群組,請針對您的案例選取相關的索引標籤,然後遵循步驟。
以下說明如何使用 Azure 入口網站將應用程式新增至 RemoteApp 應用程式群組。
登入 Azure 入口網站 。
在搜尋列中輸入 Azure 虛擬桌面 ,並選取相符的服務項目。
選取 [應用程式群組] ,然後選取您要新增應用程式的 RemoteApp 應用程式群組。
依序選取 [應用程式] 、[+ 新增] 。 請確定在獲派應用程式群組的主機集區中,至少有一個工作階段主機是開機狀態。
在 [基本] 索引標籤的 [應用程式來源] 下拉式清單中,選取 [應用程式連結] 、[開始功能表] 或 [檔案路徑] 。 其餘欄位會根據您選取的應用程式來源而有所變更。
完成此索引標籤之後,請選取 [下一步] 。
在 [圖示] 索引標籤上,您看到的選項取決於您在 [基本] 索引標籤上選取的應用程式來源。若是 [應用程式連結] ,您可以使用 UNC 路徑,但若是 [開始功能表] 和 [檔案路徑] ,您只能使用本機路徑。
完成此索引標籤之後,請選取 [檢閱 + 新增] 。
在 [檢閱 + 新增] 索引標籤上,確定通過驗證並檢閱用來新增應用程式的資訊,然後選取 [新增] ,將應用程式新增至 RemoteApp 應用程式群組。
以下說明如何使用 Az.DesktopVirtualization PowerShell 模組,將應用程式新增至 RemoteApp 應用程式群組。 請務必將 <placeholder>
值變更為自己的值。
在 Azure 入口網站中使用 PowerShell 終端機類型開啟 Azure Cloud Shell ,或在本機裝置上執行 PowerShell。
執行下列其中一個範例中的命令,將應用程式新增至 RemoteApp 應用程式群組。
若要新增來自工作階段主機中 Windows 開始功能表 的應用程式,請執行下列命令。 此範例發佈 WordPad 及其預設圖示,而且沒有命令列參數。
# List the available applications in the start menu
$parameters = @{
ApplicationGroupName = '<ApplicationGroupName>'
ResourceGroupName = '<ResourceGroupName>'
}
Get-AzWvdStartMenuItem @parameters | Select-Object Name, AppAlias
將上一個命令的 AppAlias
值用於您要發佈的應用程式:
# Use the value from AppAlias in the previous command
$parameters = @{
Name = 'WordPad'
AppAlias = 'wordpad'
GroupName = '<ApplicationGroupName>'
ResourceGroupName = '<ResourceGroupName>'
CommandLineSetting = 'DoNotAllow'
}
New-AzWvdApplication @parameters
若要透過指定工作階段主機上的檔案路徑 來新增應用程式,請執行下列命令。 此範例會使用不同的圖示索引指定 Microsoft Excel,並且新增命令列參數。
$parameters = @{
Name = 'Microsoft Excel'
FilePath = 'C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE'
GroupName = '<ApplicationGroupName>'
ResourceGroupName = '<ResourceGroupName>'
IconPath = 'C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE'
IconIndex = '1'
CommandLineSetting = 'Require'
CommandLineArgument = '/t http://MySite/finance-template.xltx'
ShowInPortal = $true
}
New-AzWvdApplication @parameters
若要從應用程式連結 或 MSIX 應用程式連結 新增 MSIX 或 Appx 應用程式,您必須將 MSIX 套件新增並指派給主機集區 。 執行下列其中一個範例中的命令:
若是 MSIX 應用程式連結 ,取得應用程式詳細資料,並將其儲存在變數中:
$parameters = @{
HostPoolName = '<HostPoolName>'
ResourceGroupName = '<ResourceGroupName>'
}
$package = Get-AzWvdMsixPackage @parameters | ? DisplayName -like *<DisplayName>*
Write-Host "These are the application IDs available in the package. Many packages only contain one application." -ForegroundColor Yellow
$package.PackageApplication.AppId
記下您要發佈的應用程式識別碼 (例如 App
),然後執行下列命令,將應用程式新增至 RemoteApp 應用程式群組:
$parameters = @{
Name = '<ApplicationName>'
ApplicationType = 'MsixApplication'
MsixPackageFamilyName = $package.PackageFamilyName
MsixPackageApplicationId = '<ApplicationID>'
GroupName = '<ApplicationGroupName>'
ResourceGroupName = '<ResourceGroupName>'
CommandLineSetting = 'DoNotAllow'
}
New-AzWvdApplication @parameters
若是應用程式連結 ,執行下列命令以取得套件和應用程式詳細資訊,並將其儲存在變數中:
$parameters = @{
Name = '<Name>'
ResourceGroupName = '<ResourceGroupName>'
}
$package = Get-AzWvdAppAttachPackage @parameters
Write-Host "These are the application IDs available in the package. Many packages only contain one application." -ForegroundColor Yellow
$package.ImagePackageApplication.AppId
記下您要發佈的應用程式識別碼 (例如 App
),然後執行下列命令,將應用程式新增至 RemoteApp 應用程式群組:
$parameters = @{
Name = '<ApplicationName>'
ApplicationType = 'MsixApplication'
MsixPackageFamilyName = $package.ImagePackageFamilyName
MsixPackageApplicationId = '<ApplicationID>'
GroupName = '<ApplicationGroupName>'
ResourceGroupName = '<ResourceGroupName>'
CommandLineSetting = 'DoNotAllow'
}
New-AzWvdApplication @parameters
執行下列命令,確認應用程式群組中的應用程式清單:
$parameters = @{
GroupName = '<ApplicationGroupName>'
ResourceGroupName = '<ResourceGroupName>'
}
Get-AzWvdApplication @parameters
除非您使用應用程式連結,否則系統不會將應用程式個別指派給使用者。 相反地,系統會將使用者指派給應用程式群組。 將使用者指派給應用程式群組時,使用者可以存取該群組中的所有應用程式。 若要了解如何將使用者指派給應用程式群組,請參閱將使用者指派給應用程式群組 (部分機器翻譯) 或新增和管理應用程式連結應用程式 。
Microsoft Store 中的應用程式更新頻繁,而且通常會自動安裝。 從 Microsoft Store 安裝的應用程式目錄路徑包含版本號碼,每次更新應用程式時都會變更。 如果更新自動發生,路徑會變更,而且應用程式無法再提供給使用者使用。 您可以使用格式為 shell:AppsFolder\<PackageFamilyName>!<AppId>
的 Windows shell:appsFolder
位置路徑發佈應用程式,這個方法不使用 .exe
檔案或具有版本號碼的目錄路徑。 此方法可確保應用程式位置一律正確。
使用 shell:appsFolder
意味著應用程式圖示不是由應用程式自動挑選。 您應該提供在每個工作階段主機的本機磁碟機中、路徑不會改變且與應用程式安裝目錄不同的圖示檔案。
請針對您的案例選取相關的索引標籤,然後遵循步驟。
以下說明如何使用 Windows 使用者介面和 Azure 入口網站發佈 Microsoft Store 應用程式:
在您的工作階段主機上,開啟 [檔案總管] ,然後移至路徑 shell:appsFolder
。
在清單中尋找應用程式,以滑鼠右鍵按一下,然後選取 [建立捷徑] 。
在出現的捷徑提示中選取 [是] ,將捷徑放置在桌面上。
檢視捷徑的內容,記下 [目標] 值。 此值是您發佈應用程式所需的套件系列名稱和應用程式識別碼。
遵循將應用程式新增至 RemoteApp 應用程式群組 (部分機器翻譯) 一節中的步驟,依據 [檔案路徑] 發佈應用程式。 在 [應用程式路徑] 參數使用所建立捷徑的 [目標] 欄位值,然後將該圖示路徑指定為本機圖示檔案。
以下說明如何使用 PowerShell 和 Azure PowerShell 發佈 Microsoft Store 應用程式。 請務必將 <placeholder>
值變更為自己的值。
在 Azure 入口網站中使用 PowerShell 終端機類型開啟 Azure Cloud Shell ,或在本機裝置上執行 PowerShell。
您還需要連線至工作階段主機,以系統管理員身分執行 PowerShell 命令。 在工作階段主機上,執行下列命令,從 Microsoft Store 取得已安裝的應用程式清單:
Get-AppxPackage -AllUsers | Sort-Object Name | Select-Object Name, PackageFamilyName
記下 PackageFamilyName
的值,然後執行下列命令以取得 AppId
值:
$packageFamilyName = '<PackageFamilyName>'
(Get-AppxPackage -AllUsers | ? PackageFamilyName -eq $packageFamilyName | Get-AppxPackageManifest).Package.Applications.Application.Id
使用 Azure PowerShell 搭配利用驚歎號 (!
) 在其間的 PackageFamilyName
和 AppId
合併值,再搭配 FilePath
參數,透過執行下列命令,將應用程式新增至 RemoteApp 應用程式群組。 此範例新增來自 Microsoft Store 的 Microsoft Paint :
$parameters = @{
Name = 'Microsoft Paint'
ResourceGroupName = '<ResourceGroupName>'
ApplicationGroupName = '<ApplicationGroupName>'
FilePath = 'shell:appsFolder\Microsoft.Paint_8wekyb3d8bbwe!App'
CommandLineSetting = 'DoNotAllow'
IconPath = 'C:\Icons\Microsoft Paint.png'
IconIndex = '0'
ShowInPortal = $true
}
New-AzWvdApplication @parameters
輸出內容應會類似於下列範例:
Name
----
myappgroup/Microsoft Paint
Windows 沙箱 提供了一個輕量型桌面環境,可以安全地隔離執行應用程式。 您可以在桌面或 RemoteApp 工作階段中搭配 Azure 虛擬桌面使用 Windows 沙箱。
您的工作階段主機必須使用支援巢狀虛擬化 的虛擬機器 (VM) 大小。 若要查看 VM 系列是否支援巢狀虛擬化,請參閱 Azure 中的虛擬機器大小 ,移至 VM 系列的相關文章並查看支援的功能清單。
若要在工作階段主機上安裝 Windows 沙箱,請遵循 Windows 沙盒概觀 中的步驟。 建議您將 Windows 沙箱安裝在建立工作階段主機時可以使用的自訂映像中。
在工作階段主機上安裝 Windows 沙箱之後,即可在桌面工作階段中使用。 如果您也想要將其發佈為 RemoteApp,請遵循步驟,將應用程式新增至 RemoteApp 應用程式群組 ,然後使用檔案路徑 C:\Windows\System32\WindowsSandbox.exe
。