使用 C# 打开和关闭防火墙
Turn Firewall on and off of using 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) 中使用相同的命令时,防火墙被打开或关闭。
有谁知道为什么这不起作用?
运行 相同的代码,但删除 **
似乎有效。即你需要改变这个:
proc.StartInfo.Arguments = "**Advfirewall set allprofiles state on**";
对此:
proc.StartInfo.Arguments = "Advfirewall set allprofiles state on";
请注意,您应该是 运行 以管理员身份启动进程的应用程序,要以管理员身份启动进程,您还可以使用:
proc.StartInfo.Verb = "runas";
我编写了一个使用命令行参数的 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) 中使用相同的命令时,防火墙被打开或关闭。
有谁知道为什么这不起作用?
运行 相同的代码,但删除 **
似乎有效。即你需要改变这个:
proc.StartInfo.Arguments = "**Advfirewall set allprofiles state on**";
对此:
proc.StartInfo.Arguments = "Advfirewall set allprofiles state on";
请注意,您应该是 运行 以管理员身份启动进程的应用程序,要以管理员身份启动进程,您还可以使用:
proc.StartInfo.Verb = "runas";