実行HOSTのIPアドレスを取得するスクリプトで、取得した値をWrite-Debugで出力するスクリプトを作った。
ちなみに、仮想(VM)が入っているマシンなので、IPが3個存在する。
$DebugPreference="Continue"
$IPAddress = [system.net.dns]::GetHostAddresses((hostname)) | where
{$_.AddressFamily -eq "InterNetwork"} | select -ExpandProperty
IPAddressToString
#IPが複数あるので、TBLに格納する。
$ipTbl = $ip -split " "
# 元の取得値を表示
Write-debug $IPAddress
Write-debug "$IPAddress"
# IPを一個づつ表示
$MaxIpCnt = $ipTbl.length
for( $ii=0 ;$ii -lt $MaxIpCnt;$ii++)
{
Write-Debug $ipTbl[$ii]
}
実行結果で、Write-Debugの一個目は、エラーとなる。
Stringにせよと。
なので、「”」 で括ったら出力された。
Write-Debug : パラメーター 'Message' で必要とされる型 'System.String' に
'System.Object[]' を変換できません。指定されたメソッドはサポートされていません。
デバッグ: XXX.254.XXX.XXX 129.XXX.XXX.XXX 192.XXX.XXX.1
デバッグ: XXX.254.XXX.XXX
デバッグ: 129.XXX.XXX.XXX
デバッグ: 192.XXX.XXX.1
Write-Debugの罠というか、出力する変数が数値とスペースが混じっているので認識できなかったようだ。
本日の河上選手:お休み
9/14 ~ 三国のG3