This release targets both the IoT Core and the IoT Enterprise skus. However, not all features are supported on IoT Enterprise.
For the IoT Enterprise sku, the following extra setup steps need to take place:
- Limpet.exe is present at c:\windows\system32 (copy from an IoT Core image system folder).
- xperf.exe is present at c:\windows\system32 (copy from an IoT Core image system folder).
- Embedded Mode is enabled.
- Make sure the architecture of SystemConfigurator matches the OS architecture (i.e. on x64 OSes, deploy the x64 SystemConfigurator).
This page contains a summary of all features the current Windows IoT Azure DM Client offers.
The features can be split into three main categories:
- Area-Specific Features
- Application Management
- Certificate Management
- Device Health Attestation
- Device Info
- Diagnostic Logs
- Factory Reset
- Reboot Management
- Time Settings
- WiFi Settings
- Windows Telemetry
- Windows Update
- Patterns
- IoT Hub Accessible Functionality
- Device Accessible Functionality
- Policy
- Details Level
- Error Reporting
- Infrastructure Features
- Connectivity Restoration
- Diagnosis
- Inter-Process Security
Note: The json schema has changed for all features, even those which existing in the 2017 April release.
Area | Supported Actions | New in Oct. 2017 | IoT Core | IoT Enterprise |
---|---|---|---|---|
Application Management | ||||
Add/Update an arbitrary application (inc. self) | Y | |||
List store/non-store applications | Y | Y | ||
Configure startup applications | Y | Y | ||
Configure startup background applications | Y | Y | ||
Start/stop applications | Y | Y | ||
Uninstall applications | Y | Y | ||
Certificate Management | ||||
Add a certificate | Y | Y | ||
List certificates | Y | Y | ||
Export and Upload certificates | Y | Y | ||
Delete certificates | Y | Y | Y | |
Device Health Attestation | ||||
Configure and trigger device Health Attestation remotely. | Y | Y | ||
Device Info | ||||
Retrieve the device info. | Y | Y | Y | |
Diagnostic Logs | ||||
Configure ETW collectors for any number of providers. | Y | Y | Y* | |
Start/Stop collecting ETW. | Y | Y | Y | |
Upload generated ETW files. | Y | Y | Y | |
Delete generated ETW files from the device. | Y | Y | Y | |
Factory Reset | ||||
Reset the device and optionally clear the TPM. | Y | Y | ||
Reboot Management | ||||
Schedule reboots | Y | Y | ||
Trigger immediate reboots | Y | Y | ||
Retrieve last reboot info | Y | Y | ||
Block system reboots | Y | Y | ||
Time Settings | ||||
Configure dynamic time zone | Y | Y | Y | |
Configure custom time zone | Y | Y | ||
Configure time server | Y | Y | ||
Configure time service | Y | Y | Y | |
WiFi Settings | ||||
Add WiFi profiles. | Y | Y | ||
List installed WiFi profiles. | Y | Y | ||
Delete installed WiFi profiles. | Y | Y | ||
Export/Upload WiFi profiles. | Y | Y | ||
Windows Telemetry | ||||
Configure the level of Windows telemetry being sent out of the device. | Y | Y | Y | |
Windows Update | ||||
Configure 'how' updates are installed | Y | Y** | ||
Configure 'what' updates are installed | Y | Y |
'*' xperf.exe needs to be copied/installed to c:\windows\system32 on the IoT Enterprise sku.
'**' 'ring' is not supported on the IoT Enterprise sku.
Everything listed in the feature table is accessible remotely through Azure IoT Hub.
While everything that is available through Azure IoT Hub can be accessed from the Azure DM UWP application (on the device) by forming the right json and sending it down to the DM library, we have also offered .Net APIs to facilitate some of the scenarios based on customer requests.
Below are the features/sub-features where such APIs exist and can be readily called from the UWP application running on the device.
- Factory Reset
- Initiate factory reset
- Reboot Management
- Immediate Reboots
- Block system reboots.
- Time Settings
- Time Service Control
- Windows Telemetry
- Set the telemetry level.
- Windows Update
- Retrieve the update status*.
Note: All items in the above list require connectivity to Azure IoT Hub except those marked with *.
For settings that are controlled by both Azure IoT Hub Device Twin and by the local application, a policy need to be specified to give priority to one side or the other when both are set. The following APIs make use of a policy:
- Time Service
- Configuration
- Time Settings
- Time Service Control
Given that the device twin has a limited capacity, some sections in the json document can be turned on or off, or its detail level changed to conserve the size. The following areas provide the ability to change the detail level:
- Application Configuration
- Diagnostic Logs Configuration
- Wifi Settings
- Windows Updates
All operations will either report or return a Status Object. Observers of the device twin can search/inspect such objects to know the time of the last desired state processed and the result.
We have updated our library and samples applications to catch connection exceptions thrown by the Azure SDK, and attempt to re-construct all involved objects and re-connect.
See ResetConnectionAsync
in either Toaster @ MainPage.xaml.cs or IoTDMBackground @ DMClientBackgroundApplication.cs.
We have added a way to get an event trace of the Windows IoT Azure DM Client stack. This works for both retail and debug builds. Details can be found on this page.
We have re-enforced the security of the communication channel between the UWP application and the NT service. Details can be found on this page under Configuring the Binaries.