ManagementScope.Connect()如何跳过防火墙

fengyangchao2 2008-12-05 10:49:23
想编一个远程控制局域网机器的程序,控制远程关机的代码如下:
ConnectionOptions connectionOptions = new ConnectionOptions();
//远程计算机用户名称
connectionOptions.Username = "*****";
//远程计算机用户密码
connectionOptions.Password = "******";
// String command = "\\\\192.168.**.**\\root\\cimv2";
string hostip = this.dataGridView1.CurrentRow.Cells[1].Value.ToString();
if (!IsIP(hostip))
{
return;
}
string commandStr = "\\\\" + hostip + "\\root\\cimv2";
ManagementPath managementPath = new ManagementPath(commandStr);
//设置操作管理范围
ManagementScope managementScope = new ManagementScope(managementPath, connectionOptions);
try
{
// 将此 ManagementScope 连接到实际的 WMI 范围
managementScope.Connect();
ObjectQuery objectQuery = new ObjectQuery("SELECT * FROM Win32_OperatingSystem");
ManagementObjectSearcher query = new ManagementObjectSearcher(managementScope, objectQuery);
//得到WMI控制
ManagementObjectCollection queryCollection = query.Get();
foreach (ManagementObject obj in queryCollection)
{
obj.InvokeMethod("ShutDown", null); //执行关闭远程计算机,reboot为重新启动
}
}
catch (Exception exp)
{
string errorMessage = exp.ToString();
}


但是在连接managementScope.Connect();时,如果对方电脑没有关闭防火墙的话就会连接出错,请问应该如何跳过此防火墙?
...全文
609 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
vampiler 2011-09-11
  • 打赏
  • 举报
回复
看看回答,我是访问拒绝的错误
luoqingqing1983 2011-03-11
  • 打赏
  • 举报
回复
怎么有的回答看不到啊?
aimeast 2008-12-31
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 fengyangchao2 的回复:]
这样啊,我在网上下载了一个软件,他是可以实现不用关闭对方防火墙就可以远程关机的,只要在服务器上安装一下,对方服务器上不需要安装客户端的
我在想他能做到我们也应该能做到啊
[/Quote]
我想用windows的默认配置是不可能的。除非那个软件修改了windows的某个配置(指的是被控制机器的配置)
fengyangchao2 2008-12-05
  • 打赏
  • 举报
回复
这样啊,我在网上下载了一个软件,他是可以实现不用关闭对方防火墙就可以远程关机的,只要在服务器上安装一下,对方服务器上不需要安装客户端的
我在想他能做到我们也应该能做到啊
ms44 2008-12-05
  • 打赏
  • 举报
回复
没有办法。
fengyangchao2 2008-12-05
  • 打赏
  • 举报
回复
不会吧,大哥,别打击偶啊,那还有别的方法去实现远程关机吗?我看了很多资料都是这个方法啊
aimeast 2008-12-05
  • 打赏
  • 举报
回复
没戏

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧