Flu sh DNS / Команды перезагрузки сети с использованием c# - PullRequest
0 голосов
/ 30 апреля 2020

Для сетевого гриппа sh я обычно открываю командную строку с правами администратора и набираю следующие команды:

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;
        }

Любая помощь будет оценена. Спасибо.

РЕДАКТИРОВАТЬ: Я нашел ответ. Я принял предложение от Амира Хосейна и внес небольшую поправку. Ниже приведено решение для моего собственного вопроса.

        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();

1 Ответ

1 голос
/ 30 апреля 2020

вы можете использовать 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();

Выполняет команды в фоновом режиме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...