Showing results for 
Search instead for 
Did you mean: 

Cisco UCS PowerTool Suite - PowerShell Modules for Cisco UCS Manager, Cisco IMC, UCS Central


We are pleased to announce the release of Cisco UCS PowerTool Suite version 2.4.1.


Cisco UCS PowerTool suite is a set of PowerShell modules for Cisco UCS Manager, Cisco IMC and Cisco UCS Central that helps in configuration and management of Cisco UCS domains and solutions.


Key Features in Release 2.4.1

  • Support for new features in Cisco IMC Release 3.1(3a)
  • Support for new features in Cisco UCSM Release 3.2(3)
  • Updated cmdletSet-ImcHuuFirmwareUpdaterwith new parameters.
  • Updated catalog rules for M5 Servers.


Key Features in Release 2.3.1

  • Support for new features in Cisco IMC Release 3.1(1d)
  • Support for new features in Cisco UCS Central Release 2.0(1b)
  • Support for new features in Cisco UCSM Release 3.2(1d)
  • Updated cmdletAdd-UcsCentralServiceProfileFromTemplateto create Service profile with service profile template
  • Added cmdletGet-UcsCentralPolicyUsageto provide support to fetch policy details for any managed object.


Key Features in Release 2.2.1

  • Support for new features in Cisco IMC Release 3.0(1c) and 3.0(2b)
  • Support to launch the UCS Manager HTML GUI automatic login
  • Support to specify the JSON file as input for uploading the hardware profile to HCL Tool
  • Support to collect advisories for the hardware profile in HCL Tool cmdlet
  • Security enhancement to HCL Tool cmdlets

Your scripts written using PowerTool 1.x will break due to module name changes.

The following table lists the module name changes in this release:


Previous Module Name


New Module Name








Installer download (from


Module download (from Powershell Gallery):

  • Cisco.UCSManager


  • Cisco.IMC


  • Cisco.UCSCentral


  • Cisco.UCS.DesiredStateConfiguration





Reference: Cisco UCS PowerTool Command Reference for Cisco UCS Manager



External customers - For any queries/feedback on PowerTool, contact Cisco TAC or or add a discussion to the Cisco Developed Integrations sub-space on Cisco UCS Communities

We are also on Slack - slack requires registration, but the cisco-ucs-powertool channel on powershell team is open invitation to anyone to register here. Once you join the powershell slack team you can join cisco-ucs-powertool channel here


Internal (Cisco) customers and employees - Contact us at for support questions and or for roadmap questions and feedback.


Jeffrey Foster
Cisco Employee

Hi Cheryl,

Upon second look, this functionality is available via the adminPower attribute. I missed it in my review of the In Schema yesterday - but you can initiate a reboot using either the XML API or PowerTool.

With PowerTool you can use the 'Set-ImcRackUnit' Cmdlet:

Set-ImcRackUnit -AdminPower bmc-reset-immediate



Cisco Employee


Here is an easy one that could get easily fixed in future version of UCSM PowerCli :

$Requested_VLAN = Add-UcsVlan -Name $newPG -Id $newVlanID -LanCloud $LanCloud

I am trying to hide out the output of this command but it does not work.

Could the result of this command not get printed on screen when storing result to a variable ? This would greatly clear out the screen output.



Hi Thomas,

I have tried above and result of command will not print on screen when you store result in a variable.

S C:\> $LanCloud = Get-UcsLanCloud
PS C:\> $newPG = "testVlan"
PS C:\> $newVlanID = "65"
PS C:\> $Requested_VLAN = Add-UcsVlan -Name $newPG -Id $newVlanID -LanCloud $LanCloud
PS C:\>
PS C:\> $Requested_VLAN

AssocPrimaryVlanState    : ok
AssocPrimaryVlanSwitchId : NONE
Cloud                    : ethlan
CompressionType          : included
ConfigIssues             :
DefaultNet               : no
EpDn                     :
Global                   : 0
Id                       : 65
IfRole                   : network
IfType                   : virtual
Local                    : 0
Locale                   : external
McastPolicyName          :
Name                     : testVlan
OperMcastPolicyName      :
OperState                : ok
OverlapStateForA         : ok
OverlapStateForB         : ok
PeerDn                   :
PolicyOwner              : local
PubNwDn                  :
PubNwId                  : 1
PubNwName                :
Sacl                     :
Sharing                  : none
SwitchId                 : dual
Transport                : ether
Type                     : lan
Dn                       : fabric/lan/net-testVlan
Rn                       : net-testVlan
Status                   : created
XtraProperty             : {}
Ucs                      : ****-******

Let me know if I am missing something or you have different question.

Thank you,


Community Member

Any chance you guys are going to do a better job getting your UCS Central CMDLETs to support pipelining?

Most people would expect this to work:

$blade | get-UcsCentralEquipmentLocatorLedOperation | set-UcsCentralEquipmentLocatorLedOperation -AdminState on -force

but I have to do something like this:

$bladeLocatorDn = "$($blade.dn)/locator-led/remote-oper"

get-UcsCentralEquipmentLocatorLedOperation -dn $bladeLocatorDn | set-UcsCentralEquipmentLocatorLedOperation -AdminState on -force



Hi Ben,

You are missing parent of EquipmentLocatorLedOperation . Try below and it should work for you.

PowerTool C:\> Get-UcsCentralBlade -SlotId 2| Get-UcsCentralLocatorLed | Get-UcsCentralEquipmentLocatorLedOperation | Set-UcsCentralEquipmentLocatorLedOperation -AdminState on -Force

AdminState       : on
LastModified     : 1970-01-01T05:30:00.000
RemoteErrorCode  : 0
RemoteErrorDescr :
TriggerStatus    : unknown
Dn               : compute/sys-1008/chassis-1/blade-2/locator-led/remote-oper
Rn               : remote-oper
Status           : modified
XtraProperty     : {}
UcsCentral       : XXXX

A good way to learn cmdlet meta hierarchy is to use below cmdlet.

PS C:\> Get-UcsCentralCmdletMeta -ClassId EquipmentLocatorLedOperation -Tree

EquipmentLocatorLed (UcsCentralLocatorLed) (Get, Set)

  |-EquipmentLocatorLedOperation (UcsCentralEquipmentLocatorLedOperation) (Get, Set

     |-FaultInst (UcsCentralFault) (Get)

Hope above helps.

Do let us know if you have any additional questions.

Thank you,

Ben Conrad


I tried this with another cmdlet

PowerTool C:\> $blade | Get-UcsCentralStorageLocalDisk

>>> Doesn't work, I will use CmdletMeta to find the proper class below...

PowerTool C:\>

PowerTool C:\>

PowerTool C:\> Get-UcsCentralCmdletMeta -class StorageLocalDisk -tree

StorageController (UcsCentralStorageController) (Get)

  |-StorageLocalDisk (UcsCentralStorageLocalDisk) (Get)

PowerTool C:\>

PowerTool C:\>

PowerTool C:\> $blade | Get-UcsCentralStorageController

>>> Doesn't work because this CMDLET does not support pipelining

PowerTool C:\>

PowerTool C:\> $blade.dn


PowerTool C:\> $storageControllerDn = $blade.dn+"/board/storage-SAS-1"

>>> I have to tack this on to match the storagecontroller DN

PowerTool C:\> Get-UcsCentralStorageController -dn $storageControllerDn

>>> This works.

So, I have learned to use Get-UcsCentralCmdletMeta and that is good.  But the pipelining support is not very good (my original complaint).  Is there a way to reduce the amount of work and trial and error?


Cisco Employee


It is

PowerTool C:\> get-ucscentralblade | Get-UcsCentralComputeBoard | Get-UcsCentralStorageController |



in the above DN, blade-1 corresponds to the ComputeBlade MO, board  corresponds to the ComputeBoard, storage-SAS-1 is for the StorageController. So the DN should convey the level of pipeline required.

Hope this helps.

BTW, did you try the convertto cmdlet in ucs central powertool? Agree that its not very straightforward but I suggest you trying it .Please refer the release notes for the steps to enable GUI logs. Once enabled, you can run the convertto cmdlet on the same machine which will convert the GUI actions into cmdlets.

Cisco UCS Central PowerTool, Release 0.9.x User Guide - Cisco

Ben Conrad

Thanks, I neglected to use CmdletMeta on UcsCentralStorageController.

When I map it out with CmdletMeta it's clear that I need to use class UcsCentralComputeBoard and class UcsCentralComputeBoard accepts UcsCentralBlade.


Ben Conrad

Another CmdletMeta question,

This works: Get-UcsCentralCmdletMeta -Tree -ClassId StorageLocalDisk

This does not: Get-UcsCentralCmdletMeta -Tree -ClassId ServerPower

So it's hard to figure out how to use pipelining to do something like this:

$blade | Get-UcsCentralServerPower

It seems not all CMDLETs honor Get-UcsCentralCmdletMeta but that is not what is happening....

So I dig around some more, I this should work but it does not:

Get-UcsCentralCmdletMeta -Tree -ClassId ServiceProfile

So I try Get-UcsCentralCmdletMeta -Tree -Noun UcsCentralServiceProfile and that works and I see the classID is 'LsServer'  I also happen to see that noun UcsCentralServerPower maps to LsPower classID.

Then I see that I can do something like this:

Get-UcsCentralServiceProfile -Dn $blade.AssignedToDn | Get-UcsCentralServerPower

So, is the rule of thumb to always use the Noun and not the ClassID?  After going through all this I think the answer is obviously yes and this thread is a good reference for Google search :-)


Hi Ben,
Get-UcsCentralCmdletMeta cmdlet works well with ClassId and Noun.
Below is not working for you because ServerPower is not ClassId. ClassId for this Managed Object is
Get-UcsCentralCmdletMeta -Tree -ClassId ServerPower
Please try below cmdlet to get list of all ClassId and Noun.
Get-UcsCentralCmdletMeta | more
Thank you,
Ben Conrad

Yup, so that's the trick to easily map the CMDLET to the ClassId:

PS E:\> Get-UcsCentralCmdletMeta | ? {$_.Noun -eq 'UcsCentralServerPower' }

ClassId                   : LsPower

Noun                      : UcsCentralServerPower

Verb                      : Get, Set

PipelineClassId           : {ComputeInstance, LsServer}

LimitScopePipelineClassId : {}

Provider                  : {}

DefaultProvider           :

MoMeta                    : Cisco.UcsCentral.UcsMoMeta



Cisco Employee


In Ucs Central, I'm trying to find all local service profiles (not UCS Central managed) that are in pending reboot - due to FW update, for example.

The UCSM equivalent is : Get-UcsServiceProfile -OperState pending-reboot

But this is slow, as we have to connect to every single UCS.

almost all of the UCS are connected (linked or managed) to UCS Central, so why not using UCS Central ?

Unfortunately, while using powershell commands, I wasn't able to retrieve this information.

I tried using the following :

$UcscCS = Get-UcsCentralComputeSystem | ? { $ -like "aer01-dcm01n-ucs02" }

$UcsBlades = Get-UcsCentralBlade | ? { $_.dn -like ($UCSCS.dn + "/*")}

But then I am unable get the command which would get me the needed information.

I tried getting it through the Firmware cmd but this led me nowhere as I would need to know which FW should the Service Profile have.

Using the GUI, and browsing inside

server > Local Service Profile > opening properties of a local service profile > I can see that it is possible to retrieve pending reboot state.

But get-ucscentralserviceprofile won't allow me to show local service profiles, only Managed SP (unless I missed a switch or statement somewhere)

Is there any way to retrieve pending-reboot state for a "linked" / local service profile ?


Cisco Employee

Hi Thomas,

In UcsCentral PowerTool, Global Service Profiles are accessed with Get-UcsCentralServiceProfile cmdlet and Local Service Profiles are accessed using “Get-UcsCentralComputeInstance” cmdlet.
For your case you can try cmdlet: “Get-UcsCentralComputeInstance -OperState pending-reboot”.

Please let us know if you have any more queries.

Vinay Ravish

Ben Conrad


Can you post the API reference for UCS Central?  It seems that using UCSC PowerTool is a trial and error operation as shown from the Get-UcsCentralComputeInstance example.


Cisco Employee

Hi Ben,

Unfortunately, we do not have one right now. We understand your problem. We will discuss and see how it can be addressed asap.


Recognize Your Peers
Content for Community-Ad