Introduction to IMC PowerTool - Cisco DevNet Learning Labs


The Cisco Integrated Management Controller (IMC) is a baseboard management controller that provides embedded server management for Cisco UCS Stand-Alone Rack Servers. The IMC enables system management in the data center and across distributed locations. It supports multiple management interfaces, including a web user interface (Web UI), a command-line interface (CLI) and an XML API that is consistent with the one used by Cisco UCS Manager. The IMC also supports industry-standard management protocols, including Redfish v1.01, Simple Network Management Protocol Version 3 (SNMPv3) and Intelligent Platform Management Interface Version 2.0 (IPMIv2.0).

The UCS IMC has supported an XML API since its introduction, the UCS IMC components both physical and logical are represented as XML objects in a hierarchical Object Model and can be manipulated via the XML API.

All UCS IMC objects are described in an XML schema, this schema defines the objects their attributes and associated values. Because a UCS IMC component must be part of the Object Model to be part of the UCS IMC all components of IMC are always available via the XML API.

IMC PowerTool is a library of PowerShell Cmdlets that enable the management of UCS IMC managed servers from Microsoft Operating Systems via the UCS XML API. The XML schema described above is also used to generate more than 98% of the IMC PowerTool Library.


This Introduction to IMC PowerTool Learning Lab will guide you through the use of IMC PowerTool to connect to a UCS stand-alone server's IMC, perform queries against IMC objects, change IMC settings and disconnect from the IMC. UCS IMC Objects are representations of BIOS settings, policies, disk configurations, other logical constructs and physical entities.

Completion time: 30 minutes


Prior to starting this learning lab it would be helpful to understand UCS IMC and the functionality that it provides to manage Cisco UCS Stand-Alone Rack Servers.

An understanding of PowerShell would also be helpful.

IMC PowerTool

IMC PowerTool is a library of Microsoft PowerShell Cmdlets (pronounced command-lets) that enable the retrieval and manipulation of IMC managed objects. IMC API interaction can be categorized into several distinct sections.

  • Sessions
  • Methods
  • Queries
  • Configurations

IMC PowerTool provides services and Cmdlets for all the categorizations of IMC API interactions, along with Cmdlets that allow for the inspection of object metadata, object hierarchical containment and object Cmdlet action capabilities with pipeline object definitions.

IMC PowerTool Cmdlets follow the same structure as Microsoft PowerShell Cmdlets (verb-noun) utilizing the defined Microsoft PowerShell Verbs. IMC PowerTool Cmdlet nouns are the UCS IMC objects. For example, to retrieve the rack unit object from UCS IMC, utilize the Get-ImcRackUnit Cmdlet. The Get-ImcRackUnit Cmdlet will retrieve the IMC computeRackUnit object from the connected IMC.

UCS PowerTool Download and Documentation

IMC PowerTool for UCS IMC is a component in the UCS PowerTool Suite. In addition to UCS IMC, there is also a module for UCS Manager and UCS Central. UCS Central PowerTool library provides Cmdlets to manage UCS Central, UCS Central is a manager of UCS Managers. UCS Manager PowerTool is a collection of Cmdlets to manage the UCS Manager environments comprised of Fabric-Attached UCS B, C and S Series servers.

To use IMC PowerTool in your environment be sure to download and get the documentation.

Event Infrastructure Utilization

UCS IMC Learning Labs must be completed against actual hardware. The DevNet Sandbox has added physical UCS Server hardware to the Sandbox, you can utilize a DevNet IMC Sandbox or your own hardware to complete this learning lab.

Exercise 1

Launch IMC PowerTool, connect to an IMC and disconnect from the IMC.

  1. Launch IMC PowerTool by double clicking the IMC PowerTool icon on the Desktop.

    IMC PowerTool Icon:

  2. An IMC PowerTool for UCS Manager Console will open. Due to a change in IMC supported SSL/TLS capabilities that is not yet relected in the latest release of IMC PowerTool, enter the command below to enable a secure connection to the IMC.

    [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Ssl3 -bor [System.Net.SecurityProtocolType]::Tls -bor [System.Net.SecurityProtocolType]::Tls11 -bor [System.Net.SecurityProtocolType]::Tls12
  3. Connect to to the IMC and use the credentials for your IMC in the login dialog

    Connect-Imc -Name <imc-ip-address>

    User: <username>

    Password: <password>

    Connect-Imc credentials dialog:

  4. View the results of a successful login.

    Connect-Imc output:

    There are several items shown in the console, these items are all attributes of the "login object" or "UCS PowerTool PS Session"

  5. Get the UCS PS Session, at the prompt type


    The description and command does not have a typo, some of the PowerTool Cmdlets are shared across all the PowerTool modules, while most, 99%, of the Imc Cmdlets will have the Imc prefix on the "noun", the shared Cmdlets will have a Ucs prefix.

    The output is the same as from the Connect-Imc Cmdlet. There are several interesting components to a UCS PS Session, the Cookie is the authentication token for the current session. The NoSsl indicates is the session is secure or not, this could also be determined by the Uri value.

    Get-UcsPSSession output:

  6. Disconnect from the Imc, at the prompt type


    Disconnect-Imc output:

    The logout object is returned.

    This is the end of exercise 1.

Exercise 2

Get Help on and find any IMC PowerTool Cmdlet. IMC PowerTool has over 600 Cmdlets and functions, that's a lot of Cmdlets to know. In fact the entire UCS PowerTool Suite has over 6,000 Cmdlets. Fortunately the PowerShell Get-Help Cmdlet works with IMC PowerTool.

  1. Count the number of IMC PowerTool Cmdlets, at the prompt type

    Get-Command -Module Cisco.IMC | Measure-Object

    Get-Command output:

  2. Get help with the Cmdlet Set-ImcNtpServer, at the prompt type

    Get-Help Set-ImcNtpServer

    Get-Help Set-ImcNtpServer output:

  3. Find the Cmdlets to manage Local Storage, at the prompt type

    Get-Command -Module Cisco.IMC | Select-String Local

    Get-Command | Local output:

    Hmmm, so a few more Cmdlets than just Storage, let's narrow it down by searching for StorageLocal, at the prompt type

    Get-Command | StorageLocal output:

    Get-Command -Module Cisco.IMC | Select-String StorageLocal

    That's more like it, with this technique you should be able to find most IMC Cmdlets.

    This is the end of exercise 2.