Combining multiple WMI query into a PowerShell object

Hello,

If you red some of my previous article on WMI, you probably said yourself “That’s nice, I can make a great report with it, but I need to output all of those informations on a single line for each computer.”, that’s totally possible. You need to create a custom PowerShell object, and store all of the needed properties in it. Continue reading

Get sizing informations on a remote computer with PowerShell

Hello,

Today, we want to retrieve the number of logical processors, the amount of ram and the number of ram physical slot used. To achieve our goal, we’ll use WMI :

First, we use the “Win32_ComputerSystem” :

Get-WmiObject Win32_ComputerSystem -ComputerName SQL

Gwmi-CS

If you pipe that in a “Get-Member“, you’ll find more properties, such as those :

Gwmi-CS-Selected

If you want the total amount of ram in a readable form, you’ll use a dictionary :

Gwmi-CS-SelectedConverted

Then, the “Win32_PhysicalMemory” :

Get-WmiObject Win32_physicalmemory -ComputerName SQL

If you pay attention, you’ll notice that this query returned several objects. Indeed, you have one object by used slot, so, you just need to count them to know how many slot are used:

Gwmi-Memory

You can have some informations about each used slots such as :

Gwmi-MemorySelected

Get CPU informations on a remote computer with PowerShell

Hello,

To get CPU informations, you need to use the “Win32_processor” WMI class like that :

Gwmi-CPU

If you want more informations, you can use :

Get-WmiObject -Class Win32_processor -ComputerName SQL | select *

This will force the WMI query to retrieve a lot more informations about the remote machine’s CPU.

You also select a few useful properties, with multiple computers :

 Get-WmiObject -Class Win32_processor -ComputerName SQL,WSUS,SOFSR2Node1,SOFSR2Node2 | select SystemName,Name,CurrentClockSpeed | Format-Table -AutoSize

Gwmi-CPU-Selected

Get bios informations on a remote computer with PowerShell

Hello,

You can get some BIOS informations with that WMI call:

Get-WmiObject -Class Win32_Bios -ComputerName SOFSR2Node2

Gwmi-Bios

You can pipe that to “Get-Member” or use MSDN to get all available properties.

Hereunder an example with some useful properties :

Get-WmiObject -Class Win32_Bios -ComputerName SOFSR2Node2,2k12r2 | Select-Object Manufacturer,Version,SerialNumber,PSComputerName,Description

Gwmi-CS-Selected