我希望能够使用 C# 以编程方式在 Windows Server 2003 上添加或删除 IP 安全策略。
通常,您会通过 gpedit.msc 管理单元手动操作这些策略(在 Windows 设置 -> 本地策略 -> 本地计算机上的 IP 安全策略下)。但我需要能够通过代码添加 IP 过滤策略。
关于如何做到这一点的任何想法?
我已经处理这个问题大约两周了,不幸的是,您有两种选择,具体取决于您需要的控制深度:
1) 使用 WMI 直接操作。与直觉相反,这实际上暴露了比选项#2 更少的控制(这是我自己正在做的)。这都是通过 Win32_NetworkAdapterConfiguration 类完成的。这是我提出的问题的链接,稍后我在研究后回复:
这暴露的功能较少,因为您只能通过 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。
祝你好运!
您可以使用 System.Diagnostics.Process 并使用 ipsec 命令作为参数运行“cmd.exe”。
您可以尝试的另一个资源是Microsoft 的网站或Google。