diff --git a/Admin.NET/Admin.NET.Core/Utils/ComputerUtil.cs b/Admin.NET/Admin.NET.Core/Utils/ComputerUtil.cs
index 6c6c7469..09c50657 100644
--- a/Admin.NET/Admin.NET.Core/Utils/ComputerUtil.cs
+++ b/Admin.NET/Admin.NET.Core/Utils/ComputerUtil.cs
@@ -189,8 +189,11 @@ public static class ComputerUtil
}
else
{
+#if NET8_0 || NET9_0
string output = ShellUtil.Cmd("wmic", "cpu get LoadPercentage");
- // string output = ShellUtil.PowerShell("Get-CimInstance -ClassName Win32_Processor | Measure-Command {Start-Sleep -Seconds 1}");
+#else
+ string output = ShellUtil.PowerShell("Get-CimInstance -ClassName Win32_Processor | Measure-Command {Start-Sleep -Seconds 1}");
+#endif
cpuRates.AddRange(output.Replace("LoadPercentage", string.Empty).Trim().Split("\r\r\n"));
}
return cpuRates;
@@ -205,10 +208,10 @@ public static class ComputerUtil
string runTime = string.Empty;
if (IsMacOS())
{
- //macOS 获取系统启动时间:
- //sysctl -n kern.boottime | awk '{print $4}' | tr -d ','
- //返回:1705379131
- //使用date格式化即可
+ // macOS 获取系统启动时间:
+ // sysctl -n kern.boottime | awk '{print $4}' | tr -d ','
+ // 返回:1705379131
+ // 使用date格式化即可
string output = ShellUtil.Bash("date -r $(sysctl -n kern.boottime | awk '{print $4}' | tr -d ',') +\"%Y-%m-%d %H:%M:%S\"").Trim();
runTime = DateTimeUtil.FormatTime((DateTime.Now - output.ParseToDateTime()).TotalMilliseconds.ToString().Split('.')[0].ParseToLong());
}
@@ -219,8 +222,11 @@ public static class ComputerUtil
}
else
{
+#if NET8_0 || NET9_0
string output = ShellUtil.Cmd("wmic", "OS get LastBootUpTime/Value");
- // string output = ShellUtil.PowerShell("(Get-Date) - (Get-CimInstance -ClassName Win32_OperatingSystem).LastBootUpTime");
+#else
+ string output = ShellUtil.PowerShell("(Get-Date) - (Get-CimInstance -ClassName Win32_OperatingSystem).LastBootUpTime");
+#endif
string[] outputArr = output.Split('=', (char)StringSplitOptions.RemoveEmptyEntries);
if (outputArr.Length == 2)
runTime = DateTimeUtil.FormatTime((DateTime.Now - outputArr[1].Split('.')[0].ParseToDateTime()).TotalMilliseconds.ToString().Split('.')[0].ParseToLong());
@@ -331,8 +337,11 @@ public class MemoryMetricsClient
///
public static MemoryMetrics GetWindowsMetrics()
{
+#if NET8_0 || NET9_0
string output = ShellUtil.Cmd("wmic", "OS get FreePhysicalMemory,TotalVisibleMemorySize /Value");
- // string output = ShellUtil.PowerShell("Get-CimInstance -ClassName Win32_OperatingSystem | Select FreePhysicalMemory, TotalVisibleMemorySize");
+#else
+ string output = ShellUtil.PowerShell("Get-CimInstance -ClassName Win32_OperatingSystem | Select FreePhysicalMemory, TotalVisibleMemorySize");
+#endif
var metrics = new MemoryMetrics();
var lines = output.Trim().Split('\n', (char)StringSplitOptions.RemoveEmptyEntries);
if (lines.Length <= 0) return metrics;
@@ -448,7 +457,6 @@ public class ShellUtil
public static string PowerShell(string script)
{
#if NET8_0 || NET9_0
- // net 8.0 可用
using var PowerShellInstance = System.Management.Automation.PowerShell.Create();
PowerShellInstance.AddScript(script);
var PSOutput = PowerShellInstance.Invoke();
@@ -459,6 +467,9 @@ public class ShellUtil
output.AppendLine(outputItem.BaseObject.ToString());
}
return output.ToString();
+#else
+ return "";
+#endif
}
}
@@ -520,6 +531,7 @@ public class ShellHelper
///
public static string PowerShell(string script)
{
+#if NET8_0 || NET9_0
using var PowerShellInstance = System.Management.Automation.PowerShell.Create();
PowerShellInstance.AddScript(script);
var PSOutput = PowerShellInstance.Invoke();
@@ -530,5 +542,8 @@ public class ShellHelper
output.AppendLine(outputItem.BaseObject.ToString());
}
return output.ToString();
+#else
+ return "";
+#endif
}
}
\ No newline at end of file