我希望能够使用 C# 以编程方式在 Windows Server 2003 上添加或删除 IP 安全策略。
通常,您会通过 gpedit.msc 管理单元(在 Windows 设置 -> 本地策略 -> 本地计算机上的 IP 安全策略下)手动操作这些策略。但我需要能够通过代码添加 IP 过滤策略。
关于如何做到这一点的任何想法?
最佳答案
我已经处理这个问题大约两个星期了,不幸的是,您有两种选择,具体取决于您需要的控制深度:
1) 使用 WMI 直接操作。与直觉相反,这实际上比选项 #2(这是我自己正在做的)暴露更少的控制。这一切都是通过 Win32_NetworkAdapterConfiguration 类完成的。这是我问过的问题的链接,我在研究了一段时间后对此做出了回应:
Methods of programatically altering ipsec rules with C#?
这暴露的功能较少,因为您只能通过适配器的 IPsec 控制三件事:TCP 端口、UDP 端口、IP 协议(protocol)。 (您无法处理多个策略、不同的子网掩码等)
2) 包装 netsh ipsec 来做你所有的脏活。这是要走的路,因为 powershell(可以通过 System.Management.Automation 中的 PowerShell 类调用)目前缺少用于执行 IPSec 更改的 cmdlet。
Is there a cmdlet in PowerShell 2 to handle ipsec changes?
通过 System.Management.Automation.PowerShell 调用的 powershell 管道包装 netsh ipsec 是我最终做的。
使用 System.Diagnostics.Process 来生成和控制 shell,或者使用上面提到的 PowerShell 类。要么应该完成工作。
注意
如果您在某个时候切换到 2008,请注意 netsh ipsec 已弃用,并确保改用 netsh advfirewall。
祝你好运!
关于c# - 使用 C# 在 Windows Server 上添加和删除 IPSec 策略的选项有哪些?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/703225/