我正在使用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

感谢您的任何想法!

有帮助吗?

解决方案

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

话虽这么说,您不必为在PowerShell功能中运行NetSh命令的新过程。您可以像cmdlet一样运行通常在PS函数或脚本内联CMD中运行的任何EXE。您可以将输出保存到变量,并使用Select -string或-Match Operator处理文本。

就像一个例子

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