Get CimInstance - PowerShell


Get-CimInstance allows you to retrieve Common Information Model (CIM) instances from the local or remote systems. CIM is a standardized representation of hardware and software components, providing a common way to manage different types of systems.


Get-CimInstance [-ClassName] <string> [-NamespaceName] <string> [-CimSession] <CimSession[]> [-Property] <string[]> [-Filter] <string> [-ErrorAction] <ActionPreference> [-WarningAction] <ActionPreference> [-Verbose] [-Debug]


  • -ClassName: Specifies the name of the CIM class to retrieve instances from.
  • -NamespaceName: Specifies the namespace of the CIM class.
  • -CimSession: Specifies an existing CIM session to use.
  • -Property: Lists the specific properties to return. By default, all properties are returned.
  • -Filter: Filters the results based on a WMI query.
  • -ErrorAction: Determines how to handle errors that occur during the operation.
  • -WarningAction: Determines how to handle warnings that occur during the operation.
  • -Verbose: Provides detailed output about the command’s operation.
  • -Debug: Outputs debugging information about the command’s operation.


Example 1: Get all instances of Win32_OperatingSystem

Get-CimInstance -ClassName Win32_OperatingSystem

Example 2: Get specific properties from instances

Get-CimInstance -ClassName Win32_OperatingSystem -Property Name, Caption

Common Issues

  • Access Denied: If running the command remotely, ensure you have sufficient permissions to access the remote WMI repository.
  • Invalid ClassName: Ensure the specified CIM class name exists and is valid.


Get-CimInstance can be integrated with other commands to perform advanced tasks, such as:

  • Exporting to CSV: Export CIM instances to a CSV file for analysis or archival.
  • Filtering and Sorting: Combine Get-CimInstance with Where-Object or Sort-Object to refine the results.
  • Remote Management: Use Get-CimInstance with Invoke-CimMethod or Invoke-CimCommand to manage remote systems.
  • New-CimInstance: Creates a new CIM instance.
  • Remove-CimInstance: Deletes a CIM instance.
  • Set-CimInstance: Modifies an existing CIM instance.