我试图以管理员身份启动csript(登录的帐户拥有管理员权限)。将startinfo.verb设置为runas不起作用。C#以管理员身份启动命令
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();
我可以让它以特权开始的唯一方法是手动设置用户名和密码。但是我无法硬编码该信息或将其放入配置中。没有任何方法可以让cmd在没有登录信息的情况下升级?
我也尝试添加使用(System.Security.Principal.WindowsIdentity.GetCurrent()。Impersonate())围绕上述代码没有运气。
注意:如果我直接运行bat文件,它的工作原理是,如果我使用硬编码密码运行,它可以工作。它只能提升没有登录信息从C#启动。
显然你需要输入用户名和密码才能登录。为什么你不能只使用字符串连接来正确运行“runas”?如果你正在寻找一个如何获得管理员权利的解释一般看这里http://stackoverflow.com/questions/3583501/c-net-acquire-administrator-rights – foowtf
我期望能够使用当前登录的用户。唯一一种与右键单击并以admin身份运行相同行为的方法是在登录信息中编码?一种吸吮。 – JeremyK
好吧,这并不容易。如果您点击“以管理员身份运行”,您还必须先确认。这只是一种方便,所以你不必每次都输入你的密码(就像你在linux下做的那样)。否则,每个小应用程序都可能会利用您以管理员身份登录。 – foowtf