C# 从C以管理员身份启动批处理文件#

C# 从C以管理员身份启动批处理文件#,c#,batch-file,C#,Batch File,我有一个进程在系统帐户下运行(无法更改),需要执行一系列DOS风格的命令。具体来说,它需要运行w32tm/resync,这需要管理员权限 我尝试过使用“runas”动词,即使ShellExecute设置为true,它似乎也没有效果。我还尝试切换到本地计算机上的(已知)用户,但出现以下异常:“指定的服务不作为已安装的服务存在”。如果我以我试图切换到的用户的身份运行该程序,它可以正常工作(在应用程序清单中设置了admin) 我还尝试过在不使用批处理文件的情况下将每个命令作为单独的进程运行,这似乎也没

我有一个进程在系统帐户下运行(无法更改),需要执行一系列DOS风格的命令。具体来说,它需要运行w32tm/resync,这需要管理员权限

我尝试过使用“runas”动词,即使ShellExecute设置为true,它似乎也没有效果。我还尝试切换到本地计算机上的(已知)用户,但出现以下异常:“指定的服务不作为已安装的服务存在”。如果我以我试图切换到的用户的身份运行该程序,它可以正常工作(在应用程序清单中设置了admin)

我还尝试过在不使用批处理文件的情况下将每个命令作为单独的进程运行,这似乎也没有什么帮助

到目前为止,我尝试了所有方法,要么得到上述异常,要么调用w32tm/resync失败(表示没有管理员权限)

任何想法都很感激

以下是用于切换用户的代码:

procInfo.FileName = scriptPath;
procInfo.UserName = "admin";
procInfo.UseShellExecute = false;
procInfo.CreateNoWindow = true;
Process.Start(procInfo);

等待的可能重复。。也许不是。。我刚读到您已经尝试了
动词
属性。。(尽管,其他答案可能会有所帮助)我已经尝试过这些答案(在发布这个问题之前,我花了很多时间研究这个问题)。我遇到的主要问题似乎围绕着这样一个事实:这个进程是自动启动的(在系统用户下),而不是启动它的用户(这在我的清单文件中运行得很好)。如果有帮助,我可以将问题缩小到如何以不同用户的身份成功运行程序,虽然我只是想让它以管理员的身份运行。下面是另一个使用
CreateProcessAsUser
的解决方案:。不过有点笨重