Here’s a little script I created that was useful to check the amount of physical RAM installed on a Hyper-V server running core.  It reports the amount of physical RAM in the host as well as the amount of RAM which is actually visible and addressable to the server.  It also reports the RAM which is currently assigned the Hyper-V host OS..

[cc lang="powershell"]Add-Type -AssemblyName PresentationFramework
$Server = "ADVYOHV01"
$PRAM = (Get-WMIObject -class Win32_PhysicalMemory -ComputerName $Server | Measure-Object -Property capacity -Sum | % {[Math]::Round(($_.sum / 1GB),2)})
$IRAM = Get-WmiObject -Class Win32_ComputerSystem -ComputerName $Server
$IRAM = [Math]::Round(($IRAM.TotalPhysicalMemory/ 1GB))
$CheckHost = Get-Ciminstance Win32_OperatingSystem
$PCTFREE = [math]::Round(($CheckHost.FreePhysicalMemory/$CheckHost.TotalVisibleMemorySize)*100,0)
$GBFREE = [math]::Round($CheckHost.FreePhysicalMemory/1mb,2)
$TOTALGB = [int] ($CheckHost.TotalVisibleMemorySize/1mb)
[System.Windows.MessageBox]::Show("Hardware:
n$PRAMGB Physical Memory ($IRAMGB addressable)
n
nCurrent OS Usage:
n$GBFREEGB free out of $TOTALGBGB total ($PCTFREE% used)","Memory details for server "$Server"")[/cc]