Dec 14 2020 10:05 AM - edited Feb 23 2021 09:39 AM
MSIX app attach is an application layering solution that allows you to dynamically attach an application (that is an MSIX package) to a user session. Separating the application from the operating system makes it easier to create a golden virtual machine image, and you get more control with providing the right application for the right user.
Previously, you had to use PowerShell scripts to enable MSIX app attach. MSIX app attach capability is now available in public preview in the Azure portal and is integrated with Azure Resource Manager. This eliminates the need for custom scripts and makes it possible to publish your packaged applications to application groups with a few clicks.
Draft troubleshooting guide for MSIX app attach is available here.
Before you get started, make sure to fill out and submit this form to enable MSIX app attach in your subscription. If you don't have an approved request, MSIX app attach won't work. Approval of requests can take up to 24 hours during business days. You'll get an email when your request has been accepted and completed.
The following are the requirements to setup MSIX app attach in a Windows Virtual Desktop environment:
This video walks through the MSIX app attach UI.
The steps for deploying a WVD host pool are outlined here. It is mandatory to provision the session host pool in the validation environment.
MSIX app attach requires an application packaged as MSIX. If you do not have an MSIX application you can use the MSIX Packaging tool to repackage a Win32 application to MISX application. Instructions are available here.
MSIX app attach needs MSIX application to be stored in a VHD(x). Steps on how to perform the expansion are available here.
If you do not have access to an MSIX application and MSIX images feel free to use these. They are provided without any guarantees and should not be used in production environments:
Application name |
URL |
Chrome as MSIX image |
|
Chrome in an MSIX package |
|
Microsoft Edge Dev v89 as MSIX image |
|
Microsoft Edge Dev v89 as MSIX package |
|
Microsoft Edge Dev v87 as MSIX image |
|
Microsoft Edge Dev v87 as MSIX image |
|
PowerBI as MSIX image |
https://1drv.ms/u/s!Amut9BnVnw7mkOVkUdswoKXTk9dfUw?e=fGTHy5
Note: this has dependencies that need to be delivered in the master image Links available here https://1drv.ms/u/s!Amut9BnVnw7mkOQth1hkT-SRdP2__g?e=YHbice |
PowerBI as MSIX package |
|
WVDMigration as MSIX image (test different cert type) |
https://1drv.ms/u/s!Amut9BnVnw7mkOIEPLX6PYOzx96nrg?e=9qEpJc
|
WVDMigrationBAD as MSIX image (bad packaging format) |
|
Microsoft Edge Dev v87 as MSIX image (expired cert) |
https://1drv.ms/u/s!Amut9BnVnw7mkOJamDr-mrs3rOoeCg?e=43JT7E
|
Notepad++ as MSIX image (missing cert test) |
https://1drv.ms/u/s!Amut9BnVnw7mkOF-o-E-bhp_btLgJw?e=6DO9ea
|
If you are using the provided MSIX applications, there are two certs:
All session hosts need access to the file share with MSIX app attach packages. This Tech Community blog covers the process.
Open a browser, preferably in incognito mode, and load the following link: https://preview.portal.azure.com/?feature.msixapplications=true#home
In the search bar type Windows Virtual Desktop and click on the service.
Select a host pool where MSIX applications are to be delivered.
Select MSIX packages.
This will open the data grid with all MSIX packages currently added to the host pool.
Click + Add. This will open the Add MSIX package blade.
MSIX image path – this is UNC path pointing to the MSIX image on the file share. For example, \\storageaccount.file.core.windows.net\msixshare\appfolder\MSIXimage.vhd.
MSIX package – if a valid, resolvable, and accessible path is provided this drop-down will be populated by all the MSIX packages in the MSIX image.
Package applications – list of MSIX applications available in an MSIX package.
Display name – Optional display name to be presented in the interface.
Version – MSIX package version automatically delivered from parsing the package.
Registration type
On-demand – this is the recommended type of registration. It postpones the full registration of the MSIX application until and the user starts the application.
Log on blocking – this type of registration is executing during session logon hence adding time to session logon completion.
State – MSIX package has two states (Active and Inactive). When a package is active users can interact with it. Inactive packages are ignored by WVD and not delivered to users.
Click Save.
In the WVD resource provider navigate to the Application groups blade.
Select an application group.
Note: During MSIX app attach preview MSIX app attach remote apps may disappear from the user feed. The remote MSIX apps can disappear from the user feed because host pools in the evaluation environment may get served by an RD Broker in a production environment (this happens when the RD broker optimizes to improve the end-user experience). Because the RD Broker in the production environment doesn't understand the date of the MSIX app attach remote apps, it won't display them.
Select the Applications blade. The Applications grid will display all currently added applications.
Click + Add to open the Add application blade.
Application source
MSIX package – display list of packages added to the host pool.
Display name – Optional display name to be presented in the Applications interface.
Description – Short description.
Note the options below are only applicable to remote application groups.
Click Save.
Select app group.
Select Assignments
To assign individual users or user groups to the app group, select +Add Azure AD users or user groups.
Select the users you want to have access to the apps. You can select single or multiple users and user groups.
Select Save.
It will take five minutes before the user can access the application.
Select MSIX packages.
This will open the data grid with all MSIX packages currently added to the host pool.
Select one or multiple that need to have their state change and click the Change state button.
Select MSIX packages.
This will open the data grid with all MSIX packages currently added to the host pool.
Click on Package name in the MSIX packages grid this will open the blade to update the package.
Toggle the State via the Inactive/Active button as desired and click Save.
Select MSIX packages.
This will open the data grid with all MSIX packages currently added to the host pool.
Click on Package name in the MSIX packages grid this will open the blade to update the package.
Toggle the Registration type via the On-demand/Log on blocking button as desired and click Save.
Select MSIX packages.
This will open the data grid with all MSIX packages currently added to the host pool.
Select one or multiple that need to be removed click the Remove button.
Navigate to the host pool and select Application groups.
Select the application group from which the MSIX application is to be removed.
From the application group blade select Applications.
Select the desired application and click Remove.
Jan 05 2021 07:12 AM
Please Copy and add the Certificate to the Local Trusted Root of each WVD Session host machine where the MSIX App Attach should be published. This will resolve your issue
Jan 06 2021 02:02 AM
Something magical happend, somehow it started to work. Maybe also for you?
Jan 06 2021 02:46 AM
I can confirm it is working now for me as well. :)
Jan 06 2021 02:57 AM - edited Jan 06 2021 05:03 AM
@Stefan Georgiev Don't know what is changed, but for me it is working right now. Have to say, i have the VHD on my Domain controller C: share, but it's loaded in the MSIX preview. I am going to test it also from the Azure Files shares.
Jan 06 2021 04:17 AM
@ejbakker and @StephanK, @Stefan Georgiev contacted me yesterday and informed that they did some magic on their side and fixed the bug and it should start working Today.
I can also confirm on my side that it is now fixed.
Jan 06 2021 05:08 AM
Jan 06 2021 05:13 AM
Jan 06 2021 11:16 AM
@StephanK during a deployment last week of the new year a switch was flipped that blocked MSIX app attach. We flipped it back and all impacted host pools are working.
Jan 06 2021 10:55 PM
I am still suffering from the error "This functionality is not supported. It will be included in a future release."
Subscription ID: 16ace453-d511-42d9-bac0-ee6b8658678e
Stefan has approved that twice, but it is still not working~ I checked this daily~
Can someone help check that
Thanks
Jan 07 2021 03:49 AM
App attach is now working. But how can we now assign the apps in the desktop sessions to individual users/groups in a differentiated way?
Jan 07 2021 03:55 AM
If you unpublish the apps from the Desktop App Group, and then create multiple RemoteApp Groups in the host pool. Then assign the specific apps and users to each of the RemoteApp groups, this will achieve the differentiation
Jan 07 2021 05:25 AM - edited Jan 07 2021 06:19 AM
Hi, i have a couple of questions about MSIX app attach:
1. If i have multiple users logged in over multiple session host. Do both hosts get the single (notepad++) VHD attached? Normally VHD can only attach to one OS right?
2. What kind off applications don't work with app attach?
3. What happens when a share with the VHD('s) attached is disconnected?
Jan 07 2021 07:05 AM
I tried with the Google Chrome 68 package and everything is working!
I love it! Thanks @Stefan Georgiev!
But now I'm trying to add Chrome to an application group so I added it without any problem but what about the Icon Path?
My understanding is that the .vhd is mounted inside the C:\Program Files\WindowsApps folder so I checked and the chrome.exe file is in the C:\Program Files\WindowsApps\GoogleChrome_68.46.66.0_x64__74vyvr5aw93s6\VFS\ProgramFilesX64\Google\Chrome\Application\chrome.exe path.
I added this information inside the application group but unfortunately it seems not working.
Any guess?
Jan 07 2021 08:13 AM
Jan 07 2021 09:15 AM
@Marco Moioli I figured out exactly the same path for icon :) However, end result is the same, too i.e. App Attach works inside Desktop Application Group but not on RemoteApp Application Group.
I picked up the following events in Session Host RemoteDesktopServices event log:
Event # | Source | EventData |
1 | Microsoft.RDInfra.RDAgent.Service.IconExtractor | Count of images for resource name 0 located at index 0 in file C:\Program Files\WindowsApps\GoogleChrome_68.46.66.0_x64__74vyvr5aw93s6\VFS\ProgramFilesX64\Google\Chrome\Application\chrome.exe is 7 |
2 | Microsoft.RDInfra.RDAgent.Service.IconExtractor | Png image encountered during extraction of icon from file C:\Program Files\WindowsApps\GoogleChrome_68.46.66.0_x64__74vyvr5aw93s6\VFS\ProgramFilesX64\Google\Chrome\Application\chrome.exe at index 0 |
3 | Microsoft.RDInfra.RDAgent.Service.IconExtractor | Png image is valid |
4 | Microsoft.RDInfra.RDAgent.Service.IconExtractor | Icon structure is successfully constructed from index 0 of file C:\Program Files\WindowsApps\GoogleChrome_68.46.66.0_x64__74vyvr5aw93s6\VFS\ProgramFilesX64\Google\Chrome\Application\chrome.exe |
5 | Microsoft.RDInfra.RDAgent.Service.IconExtractor | IconExtractor has successfully extracted the raw icon from file C:\Program Files\WindowsApps\GoogleChrome_68.46.66.0_x64__74vyvr5aw93s6\VFS\ProgramFilesX64\Google\Chrome\Application\chrome.exe at index 0 |
6 | Microsoft.RDInfra.RDAgent.Service.IconExtractor | IconExtractor has successfully extracted the PngIcon from file C:\Program Files\WindowsApps\GoogleChrome_68.46.66.0_x64__74vyvr5aw93s6\VFS\ProgramFilesX64\Google\Chrome\Application\chrome.exe at index 0 |
7 | Microsoft.RDInfra.Messaging.DefaultMessenger | [] Dispatched message '{"MessageId":"3f552184-b195-4590-9ea3-f44685854460","Type":0,"Request":{"MethodName":"GetApplicationIconAsync","Arguments":{"IconPath":"C:\\Program Files\\WindowsApps\\GoogleChrome_68.46.66.0_x64__74vyvr5aw93s6\\VFS\\ProgramFilesX64\\Google\\Chrome\\Application\\chrome.exe","IconIndex":0},"Headers":{"x-ms-correlation-id":"4dea5568-26d0-4851-918d-8ac186bcb012","x-ms-activity-context":"False","ms-wvd-activity-hint":"ms-wvd-ag:d1433e3f-3834-46be-8e78-dac2fee40e8e","x-ms-lamport-ts":"534208473"}},"Response":null}' |
Based on these events, error is not caused by missing icon. I even tried using 1 as icon index but it didn't work either. I guess, we'll have to wait for @Stefan Georgiev to lead us again.
For VSC Insiders, the icon path is C:\Program Files\WindowsApps\VSCodeInsider_1.0.0.0_x64__2ys8zad5r90am\VFS\UserProgramFiles\Microsoft VS Code Insiders\Code - Insiders.exe
Jan 07 2021 10:05 AM - edited Jan 08 2021 12:23 AM
@Mika Seitsonen Just to double check, did you notice this from the dokumentation:
”When a user is assigned to remote app group and desktop app group from the same host pool the desktop app group will be displayed in the feed.”
I had this issue when I started testing which was fixed by ensuring that user was not assigned to both Remote app and Desktop app group. After the change Remote app icons appeared.
Update: I can now also unfortunately confirm that the Remote app MSIX apps icons that were visible and working for me couple of days again disappeared. When testing With Desktop app group MSIX apps work fine. Wonder what changed again.
Update 2: Now both MSIX Desktop Applications & Remoteapps stopped working.
Based on error message there is issue with registration. Staging is now succesful, MSIX images are mounted when checked in disk management.
AppAttachServiceImpl - AppAttachRegisterAsync: Failed to get packages to register: Microsoft.RDInfra.Shared.Common.RestError.RestException: WVD_50002: ≤S-1-5-21-1582688470-541055633-2624462867-3101≥ not found.
Jan 07 2021 06:20 PM
Jan 07 2021 06:22 PM
Jan 07 2021 06:25 PM