[Windows/PowerShell] PowerShell を使用して複数のリモートコンピューターでコマンドを実行し,その実行結果を得る方法は?
技術ノート
2016/11/02
[番号]
技術ノート KGTN 2016101902
[現象]
[Windows/PowerShell] PowerShell を使用して複数のリモートコンピューターでコマンドを実行し,その実行結果を得る方法は?
[説明]
以下に,各リモートコンピューターからコンピューター名とIPアドレス (文字列) を得るサンプルを示します.
$hostList = @("192.168.102.60","192.168.102.72","192.168.102.110")
Function hostInfo ($ipAddr)
{
$hostName = [Net.Dns]::GetHostName()
$hostAddr = [Net.Dns]::GetHostAddresses('') | Where-Object -FilterScript { ($_.AddressFamily
-Eq "InterNetwork") } | select -ExpandProperty IPAddressToString
return "hostName: {0,-16}, hostAddr: {1,-16}" -f $hostName,$hostAddr
}
$ii = 0
ForEach($target In $hostList)
{
$ret = Invoke-Command $target -ScriptBlock ${function:hostInfo} -ArgumentList $target
++$ii
"[{0}] {1}" -f $ii,$ret
}
