문제

기본적으로 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를 사용하여 작업을 완료할 수 있습니다.

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