Inventory Data (schema v2.1)
EasyDeploy records one inventory record per deployment — success, failure, or cancellation. The record is written locally. CoreSystem does not receive this data.
Schema v2.1 is the current additive field set. The wire value remains
schema_version: 2; v2.1 adds fields such as asset_tag, asset_tag_source,
memory, battery and tpm_vendor, and extends disks[].
When data is captured
Section titled “When data is captured”| Stage | When | What is captured |
|---|---|---|
| Early | WinPE startup, while the network initializes | Identity, firmware, CPU/RAM/disks/chassis, TPM/Secure Boot, wired NIC |
| Refresh | After Wi-Fi connects | NIC list and hashed MAC addresses; included only in the BYOB full payload, not in local standard files |
| Final | Deployment end (success / failed / cancelled) | OS, mode, profile, image, target disk, timestamps, duration, result, bitlocker_before |
The final record is a merge of all three stages. If a required identity/hardware
field (serial, UUID, product, chassis, BIOS, or disk list) cannot be read in WinPE,
it is written as null and partial is set to true (see below). Missing NIC data
while offline does not set partial.
Files and locations
Section titled “Files and locations”| File | Location | Purpose |
|---|---|---|
Inventory-<key8>-<yyyyMMdd-HHmmss>.json |
C:\ (OS volume root) and the USB root |
Inventory record (local standard level) |
Inventory-<key8>-<yyyyMMdd-HHmmss>.csv |
Same as above | Flat 59-column version for Excel/SQL import |
Inventory.work.json |
X:\EASYDEPLOY\ |
Temporary work file (Early + Refresh), removed after a successful final write |
- Both JSON and CSV are written for every tier — Free and MSP Advanced.
- Files are written with write-through + verify + retry before the reboot to OOBE.
- If the USB is removed or read-only, EasyDeploy still writes to
C:\andX:\EASYDEPLOY. - The v4 deployment CSV is replaced by this inventory record.
Local files always use the standard payload: they omit hardware.nics. NIC
MAC hashes are available only in the BYOB full payload. All other hardware
fields described below are part of the local record when WinPE can read them.
Field groups
Section titled “Field groups”| Group | Examples |
|---|---|
| Identity | device_key (SHA-256 of SMBIOS UUID; fallback hash is flagged by device_key_fallback), serial, uuid, manufacturer/product, board, asset_tag/asset_tag_source, identity_quality |
| Firmware | BIOS vendor/version/date, UEFI/Legacy, Secure Boot, TPM presence/version/vendor |
| Hardware | Chassis, CPU, RAM installed/usable/reserved, memory modules, disks (serial/firmware/bus/health/capacity class), battery; NICs only in BYOB full |
| Deploy | OS build/version/edition/activation/language, deploy mode, profile, image source/SHA-256, target disk, recovery partition, timestamps, duration, result, failed step, bitlocker_before |
| USB / license | usb_serial, usb_brand, license_company, license_exp |
| Metadata | schema_version, captured_at, client_version, partial |
Operator, customer, and site are not part of the record.
partial
Section titled “partial”partial: true means one or more hardware/identity fields that should normally be
available could not be read (for example, a placeholder SMBIOS serial on a VM).
Being offline is not a reason for partial: true; an offline deployment is a valid
state and does not block deployment.
Privacy
Section titled “Privacy”EasyDeploy does not collect:
- User names, accounts, passwords, email
- Profile contents (
unattend.xml,Post-setup.ps1, tweaks) - License files or
user-config.json - Data on the workstation’s hard drive
Serial numbers and UUIDs are device identifiers used for asset/warranty lookup. Data stays on the local disk/USB; CoreSystem never receives it.
Example (abbreviated)
Section titled “Example (abbreviated)”{ "schema_version": 2, "captured_at": "2026-10-22T11:19:26Z", "client_version": "5.0", "partial": false, "identity": { "device_key": "19a69291…", "serial": "L6N0CX05J87824E", "uuid": "6F923896-…", "manufacturer": "ASUSTeK COMPUTER INC.", "product": "VivoBook_ASUSLaptop X421IAY_M413IA", "asset_tag": null, "identity_quality": "real" }, "firmware": { "firmware_mode": "UEFI", "secure_boot": "on", "tpm_present": true, "tpm_version": "2.0" }, "hardware": { "chassis_type": "laptop", "cpu_cores": 6, "cpu_threads": 6, "ram_installed_gb": 8.0, "ram_usable_gb": 7.4, "ram_reserved_gb": 0.6, "ram_source": "modules", "memory": [{ "bank_label": "P0 CHANNEL A", "capacity_gb": 8, "speed_mts": 3200, "part_number": "HMA81GS6DJR8N-XN" }], "disks": [{ "model": "INTEL SSDPEKNW512G8", "serial": "BTNH00720HLP512A", "size_bytes": 512110190592, "size_gib": 476.9, "capacity_class_gb": 512, "role": "system", "firmware": "004C", "bus_type": "NVMe", "health": "Healthy" }], "battery": { "full_charged_capacity_mwh": 26401, "cycle_count": 364, "voltage_mv": 11850 } }, "deploy": { "os_build": "26300.9711", "os_edition": "Pro", "result": "success", "duration_s": 267, "bitlocker_before": "none" }, "usb": { "serial": "0022CFF6B88BC861432765CC", "brand": "KIOXIA TransMemory" }}CSV uses the same fields in a fixed 59-column header; list fields are joined with ;
(disks = model|serial|size_gib|media_type|interface|role|firmware|bus_type|health|serial_source|size_bytes|capacity_class_gb;…).