VMware PowerCLIを使ってファイアウォールルールとサービスのステータスを表示させる。
ファイアウォールルールの情報取得
下記の画面に表示されるファイアウォール ルールに関する情報を取得する。
表示コマンド
PS C:\tmp\a> Get-VMHostFirewallException | ft -AutoSize
実行結果
情報取得用スクリプト
単にコマンドで出力させると表示行数が多いため、必要に応じた設定値のみ抜き出して表示させるようにする
$VMHost_Firewall = Get-VMHostFirewallException
Write-Host ""
Write-Host "【ファイアウォールポリシー】"
Write-Host "Name".PadRight(20) "Enabled".PadRight(10) "IncomingPorts".PadRight(20) "OutgoingPorts".PadRight(20) "Protocols".PadRight(13) "ServiceRunning".PadRight(10)
Write-Host "================================================================================================================"
for ($i=0; $i -lt $VMHost_Firewall.Count; $i++) {
if ($VMHost_Firewall[$i].Name -match "SNMP Server|SSH Client|SSH Server|syslog|httpClient|NTP Client"){
if ($VMHost_Firewall[$i].Enabled) { $VMHost_Firewall_Enabled = "True" } else { $VMHost_Firewall_Enabled = "False" }
if ([string]::IsNullOrEmpty($VMHost_Firewall[$i].IncomingPorts)) { $VMHost_Firewall_IncomingPorts = "--" } else { $VMHost_Firewall_IncomingPorts = $VMHost_Firewall[$i].IncomingPorts }
if ([string]::IsNullOrEmpty($VMHost_Firewall[$i].OutgoingPorts)) { $VMHost_Firewall_OutgoingPorts = "--" } else { $VMHost_Firewall_OutgoingPorts = $VMHost_Firewall[$i].OutgoingPorts }
if ([string]::IsNullOrEmpty($VMHost_Firewall[$i].ServiceRunning)) { $VMHost_Firewall_ServiceRunning = "" } else { $VMHost_Firewall_ServiceRunning = "False" }
Write-Host $VMHost_Firewall[$i].Name.PadRight(20),
$VMHost_Firewall_Enabled.PadRight(10),
$VMHost_Firewall_IncomingPorts.PadRight(20),
$VMHost_Firewall_OutgoingPorts.PadRight(20),
$VMHost_Firewall[$i].Protocols.PadRight(13),
$VMHost_Firewall_ServiceRunning.PadRight(10)
}
}
実行結果
サービスの情報取得
下記の画面に表示されるサービスに関する情報を取得する。
表示コマンド
PS C:\tmp\a> Get-VMHostService | ft -AutoSize
実行結果
情報取得用スクリプト
単にコマンドで出力させると表示行数が多いため、必要に応じた設定値のみ抜き出して表示させるようにする
$VMHost_Service = Get-VMHostService
Write-Host ""
Write-Host "【サービス一覧】"
Write-Host "Key".PadRight(20) "Label".PadRight(40) "Policy".PadRight(10) "Running".PadRight(10) "Required".PadRight(10)
Write-Host "================================================================================================================"
for ($i=0; $i -lt $VMHost_Service.Count; $i++) {
if ($VMHost_Service[$i].Running) { $VMHost_Service_Running = "True" } else { $VMHost_Service_Running = "False" }
if ($VMHost_Service[$i].Required) { $VMHost_Service_Required = "True" } else { $VMHost_Service_Required = "False" }
Write-Host $VMHost_Service[$i].Key.PadRight(20),
$VMHost_Service[$i].Label.PadRight(40),
$VMHost_Service[$i].Policy.PadRight(10),
$VMHost_Service_Running.PadRight(10),
$VMHost_Service_Required.PadRight(10)
}
実行結果