2009-11-09 45 views
1

我使用System.Management.Automation來構建一個充當防火牆的程序,本質上,我想知道是否在PowerShell 2中有一個特定的cmdlet來處理服務器的ipsec更改? (即,重複netsh ipsec功能)?在PowerShell 2中是否有一個cmdlet來處理ipsec更改?

或者我需要寫一個嗎? :P

我希望獲得比在PowerShell代碼中調用[diagnostics.process]處理netsh查詢更清晰的解決方案,並且認爲cmdlet會更好。

任何有任何提示或技巧?或者我應該只是開始通過「編寫的Windows PowerShell cmdlet的」文檔在挖:

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

感謝您的想法!

回答

2

不幸的是,目前還沒有任何本機PowerShell cmdlet提供與netsh類似的功能。

這就是說,你不必啓動一個新的進程在PowerShell函數中運行netsh命令。您可以像運行cmdlet一樣運行您通常在PS中以PS函數或腳本內聯運行的任何exe文件。您可以將輸出保存到變量中,並使用select-string或-match運算符處理文本。

只是作爲一個例子

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

最終我們將得到網絡的cmdlet,但現在的netsh可以完成這項工作。

相關問題