Powershell

使用 PowerShell 導出包含程序路徑的防火牆規則

  • November 10, 2017

我正在尋找一種使用 PowerShell 導出現有 Windows 防火牆規則的方法**,其中包括被引用**的程序的路徑(對於那些引用程序路徑而不是埠範圍的規則)。

Get-NetFirewallRule包含很多資訊,但似乎缺少程序。最好以人類可讀的格式,我也可以自動化。作為 PowerShell 對象的輸出是最好的,但表格形式的東西就足夠了。

我試過的:

  • Get-NetFirewallRule,管道到 Get-Member,管道到 Format-List *
  • 採用 Get-NetFirewallRule 並使用具有高深度的 Export-CliXml 對其進行序列化 - 程序路徑不在 XML 文件中。
  • 簡短(簡短!)在netsh周圍戳
  • 我可以手動從 WF.msc 導出以獲取製表符分隔列表,但我想要一些可以自動化的東西。
  • 我確實找到了這個,但它不是人類可讀的,看起來像一個全/全無的導入導出,而不是我可以用來提取新規則的東西

這是在軟體公司管理數十個用於持續集成的建構 VM 的背景下,但也可以應用於我們其他工作站的系統管理。

到目前為止,我還沒有找到一種解決方案,可以讓我在一個系統上採用規則(特定規則)並創建一個 PowerShell 腳本(或 GPO 或其他)以將相同的規則添加到其他機器。我所缺少的只是程序路徑。一旦有了它,我就可以輕鬆處理規則創建方面。

所以 Get-NetFirewallRule 實際上會返回特殊對象。某些對象的屬性只能通過關聯的 Get-NetFirewall* 命令訪問。

有關應用程序資訊,請將對象通過管道傳輸到 Get-NetFirewallApplicationFilter

https://technet.microsoft.com/en-us/library/jj554860%28v=wps.630%29.aspx

PS C:\Users\Neil> get-netfirewallrule '{1A26910B-1B3B-4091-81E2-E3C7CBF02F45}' | get-netfirewallapplicationfilter


Program : C:\Program Files\MyProgram\thisProgram.exe
Package :

引用自:https://serverfault.com/questions/732113