rust-winrm-client

Crates.iorust-winrm-client
lib.rsrust-winrm-client
version0.1.2
created_at2025-12-05 12:42:42.133049+00
updated_at2025-12-08 09:03:19.317569+00
descriptionCLI tool for WinRM management - remote Windows command execution and file transfer
homepagehttps://github.com/oktay454/rust-winrm-client
repositoryhttps://github.com/oktay454/rust-winrm-client
max_upload_size
id1968127
size125,889
Kemal Oktay (oktay454)

documentation

README

Rust WinRM Client

Rust ile yazılmış Windows Uzaktan Yönetim (WinRM) istemcisi.

Özellikler

  • NTLM Kimlik Doğrulama - Tam destek
  • Uzantan Komut Çalıştırma - PowerShell ve CMD
  • Dosya Aktarımı - İndirme & Gönderme
  • Geliştirilmiş Hata İşleme - Detaylı hata iletileri
  • CLI İyileştirmeleri - Çıkış kodları, ortam değişkenleri, detaylı/sessiz çıktılar
  • ⚠️ Kerberos - Stub (bilgilendirici mesaj)

Kurulum

cargo build --release

Çalıştırılabilir ikilik dosya: target/release/rust_winrm_client

Kullanım

Basit Komutlar

# Basit CMD komutları - tırnak gerekmez
winrm-client -e 10.0.3.203 -u administrator -p Admin789 --encrypt --insecure command whoami
winrm-client -e 10.0.3.203 -u administrator -p Admin789 --encrypt --insecure command hostname
winrm-client -e 10.0.3.203 -u administrator -p Admin789 --encrypt --insecure command ipconfig

Dosya Aktarımı

# Upload
winrm-client -e server -u admin -p pass upload local.txt C:\\remote.txt

# Download
winrm-client -e server -u admin -p pass download C:\\file.txt ./local.txt

Ortam Değişkenleri

# Ortam değişkenlerini ayarla
export WINRM_ENDPOINT=10.0.3.203
export WINRM_USER=administrator
export WINRM_PASSWORD="secretpass"
export WINRM_AUTH=ntlm          # ntlm, basic, kerberos
export WINRM_ENCRYPT=true       # HTTPS kullan
export WINRM_INSECURE=true      # SSL sertifika doğrulamasını atla

# Parametresiz çalıştır
winrm-client command whoami
winrm-client command -- powershell -ExecutionPolicy Unrestricted -Command "Get-Process"

Boolean Değerler:

  • true veya false (büyük/küçük harf duyarlı)
  • 1, 0, yes, no çalışmaz

Detaylı/Sessiz Kipler

# Sessiz kip (varsayılan) - sadece komut çıktısı
winrm-client -e server command "test"

# Verbose kip - detaylı çıktılar
winrm-client -v -e server command "test"

Parametreler

Kısa Uzun Ortam Değişkeni Açıklama
-e --endpoint WINRM_ENDPOINT WinRM bağlantı noktası (IP veya hostname)
-u --user WINRM_USER Kullanıcı adı
-p --password WINRM_PASSWORD Parola
-a --auth WINRM_AUTH Kimlik doğrulama yöntemi (ntlm/basic/kerberos)
--encrypt WINRM_ENCRYPT HTTPS kullan (port 5986)
--no-encrypt WINRM_NO_ENCRYPT HTTP kullan (port 5985)
-k --insecure WINRM_INSECURE SSL sertifika doğrulamasını atla
-v --verbose WINRM_VERBOSE Detaylı çıktı

Çıkış Kodları

Kod Anlamı
0 Başarılı
1 Kimlik doğrulama hatası
2 Bağlantı hatası
3 Komut çalıştırma hatası
4 Dosya aktarım hatası
# Çıkış kodu denetimi
winrm-client -e server command "test"
echo $?  # Exit code'u göster

Örnekler

HTTPS ile NTLM

winrm-client -e 10.0.3.203 -u administrator -p Admin789 \
  --encrypt --insecure command hostname

Ortam Değişkenleri ile

export WINRM_ENDPOINT=10.0.3.203
export WINRM_USER=administrator
export WINRM_PASSWORD=Admin789
export WINRM_ENCRYPT=true
export WINRM_INSECURE=true

winrm-client command whoami

PowerShell Komutları

# PowerShell komutları için -- ayırıcı ve parametreler
winrm-client -e 10.0.3.203 -u administrator -p Admin789 --encrypt --insecure \
  command -- powershell -ExecutionPolicy Unrestricted -Command Get-Process

winrm-client -e 10.0.3.203 -u administrator -p Admin789 --encrypt --insecure \
  command -- powershell -Command Get-Service

# Tırnak içinde PowerShell komutları (basit olanlar)
winrm-client -e 10.0.3.203 -u administrator -p Admin789 --encrypt --insecure \
  command -- powershell -Command "Get-Date"

# CMD komutları
winrm-client -e 10.0.3.203 -u administrator -p Admin789 --encrypt --insecure \
  command -- cmd /c "dir C:\\"

Not: PowerShell/CMD parametreleri (-ExecutionPolicy, -Command, /c vb.) içeren komutlarda -- ayırıcı mutlaka kullanılmalıdır. Aksi takdirde parametreler CLI argümanı olarak yorumlanır ve hata alırsınız.

Bilinen Sınırlamalar

  • Kerberos: Tam uygulama yok (stub mesaj gösterir)
  • HTTP Message Encryption: HTTP (5985) için uygulama seviyesi şifreleme yok - HTTPS kullanın
  • CredSSP: Desteklenmiyor

Katkıda Bulunma

Katkılar memnuniyetle karşılanır!

Lisans

GPL-3.0-or-later

Commit count: 0

cargo fmt