ファイアウォール設定を確認する
● ファイアウォールの設定
ファイアウォールの詳細設定をcmdletで確認できれば、設定資料としても残せると
思いつき、調べてみた。
Get-NetFireWallRule が該当しそうだ。実行してみると、「それっぽい」結果が表示。
一覧表示が見やすいので、Format-Table というcmdlet で見やすくする。
エイリアスは「ft」(別名表記)できるので
Get-NetFireWallRule | ft
情報おおいね ~
表示可能なプロパティを確認するため、Get-Member cmdLet を利用。
出力する情報は、「名前、プロトコル、ポート番号」に絞って…
と思いきや、プロパティを確認するが、「プロトコル、ポート番号」が見つからない。
ん〜
プロパティの中にオブジェクト ぽい 変数があるので
これを、参照できればと思っていたら、そのものずばりなcmdlet を発見。
Get-NetFireWallPortFilter
確認しやすくするために、
行数をへらしてパイプラインで結果を渡せばどうなるか?
Get-NetFireWallRule -DisplayName “*Edge*” | Get-NetFireWallPortFilter
結果は…
プロトコルとポート番号はそれっぽいが、「何の定義か不明… 」orz
もー1度、ドキュメントを確認 ……
1行だけではどうにもならない?
バッチファイルのようにpsファイルが作成できるので、こんなコードを作成してみる。
$Wrt = "DisplayName, Protocol, LocalPort `r`n"
forEach ($Fir in Get-Netfirewallrule -Enabled True ) {
$Wrt = $Wrt + $Fir.displayName
$prt = $Fir | Get-NetFirewallPortFilter
$Wrt = $Wrt + ", " + $prt.Protocol + ", " + $prt.LocalPort + "`r`n"
}
$Wrt | Out-File c:\FireWallConf.csv -Encoding default
これで、csvファイルに出力させて完成。 (^^)/
多分、もう少し簡単な方法もあるかもしれないな〜
おまけ
後でファイアウォール詳細設定の画面をみてみたら、右脇にに
「エクスポート」機能を発見 (*゚▽゚*)/
あるじゃん … 列も編集できるしある程度の絞り込みもできる。
今回利用したcmdlet
Get-NetFireWallRule
Get-NetFireWallPortFilter
Format-Table
Out-File
教訓
画面はよく見ましょう!
でも、Power Shell の利用環境や勘所が少しわかったような気がする。