Я написал программу на C#, которая использует аргументы командной строки для . Включите и выключите брандмауэр.Включить и выключить брандмауэр с помощью C#
Process proc = new Process();
string top = "netsh.exe";
proc.StartInfo.Arguments = "**Advfirewall set allprofiles state on**";
proc.StartInfo.FileName = top;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.CreateNoWindow = true;
proc.Start();
proc.WaitForExit();
// MessageBox.Show("Disable");
button1.Text = "Set On";
status = false;
Я также запускаю приложение с разрешением администратора. Приложение автоматически запускается с правами администратора, но не включает или отключает статус брандмауэра.
Когда я запускаю ту же команду в cmd (netsh), брандмауэр включен или выключен.
Кто-нибудь знает, почему это не работает?
Уверен, что '**' должен быть там? Что произойдет, если вы их удалите? –
Любые исключения? Коды ошибок? –
Команда 'netsh advfirewall устанавливает allprofiles state on', поэтому удалите' ** 'https://technet.microsoft.com/en-us/library/dd772588 – Slai