Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过.net c#连接到另一台具有windows操作系统的主机?_C#_Powershell_Wmi_Openssh_Ssh.net - Fatal编程技术网

如何通过.net c#连接到另一台具有windows操作系统的主机?

如何通过.net c#连接到另一台具有windows操作系统的主机?,c#,powershell,wmi,openssh,ssh.net,C#,Powershell,Wmi,Openssh,Ssh.net,我想连接到一台具有windows操作系统的主机,然后在该计算机上运行一些命令。通常我会尝试两种解决方案: 我在两台计算机上都安装了openSSh,然后使用ssh命令 在CMD中连接到主机,该操作已成功(这是在中完成的) 为了确保我可以连接),我使用了SSH.net 库以SSh方式连接到Visual Studio中的该主机,但它未连接 错误是“已建立的连接被 主机中的软件“(我阅读了所有关于此的问题 错误)。我认为这个错误是因为ssh.net库 为linux连接而不是windows编写。我说得对吗

我想连接到一台具有windows操作系统的主机,然后在该计算机上运行一些命令。通常我会尝试两种解决方案:

  • 我在两台计算机上都安装了openSSh,然后使用ssh命令 在CMD中连接到主机,该操作已成功(这是在中完成的) 为了确保我可以连接),我使用了SSH.net 库以SSh方式连接到Visual Studio中的该主机,但它未连接 错误是“已建立的连接被 主机中的软件“(我阅读了所有关于此的问题 错误)。我认为这个错误是因为ssh.net库 为linux连接而不是windows编写。我说得对吗

  • 我阅读了有关WMI(windows management instrumentation)的内容,并尝试首先通过windows PowerShell创建连接 (再次确认没有任何问题)。我 为解决“拒绝访问”问题做了许多操作(如检查防火墙、安全访问和权限,在windows power shell中运行一些命令) 但它还没有解决。(我几乎读了所有关于这个问题的问题)。我已经在我的应用程序中尝试了这段代码,但出现了异常。

    ip=“172.17.9.2”;
    用户名=“****”;
    password=“***”;
    端口=22;
    var processorun=new[]{“notepad.exe”};
    var connection=新连接选项();
    connection.Username=用户名;
    connection.Password=密码;
    var wmiScope=newmanagementscope(String.Format(“\\\{0}\\root\\cimv2”,“FB”),连接);
    var wmiProcess=newmanagementclass(wmiScope,newmanagementpath(“Win32_进程”),newObjectGetOptions());
    wmiProcess.InvokeMethod(“创建”,processorun);
    

  • 我在WMI上花了很多时间来了解问题所在。现在我正在寻找另一种简单易实现的方法。

    当使用WMI时,您需要使用一个用户帐户作为远程计算机上的权限

    因此,如果您有PC1,并且您以user1身份登录,并且您尝试登录到PC2,那么它将尝试以PC1\user1身份登录。。因此,您需要具体说明登录到远程计算机的用户名,或者确保第二台计算机上的用户


    您可能需要发送PC2\User1以User1身份登录远程计算机,这是一个完全不同的人

    你真的应该试试,而不是你对RESTful web服务不感兴趣吗?如果你完全必须使用c#-WMI作为一个整体是最简单的-你的代码的简单问题通常是如果你有一个用户域\用户。。如果只指定“用户”等。。或者您没有对计算机的权限。@BugFinder您的意思是,我应该使用username=“FB\****”,而不是username=“****”?这取决于用户的定义位置。。。。