首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# Embedded POSReady 2009上的Windows Process.Start()管理员权限

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

Stack Overflow用户
提问于 2014-03-25 01:14:59
回答 2查看 1K关注 0票数 0

我正在尝试使用这里提到的C#的Process.Start()在一些System.Diagnostic代码中调用具有管理员权限的批处理文件:How to start a Process as administrator mode in C#

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

我尝试使用清单并设置Process.Verb = "runas",但没有成功。

子进程安装一个驱动程序,如果相关,我的程序将验证版本号。

谢谢你的帮助!

EN

回答 2

Stack Overflow用户

发布于 2014-03-25 01:20:36

确保您的应用程序清单中包含以下行:

代码语言:javascript
复制
  <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
    <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
  </requestedPrivileges>

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

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

票数 0
EN

Stack Overflow用户

发布于 2014-03-25 20:39:25

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22616160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档