I wrote a script for a coworker who was at a customer site and needed to collect information from every blade in every UCS in the customer’s data center. The information to be collected was
Adapter Firmware Version
CIMC Firmware Version
Board Controller Firmware Version
Host Firmware Policy
When I started I was looping through the blades and for each blade making a series of cmdlet calls to retrieve the information related to each blade and the script ran very slow. In fact the information retrieval for the items above resulted in 5 Get-Ucs cmdlet calls per blade. If the UCS had 80 blades there would be 401 Get-Ucs cmdlet calls to retrieve all the information just for that one UCS. One call to get all the blades, plus 5 times the number of blades in the system of Get-Ucs cmdlet calls (4 Get-UcsFirmwareRunning calls and 1 Get-UcsServiceProfile). The script worked and it was good enough to get the job done perhaps if it was only going to be run once.
However it could be better, more efficient and take the number of Get-Ucs cmdlet calls from 1 + (5*#blades) per UCS domain to 3 per domain. That’s significantly better and the script will run much much faster. Think about the information that you need to retrieve and if there is a way to get more than just a single item per cmdlet call.
For the list above I know that I can get the blade dn and it’s AssignedToDn with a call to Get-UcsBlade, all the firmware information can be retrieved with a call to Get-UcsFirmwareRunning, finally the host firmware policy can be pulled from Get-UcsServiceProfile. Since I’m getting all the blades and looping through them, why can’t I also get ALL the firmware for all the blades and ALL the service profiles for all the blades and look through the retrieved objects. That is exactly what I did and resulted in the script below. I am filtering the results of two of my cmdlet calls, which is ok, but you could get all the firmware and all the service profiles, the script would still produce the same results, it just might run a slight bit slower.
Ucs-Blade-Info, get blade info from one ore more UCS Domains and output as CSV.DESCRIPTION
Ucs-Blade-Info, get blade info from one ore more UCS Domains and output as CSV.NOTES
John McDonough, Cisco Systems, Inc. (jomcdono).PARAMETER Ucs
With all VMware Products and most other vendor products converting to Appliance based, the fact that the UCS Manager Plug-in for VMware still requires an IIS server to function is crazy. When everyone's VMware infrastructure was Windows Based this was fin...
I use UCS Central regsitered with 4 UCS Manager. I was trying to Create Service Profile and associate it to one of the domain/chassis/slot via PowerTool (Powershell).What command should be used to associate a Domain/Blade Eg : Domain2/Chassis1/Slot-1...
Cisco UCS PowerTool Core suite is a set of PowerShell Core modules for Cisco UCS Manager, Cisco IMC and Cisco UCS Central, that helps in configuration and management of Cisco UCS domains and solutions.
Cisco UCS PowerTool Core modules are develope...
We are using Cisco SCOM MP version - 188.8.131.52 with discovery level 3.We would like to disable discovery for few blades on a chassis, bur unable to find the clear way.The Blade discovery is also pointing to Chassis but does not tells anything about the blad...
Hello Team, I am facing issues with the UCS Powershell tool. As soon as I type in the command Connect-Ucs -Name <UCSM IP> the tool hangs up. It doesn't ask me for credentials. I am attaching the screenshot below. Initially the issue was with UC...