PackageTrack
Sign in Get early access

wmi

WMI crate for rust.

0.18.4 4.7M downloads/mo #4667 most downloaded on crates.io ohadravid/wmi-rs

What this package is like to depend on

Last release 4 months ago

27 Mar 2026

Release timing varies

gaps range from 9 days to 5 months

Rarely documented

notes for 10 of 54 stable releases

1 version withdrawn

withdrawn after publishing

7 years old

55 releases · first in 2019

6 releases in the last 12 months

see the full history below

Release timeline

55 releases · Apr 2019 to Mar 2026
2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 55
  1. 0.18.4 27 Mar 2026
    Release notes

    What's Changed

    • Use CoIncrementMTAUsage behind a target_vendor cfg to support win7 build by @Guiguiprim in #145

    New Contributors

    Full Changelog: v0.18.3...v0.18.4

    Open source →
  2. 0.18.3 23 Feb 2026
    Release notes

    What's Changed

    • chore(deps): update criterion requirement from 0.7 to 0.8 by @dependabot[bot] in #139
    • Add set_proxy_blanket for accessing namespaces that require elevated authentication levels by @delphifeel in #143

    New Contributors

    Full Changelog: v0.18.2...v0.18.3

    Open source →
  3. 0.18.2 12 Feb 2026
    Release notes

    What's Changed

    • Add compatibility with multiple windows crate versions by @ohadravid in #144

    Full Changelog: v0.18.1...v0.18.2

    Open source →
  4. 0.18.1 31 Jan 2026
    Release notes

    What's Changed

    • Added WMIConnection::{put_instance,delete_instance} by @pronebird in #141

    Full Changelog: v0.18.0...v0.18.1

    Open source →
  5. 0.18.0 01 Nov 2025
    Release notes

    What's Changed

    • Remove COMLibrary and let WMIConnection initialize COM if needed by @ohadravid in #137
      You can now call WMIConnection::new() and let the crate handle the initialization internally.
      Note: COM will NOT be uninitialized when the connection is dropped (similar to <=0.17 versions, which didn't uninitialize COM on drop since #53).
      If this is not what you want, then you must initialize COM yourself before creating the connection. See the docs for more.
    • Update the crate to Rust 2024 edition

    Full Changelog: v0.17.3...v0.18.0

    Open source →
  6. 0.17.3 04 Oct 2025
    Release notes

    What's Changed

    Full Changelog: v0.17.2...v0.17.3

    Open source →
  7. 0.17.2 07 May 2025
    Release notes

    What's Changed

    • feat(remote_connection): added with_credentials() by @hatch15 in #127

    New Contributors

    Full Changelog: v0.17.1...v0.17.2

    Open source →
  8. 0.17.1 24 Apr 2025
    Release notes

    What's Changed

    Full Changelog: v0.17.0...v0.17.1

    Open source →
  9. 0.17.0 19 Apr 2025
    Release notes

    What's Changed

    Breaking Changes

    • Fixed conversions from Rust types to WMI types (so, only when used for method calling or using put_property), which were incorrect in a few cases (notably, u32s and u16s were not converted correctly), and added some missing conversions, in #124
    • SafeArrayAccessor::new now accepts a NonNull<SAFEARRAY> instead of a reference, in #124

    New Contributors

    Full Changelog: v0.16.0...v0.17.0

    Open source →
  10. 0.16.0 14 Apr 2025
    Release notes

    This version adds support for more serialization inputs (nested structures, array), and changes the public API to be more cohesive.

    New Features

    Nested structrure can be serialized when provided as method parameters (#120):

    let in_params = CreateInput {
        CommandLine: "explorer.exe".to_string(),
        ProcessStartupInformation: Win32_ProcessStartup {
            PriorityClass: 128, // High priority.
        },
    };
    let out: CreateOutput = wmi_con
        .exec_class_method::<Win32_Process, _>("Create", in_params)?;

    Arrays can be serialized when provided as method parameters (#121):

    #[derive(Deserialize, Serialize)]
    struct SetBinaryValue {
        sSubKeyName: String,
        sValueName: String,
        uValue: Vec<u8>,
    }
    
    let test_value = vec![0, 1, 2, 3];
    
    let set_binary_value_params = SetBinaryValue {
        // ..
        uValue: test_value,
    };
    
    let value: SetBinaryValueOut = wmi_con
        .exec_class_method::<StdRegProv, _>("SetBinaryValue", &set_binary_value_params)?;

    More lower-level API functions are exposed for IWbemClassWrapper:

    let in_params = wmi_con
        .get_object("Win32_Process")?
        .get_method("Create")?
        .unwrap() // Can be `None`.
        .spawn_instance()?;
    
    in_params
        .put_property("CommandLine", "explorer.exe".to_string())?;
    
    let out = wmi_con
        .exec_method("Win32_Process", "Create", Some(&in_params))?;

    Breaking Changes

    1. Method calling API was changed a little (#120):
    // Before:
    let output: CreateOutput = wmi_con.exec_class_method::<Win32_Process, _, _>("Create", input)?;
    let output: PrinterOutput = wmi_con.exec_instance_method::<Win32_Printer, _, _>("Pause", &printer.__Path, ())?;
    // Now, only the Class and Out generics are named:
    let output: CreateOutput = wmi_con.exec_class_method::<Win32_Process, _>("Create", input)?;
    let output: PrinterOutput = wmi_con.exec_instance_method::<Win32_Printer, _>(&printer.__Path, "Pause", ())?;
    1. Rename lower-level (_native) methods to match the original names (exec_method_native_wrapper -> exec_method, exec_query_native_wrapper -> exec_query, etc.)
    2. Only expose as pub the needed structures and functions.

    What's Changed

    • Split method-calling logic between IWbemClassWrapper and WMIConnection, rename lower-level functions by @ohadravid in #120
    • Support Array Serialization by @ohadravid in #121

    Full Changelog: v0.15.2...v0.16.0

    Open source →
  11. 0.15.2 29 Mar 2025

    Nothing published for this version

  12. 0.15.1 24 Feb 2025

    Nothing published for this version

  13. 0.15.0 29 Jan 2025

    Nothing published for this version

  14. 0.14.5 28 Jan 2025

    Nothing published for this version

  15. 0.14.4 18 Jan 2025

    Nothing published for this version

  16. 0.14.3 29 Dec 2024

    Nothing published for this version

  17. 0.14.2 04 Dec 2024

    Nothing published for this version

  18. 0.14.1 26 Nov 2024

    Nothing published for this version

  19. 0.14.0 09 Sep 2024

    Nothing published for this version

  20. 0.13.4 28 Aug 2024

    Nothing published for this version

  21. 0.13.3 27 Feb 2024

    Nothing published for this version

  22. 0.13.2 19 Jan 2024

    Nothing published for this version

  23. 0.13.1 02 Jun 2023

    Nothing published for this version

  24. 0.13.0 05 May 2023

    Nothing published for this version

  25. 0.12.2 01 Apr 2023

    Nothing published for this version

  26. 0.12.1 18 Mar 2023

    Nothing published for this version

  27. 0.12.0 28 Feb 2023

    Nothing published for this version

  28. 0.11.5 28 Feb 2023

    Nothing published for this version

  29. 0.11.4 02 Dec 2022

    Nothing published for this version

  30. 0.11.3 29 Sep 2022

    Nothing published for this version

  31. 0.11.2 03 Sep 2022

    Nothing published for this version

  32. 0.11.1 14 Aug 2022

    Nothing published for this version

  33. 0.11.0 15 Jul 2022

    Nothing published for this version

  34. 0.10.0 15 Jul 2022

    Nothing published for this version

  35. 0.9.3 13 Mar 2022

    Nothing published for this version

  36. 0.9.2 01 Nov 2021

    Nothing published for this version

  37. 0.9.1 10 Oct 2021

    Nothing published for this version

  38. 0.9.0 25 Jul 2021

    Nothing published for this version

  39. 0.8.1 08 Apr 2021

    Nothing published for this version

  40. 0.8.0 10 Mar 2021

    Nothing published for this version

  41. 0.7.0 07 Nov 2020

    Nothing published for this version

  42. 0.6.1 29 Oct 2020

    Nothing published for this version

  43. 0.6.0 14 Sep 2020

    Nothing published for this version

  44. 0.5.0 21 Jul 2020

    Nothing published for this version

  45. 0.4.6 17 Oct 2019

    Nothing published for this version

  46. 0.4.5 24 Sep 2019

    Nothing published for this version

  47. 0.4.4 11 Jun 2019

    Nothing published for this version

  48. 0.4.3 05 Jun 2019

    Nothing published for this version

  49. 0.4.2 04 Jun 2019

    Nothing published for this version

  50. 0.4.1 03 Jun 2019

    Nothing published for this version

  51. 0.4.0 03 Jun 2019

    Nothing published for this version

  52. 0.3.0 28 May 2019

    Nothing published for this version

  53. 0.2.0 26 May 2019

    Nothing published for this version

  54. 0.1.1 14 Apr 2019

    Nothing published for this version

  55. 0.1.0 14 Apr 2019 withdrawn

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive