C#管理员权限调用cmd以及以管理员身份生成程序

花了一整天时间理清了管理员权限的问题,怪我懂得太少


vs2013上写的控制台应用程序,如下代码直接用在Main中。源码测试的是更改本地ip、网关等的功能。


C#用管理员调用cmd

            string str = "netsh interface ip set address name=\"本地连接\" source=static addr=10.0.0.28 mask=255.255.255.0 gateway=10.0.0.1 gwmetric=1";

            ProcessStartInfo startInfo = new ProcessStartInfo();
            startInfo.FileName = "cmd.exe";
            startInfo.Arguments = "/c C:\\Windows\\System32\\cmd.exe";
            startInfo.RedirectStandardInput = true;
            startInfo.RedirectStandardOutput = true;
            startInfo.RedirectStandardError = true;
            startInfo.UseShellExecute = false;
            startInfo.Verb = "RunAs";

            Process process = new Process();
            process.StartInfo = startInfo;


            process.Start();
            process.StandardInput.WriteLine(str);
            process.StandardInput.WriteLine("&exit");
            process.StandardInput.AutoFlush = true;

            string strRst = process.StandardOutput.ReadToEnd();

            process.WaitForExit();
            process.Close();

C#生成管理员模式的应用程序

参考自C#调用cmd改ip地址。


所以接下来我按照“指示”,调整了项目的“安全性”。


这样下来如果用vs2013 debug模式,根本没效果!注意,杂家很执着的用vs的调试模式。。。。


后来发现,这个操作的效果是,生成的程序logo上有个小盾牌,恍然大悟。表示双击启动会有“用户账户控制”的弹窗。


VS以管理员模式启动

所以执着如我才知道,非要用VS调试模式下 管理员权限启动应用程序 必须这么做:

右键VS的快捷方式->“以管理员方式运行”



这样,我的IP才终于改成功.












你可能感兴趣的:(C#)