PowerShell 2中是否有cmdlet来处理ipsec更改?

时间:2009-11-09 19:28:00

标签: c# powershell ipsec

我正在使用System.Management.Automation构建一个充当防火墙的程序,本质上,我想知道PowerShell 2中是否有特定的cmdlet来处理服务器的ipsec更改? (即重复netsh ipsec功能)?

或者我必须写一个吗? :P

我希望有一个更清晰的解决方案,而不是在PowerShell代码中调用[diagnostics.process]来处理netsh查询,并且认为cmdlet会更好。

任何人都有任何提示或技巧?或者,我应该开始深入研究“编写Windows PowerShell cmdlet”文档:

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

感谢您的任何想法!

1 个答案:

答案 0 :(得分:2)

不幸的是,目前还没有任何本机PowerShell cmdlet提供与netsh类似的功能。

话虽如此,您不必启动新进程来在PowerShell函数中运行netsh命令。您可以像在cmdlet中一样,在PS函数或脚本内联中运行通常在CMD中运行的任何exe。您可以将输出保存到变量,并使用select-string或-match运算符处理文本。

就像一个例子

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

最终我们将获得网络cmdlet,但就目前而言,netsh可以完成工作。