2011-01-03 16 views
12

Windows'ta çalışan C# Uygulamamdan Unix Sisteminde bir komut çalıştırmam gerekiyor. İki sistem aynı ağda ve gerekli tüm kimlik bilgilerine sahibim.C# Komutu Uzak Çalıştır Sistem

Bir SSH bağlantısı kurarak tarafından C# kodundan UNIX "ls" komutunu çalıştırabildiğim herhangi bir API var mı?

DÜZENLEME: Ben herhangi bir komut veya Uzaktan Sistemde mevcut komut dosyası çalıştıran yardımcı olacak bir çözüm arıyorum. SSH çalıştırmak

cevap

15

Sistemleri genellikle SFTP çeşit desteklediğinden sadece kullanabilirsiniz şey SSH.NET gibi:

using (var sftpClient = new SftpClient("localhost", "root", "bugmenot") 
{ 
    sftpClient.Connect(); 
    var files = sftpClient.ListDirectory("/tmp"); 
} 

veya SharpSSH:

Sftp sftp = new Sftp("localhost", "root", "bugmenot"); 
try 
{ 
    sftp.Connect(); 
    ArrayList files = sftp.GetFileList("/tmp"); 
} 
finally 
{ 
    sftp.Close(); 
} 

Düzenleme

: Herhangi komutu çalıştırabilirsiniz Her iki kütüphane ile SSH üzerinde. Kuşkusuz, bunu yapmadım, henüz ama böyle çalışmak gerekiyordu:

SSH.NET

using (var sshClient = new SshClient("localhost", "root", "bugmenot") 
{ 
    sshClient.Connect(); 
    var cmd = sshClient.RunCommand("ls"); 
    var output = cmd.Result; 
} 

SharpSSH

SshStream ssh = new SshStream("localhost", "root", "bugmenot"); 
try 
{ 
    ssh.Write("ls"); 
    var output = ssh.ReadResponse(); 
} 
finally 
{ 
    ssh.Close(); 
} 
+0

Tamam, ama bu "ls" için sadece bir alternatiftir . Topladım, _any_ komutu için basit bir örnek olabilirdi. –

+1

@Hangy: Yanıtladığınız için teşekkür ederiz. Tüm kod ile sistem almak zorunda olduğum için önerilen kodunuzu çalıştıramadım. Net kurulumu. ..... Uzaktan Sistemde olan herhangi bir komut veya komut dosyasını çalıştırmak için kullanışlı olacak bir çözüm arıyorum (Teşekkürler Henk Holterman). – vrbilgi

+0

Üzgünüm, kendimi kullanmadım, ama umarım benim düzenlememdeki örnek ve eklenen bağlantılar bunu başarmanıza yardımcı olur! – hangy