feature: collect MDM Hardware Data (Autopilot hash) during device enrolment

resolves #160
This commit is contained in:
Gary Sharp
2025-02-05 17:38:57 +11:00
parent 0853bcee50
commit f946f3250c
17 changed files with 599 additions and 422 deletions
@@ -358,5 +358,18 @@ namespace Disco.Services
device.SetDetail(DeviceDetail.ScopeHardware, DeviceDetail.HardwareKeyBatteries, json);
}
public static string MdmHardwareData(this IEnumerable<DeviceDetail> details)
{
return details.GetDetail(DeviceDetail.ScopeHardware, DeviceDetail.HardwareKeyMdmHardwareData);
}
/// <summary>
/// Sets the Mobile Device Management Hardware Data
/// </summary>
public static void MdmHardwareData(this IEnumerable<DeviceDetail> details, Device device, string mdmHardwareData)
{
device.SetDetail(DeviceDetail.ScopeHardware, DeviceDetail.HardwareKeyMdmHardwareData, mdmHardwareData);
}
}
}
@@ -317,6 +317,8 @@ namespace Disco.Services.Devices.Enrolment
device.DeviceDetails.NetworkAdapters(device, Request.Hardware.NetworkAdapters);
if (Request.Hardware.Batteries?.Count > 0)
device.DeviceDetails.Batteries(device, Request.Hardware.Batteries);
if (!string.IsNullOrWhiteSpace(Request.Hardware.MdmHardwareData))
device.DeviceDetails.MdmHardwareData(device, Request.Hardware.MdmHardwareData);
if (adMachineAccount == null)
{
@@ -456,6 +456,7 @@ namespace Disco.Services.Devices.Exporting
}
metadata.Add(nameof(DeviceExportOptions.DetailBatteries), batteriesFields);
metadata.Add(nameof(DeviceExportOptions.DetailKeyboard), new List<Metadata>() { new Metadata(nameof(DeviceExportOptions.DetailKeyboard), typeof(string), r => r.DeviceDetails.Where(dd => dd.Key == DeviceDetail.HardwareKeyKeyboard).Select(dd => dd.Value).FirstOrDefault(), csvStringEncoded) });
metadata.Add(nameof(DeviceExportOptions.DetailMdmHardwareData), new List<Metadata>() { new Metadata(nameof(DeviceExportOptions.DetailMdmHardwareData), typeof(string), r => r.DeviceDetails.MdmHardwareData(), csvStringEncoded) });
return metadata;
}