【问题标题】:What are my options for adding and removing IPSec policies on Windows Server with C#?使用 C# 在 Windows Server 上添加和删除 IPSec 策略有哪些选项?
【发布时间】:2010-10-16 17:40:55
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# .net windows ipsec


    【解决方案1】:

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

    您可以尝试的另一个资源是Microsoft's websiteGoogle

    【讨论】:

    • 我已经用谷歌搜索了它,并搜索了 StackOverflow.com,如果你阅读链接到的 MS 页面,你会看到 IPSecpol.exe(这似乎是正确的工具)不包含在 Windows Server 2003 中
    【解决方案2】:

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

    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。

    祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-26
      • 2022-01-19
      • 2014-08-05
      • 1970-01-01
      • 1970-01-01
      • 2014-09-25
      • 2012-01-26
      • 1970-01-01
      相关资源
      最近更新 更多