C# 有没有办法使用.NET通过编程从Bcedit.exe获取值/设置?

C# 有没有办法使用.NET通过编程从Bcedit.exe获取值/设置?,c#,vb.net,elevated-privileges,C#,Vb.net,Elevated Privileges,从提升的命令提示符运行bcdedit.exe时,可以看到当前BCD设置的值。我需要读取“虚拟机监控程序启动类型”的设置/值 有人知道怎么做吗 我曾尝试将管道输出写入tmp文件,以便对其进行解析,但由于bcdedit.exe需要从提升的提示符运行,因此遇到了管道输出问题。也许有更好的办法 编辑:我忘了补充一点,我希望能够在最终用户根本看不到命令提示符的情况下完成此操作(即,甚至不能快速闪烁)。首先,以管理员身份运行Visual Studio,并在控制台应用程序中尝试此代码(通过调试运行应用程序)

从提升的命令提示符运行bcdedit.exe时,可以看到当前BCD设置的值。我需要读取“虚拟机监控程序启动类型”的设置/值

有人知道怎么做吗

我曾尝试将管道输出写入tmp文件,以便对其进行解析,但由于bcdedit.exe需要从提升的提示符运行,因此遇到了管道输出问题。也许有更好的办法


编辑:我忘了补充一点,我希望能够在最终用户根本看不到命令提示符的情况下完成此操作(即,甚至不能快速闪烁)。

首先,以管理员身份运行Visual Studio,并在控制台应用程序中尝试此代码(通过调试运行应用程序):

但是,存在一个问题,如果您想在从提升的Visual Studio外部启动应用程序时使其正常工作,则需要将应用程序配置为请求提升的权限:

在项目上,单击“添加新项”,然后选择“应用程序清单文件”

打开app.manifest文件并替换此行:

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

关于这一点:

<requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />


您是否试图从没有管理员权限的应用程序中获取这些值?我可以采用任何一种方式,无论哪种方式都可以。我想您可以使用“谢谢”,这非常有效,但在从BCDedit.exe读取信息时,它会闪烁命令提示符。我忘了提到,我希望在为它制作GUI时对用户保持隐藏状态,而且总是闪烁命令窗口令人讨厌。=)我更新了我的问题以反映这一点。使用
UseShellExecute
的值似乎有问题。有什么解决方法吗?@J.ScottElblein您是否尝试过使用
ProcessStartInfo
并设置
CreateNoWindow=true
?您也可以尝试以下方法:p.StartInfo.WindowStyle=System.Diagnostics.ProcessWindowStyle.Hidden;
<requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />