--- title: Deploy and configure App-V apps using MDM description: Deploy and configure App-V apps using MDM ms.author: maricia ms.topic: article ms.prod: w10 ms.technology: windows author: MariciaAlforque ms.date: 06/26/2017 --- # Deploy and configure App-V apps using MDM ## Executive summary
Microsoft Application Virtualization (App-V) apps have typically been configured, deployed, and managed through on-premises group policies using System Center Configuration Manager (SCCM) or App-V server. In Windows 10, version 1703, App-V apps can be configured, deployed, and managed using mobile device management (MDM), matching their on-premises counterparts.
MDM services can be used to publish App-V packages to clients running Windows 10, version 1703 (or later). All capabilities such as App-V enablement, configuration, and publishing can be completed using the EnterpriseAppVManagement CSP.
### EnterpriseAppVManagement CSP node structure [EnterpriseAppVManagement CSP reference](https://msdn.microsoft.com/en-us/windows/hardware/commercialize/customize/mdm/enterpriseappvmanagement-csp) (./User/Vendor/MSFT/EnterpriseAppVManagement) contains the following sub-nodes.
AppVPublishing - An exec action node that contains the App-V publishing configuration for an MDM device (applied globally to all users for that device) or a specific MDM user.
- EnterpriseAppVManagement - AppVPackageManagement - **AppVPublishing** - LastSync - LastError - LastErrorDescription - SyncStatusDescription - SyncProgress - Sync - PublishXML - AppVDynamicPolicySync command:
[App-V Sync protocol reference]( https://msdn.microsoft.com/enus/library/mt739986.aspx)AppVDynamicPolicy - A read/write node that contains the App-V dynamic configuration for an MDM device (applied globally to all users for that device) or a specific MDM user.
- EnterpriseAppVManagement - AppVPackageManagement - AppVPublishing - **AppVDynamicPolicy** - [ConfigurationId] - PolicyDynamic policy examples:
[Dynamic configuration processing](https://technet.microsoft.com/en-us/itpro/windows/manage/appv-application-publishing-and-client-interaction#bkmk-dynamic-config">Dynamic configuration processing)AppVPackageManagement - Primarily read-only App-V package inventory data for MDM servers to query current packages.
- EnterpriseAppVManagement - **AppVPackageManagement** - [EnterpriseID] - [PackageFamilyName] - [PackageFullName] - Name - Version - Publisher - InstallLocation - InstallDate - Users - AppVPackageID - AppVVersionId - AppVPackageUri - AppVPublishing - AppVDynamicPolicyThe examples in the scenarios section demonstrate how the publishing document should be created to successfully publish packages, dynamic policies, and connection groups.
## Scenarios addressed in App-V MDM functionalityAll App-V group policies will be reflected by having a corresponding CSP that can be set using the Policy CSP. The CSPs match all on-premises App-V configuration capabilities. In addition, new App-V package management capability has been added to closely match the App-V PowerShell functionality.
A complete list of App-V policies can be found here:
[ADMX-backed policy reference](https://msdn.microsoft.com/en-us/windows/hardware/commercialize/customize/mdm/policy-admx-backed) [EnterpriseAppVManagement CSP reference](https://msdn.microsoft.com/en-us/windows/hardware/commercialize/customize/mdm/enterpriseappvmanagement-csp) ### SyncML examplesThe following SyncML examples address specific App-V client scenarios.
#### Enable App-V clientThis example shows how to enable App-V on the device.
``` syntaxThis example shows how to allow package scripts to run during package operations (publish, run, and unpublish). Allowing package scripts assists in package deployments (add and publish of App-V apps).
``` syntaxComplete list of App-V policies can be found here:
[Policy CSP](https://msdn.microsoft.com/en-us/windows/hardware/commercialize/customize/mdm/policy-configuration-service-provider) #### SyncML with package published for a device (global to all users for that device)This SyncML example shows how to publish a package globally on an MDM enrolled device for all device users.
``` syntax*PackageUrl can be a UNC or HTTP/HTTPS endpoint.
#### SyncML with package (with dynamic configuration policy) published for a device (global to all users on that device)This SyncML example shows how to publish a package globally, with a policy that adds two shortcuts for the package, on an MDM enrolled device.
``` syntax*PackageUrl can be a UNC or HTTP/HTTPS endpoint.
#### SyncML with package (using user config deployment) published for a specific userThis SyncML example shows how to publish a package for a specific MDM user.
``` syntaxThis SyncML example shows how to publish a connection group, and group applications and plugins together.
> [!NOTE] > The user connection group has the user-only package as optional in this example, which implies users without the optional package can continue to launch the global package within the same connection group. ``` syntaxThis SyncML example shows how to unpublish all global packages on the device by sending an empty package and connection group list in the SyncML.
``` syntaxThese SyncML examples return all global, and user-published packages on the device.
``` syntax