2009-11-09 2 views
1

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

Или мне нужно написать один? : P

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

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

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

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

ответ

2

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

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

Подобно тому, как, например

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

В конце концов мы получим сетевые командлеты, но сейчас, Netsh может получить работу.

Смежные вопросы