Eerder las je op ITFAQ.nl al hoe je in Windows je moederbord type & model achterhaalt, onder andere met PowerShell. In dit bericht laat ik je in het kort zien hoe je wat gegevens kunt verkrijgen over het RAM geheugen van jouw computersysteem. De hoeveelheid RAM, of het percentage geheugen dat in gebruik is kun je makkelijk opvragen met PowerShell.
Om maar direct met de deur in huis te vallen: PowerShell kent een groot aantal “cmdlets” (wat is een PowerShell cmdlet?) die jou informatie geven over hoeveel geheugen jouw computer heeft, in hoeveel DIMMs, of welk percentage ervan in gebruik is. Heel handig, maar soms zie je ook door de bomen het bos niet meer. Daarom wat kleine, praktische voorbeelden.
% Percentage geheugen dat in gebruik is opvragen uit WMI / Win32_OperatingSystem met PowerShell
Je kunt de WMI class “Win32_OperatingSystem” gebruiken om heel veel informatie op te vragen over jouw systeem. Twee van die eigenschappen zijn “TotalVisibleMemorySize
” en “FreePhysicalMemory
“. Als je weet hoeveel geheugen er in totaal is en hoeveel er nog vrij is, kun je berekenen hoeveel procent in gebruik is:
$ComputerMemory = Get-CimInstance -Class Win32_OperatingSystem -ErrorAction Stop
$Memory = ((($ComputerMemory.TotalVisibleMemorySize - $ComputerMemory.FreePhysicalMemory)*100)/ $ComputerMemory.TotalVisibleMemorySize)
$RoundMemory = [math]::Round($Memory, 2)
$Object = New-Object PSCustomObject
$Object | Add-Member -MemberType NoteProperty -Name "Memory %" -Value $RoundMemory
$Object | Write-Output
De uitvoer hiervan is het percentage RAM geheugen dat jouw systeem in gebruik heeft:
Memory %
--------
61.96

Maar, dit is 62% van hoeveel GB RAM?
Totale hoeveelheid RAM geheugen opvragen
Om erachter te komen over hoeveel RAM jouw systeem beschikt moet je een andere WMI class in PowerShell aanspreken: Win32_PhysicalMemory.
The Win32_PhysicalMemory WMI class represents a physical memory device located on a computer system and available to the operating system.
Dit kan je onder andere voorzien van informatie over hoeveel geheugenbanken bezet zijn, kloksnelheid van het geïnstalleerde geheugen, voltage en de capaciteit van het geheugenbankje. Hé, dat willen we weten: de capaciteit van geïnstalleerde geheugenbanken opgeteld. Je vraagt de capaciteit op en telt de grootte bij elkaar op. In een paar stappen:
Get-CimInstance Win32_PhysicalMemory | Select-Object -Property capacity
capacity
--------
8589934592
8589934592
Get-CimInstance Win32_PhysicalMemory | Measure-Object -Property capacity -Sum
Count : 2
Average :
Sum : 17179869184
Maximum :
Minimum :
StandardDeviation :
Property : capacity
(Get-CimInstance Win32_PhysicalMemory | Measure-Object -Property capacity -Sum).Sum / 1gb
16

Hieruit kun je opmaken dat mijn laptop beschikt over 16 GB RAM, want .Sum / 1gb
rekent 17179869184 bytes om naar gigabytes. Handig!
Wil je bijvoorbeeld weten welk geheugenbankje gemaakt is door welk bedrijf, vervang dan enkele eigenschappen in Win32_PhysicalMemory:
Get-CimInstance Win32_PhysicalMemory | Select-Object -Property BankLabel,Manufacturer
BankLabel Manufacturer
--------- ------------
BANK 0 Samsung
BANK 2 Samsung

Maar Win32_PhysicalMemoryArray dan?
Zoals gezegd, er zijn meer WMI classes die je in PowerShell kunt aanspreken en jou van informatie kunnen voorzien. Zo ook Win32_PhysicalMemoryArray.
The Win32_PhysicalMemoryArray WMI class represents details about the computer system physical memory. This includes the number of memory devices, memory capacity available, and memory type—for example, system or video memory.
Ook deze kan in één keer aangeven hoeveel geheugenbankjes bezet zijn en wat de maximale grootte is:
Get-CimInstance Win32_PhysicalMemoryArray
Name MemoryDevices MaxCapacity Model
---- ------------- ----------- -----
Physical Memory… 2 16777216

Het leuke aan deze WMI class is dat die kan laten zien of een geheugenbankje stuk aan het gaan is met de MemoryErrorCorrection
eigenschap:
Type of error correction used by the memory array.
This value comes from the Memory Error Correction member of the Physical Memory Array structure in the SMBIOS information.
Error code | Error waarde |
---|---|
0 | Reserved |
1 | Other |
2 | Unknown |
3 | None |
4 | Parity |
5 | Single-bit ECC |
6 | Multi-bit ECC |
7 | CRC |
Het geheugen in mijn laptop is (gelukkig) nog goed:
Get-CimInstance Win32_PhysicalMemoryArray | Select-Object -Property MemoryErrorCorrection
MemoryErrorCorrection
---------------------
3
Conclusie
In dit artikel heb ik je een paar manieren laten zien waarmee jij informatie kan opvragen over het RAM geheugen van jouw computersysteem, server of laptop. Met Powershell vraag je eenvoudig op hoeveel GB geheugen er geïnstalleerd is, hoeveel ervan in gebruik is en hoeveel geheugensloten bezet (of nog vrij) zijn.
Super handig, toch?