備忘録/にわかエンジニアが好きなように書く

個人的にとりあえず仕組みを知るためにとりあえず動くまで構築や動作をみただけの単なる操作ログです。個人用の備忘録となり、最新の導入手順は個別に確認してください。 ※変な内容や間違いを書いているなどありましたらコメントやご指摘いただけると幸いです。

VMware PowerCLIを使った設定値確認②

 

VMware PowerCLIを使って ManagementネットワークかからIPアドレスの情報を抜き出して表示させる。

www.n-novice.com

 

Managementネットワーク情報取得

 IPアドレス取得

下記の画面に表示されるIPv4とIPv6に関する情報を取得する。

f:id:pocket01:20191211110022p:plain

f:id:pocket01:20191211110041p:plain

■IPv4

PS C:\tmp\a> Get-VMHostNetworkAdapter -VMKernel | select Name, DhcpEnabled,IP, SubnetMask | Format-List

f:id:pocket01:20191211200800p:plain

■IPv6

PS C:\tmp\a> Get-VMHostNetworkAdapter -VMKernel | select Name, IPv6Enabled,IPv6,IPv6ThroughDhcp | Format-List

f:id:pocket01:20191211200708p:plain

■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

f:id:pocket01:20191211200646p:plain

DNS/ホスト名の取得

f:id:pocket01:20191211201537p:plain

f:id:pocket01:20191211110545p:plain

■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

f:id:pocket01:20191211202351p:plain

表示のレイアウト修正

情報取得用スクリプト

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

スクリプト実行結果

f:id:pocket01:20191214142533p:plain

 

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)
}
}

f:id:pocket01:20191215030359p:plain

 

VMware徹底入門  第4版 VMware vSphere 6.0対応

VMware徹底入門 第4版 VMware vSphere 6.0対応