标题:掌握 PowerShell 防火墙管理:C# 中的高效操作指南
引言
在日常开发中,我们常常需要对 Windows 防火墙进行配置和管理。无论是允许特定端口通信、检查防火墙状态还是删除规则,PowerShell 提供了强大的命令来简化这些任务。本文将详细介绍如何通过 C# 与 PowerShell 结合使用,实现高效的防火墙管理。Windows 防火墙是保护系统免受未经授权访问的重要防线。尽管可以通过图形界面手动配置,但在自动化脚本或应用程序中集成这些功能往往更加灵活和高效。本文将展示如何利用 C# 调用 PowerShell 命令,轻松管理防火墙规则。
一、环境准备
确保你的开发环境中已安装 .NET Framework 或 .NET Core,并具备基本的 C# 编程知识。此外,还需要管理员权限来执行防火墙相关的 PowerShell 命令。
二、创建 PowerShellHelper
类
首先,我们需要创建一个帮助类 PowerShellHelper
来封装所有与 PowerShell 相关的操作。这不仅提高了代码的可复用性,也使得维护更加简便。
using System;
using System.Diagnostics;
namespace FirewallControlApp.Helpers
{
public static class PowerShellHelper
{
public static bool ExecuteCommand(string command, out string log)
{
log = string.Empty;
try
{
ProcessStartInfo psi = new ProcessStartInfo
{
FileName = "powershell.exe",
Arguments = $"-Command \"{
command}\"",
RedirectStandardOutput = true,
RedirectStandardError = true,
UseShellExecute = false,
CreateNoWindow = true,
Verb = "runas" // 请求管理员权限
};
using (Process process = new Process())
{
process.StartInfo = psi;
process.Start();
string output = process.StandardOutput.ReadToEnd();
string error = process.StandardError.ReadToEnd();
process.WaitForExit();
if (process.ExitCode