C#管理者権限呼び出しcmdおよび管理者としての生成プログラム

1595 ワード

一日中管理者権限の問題を整理したのは、私があまりにも少ないからだ.
vs 2013に書かれたコンソールアプリケーションは、以下のコードが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アドレスを変更します.
そこで次に「指示」に従って、プロジェクトの「安全性」を調整しました.
このままvs 2013 debugモードでは、まったく効果がありません!注意、雑家はvsのデバッグモードに執着しています...
その後、この操作の効果は、生成されたプログラムロゴに小さな盾があり、はっと悟ったことだ.ダブルクリックで起動すると「ユーザーアカウント制御」があるポップアップウィンドウを示します.
VS管理者モードで起動
だから、私が知っているように、VSデバッグモードで管理者権限でアプリケーションを起動するには、次のようにしなければなりません.
右クリックVSのショートカット->「管理者で実行」
このようにして、私のIPはやっと成功しました.