IPsec 변경을 처리하기 위한 cmdlet이 PowerShell 2에 있나요?
-
19-09-2019 - |
문제
기본적으로 System.Management.Automation을 사용하여 방화벽 역할을 하는 프로그램을 구축하고 있는데, PowerShell 2에 서버의 IPsec 변경 사항을 처리하는 특정 cmdlet이 있는지 궁금합니다.(즉, netsh ipsec 기능과 중복됩니다)?
아니면 하나 써야 할까요?:피
netsh 쿼리를 처리하기 위해 PowerShell 코드 내에서 [diagnostics.process]를 호출하는 것보다 더 깔끔한 솔루션을 원하며 cmdlet이 더 나을 것이라고 생각했습니다.
누구든지 팁이나 요령이 있나요?아니면 다음 위치에서 'Windows PowerShell cmdlet 작성' 설명서를 살펴보기 시작해야 할까요?
http://msdn.microsoft.com/en-us/library/dd878294%28VS.85%29.aspx
어떤 아이디어라도 감사드립니다!
해결책
불행하게도 현재 netsh와 유사한 기능을 제공하는 기본 powershell cmdlet은 없습니다.
즉, PowerShell 함수에서 netsh 명령을 실행하기 위해 새 프로세스를 시작할 필요가 없습니다.CMD에서 일반적으로 실행하는 모든 exe를 cmdlet과 마찬가지로 PS 함수 또는 스크립트 인라인으로 실행할 수 있습니다.출력을 변수에 저장하고 select-string 또는 -match 연산자를 사용하여 텍스트를 처리할 수 있습니다.
예를 들면
Function Get-NetShIPInterface {
netsh int ip show int
}
$interface = Get-NetshIPinterface
$interface | select-string "Local Area Connection"
결국에는 네트워킹 cmdlet을 얻게 되지만 지금은 netsh를 사용하여 작업을 완료할 수 있습니다.