C#을 사용하여 Windows Server에서 IPSEC 정책을 추가하고 제거하는 옵션은 무엇입니까?

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

  •  22-08-2019
  •  | 
  •  

문제

C#과 함께 프로그래밍 방식으로 Windows Server 2003에서 IP 보안 정책을 추가하거나 제거 할 수 있기를 원합니다.

일반적으로 GPEDIT.MSC SNAP -In (Windows 설정 -> 로컬 정책 -> 로컬 컴퓨터의 IP 보안 정책)을 통해 이러한 정책을 해체 할 수 있습니다. 그러나 코드를 통해 IP 필터 정책을 추가 할 수 있어야합니다.

이 작업을 수행하는 방법에 대한 아이디어가 있습니까?

도움이 되었습니까?

해결책

이 문제를 약 2 주 동안 다루어 왔으며 불행히도 필요한 제어 깊이에 따라 두 가지 옵션이 있습니다.

1) WMI로 직접 조작. 직관적으로, 이것은 실제로 옵션 #2 (내가하고있는 일)보다 제어가 덜 노출됩니다. 이것은 모두 Win32_NetworkAdapterConfiguration 클래스를 통해 이루어집니다. 다음은 내가 이것에 대해 질문 한 질문에 대한 링크입니다.

C#으로 IPSEC 규칙을 프로그래밍 방식으로 변경하는 방법?

TCP 포트, UDP 포트, IP 프로토콜의 어댑터의 IPSEC를 통해 3 가지만 제어 할 수 있기 때문에 기능이 적습니다. (여러 정책, 다른 서브넷 마스크 등을 다룰 수 없습니다.)

2) Netsh IPsec을 포장하여 모든 더러운 작업을 수행하십시오. PowerShell (System.Management.Automation의 PowerShell 클래스를 통해 호출 될 수있는 PowerShell)에는 현재 IPSEC 변경을 수행하기위한 CMDLET가 부족함에 따라 이것이가는 길입니다.

PowerShell 2에는 IPSEC 변경 사항을 처리하기 위해 CMDLET가 있습니까?

System.Management.Automation.Powershell을 통해 PowerShell 파이프 라인을 통해 Netsh IPsec을 감싸는 것은 결국 내가하는 일입니다.

System.diagnostics.process를 사용하여 쉘을 생성하고 제어하거나 위에서 언급 한 PowerShell 클래스를 사용하십시오. 일을 끝내야합니다.

노트어느 시점에서 2008 년으로 전환하면 Netsh IPsec이 더 이상 사용되지 않으며 대신 Netsh AdvFiRewall을 사용해야합니다.

행운을 빕니다!

다른 팁

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

당신이 시도 할 수있는 또 다른 리소스는입니다 Microsoft의 웹 사이트 또는 Google.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top