4

我希望能够使用 C# 以编程方式在 Windows Server 2003 上添加或删除 IP 安全策略。

通常,您会通过 gpedit.msc 管理单元手动操作这些策略(在 Windows 设置 -> 本地策略 -> 本地计算机上的 IP 安全策略下)。但我需要能够通过代码添加 IP 过滤策略。

关于如何做到这一点的任何想法?

4

2 回答 2

3

我已经处理这个问题大约两周了,不幸的是,您有两种选择,具体取决于您需要的控制深度:

1) 使用 WMI 直接操作。与直觉相反,这实际上暴露了比选项#2 更少的控制(这是我自己正在做的)。这都是通过 Win32_NetworkAdapterConfiguration 类完成的。这是我提出的问题的链接,稍后我在研究后回复:

使用 C# 以编程方式更改 ipsec 规则的方法?

这暴露的功能较少,因为您只能通过 IPsec 为适配器控制三件事:TCP 端口、UDP 端口、IP 协议。(您不能处理多个策略、不同的子网掩码等)

2) 包装 netsh ipsec 来完成你所有的脏活。这是要走的路,因为 powershell(可以通过 System.Management.Automation 中的 PowerShell 类调用)目前缺少 cmdlet 来进行 IPSec 更改。

PowerShell 2 中是否有用于处理 ipsec 更改的 cmdlet?

通过 System.Management.Automation.PowerShell 调用的 powershell 管道包装 netsh ipsec 是我最终要做的。

使用 System.Diagnostics.Process 生成和控制 shell,或使用上面提到的 PowerShell 类。要么应该完成工作。

注意 如果您在某个时候切换到 2008,请注意不推荐使用 netsh ipsec,并确保改用 netsh advfirewall。

祝你好运!

于 2009-11-12T19:41:15.770 回答
-2

您可以使用 System.Diagnostics.Process 并使用 ipsec 命令作为参数运行“cmd.exe”。

您可以尝试的另一个资源是Microsoft 的网站Google

于 2009-03-31T22:20:20.133 回答