c# Process.Start()在Windows Embedded POSReady 2009上的管理员权限

本文关键字:2009 POSReady 权限 管理员 Embedded Windows Start Process | 更新日期: 2023-09-27 17:52:55

我试图在一些c#代码中使用System.DiagnosticProcess.Start()调用具有管理员权限的批处理文件,如下所述:如何在c#中以管理员模式启动进程。

我从提升的命令提示符以及runas /user:administrator program.exe调用构建的可执行文件。子进程在我的程序之外被调用时成功,但在被我的程序调用时它的管理员任务失败。

我已经尝试使用清单并设置Process.Verb = "runas",但没有运气。

子进程安装驱动程序,我的程序验证版本号是否相关。

谢谢你的帮助!

c# Process.Start()在Windows Embedded POSReady 2009上的管理员权限

确保您的应用程序清单中有以下几行:

  <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
    <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
  </requestedPrivileges>

您的应用程序将在与自身相同的提升级别上生成其他进程。这意味着如果您的应用程序以非管理员身份运行,那么它生成的每个进程也将在没有管理权限的情况下运行。

在启动批处理文件之前,请确保父应用程序具有提升权限。

原来管理员权限只在使用runas时授予可执行文件,因此您不能直接调用批处理文件。您应该使用p.StartInfo.FileName = "cmd.exe"p.StartInfo.Arguments = " /C ..."来代替p.StartInfo.FileName = program.bat