惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
Y
Y Combinator Blog
Engineering at Meta
Engineering at Meta
D
Docker
GbyAI
GbyAI
aimingoo的专栏
aimingoo的专栏
大猫的无限游戏
大猫的无限游戏
腾讯CDC
P
Proofpoint News Feed
A
About on SuperTechFans
WordPress大学
WordPress大学
Stack Overflow Blog
Stack Overflow Blog
Google DeepMind News
Google DeepMind News
C
Check Point Blog
Microsoft Security Blog
Microsoft Security Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
L
LangChain Blog
MyScale Blog
MyScale Blog
博客园 - 三生石上(FineUI控件)
Hugging Face - Blog
Hugging Face - Blog
Microsoft Azure Blog
Microsoft Azure Blog
N
Netflix TechBlog - Medium
G
Google Developers Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

博客园 - 永无止境

win8 hyper-v 禁用不必卸载虚拟机 如何在Windows中解决与WMI相关的问题 Sql Server 数据库状态可疑的解决方法 XNA 学习网站 Oracle 制造死锁和查询死锁 WMI 拒绝访问 解决方法之二 SqlServer 查询作业执行持续时间 WMI 拒绝访问问题 SqlServer 查看死锁信息 WMI 无法监视时必须要尝试的手段 winmgmt /resyncperf 浅谈.NET下的多线程和并行计算(转载) SQLServer支持大内存方案(转载) WMI 命名空间刷新,用于WMI缺少部分命名空间类的时候修复 Visual C#使用DirectX实现视频播放 DirectX技术实现视频会议中的音频通信 网络拓扑发现原理研究 linux下使用WMI windows WMIC命令大全 防止控件重绘闪烁
WMI 实现Windows代理ping
永无止境 · 2011-04-06 · via 博客园 - 永无止境

使用了笨办法取了两次值,尝试过ManagementOperationObserver的异步调用,结果出现RPC不可用,暂时没有时间解决这个问题,请高手看到此文给予指点,谢谢。

代码如下:           

ConnectionOptions options = new ConnectionOptions();
            options.Username = "administrator";
            options.Password = "*********";

            ManagementScope Conn = new ManagementScope(@"\\XXX.XXX.XXX.XXX\root\cimv2", options);
            Conn.Connect();

            ObjectQuery query = new ObjectQuery("select * from win32_PingStatus where Address = 'www.sina.com.cn'");

            ManagementObjectSearcher mos =
                        new ManagementObjectSearcher(Conn, query);

            ManagementObjectCollection moc = mos.Get();

            Thread.Sleep(1000);

            moc = mos.Get();

            string m = "";

            foreach (ManagementObject mo in moc)
            {
                object obj = mo.Properties["StatusCode"].Value;

                if (obj == null)
                {
                    m = "PING 执行失败。可能是主机未知。";
                }
                else
                {
                    if (obj.ToString().Trim() == "0")
                    {
                        m = "来自 " + mo.Properties["Address"].Value.ToString() + " 的回复, 字节: " +
                            mo.Properties["BufferSize"].Value.ToString() + ", 时间: " + mo.Properties["ResponseTime"].Value.ToString() +
                            ", TTL: " + mo.Properties["ResponseTimeToLive"].Value.ToString();
                        break;
                    }
                }
            }

            Console.WriteLine(m);