簡體   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