ManagementScope.Connect()如何跳过防火墙
想编一个远程控制局域网机器的程序,控制远程关机的代码如下:
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();时,如果对方电脑没有关闭防火墙的话就会连接出错,请问应该如何跳过此防火墙?