繁体   English   中英

PowerShell 调用以获取 CPU 使用率

[英]PowerShell Invoke to get CPU usage

真的很令人沮丧,因为它似乎非常接近解决方案,但无法让最后一块工作。 我需要使用 C# 获取 CPU 使用率。 PerformanceCounter 是不可能的,因为第一次加载需要很长时间。 因此,尝试使用 PowerShell (System.Management.Automation.dll) 执行看起来很简单的一行:

(Get-CimInstance Win32_Processor).LoadPercentage

这是 C#:

var cpuUsage = powerShell.AddCommand("Get-CimInstance").AddArgument("Win32_Processor").AddCommand("LoadPercentage").Invoke();

所以你可以看到我正在尝试 pipe LoadPercentage命令,但它不起作用。

System.Management.Automation.CommandNotFoundException:“术语“LoadPercentage”未被识别为 cmdlet、function、脚本文件或可运行程序的名称。 检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。

代码的 rest 有效。 任何人都可以在这里发现问题吗? 先感谢您!

这里的问题是LoadPercentage是 object 的属性,而不是命令。 如果您捕获命令的结果并遍历它的成员,您应该找到您要查找的内容:

var results = PowerShell.Create()
    .AddCommand("Get-CimInstance")
    .AddArgument("Win32_Processor")
    .Invoke();
        
foreach (var result in results)
{
    Console.WriteLine(result.Members["LoadPercentage"]?.Value);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM