librust-winrm

Crates.iolibrust-winrm
lib.rslibrust-winrm
version0.1.1
created_at2025-12-05 12:26:32.914386+00
updated_at2025-12-05 12:39:53.907376+00
descriptionWinRM client library for Rust - NTLM authentication, command execution, file transfer
homepagehttps://github.com/oktay454/librust-winrm
repositoryhttps://github.com/oktay454/librust-winrm
max_upload_size
id1968091
size133,226
Kemal Oktay (oktay454)

documentation

https://docs.rs/librust-winrm

README

librust-winrm

Crates.io Documentation

WinRM (Windows Remote Management) client library for Rust.

Features

  • NTLM Authentication - Full support over HTTPS
  • Command Execution - Run commands and PowerShell scripts
  • File Transfer - Upload and download files
  • Error Handling - Comprehensive error types

Installation

Add to Cargo.toml:

[dependencies]
librust-winrm = "0.1.0"

Usage Example

use librust_winrm::WinRMClient;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Create client
    let mut client = WinRMClient::new(
        "https://10.0.3.203:5986/wsman",
        "administrator",
        "password",
        "ntlm",
        true,  // insecure (skip SSL verification)
        None,  // CA cert path
    )?;

    // Open shell
    let shell_id = client.open_shell()?;

    // Run command
    let command_id = client.run_command(&shell_id, "whoami")?;
    let (stdout, stderr, exit_code) = client.get_command_output(&shell_id, &command_id)?;
    
    println!("Output: {}", stdout);

    // Close shell
    client.close_shell(&shell_id)?;
    
    Ok(())
}

File Transfer

use librust_winrm::{WinRMClient, upload_file, download_file};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut client = WinRMClient::new(/* ... */)?;
    let shell_id = client.open_shell()?;

    // Upload
    upload_file(&mut client, &shell_id, "local.txt", "C:\\\\remote.txt")?;

    // Download
    download_file(&mut client, &shell_id, "C:\\\\file.txt", "./local.txt")?;

    client.close_shell(&shell_id)?;
    Ok(())
}

Documentation

Full API documentation: docs.rs/librust-winrm

License

GPL-3.0-or-later

MIT

Commit count: 0

cargo fmt