我正在尝试以管理员身份启动csript(登录的帐户具有管理员权限).将startinfo.verb设置为runas不起作用.
ProcessStartInfo p1 = new ProcessStartInfo();
p1.UseShellExecute = true;
p1.Verb = "runas";
p1.FileName = "cscript";
p1.Arguments = "I:\\WPKG\\wpkg.js /synchronize /quiet /nonotify";
Process p = new Process();
p.StartInfo = p1;
p.Start();
Run Code Online (Sandbox Code Playgroud)
我可以通过权限启动它的唯一方法是手动设置用户名和密码.但是,我无法对该信息进行硬编码或将其置于配置中.有没有办法让cmd在没有登录信息的情况下提升?
我也试过在上面的代码周围添加使用(System.Security.Principal.WindowsIdentity.GetCurrent().Impersonate())也没有运气.
注意:如果我直接运行bat文件,它可以工作,如果我使用密码硬编码运行,它可以工作.它只能在没有登录信息的情况下提升从C#的启动.
这个实用程序:
http://jpassing.com/2007/12/08/launch-elevated-processes-from-the-command-line/
可能有帮助。另请注意该帖子中的评论。