---
title: EnterpriseDesktopAppManagement CSP
description: The EnterpriseDesktopAppManagement configuration service provider is used to handle enterprise desktop application management tasks, such as querying installed enterprise applications, installing applications, or removing applications.
ms.assetid: 2BFF7491-BB01-41BA-9A22-AB209EE59FC5
ms.author: maricia
ms.topic: article
ms.prod: w10
ms.technology: windows
author: nickbrower
ms.date: 06/19/2017
---
# EnterpriseDesktopAppManagement CSP
The EnterpriseDesktopAppManagement configuration service provider is used to handle enterprise desktop application management tasks, such as querying installed enterprise applications, installing applications, or removing applications.
Application installations can take some time to complete, hence they are done asynchronously. When the Exec command is completed, the client can send a generic alert to the management server with a status, whether it's a failure or success. For a SyncML example, see [Alert example](#alert-example).
The following diagram shows the EnterpriseDesktopAppManagement CSP in tree format.

**./Device/Vendor/MSFT/EnterpriseDesktopAppManagement**
The root node for the EnterpriseDesktopAppManagement configuration service provider.
**MSI**
Node for all settings.
**MSI/****_ProductID_**
The MSI product code for the application.
**MSI/*ProductID*/Version**
Version number. Value type is string. Supported operation is Get.
**MSI/*ProductID*/Name**
Name of the application. Value type is string. Supported operation is Get.
**MSI/*ProductID*/Publisher**
Publisher of application. Value type is string. Supported operation is Get.
**MSI/*ProductID*/InstallPath**
Installation path of the application. Value type is string. Supported operation is Get.
**MSI/*ProductID*/InstallDate**
Installation date of the application. Value type is string. Supported operation is Get.
**MSI/*ProductID*/DownloadInstall**
Executes the download and installation of the application. Value type is string. Supported operations are Execute and Get.
**MSI/*ProductID*/Status**
Status of the application. Value type is string. Supported operation is Get.
| Status | Value |
|---------------------------|-------|
| Initialized | 10 |
| Download In Progress | 20 |
| Pending Download Retry | 25 |
| Download Failed | 30 |
| Download Completed | 40 |
| Pending User Session | 48 |
| Enforcement In Progress | 50 |
| Pending Enforcement Retry | 55 |
| Enforcement Failed | 60 |
| Enforcement Completed | 70 |
**MSI/*ProductID*/LastError**
The last error code during the application installation process. This is typically stored as an HRESULT format. Depending on what was occurring when the error happened, this could be the result of executing MSIExec.exe or the error result from an API that failed.
Value type is string. Supported operation is Get.
**MSI/*ProductID*/LastErrorDesc**
Contains the last error code description. The LastErrorDesc value is looked up for the matching LastError value. Sometimes there is no LastErrorDesc returned.
Value type is string. Supported operation is Get.
**MSI/UpgradeCode**
Added in the March service release of Windows 10, version 1607.
**MSI/UpgradeCode/_Guid_**
Added in the March service release of Windows 10, version 1607. A gateway (or device management server) uses this method to detect matching upgrade MSI product when a Admin wants to update an existing MSI app. If the same upgrade product is installed, then the update is allowed.
Value type is string. Supported operation is Get.
## Examples
**SyncML to request CSP version information**
``` syntax
Name | Description |
---|---|
Add | This is required to precede the Exec command.
|
Exec | The Exec node includes the parameters and properties requires to locate, download, validate and perform product installation.
|
Element | Description |
---|---|
MsiInstallJob | root element
"Attribute: "id - the application identifier of the application being installed |
Product | child element of MsiInstallJob
Attribute: “Version” – string representation of application version |
Download | child element of Product. Container for download configuration information. |
ContentURLList | child element of Download. Contains list of 1 or more content download URL locators in the form of ContentURL elements. |
ContentURL | Location content should be downloaded from. Must be a property formatted URL that points to the .MSI file. |
Validation | Contains information used to validate contend authenticity. • FileHash – SHA256 hash value of file content |
FileHash | SHA256 hash value of file content |
Enforcement | installation properties to be used when installing this MSI |
CommandLine | Command-line options to be used when calling MSIEXEC.exe |
Timeout | Amount of time, in minutes that the installation process can run before the installer considers the installation may have failed and no longer monitors the installation operation. |
RetryCount | The number of times the download and installation operation will be retried before the installation will be marked as failed. |
RetryInterval | Amount of time, in minutes between retry operations. |
Target | Per-user MSI | Per-machine MSI | Dual mode MSI |
---|---|---|---|
User | Install the MSI per-user
LocURI contains a User prefix, such as ./User |
Install the MSI per-device
LocURI contains a Device prefix, such as ./Device |
Install the MSI per-user
LocURI contains a User prefix, such as ./User |
System | Install the MSI per-user
LocURI contains a User prefix, such as ./User |
Install the MSI per-device
LocURI contains a Device prefix, such as ./Device |
Install the MSI per-user
LocURI contains a User prefix, such as ./User |
Target | Per-user MSI | Per-machine MSI | Dual mode MSI |
---|---|---|---|
User | Install the MSI per-user
LocURI contains a User prefix, such as ./User |
Install the MSI per-device
LocURI contains a Device prefix, such as ./Device |
Install the MSI per-user
LocURI contains a User prefix, such as ./User |
System | Install the MSI per-user
LocURI contains a User prefix, such as ./User |
Install the MSI per-device
LocURI contains a Device prefix, such as ./Device |
Install the MSI per- system context
LocURI contains a Device prefix, such as ./Device |