我希望能够使用C#以编程方式在Windows Server2003上添加或删除IP安全策略。
通常,您可以通过gpedit.msc管理单元(在Windows设置->本地策略->本地计算机上的IP安全策略下)手动操作这些策略。但我需要能够通过代码添加IP过滤器策略。
你有什么建议吗?
发布于 2009-11-13 03:41:16
我已经处理这个问题大约两周了,不幸的是,您有两个选择,这取决于您需要的控制深度:
1)使用WMI直接操作。与直觉相反,这实际上暴露了比选项#2更少的控制(这就是我自己正在做的)。这都是通过Win32_NetworkAdapterConfiguration类完成的。下面是我提出的这个问题的链接,在研究了一段时间后,我对此做出了回应:
Methods of programatically altering ipsec rules with C#?
这暴露了较少的功能,因为您只能通过适配器的IPsec控制三件事: TCP端口、UDP端口和IP协议。(您无法处理多个策略、不同的子网掩码等)
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。
祝好运!
发布于 2009-03-31 22:20:20
您可以使用System.Diagnostics.Process并以ipsec命令作为参数运行"cmd.exe“。
您可以尝试的另一个资源是Microsoft's website或Google。
https://stackoverflow.com/questions/703225
复制相似问题