cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Guest
Lansweeper Employee
Lansweeper Employee
Hi,

Has anyone had any luck running reports on desktop memory (type/size/available slots etc).
My company are doing some upgrades on some machines and i need to identify which machine require a memory upgrade.

I've had a look around but unable to find any examples in the forums so i would really appreciate if anyone has an example query.

Regards

Paul

=======================================================================

Oops, just noticed the Memory: 'Upgrade possible' report.
1 ACCEPTED SOLUTION
Hemoco
Lansweeper Alumni
Sample report:
Select Distinct Top 1000000 tsysOS.Image As Icon,
tblAssets.AssetID,
tblAssets.AssetName,
tblAssets.Domain,
tblAssets.IPAddress,
tblAssets.Memory,
TsysMemorytypes.MemoryName As Type,
Cast(CorrectMemory.Used As numeric) As [Slots used],
tblPhysicalMemoryArray.MemoryDevices - CorrectMemory.Used As [Slots free],
tblPhysicalMemoryArray.MemoryDevices As [Slots available],
tblAssets.Firstseen,
tblAssets.Lastseen
From tblAssets
Inner Join tblPhysicalMemoryArray On tblAssets.AssetID =
tblPhysicalMemoryArray.AssetID
Inner Join (Select tblAssets.AssetID,
Sum(Ceiling(tblPhysicalMemory.Capacity / 1024 / 1024)) As Memory,
Count(tblPhysicalMemory.Win32_PhysicalMemoryid) As Used
From tblAssets
Left Outer Join (TsysMemorytypes
Right Outer Join tblPhysicalMemory On TsysMemorytypes.Memorytype =
tblPhysicalMemory.MemoryType) On tblAssets.AssetID =
tblPhysicalMemory.AssetID
Group By tblAssets.AssetID,
tblPhysicalMemory.MemoryType
Having tblPhysicalMemory.MemoryType <> 11) CorrectMemory
On CorrectMemory.AssetID = tblAssets.AssetID
Inner Join tsysOS On tblAssets.OScode = tsysOS.OScode
Inner Join tblAssetCustom On tblAssets.AssetID = tblAssetCustom.AssetID
Inner Join tblPhysicalMemory On tblAssets.AssetID = tblPhysicalMemory.AssetID
Inner Join TsysMemorytypes On TsysMemorytypes.Memorytype =
tblPhysicalMemory.MemoryType
Where tblPhysicalMemoryArray.[Use] = 3 And tblAssetCustom.State = 1
Order By tblAssets.Domain,
tblAssets.AssetName

View solution in original post

9 REPLIES 9
SEC_ALERTS
Engaged Sweeper
Thanks so much for your reply!!!

SEC_ALERTS
Engaged Sweeper
Hi Team,

After importing this report ,some machines RAM Type shows "other" and "unknown".
how to resolve this?

Regards,
Sec_Alerts.
Hemoco
Lansweeper Alumni
SEC_ALERTS wrote:
After importing this report ,some machines RAM Type shows "other" and "unknown".
how to resolve this?

Lansweeper pulls this information from the Win32_PhysicalMemory WMI class: http://msdn.microsoft.com/en-us/library/windows/desktop/aa394347%28v=vs.85%29.aspx
If WMI indicates that the machine's memory type is unknown, there is nothing we can do about this unfortunately.
SEC_ALERTS
Engaged Sweeper
Thanks a lot for your reply!!!
SEC_ALERTS
Engaged Sweeper
Hi Team,

In addition to this information ,we need memory frequency information.

Thanks in Advance!!!

Hemoco
Lansweeper Alumni
SEC_ALERTS wrote:
In addition to this information ,we need memory frequency information.

Please try:
Select Distinct Top 1000000 tsysOS.Image As Icon,
tblAssets.AssetID,
tblAssets.AssetName,
tblAssets.Domain,
tblAssets.IPAddress,
tblAssets.Memory,
TsysMemorytypes.MemoryName As Type,
tblPhysicalMemory.Speed,
Cast(CorrectMemory.Used As numeric) As [Slots used],
tblPhysicalMemoryArray.MemoryDevices - CorrectMemory.Used As [Slots free],
tblPhysicalMemoryArray.MemoryDevices As [Slots available],
tblAssets.Firstseen,
tblAssets.Lastseen
From tblAssets
Inner Join tblPhysicalMemoryArray On tblAssets.AssetID =
tblPhysicalMemoryArray.AssetID
Inner Join (Select tblAssets.AssetID,
Sum(Ceiling(tblPhysicalMemory.Capacity / 1024 / 1024)) As Memory,
Count(tblPhysicalMemory.Win32_PhysicalMemoryid) As Used
From tblAssets
Left Outer Join (TsysMemorytypes
Right Outer Join tblPhysicalMemory On TsysMemorytypes.Memorytype =
tblPhysicalMemory.MemoryType) On tblAssets.AssetID =
tblPhysicalMemory.AssetID
Group By tblAssets.AssetID,
tblPhysicalMemory.MemoryType
Having tblPhysicalMemory.MemoryType <> 11) CorrectMemory
On CorrectMemory.AssetID = tblAssets.AssetID
Inner Join tsysOS On tblAssets.OScode = tsysOS.OScode
Inner Join tblAssetCustom On tblAssets.AssetID = tblAssetCustom.AssetID
Inner Join tblPhysicalMemory On tblAssets.AssetID = tblPhysicalMemory.AssetID
Inner Join TsysMemorytypes On TsysMemorytypes.Memorytype =
tblPhysicalMemory.MemoryType
Where tblPhysicalMemoryArray.[Use] = 3 And tblAssetCustom.State = 1
Order By tblAssets.Domain,
tblAssets.AssetName
Guest
Lansweeper Employee
Lansweeper Employee
Thank you for responding with your example, managed to tinker with the built in report in the end (didnt notice it until i already posted).

Thanks again for the support and the prompt reply.
RCorbeil
Honored Sweeper II
Awesome! I had been considering how to do this as an "out of curiosity" thing in case I ever needed it. Thanks!
Hemoco
Lansweeper Alumni
Sample report:
Select Distinct Top 1000000 tsysOS.Image As Icon,
tblAssets.AssetID,
tblAssets.AssetName,
tblAssets.Domain,
tblAssets.IPAddress,
tblAssets.Memory,
TsysMemorytypes.MemoryName As Type,
Cast(CorrectMemory.Used As numeric) As [Slots used],
tblPhysicalMemoryArray.MemoryDevices - CorrectMemory.Used As [Slots free],
tblPhysicalMemoryArray.MemoryDevices As [Slots available],
tblAssets.Firstseen,
tblAssets.Lastseen
From tblAssets
Inner Join tblPhysicalMemoryArray On tblAssets.AssetID =
tblPhysicalMemoryArray.AssetID
Inner Join (Select tblAssets.AssetID,
Sum(Ceiling(tblPhysicalMemory.Capacity / 1024 / 1024)) As Memory,
Count(tblPhysicalMemory.Win32_PhysicalMemoryid) As Used
From tblAssets
Left Outer Join (TsysMemorytypes
Right Outer Join tblPhysicalMemory On TsysMemorytypes.Memorytype =
tblPhysicalMemory.MemoryType) On tblAssets.AssetID =
tblPhysicalMemory.AssetID
Group By tblAssets.AssetID,
tblPhysicalMemory.MemoryType
Having tblPhysicalMemory.MemoryType <> 11) CorrectMemory
On CorrectMemory.AssetID = tblAssets.AssetID
Inner Join tsysOS On tblAssets.OScode = tsysOS.OScode
Inner Join tblAssetCustom On tblAssets.AssetID = tblAssetCustom.AssetID
Inner Join tblPhysicalMemory On tblAssets.AssetID = tblPhysicalMemory.AssetID
Inner Join TsysMemorytypes On TsysMemorytypes.Memorytype =
tblPhysicalMemory.MemoryType
Where tblPhysicalMemoryArray.[Use] = 3 And tblAssetCustom.State = 1
Order By tblAssets.Domain,
tblAssets.AssetName