PowerShell: A better Dell server hardware audit via iDrac API (Redfish)

Before you continue please consider clicking on one of the horrible ads. I know they are a pain but they help me pay for the hosting of this site. It owes me a lot of money. Sob story over.

Previously I created the following for retrieving a hardware inventory from an iDrac using the Redfish API.

PowerShell: Dell server hardware audit via iDrac API (Redfish)
Here is a simple hardware audit using the RedFish API that is part of Dell iDrac. This is a phase 1 of what will be a far more useful estate wide audit function that I am working on. The code return a small summary of the data it collects to

It appears there are some issues with this.

  • It only works with iDrac v9
  • Its over complicated...

So I took another swing at it and came up with the following:

function Get-iDracHardwareInventory
param ($Username,$password,$iDracBaseUrl) 

$sessionsUrl = "$iDracBaseUrl/redfish/v1/Systems/System.Embedded.1"
$secpasswd = ConvertTo-SecureString $password -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential($Username, $secpasswd)
$session = Invoke-WebRequest -Uri $sessionsUrl -Credential $credential -Method Get -UseBasicParsing 

$HardwareInv = $session.Content | ConvertFrom-Json

return $HardwareInv

This is doesn't use sessions like the last version and as a result only needs to access the API once making it a lot quicker you need to query a lot of servers. This will also work on older idrac versions (iDrac 7/8/9).