运行exe作为系统帐户

时间:2015-12-10 06:18:25

标签: c# windows

我正在尝试将我的c#exe作为系统帐户运行。我怎样才能做到这一点。我已经尝试<requestedExecutionlevel level="requireAdministrator"> and <requestedExecutionlevel level="requireSystem">管理员正在工作,但第二个不工作。

请帮帮我怎样才能做到这一点。

3 个答案:

答案 0 :(得分:6)

据我所知,您无法强制您的应用以SYSTEM身份运行。您的应用必须是服务且服务设置为以系统身份运行,或者您必须使用PsExec之类的工具将可执行文件作为系统启动。

psexec.exe -i -s YourProgram.exe

使用requestedExecutionlevel时,只有3个有效选项

  • requireAdministrator - 始终提示UAC(即使用户不是管理员)。
  • asInvoker - 永远不会提示UAC。
  • highestAvailable - 如果用户是Administrators组的成员,则提示UAC,但如果用户不是该组的成员,则不提示并以普通用户身份运行。

答案 1 :(得分:2)

不能直接。如果您是管理员(例如从已经运行的服务或其他东西获取安全令牌),有很多方法,但我不建议使用它们。

SYSTEM帐户的要点正是:它只能由系统直接运行。

如果您想要一个没有第三方工具(例如psexec)的简单方法,您可以设置一个ONEEVENT计划任务(schtasks,其中包含exe OS),它确实可以与系统帐户一起运行。这仍然需要两个进程(虽然它可以是相同的@Entity(noClassnameStored = true) public class DataMart implements Serializable { private ObjectId id; private String name; . . . . private Map<String, Object> validTimeRangeOfExistingData; } ,具有不同的任务命令行参数和设置它,但它可以工作。

答案 2 :(得分:-1)

您好我找到了解决方案。如果您确实希望将exe作为系统帐户运行,则需要创建Windows服务并将其作为本地系统帐户启动。您将能够看到一个exe正在任务管理器上运行,同时还有一个系统帐户用户。 这就是我需要知道的。