C#与WMI(二):查看远程Windows计算机的操作系统信息
2010-10-21 15:51
1491 查看
WMI可以查看远程系统,但是也是有前提的:
1 要有对方计算机操作足够的权限;
2 相关服务及端口都工作正常。
我编写代码及测试的时候用的都是域管理员账号,在单位局域网内,不牵涉防火墙的问题。以下的代码就是在这个环境下测试通过的,它演示了获取远端Windows系统的OS信息,甚至安装的日期。
这段代码主要是想演示如何连接远程系统,包含两个函数,其中getManagementScope就看成是建立一个WMI的连接,其中包含了用户名和密码信息。
通过WMI能得到的信息很多,可以参考Script Center。
1 要有对方计算机操作足够的权限;
2 相关服务及端口都工作正常。
我编写代码及测试的时候用的都是域管理员账号,在单位局域网内,不牵涉防火墙的问题。以下的代码就是在这个环境下测试通过的,它演示了获取远端Windows系统的OS信息,甚至安装的日期。
private ManagementScope getManagementScope(string Host, string UID, string PWD) { ConnectionOptions connOption = new ConnectionOptions(); connOption.Username = UID.Trim(); connOption.Password = PWD; return new ManagementScope("////" + Host.Trim() + "//root//cimv2", connOption); } /// <summary> /// 获取远程Windows系统的OS信息 /// </summary> /// <param name="Host">远程主机</param> /// <param name="UID">远程主机的用户名</param> /// <param name="PWD">密码</param> /// <returns>操作系统信息,或报告错误信息</returns> public string GetOSInfo(string Host, string UID, string PWD) { string rtn = ""; ManagementScope mms = null; ManagementObjectSearcher cmd = null; ManagementObjectCollection objs = null; try { mms = getManagementScope(Host, UID, PWD); string sql = "Select * from Win32_OperatingSystem"; cmd = new ManagementObjectSearcher(mms, new ObjectQuery(sql)); objs = cmd.Get(); foreach (ManagementObject obj in objs) { rtn += obj["Caption"].ToString().Trim() + "/r/n"; rtn += obj["InstallDate"].ToString() + "/r/n"; } } catch (Exception ex) { rtn = "运行错误:" + ex.Message; } finally { mms = null; if (cmd != null) cmd.Dispose(); if (objs != null) objs.Dispose(); } return rtn; }
这段代码主要是想演示如何连接远程系统,包含两个函数,其中getManagementScope就看成是建立一个WMI的连接,其中包含了用户名和密码信息。
通过WMI能得到的信息很多,可以参考Script Center。
相关文章推荐
- C#通过WMI的wind32 的API函数实现msinfo32的本地和远程计算机的系统摘要信息查看功能
- C#获取远程计算机硬件信息实例(支持linux和windows)
- C#: WMI 获取远程 Windows 主机信息
- C#实现WMI读取远程计算机信息【原】
- C#实现WMI读取远程计算机信息【原】
- C#通过WMI的wind32 的API函数实现msinfo32的本地和远程计算机的系统日志查看功能
- 使用WMI获取远程机器操作系统的详细信息
- C#利用WMI获取 远程计算机硬盘数据
- Visual C#中用WMI获取远程计算机信息
- 【我的Android进阶之旅】解决 Error:CreateProcess error=216, 该版本的 %1 与您运行的 Windows 版本不兼容。请查看计算机的系统信息,了解是否需要 x86
- 服务器上出现应用程序错误。此应用程序的当前自定义错误设置禁止远程查看应用程序错误的详细信息(出于安全原因)。但可以通过在本地服务器计算机上运行的浏览器查看。
- 【我的Android进阶之旅】解决 Error:CreateProcess error=216, 该版本的 %1 与您运行的 Windows 版本不兼容。请查看计算机的系统信息,了解是否需要 x86
- 在命令行下,如何查看Windows操作系统的版本详细信息
- C#利用Wmi远程控制pc或者获取远程pc的配置信息
- C#中如何用Windows Management Instrumentation (WMI)得到系统信息
- 【Android studio】解决 Error:CreateProcess error=216, 该版本的 %1 与您运行的 Windows 版本不兼容。请查看计算机的系统信息,了解是否需要 x86
- Visual C#中用WMI获取远程计算机信息
- 【Android studio】解决 Error:CreateProcess error=216, 该版本的 %1 与您运行的 Windows 版本不兼容。请查看计算机的系统信息,了解是否需要 x86
- 【C#】C#获得计算机硬件信息和操作系统信息,ManagementObjectSearcher
- Visual C#中用WMI获取远程计算机信息