Каковы мои варианты добавления и удаления политик IPSec на Windows Server с помощью C #?

StackOverflow https://stackoverflow.com/questions/703225

  •  22-08-2019
  •  | 
  •  

Вопрос

Я хочу иметь возможность добавлять или удалять политики безопасности IP на Windows Server 2003 программно с помощью C #.

Обычно вы управляете этими политиками вручную с помощью оснастки gpedit.msc (в разделе Настройки Windows -> Локальные политики -> Политики безопасности IP на локальном компьютере).Но мне нужно иметь возможность добавлять политики IP-фильтрации с помощью кода.

Есть какие-нибудь идеи о том, как это сделать?

Это было полезно?

Решение

Я занимаюсь этой проблемой около двух недель, и, к сожалению, у вас есть два варианта, в зависимости от необходимой вам глубины контроля:

1) Прямое манипулирование с WMI.Вопреки интуиции, это на самом деле предоставляет МЕНЬШЕ контроля, чем вариант № 2 (что я и делаю сам).Все это выполняется с помощью класса Win32_NetworkAdapterConfiguration.Вот ссылка на вопрос, который я задал по этому поводу, с моим ответом на него некоторое время спустя после его изучения:

Методы программного изменения правил ipsec с помощью C #?

Это предоставляет меньшую функциональность, потому что вы можете управлять только тремя вещами через IPSec для адаптеров:Порты TCP, UDP-порты, IP-протоколы.(Вы не можете иметь дело с несколькими политиками, разными масками подсети и т.д.)

2) Оборачивание netsh ipsec для выполнения всей вашей грязной работы.Это правильный путь, поскольку в powershell (который может быть вызван через класс PowerShell в System.Management.Automation) в настоящее время отсутствует командлет для внесения изменений в IPSec.

Есть ли в PowerShell 2 командлет для обработки изменений ipsec?

Перенос netsh ipsec через конвейер powershell, вызываемый через System.Management.Автоматизация.В итоге я сделал PowerShell.

Используйте либо System.Диагностика.Процесс для создания командной строки и управления ею, либо используйте класс PowerShell, как упоминалось выше.Любой из них должен выполнить свою работу.

ПРИМЕЧАНИЕ Если вы в какой-то момент переключитесь на 2008, обратите внимание, что netsh ipsec устарел, и обязательно используйте вместо него netsh advfirewall.

Удачи!

Другие советы

Вы могли бы использовать System.Диагностика.Обработайте и запустите "cmd.exe" с командой ipsec в качестве аргументов.

Еще один ресурс, который вы можете попробовать, это Веб-сайт Корпорации Майкрософт или Google.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top