c# - 运行需要 "Security Message"的命令行 (cmd)

标签 c# windows cmd driver

我要运行命令行 pnputil在 C# 程序中。该程序需要安装 USB 驱动程序。 我知道如何在 C# 程序中运行 cmd,但我有一个不同的问题:

我要安装的驱动没有windows权限。

如果我通过“设备管理器->更新驱动程序”安装驱动程序并选择驱动程序路径,我会从 Windows 收到“安全消息”“Windows 无法验证此驱动程序软件的发布者”并让我选择是否安装驱动程序(当然,如果我选择安装 - 安装成功)。

如果我从 cmd pnputil -a <path_name_inf> 运行命令我也收到此消息,我可以安装驱动程序。

但是当我尝试通过 C# 程序运行命令时 - 程序运行但未安装驱动程序(我也没有收到此消息)。

我的 C# 代码:

System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = @"/C Pnputil -a <path_name_inf>";
process.StartInfo = startInfo;
process.Start();

我该怎么做?

最佳答案

您可以尝试使用 runas 动词运行 cmd:

startInfo.Verb = "runas";
startInfo.UseShellExecute = true;

此参数会导致权限提升。当您在资源管理器中使用“以管理员身份运行”时,可以达到同样的效果。

关于c# - 运行需要 "Security Message"的命令行 (cmd),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26525095/

相关文章:

java - 在 Windows 中注入(inject)压力值

c# - 无法使用 CommandLineParser 包运行程序

windows - "start %comspec%/c script.cmd"与 "start cmd/C script.cmd"

java - 从字符串值中读取子字符串

c# - A "Sparse Map"数据类型(类 RLE)对于 C、C++ 或 .NET

c# - ASP.NET 网站在恰好 50 个请求后崩溃

c# - 从mysql数据库获取表来填充datalist

c++ - 创建样本库

正则表达式:将单词开头的 <tags> 中的小写字母替换为大写字母

c# - 处理来自 Icon 的应用程序关闭调用