我正在编写一个脚本来查询远程服务器的配置信息,并将输出的数据返回到gridview。我遇到的问题是返回数据的格式。
如果我......
((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个工作。我想将工作分散到这样的所有目标服务器上。
答案 0 :(得分: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或更高版本。