このCMDコマンドを実行してDNSを変更しようとしていますが、動作していません。私は何の誤りもありません。しかし、それは動作しませんが、管理者として実行するように求めています。引数を使用してCMDを実行していません
手動でCMDに引数を入力すると機能します。ここで
は私のコードです:
System.Diagnostics.ProcessStartInfo myProcessInfo = new System.Diagnostics.ProcessStartInfo();
myProcessInfo.FileName = Environment.ExpandEnvironmentVariables("%SystemRoot%") + @"\System32\cmd.exe";
myProcessInfo.Arguments = "set DNS1=198.168.97.1 " +
"set DNS2=5.2.2.2 " +
"set DNS3=206.19.29.17 " +
"set INTERFACE=Ethernet " +
"netsh int ipv4 set dns name='%INTERFACE%' static %DNS1% primary validate=no " +
"netsh int ipv4 add dns name='%INTERFACE%' %DNS2% index=2 " +
"netsh int ipv4 add dns name='%INTERFACE%' %DNS3% index=3" +
"ipconfig /flushdns";
myProcessInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
myProcessInfo.Verb = "runas";
System.Diagnostics.Process.Start(myProcessInfo);
これらがひとつずつ実行(またはバッチファイルに入れをし、それを実行)するには、3つの別々のコマンドであり、あなたドン何も設定する必要はありません。なぜなら、セットの値をnetshの中に直接入力することができるからです。また、CMD.EXEプロセッサを起動するときには、引数/ Kまたは/ Cを引数の前につけてください。 – Steve
コマンドを区切るのに '' && ''を使ってみることもできます。コマンドセパレータ '' && ''で区切られた複数のコマンドは、引用符で囲まれた文字列に対して受け入れられることに注意してください。 – Darek
@Darekあなたはそれがうまくいくと思いますか? –