c# - 如何在 C# 中获取 Windows UWF 可用空间
问题描述
我想在 C# 程序中运行以下 shell 命令:
uwfmgr overlay get-availablespace
一个简单的解决方案是调用 cmd 进程,如下所示:
var ps = new ProcessStartInfo("cmd")
{
RedirectStandardError = true,
RedirectStandardOutput = true,
UseShellExecute = false,
CreateNoWindow = true,
FileName = "cmd.exe",
Arguments = "/user:Administrator /c uwfmgr overlay get-availablespace"
};
using (Process p = Process.Start(ps))
{
output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
}
但是是否有一个简单的 API 可以调用以避免解析进程的输出字符串?另一个问题是我必须以管理权限调用 cmd 。
更新:我尝试使用 WMI Api 但没有成功,这是我的代码:
var scope = new ManagementScope(@"root\standardcimv2\embedded");
var uwfClass = new ManagementClass(scope.Path.Path, "UWF_Overlay", null);
foreach (ManagementObject instance in uwfClass.GetInstances())
{
var result = instance.InvokeMethod("AvailableSpace", null);
break;
}
解决方案
这是获取 UWFAvailableSpace
和OverlayConsumption
.
var scope = new ManagementScope(@"root\standardcimv2\embedded");
var uwfClass = new ManagementClass(scope.Path.Path, "UWF_Overlay", null);
foreach (ManagementObject instance in uwfClass.GetInstances())
{
var availableSpace = Convert.ToInt32(instance.GetPropertyValue("AvailableSpace").ToString());
var overlayConsumption = Convert.ToInt32(instance.GetPropertyValue("OverlayConsumption").ToString());
}
推荐阅读
- list - Haskell:从输入列表创建列表元组
- html - 如何访问没有附加任何类或 id 的类的子 div = 结果
- javascript - PixiJS 只绘制一定数量的矩形?
- html - HTML解析问题:无法查看和解析webhallen.com的完整源代码
- tableau-api - 如何在画面中设置日月计算?
- html - 链接在视频背景后面
- c++ - C++ CImg 从数组创建图像
- javascript - 由于重复的 babel-polyfill 实例,加载供应商 cdn 脚本时出错
- typescript - JestJs 不等待调用包装 async/await
- google-domains - 使用 TXT 记录的 Google 域验证失败