c# Process.Start()在Windows Embedded POSReady 2009上的管理员权限
本文关键字:2009 POSReady 权限 管理员 Embedded Windows Start Process | 更新日期: 2023-09-27 17:52:55
我试图在一些c#代码中使用System.Diagnostic
的Process.Start()
调用具有管理员权限的批处理文件,如下所述:如何在c#中以管理员模式启动进程。
我从提升的命令提示符以及runas /user:administrator program.exe
调用构建的可执行文件。子进程在我的程序之外被调用时成功,但在被我的程序调用时它的管理员任务失败。
我已经尝试使用清单并设置Process.Verb = "runas"
,但没有运气。
子进程安装驱动程序,我的程序验证版本号是否相关。
谢谢你的帮助!
确保您的应用程序清单中有以下几行:
<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
。