PowerShell Cmdlets for PowerEdge Servers

PowerShell Cmdlets for PowerEdge Servers

The integrated Dell Remote Access Controller (iDRAC) with Lifecycle Controller PowerShell library enables remote management of Dell PowerEdge servers with Microsoft PowerShell cmdlets.

The cmdlets utilize the remote management functionality provided by iDRAC with Lifecycle controller to perform a range of deployment, configuration, monitoring, and management tasks.

Features and Benefits

  • Utilize the comprehensive remote management capabilities of the iDRAC with Lifecycle controller inside the PowerShell environment.
  • Reduce dependence on installed tools such as RACADM and command line utilities such as winrm.
  • Simplify management operations by replacing large, multi-step WS-MAN tasks with a single cmdlet.
  • Perform iDRAC Discovery across the network with a single command.
  • Configure Active Directory integration for iDRAC7 and iDRAC8.
  • Perform deployment and configuration tasks with Server Configuration Profile (SCP) cmdlets; the SCP is a single XML-based file that can be used to configure PowerEdge server hardware.
  • Gather various inventory and health information including LC log info, firmware versions, boot order, hardware configuration information, and iDRAC configuration information.


  • Management workstation with Microsoft PowerShell version 3 or later
  • 12th or 13th Generation PowerEdge servers
  • iDRAC7 (12th Generation PE Servers) or iDRAC8 (13th Generation PE Servers). The iDRAC must be configured for network access and must be accessible to the management workstation

What's new with version 0.51

  1. Set-PEPowerState now supports the following power operations
    • PowerOn
    • PowerCycleOffSoft
    • PowerOffSoft
    • MasterBusReset
    • DiagonisticInterruptNMI
    • PowerOffSoftGraceful
  2. Wait option: all cmdlets that support the –Wait option have been enhanced to both wait for the completion of the operation and to return a Job object
  3. Import-PEServerConfiguration: corrected issue with -Passthru
  4. Following cmdlets updated to fix issues with returning the Job object
    • Backup_PEServerImage
    • Export-PEServerConfiguration
    • Import-PEServerConfiguration
    • Export-PETechSupportReport
  5. Following cmdlets updated to properly handle multi-iDRAC operations
    • Get-PEBootOrder
    • Update-PEOSAppHealthdata
    • Get-PEConfigurationShare
    • Get-PELCLog


cmdlet to update iDRAC FW using network share
Notice: This module is provided "as-is" with no warranty or support provided.
Installation Steps
  1. Download the zip file.
  2. Extract the zip file contents to a directory within the standard PSModulePath. For example, C:\Users\<User>\Documents\WindowsPowerShell\Modules
  3. Verify that the module is available by executing the following command in a PowerShell window: ‘Get-Module –ListAvailable’.
  4. To get a list of all the cmdlets in DellPEPowerShellTools, execute:
‘Get-Command –Module DellPEPowerShellTools’

General Behavior Guidelines

Authentication to a PowerEdge Server

Most cmdlets require authentication to the iDRAC. This is accomplished with a session object. The cmdlet "New-PEDRACSession" can be used to create and manage sessions to a remote server:
  • This creates a session and sets the $iDRACSession:
$iDRACSession = New-PEDRACSession -IPAddress -Credential (Get-Credential)
  • This creates a session and adds it as a default parameter value for all other cmdlets:
New-PEDRACSession -IPAddress -Credential (Get-Credential) –SetDefaultParameterValue
  • This creates a set of sessions, any cmdlet using this will run on multiple IPs:
‘IP1’, ‘IP2’, ‘IP3’ | New-PEDRACSession -Credential (Get-Credential) –SetDefaultParameterValue

Job Management

Some server-side tasks include the creation of a job within the iDRAC with Lifecycle Controller. For cmdlets that involve jobs, two switches are provided; unless a switch is specified, the cmdlet will not show any status or output
  • wait: if –wait is specified, the cmdlet will display a progress bar, wait for the job to complete and return a Job object
  • passthru: if -passthru is specified, the cmdlet will output the return Job object but will not wait for the job to complete. The job object must be captured into a variable in order to view the JOBID.

Error Handling

Every cmdlet will ‘Throw’ on an error, which is catchable using ‘Catch’ in script

File Shares

Certain server-side tasks require the use of a file share to pass payloads such as Server Configuration Profiles. For such cmdlets, the –ShareObject parameter accepts a share object which the user may create by using the Get-PEConfigurationShare.

The Get-PEConfigurationShare cmdlet also has the option to validate whether or not the share is accessible to the iDRAC. If a cmdlet is running on multiple iDRACs, the FileName/ImageName parameter is modified for each invocation to include IPAddress to make it unique. Appropriate warnings will be shown.

Executing Cmdlets on Multiple Servers

  • For cmdlets which return HashMaps (Get-PEADGroupInfo, Get-PEiDRACUsers), if run on multiple iDRACs, the output will be a HashMap of HashMaps, having IPAddress as key.
  • For cmdlets which return CimInstances (Get-PEBootOrder, etc), if run on multiple iDRACs, each instance contains the iDRAC IP as identifier.

List of Available Cmdlets


Table 1: Available Cmdlets

Article ID: SLN311158

Last Date Modified: 08/17/2018 02:46 AM

Rate this article

Easy to understand
Was this article helpful?
Yes No
Send us feedback
Comments cannot contain these special characters: <>()\
Sorry, our feedback system is currently down. Please try again later.

Thank you for your feedback.