如何通过 .net c# 连接到另一台具有 windows 操作系统的主机?
how to connect to another host which has windows operating system by .net c#?
我想连接到具有 windows 操作系统的主机,然后在该计算机中 运行 一些命令。通常我尝试了两种解决方案:
我在两台电脑上都安装了openSSh然后用ssh命令
在 CMD 中连接到主机并成功(这是在
为了确保我可以连接)然后我使用 SSH.net
库通过 SSh 连接到 Visual Studio 中的那个主机,但它没有连接
错误是 "已建立的连接被
您主机中的软件“(我阅读了所有关于此的问题
错误) 。我认为出现此错误是因为 ssh.net 库是
为 linux 连接而非 windows 编写。我说得对吗?
我阅读了有关 WMI(windows 管理工具)的信息,并尝试先通过 windows PowerShell 创建连接
(再次确定没有任何问题)。我
已采取许多行动来解决问题 "accessing deny"(例如检查防火墙、安全访问和权限,运行 windows 中的一些命令 power shell)
但它还没有解决。(我几乎阅读了所有关于这个问题的问题)。我在我的应用程序中尝试了这段代码,但出现了异常。
ip = "172.17.9.2";
username = "****";
password = "***";
port = 22 ;
var processToRun = new[] { "notepad.exe" };
var connection = new ConnectionOptions();
connection.Username = username;
connection.Password = password;
var wmiScope = new ManagementScope(String.Format("\\{0}\root\cimv2", "FB"), connection);
var wmiProcess = new ManagementClass(wmiScope, new ManagementPath("Win32_Process"), new ObjectGetOptions());
wmiProcess.InvokeMethod("Create", processToRun);
我在 WMI 上花了很多时间来了解问题所在。现在我正在寻找另一种简单易行的方法。
使用 WMI 时,您需要使用在远程计算机上具有权限的用户帐户
所以,如果您有 PC1,并且您以 user1 身份登录,然后尝试登录 PC2,它会尝试以 PC1\user1 身份登录。所以您需要具体说明您的用户名登录远程机器,或者确保第二台机器上的用户。
您可能需要发送 PC2\User1 以 User1 的身份登录到远程机器上,这是一个完全不同的人
我想连接到具有 windows 操作系统的主机,然后在该计算机中 运行 一些命令。通常我尝试了两种解决方案:
我在两台电脑上都安装了openSSh然后用ssh命令 在 CMD 中连接到主机并成功(这是在 为了确保我可以连接)然后我使用 SSH.net 库通过 SSh 连接到 Visual Studio 中的那个主机,但它没有连接 错误是 "已建立的连接被 您主机中的软件“(我阅读了所有关于此的问题 错误) 。我认为出现此错误是因为 ssh.net 库是 为 linux 连接而非 windows 编写。我说得对吗?
我阅读了有关 WMI(windows 管理工具)的信息,并尝试先通过 windows PowerShell 创建连接 (再次确定没有任何问题)。我 已采取许多行动来解决问题 "accessing deny"(例如检查防火墙、安全访问和权限,运行 windows 中的一些命令 power shell) 但它还没有解决。(我几乎阅读了所有关于这个问题的问题)。我在我的应用程序中尝试了这段代码,但出现了异常。
ip = "172.17.9.2"; username = "****"; password = "***"; port = 22 ; var processToRun = new[] { "notepad.exe" }; var connection = new ConnectionOptions(); connection.Username = username; connection.Password = password; var wmiScope = new ManagementScope(String.Format("\\{0}\root\cimv2", "FB"), connection); var wmiProcess = new ManagementClass(wmiScope, new ManagementPath("Win32_Process"), new ObjectGetOptions()); wmiProcess.InvokeMethod("Create", processToRun);
我在 WMI 上花了很多时间来了解问题所在。现在我正在寻找另一种简单易行的方法。
使用 WMI 时,您需要使用在远程计算机上具有权限的用户帐户
所以,如果您有 PC1,并且您以 user1 身份登录,然后尝试登录 PC2,它会尝试以 PC1\user1 身份登录。所以您需要具体说明您的用户名登录远程机器,或者确保第二台机器上的用户。
您可能需要发送 PC2\User1 以 User1 的身份登录到远程机器上,这是一个完全不同的人