VMware PowerCLIを使って ManagementネットワークかからIPアドレスの情報を抜き出して表示させる。
Managementネットワーク情報取得
IPアドレス取得
下記の画面に表示されるIPv4とIPv6に関する情報を取得する。
■IPv4
PS C:\tmp\a> Get-VMHostNetworkAdapter -VMKernel | select Name, DhcpEnabled,IP, SubnetMask | Format-List
■IPv6
PS C:\tmp\a> Get-VMHostNetworkAdapter -VMKernel | select Name, IPv6Enabled,IPv6,IPv6ThroughDhcp | Format-List
■gateway
PS C:\tmp\a> Get-VMHostNetwork |
select @{N = 'IPv4ゲートウェイ '; E = { if ($null -eq $_.VMKernelGateway) { '---'} else { $_.VMKernelGateway } } },
@{N = 'IPv6ゲートウェイ '; E = { if ($null -eq $_.VMKernelV6Gateway) { '---'} else { $_.VMKernelV6Gateway } } } | Format-List
DNS/ホスト名の取得
■DNS/ホスト名
$VMHost_Network=Get-VMHostNetwork
Write-Host "ホスト名`t`t`t:" $VMHost_Network.HostName
Write-Host "ドメイン名`t`t`t:" $VMHost_Network.DomainName
Write-Host "検索ドメイン名`t`t:" $VMHost_Network.SearchDomain
Write-Host "DNSサーバ`t`t`t:" $VMHost_Network.DnsAddress
表示のレイアウト修正
情報取得用スクリプト
selectで表示させると空行が多いので表示を Write-Hostで出力させるように修正する。
$VMHost_NetworkAdapter = Get-VMHostNetworkAdapter -VMKernel
$VMHost_Network = Get-VMHostNetwork
Write-Host ""
Write-Host "【管理IP】"
for ($i=0; $i -lt $VMHost_NetworkAdapter.Length; $i++) {
Write-Host "--------------------------------------------------------------"
Write-Host "DhcpEnabled`t`t`t`t`t:" $VMHost_NetworkAdapter[$i].DhcpEnabled
Write-Host "IP`t`t`t`t`t`t`t:" $VMHost_NetworkAdapter[$i].IP
Write-Host "SubnetMask`t`t`t`t`t:" $VMHost_NetworkAdapter[$i].SubnetMask
Write-Host "VMKernelGateway`t`t`t`t:" $VMHost_Network[$i].VMKernelGateway
Write-Host ""
Write-Host "IPv6Enabled`t`t`t`t`t:" $VMHost_NetworkAdapter[$i].IPv6Enabled
Write-Host "IPv6ThroughDhcp`t`t`t`t:" $VMHost_NetworkAdapter[$i].IPv6ThroughDhcp
Write-Host "IPv6`t`t`t`t`t`t:" $VMHost_NetworkAdapter[$i].IPv6
Write-Host "VMKernelV6Gateway`t`t`t:" $VMHost_Network[$i].VMKernelV6Gateway
}
Write-Host ""
Write-Host "【ホスト名 / DNS】"
Write-Host "ホスト名`t`t`t:" $VMHost_Network.HostName
Write-Host "ドメイン名`t`t`t:" $VMHost_Network.DomainName
Write-Host "検索ドメイン名`t`t:" $VMHost_Network.SearchDomain
Write-Host "DNSサーバ`t`t`t:" $VMHost_Network.DnsAddress
スクリプト実行結果
IPアドレス取得
■アドレス表示
$VMHost_NetworkAdapter = Get-VMHostNetworkAdapter -VMKernel | Sort DeviceName
$Network_interface_list = $esxcli.network.ip.interface.list.Invoke() | Sort Name
Write-Host ""
Write-Host "【IPv4】"
Write-Host "Name".PadRight(10) "AddressType".PadRight(12) "IPv4Address".PadRight(16) "IPv4Netmask".PadRight(16) "Gateway".PadRight(16) "DHCPDNS"
Write-Host "================================================================================================================="
for ($i=0; $i -lt $VMHost_NetworkAdapter.Length; $i++) {
#IP情報取得のための定義
$args_ipv4=$esxcli.network.ip.interface.ipv4.get.CreateArgs()
$args_ipv4.interfacename=$VMHost_NetworkAdapter[$i].DeviceName
$Network_ipv4=$esxcli.network.ip.interface.ipv4.get.Invoke($args_ipv4)
Write-Host $Network_ipv4.Name.PadRight(10) $Network_ipv4.AddressType.PadRight(12) $Network_ipv4.IPv4Address.PadRight(16) $Network_ipv4.IPv4Netmask.PadRight(16) $Network_ipv4.Gateway.PadRight(16) $Network_ipv4.DHCPDNS
}
Write-Host ""
Write-Host "【IPv6】"
Write-Host "Name".PadRight(10) "IPv6Enabled".PadRight(15) "DHCPv6Enabled".PadRight(15) "Type".PadRight(10) "IPv6_Address".PadRight(30) "Netmask".PadRight(8) "Gateway".PadRight(30) "RouterAdvEnabled".PadRight(25)
Write-Host "========================================================================================================================================================="
for ($i=0; $i -lt $VMHost_NetworkAdapter.Length; $i++) {
#IP情報取得のための定義
$args_ipv6=$esxcli.network.ip.interface.ipv4.get.CreateArgs()
$args_ipv6.interfacename=$VMHost_NetworkAdapter[$i].DeviceName
$Network_ipv6=$esxcli.network.ip.interface.ipv6.get.Invoke($args_ipv6)
$Network_ipv6_address=$esxcli.network.ip.interface.ipv6.address.list.Invoke($args_ipv6)
if([string]::IsNullOrEmpty($Network_ipv6_address.Interface)) {
Write-Host $Network_ipv6.Name.PadRight(10) $Network_ipv6.IPv6Enabled.PadRight(15) $Network_ipv6.DHCPv6Enabled.PadRight(15) "---".PadRight(10) ,
"---".PadRight(30) "---".PadRight(8) "---".PadRight(30) $Network_ipv6.RouterAdvEnabled.PadRight(25)
} else {
$ipv6_add = $Network_ipv6_address | %{$_.address}
Write-Host $Network_ipv6.Name.PadRight(10) $Network_ipv6.IPv6Enabled.PadRight(15) $Network_ipv6.DHCPv6Enabled.PadRight(15) $Network_ipv6_address.Type.PadRight(10) ,
$ipv6_add.PadRight(30) $Network_ipv6_address.Netmask.PadRight(8) $Network_ipv6.Gateway.PadRight(30) $Network_ipv6.RouterAdvEnabled.PadRight(25)
}
}