2009-03-31 2 views
4

C#을 사용하여 프로그래밍 방식으로 Windows Server 2003에서 IP 보안 정책을 추가하거나 제거 할 수 있기를 원합니다.C#으로 Windows Server에서 IPSec 정책을 추가하고 제거하는 옵션에는 어떤 것이 있습니까?

일반적으로 이러한 정책은 gpedit.msc 스냅인 (Windows 설정 -> 로컬 정책 -> 로컬 컴퓨터의 IP 보안 정책)에서 직접 조작 할 수 있습니다. 하지만 코드를 통해 IP 필터 정책을 추가 할 수 있어야합니다.

방법에 대한 아이디어가 있으십니까?

답변

3

나는 약 2 주 동안이 문제를 다루고 있었고, 불행하게도, 당신은 당신이 필요로하는 컨트롤의 깊이에 따라 두 가지 옵션이 있습니다

1) WMI와 직접 조작. 반 직관적으로, 이것은 실제로 옵션 # 2보다 적은 제어를 노출합니다 (이것은 내가하고있는 것입니다). 이것은 모두 Win32_NetworkAdapterConfiguration 클래스를 통해 수행됩니다. 여기에 내가 이것에 대해 묻는 질문에 대한 링크가 내 응답,의 잠시 나중에 연구 후 : 당신이 어댑터에 대해 IPsec을 통해 세 가지를 만 제어 할 수 있기 때문에

Methods of programatically altering ipsec rules with C#?

이 적은 기능을 노출 : TCP 포트 , UDP 포트, IP 프로토콜. (다중 정책, 다른 서브넷 마스크 등을 다룰 수는 없습니다.)

2) 모든 더러운 작업을 수행하기 위해 netsh ipsec을 래핑합니다. PowerShell (System.Management.Automation의 PowerShell 클래스를 통해 호출 할 수 있음)에는 현재 IPSec 변경을 수행하는 cmdlet이 부족하므로이 방법을 사용할 수 있습니다. System.Management.Automation.PowerShell 통해 호출 PowerShell은 파이프 라인을 통해

Is there a cmdlet in PowerShell 2 to handle ipsec changes?

포장 netsh를 IPSec은 내가하고 결국 것입니다.

System.Diagnostics.Process를 사용하여 셸을 생성하고 제어하거나 위에 언급 한 PowerShell 클래스를 사용하십시오. 어느 쪽이든 일을 끝내야합니다.

참고 당신이 어떤 점에서 2008로 전환하면 netsh를 IPSec을 사용되지 않습니다주의, 대신은 netsh advfirewall을 사용해야합니다.

행운을 빈다.

-2

System.Diagnostics.Process를 사용하고 ipsec 명령을 인수로 사용하여 "cmd.exe"를 실행할 수 있습니다.

시도 할 수있는 다른 리소스는 Microsoft's website 또는 Google입니다.

+0

저는 이미 인터넷 검색을하고 StackOverflow.com을 검색했습니다. 링크 된 MS 페이지를 읽는다면 IPSecpol.exe (올바른 도구를 사용하는 것으로 보입니다) * Windows Server 2003 *에 포함되어 있지 않습니다. – ZeroBugBounce

관련 문제