刷新DNS网络重启命令使用c#。

问题描述 投票:0回答:1

对于网络刷新,我通常以管理员权限打开命令提示符,然后输入这些命令。

netsh winsock reset
netsh int ip reset
ipconfig /release
ipconfig /renew
ipconfig /flushdns

我需要在c#代码中运行这五个命令:

现在我有一个代码,只有发布和更新的工作。下面是该代码。

public bool FlushAllNetworks()
        {
            try
            {
                ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration");
                ManagementObjectCollection objMOC = objMC.GetInstances();
                foreach (ManagementObject objMO in objMOC)
                {
                    //Need to determine which adapter here with some kind of if() statement
                    objMO.InvokeMethod("ReleaseDHCPLease", null, null);
                    objMO.InvokeMethod("RenewDHCPLease", null, null);
                }
            }
            catch (Exception ex) {
                return false;
            }
            return true;
        }

任何帮助将被感激。谢谢。

EDIT:我找到了一个答案。我采纳了AmirHossein的建议,并做了一个小小的修正。下面是我自己问题的解决方法。

        Process process = new Process();
        ProcessStartInfo startInfo = new ProcessStartInfo();
        startInfo.WindowStyle = ProcessWindowStyle.Hidden;
        startInfo.FileName = "cmd.exe";
        startInfo.Verb = "runas";
        startInfo.Arguments = "/C netsh winsock reset & netsh int ip reset & ipconfig /release & ipconfig /renew & ipconfig /flushdns";
        process.StartInfo = startInfo;
        process.Start();
c# command-prompt netsh
1个回答
1
投票

你可以使用 Process() 来运行你提到的命令。

Process p = new Process();
p.startInfo.CreateNoWindow = true;
p.startInfo.UseShellExecute = false;
p.startInfo.FileName = "cmd";
p.startInfo.Arguments = "netsh winsock reset && netsh int ip reset && ipconfig /release && ipconfig /renew && ipconfig /flushdns";

p.Start();

它在后台执行命令

© www.soinside.com 2019 - 2024. All rights reserved.