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