您的位置:首页 > 理论基础

如何: 连接到一台远程计算机

2011-04-06 17:34 253 查看
WMI 用来监控远程计算机上的硬件和软件。.NET Framework 中的WMI 远程连接通过ManagementScope 对象实现的。
使用System.Management 命名空间来远程连接内部是使用DCOM 来作为统一的远程架构的。WMI远程连接必须服从DCOM身份模拟和认证的安全要求。在不同的操作系统之间,比如,一个从一台Windows 2000 计算机发起,连接到一台Windows Server 2003 计算机的连接的身份模拟和认证可能与两台Windows 2000 计算机之间的不同。
默认情况下,一个范围绑定到本地计算机的root\cimv2 系统命名空间。然而,你可以在确定构造路径的字符串中改变命名空间或者使用一个ManagementPath对象。这个路径使用的字符串按照其他WMI路径的规则,不可以使用反斜线("\")。
当你在进行远程连接时,你可以使用一个特定用户而不是当前的登录用户, 在远程计算机的操作将在特定用户的上下文中执行。这可以通过使用ConnectionOptions 对象实现。

WMI远程连接一台计算机的环境要求:
1. 保证在源端和目的端同时开启Remote Procedure Call(RPC), Remote Procedure Call(RPC) Locator 服务,且设置它们为自动启动。
2. 设置防火墙
如果出现类似于The RPC is Unavaliable 等类似的一系列错误时,要考虑是否是由于防火墙原因导致的。
分别检查源端的OutBound Rules 和 目的端的InBound Rules, 确保Windows Management Instrucmentation(WMI-Out) 已经允许。
3. 可以在源端Ping 通目的端机器
4. 开始->管理工具->计算机管理->连接到另外一台计算机(右键),查看是否可以正常在源端计算机使用WMI连接到目的端计算机。
5. 开始->运行->DCOMCNFG->Component Services->My Computer->右键
->Default Properties->Enable Distributed COM on this computer(Check it)
->Default Protocols->Add Tunneling TCP/IP(Move it until the top one)
全部设置完以后,重启计算机
6. 使用工具WMICodeCreator 来生成需要的代码
7. 示例代码

ConnectionOptions connection = new ConnectionOptions();
//用户名不可以加域名, 要保证用户名和密码正确,否则报RPC is Unavaliable.
connection.Username = "testUser";
connection.Password = "testPassword";
//允许权限提升
connection.EnablePrivileges = true;
//委托方式身份模拟
connection.Impersonation = ImpersonationLevel.Delegate;
//连接到WMI 的认证级别
connection.Authentication = AuthenticationLevel.Call;
//不是ntdlmdomain,也不是kerberoes, 否则会提示Invalid Parameter.
connection.Authority = "ntlmdomain:MYDOMAIN";

//地址使用IP或者机器全名
ManagementScope scope = new ManagementScope(
"\\\\myIPAddress\\root\\CIMV2", connection);
scope.Connect();

ManagementClass classInstance =
new ManagementClass(scope,
new ManagementPath("Win32_Process"), null);

ManagementBaseObject inParams = classInstance.GetMethodParameters("Create");
//替换成你的可执行文件路径
inParams["CommandLine"] = "myExecuteFilePath";
ManagementBaseObject outParams = classInstance.InvokeMethod("Create", inParams, null);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: