Есть ли в PowerShell 2 командлет для обработки изменений ipsec? - PullRequest
1 голос
/ 09 ноября 2009

Я использую System.Management.Automation для создания программы, которая по сути служит брандмауэром, и мне было интересно, есть ли в PowerShell 2 специальный командлет для обработки изменений ipsec для сервера? (т.е. дублирует функциональность netsh ipsec)?

Или я должен был бы написать один? : P

Я надеюсь на более чистое решение, чем вызов [Diagnics.process] в коде PowerShell для обработки запросов netsh, и решил, что командлет будет лучше.

У кого-нибудь есть советы или хитрости? Или я должен просто начать копаться в документации «Написание командлета Windows PowerShell» по адресу:

http://msdn.microsoft.com/en-us/library/dd878294%28VS.85%29.aspx

Спасибо за любые идеи!

1 Ответ

2 голосов
/ 10 ноября 2009

К сожалению, в настоящее время нет никаких собственных командлетов powershell, обеспечивающих функциональность, аналогичную netsh.

При этом вам не нужно запускать новый процесс для запуска команд netsh в функции PowerShell. Вы можете запустить любой исполняемый файл, который вы обычно запускаете в CMD, в функции PS или встроенном скрипте, как если бы вы использовали командлет. Вы можете сохранить вывод в переменную и обработать текст с помощью оператора select-string или оператора -match.

Просто в качестве примера

Function Get-NetShIPInterface {
netsh int ip show int
}
$interface = Get-NetshIPinterface
$interface | select-string "Local Area Connection"

Со временем мы получим сетевые командлеты, но пока netsh может выполнить свою работу.

...