Windows inventory: add osInfo fallback from sysinfo; portal detail spacing + subcategory
This commit is contained in:
parent
2a4bc486cf
commit
328415d9e9
2 changed files with 17 additions and 2 deletions
|
|
@ -294,7 +294,21 @@ fn build_inventory_metadata(system: &System) -> serde_json::Value {
|
|||
|
||||
#[cfg(target_os = "windows")]
|
||||
{
|
||||
let extended = collect_windows_extended();
|
||||
let mut extended = collect_windows_extended();
|
||||
// Fallback: se osInfo vier vazio, preenche com dados do sysinfo
|
||||
if let Some(win) = extended.get_mut("windows").and_then(|v| v.as_object_mut()) {
|
||||
let needs_os_info = match win.get("osInfo") {
|
||||
Some(v) => v.as_object().map(|m| m.is_empty()).unwrap_or(true),
|
||||
None => true,
|
||||
};
|
||||
if needs_os_info {
|
||||
let mut osmap = serde_json::Map::new();
|
||||
if let Some(name) = System::name() { osmap.insert("ProductName".into(), json!(name)); }
|
||||
if let Some(ver) = System::os_version() { osmap.insert("Version".into(), json!(ver)); }
|
||||
if let Some(build) = System::kernel_version() { osmap.insert("BuildNumber".into(), json!(build)); }
|
||||
win.insert("osInfo".into(), serde_json::Value::Object(osmap));
|
||||
}
|
||||
}
|
||||
if let Some(obj) = inventory.as_object_mut() {
|
||||
obj.insert("extended".into(), extended);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue