1

リモートサーバーに構成情報を照会し、出力用のデータをグリッドビューに返すスクリプトに取り組んでいます。私が抱えている問題は、データが返される形式です。

私が行った場合...

((Get-CimInstance -ClassName Win32_Processor).NumberOfLogicalProcessors | Measure-Object).Count
((Get-CimInstance -ClassName Win32_PhysicalMemory).Capacity | Measure-Object -Sum).Sum /1GB

ps1 で Invoke-Command を使用してリモート サーバーで実行すると、このような数値のみの配列が返されます。

2
4

複数のマシンからこの情報をコンテキストとともに効率的に収集するにはどうすればよいですか? リモート ジョブを試しましたが、一度に 2 つ以上のジョブを実行できません。このようにすべての対象サーバーに作業を分散させたいと考えています。

4

1 に答える 1

2

これらの値には、実際にはコンピューター名があります。

30# $r = Invoke-Command ...
31# $r[0]
4
32# $r[0].PSComputerName
hillr2

PowerShell は、数値の既定ではその情報を表示しません。あなたはこれを行うことができます:

32# icm hillr2 -ScriptBlock {
>>> $NumLogCpu = (Get-CimInstance Win32_Processor).NumberOfLogicalProcessors
>>> $MemSize = ((Get-CimInstance Win32_PhysicalMemory).Capacity | Measure-Object -Sum).Sum /1GB
>>> [pscustomobject]@{NumLogCpu=$NumLogCpu;MemSize=$MemSize}
>>> }


NumLogCpu      : 4
MemSize        : 8.00390625
PSComputerName : hillr2
RunspaceId     : fb03fedd-2771-46cf-916a-f31ec7c8298b

[pscustomobject] 型アクセラレータには PowerShell v3 以降が必要です。

于 2014-05-14T20:47:34.627 に答える