Get-PnpDevice

Returns information about PnP devices.

Syntax

Get-PnpDevice
   [[-InstanceId] <String[]>]
   [-Class <String[]>]
   [-PresentOnly]
   [-Status <String[]>]
   [-CimSession <CimSession[]>]
   [-ThrottleLimit <Int32>]
   [-AsJob]
   [<CommonParameters>]
Get-PnpDevice
   [-FriendlyName <String[]>]
   [-Class <String[]>]
   [-PresentOnly]
   [-Status <String[]>]
   [-CimSession <CimSession[]>]
   [-ThrottleLimit <Int32>]
   [-AsJob]
   [<CommonParameters>]
Get-PnpDevice
   [-Class <String[]>]
   [-PresentOnly]
   [-Status <String[]>]
   [-CimSession <CimSession[]>]
   [-ThrottleLimit <Int32>]
   [-AsJob]
   [<CommonParameters>]
Get-PnpDevice
   [-Class <String[]>]
   [-PresentOnly]
   [-CimSession <CimSession[]>]
   [-ThrottleLimit <Int32>]
   [-AsJob]
   [<CommonParameters>]
Get-PnpDevice
   [-Status <String[]>]
   [-CimSession <CimSession[]>]
   [-ThrottleLimit <Int32>]
   [-AsJob]
   [<CommonParameters>]

Description

The Get-PnpDevice cmdlet returns basic information about Plug and Play (PnP) devices. The values returned are common to all devices.

Examples

Example 1: Get all PnP devices

PS C:\>Get-PnpDevice
Status     Class           FriendlyName                                                                     InstanceId
------     -----           ------------                                                                     ----------
OK         System          High precision event timer                                                       ACPI\PNP0103...
OK         AudioEndpoint   Remote Audio                                                                     SWD\MMDEVAPI...
OK         System          System board                                                                     ACPI\PNP0C01\1
OK         System          System board                                                                     ACPI\PNP0C01\A
OK         System          Motherboard resources                                                            ACPI\PNP0C02\4
Unknown    MEDIA           Microsoft Streaming Service Proxy                                                SW\{96E080C7...
OK         System          UMBus Enumerator                                                                 UMB\UMB\1&84...
OK         Printer         \\prn-corp3\stug-2633-clr                                                        SWD\PRINTENU...
OK         PrintQueue      stug-2633-clr on prn-tsqa.contoso.com (redirected 1)             SWD\PRINTENU...

This command gets all devices known to PnP, whether they are present or not.

Example 2: Get PnP devices by name

PS C:\>Get-PnpDevice -FriendlyName 'Generic USB Hub'
Status     Class           FriendlyName                                                                     InstanceId
------     -----           ------------                                                                     ----------
OK         USB             Generic USB Hub                                                                  USB\VID_0557...
OK         USB             Generic USB Hub                                                                  USB\VID_0409...
OK         USB             Generic USB Hub                                                                  USB\VID_8087...
OK         USB             Generic USB Hub                                                                  USB\VID_8087...
OK         USB             Generic USB Hub                                                                  USB\VID_0424...
OK         USB             Generic USB Hub                                                                  USB\VID_0424...

This command gets all the devices named Generic USB Hub.

Example 3: Get PnP devices by ID

PS C:\>Get-PnpDevice -InstanceId 'USB\VID_8087&PID_0024\5&3541780&0&1'
Status     Class           FriendlyName                                                                     InstanceId
------     -----           ------------                                                                     ----------
OK         USB             Generic USB Hub                                                                  USB\VID_8087...

This command gets the device that has the specified instance ID.

Example 4: Get present PnP devices in specified states

PS C:\>Get-PnpDevice -PresentOnly -Status ERROR,DEGRADED,UNKNOWN
Status     Class           FriendlyName                                                                     InstanceId
------     -----           ------------                                                                     ----------
Error                      PCI Serial Port                                                                  PCI\VEN_8086...
Error      Mouse           Microsoft PS/2 Mouse                                                             ACPI\PNP0F03...
Error                      PCI Simple Communications Controller                                             PCI\VEN_8086...
Error                      SAS Controller                                                                   PCI\VEN_8086...
Error      Keyboard        Standard PS/2 Keyboard                                                           ACPI\PNP0303...

This command gets all present devices that report a status of error, degraded, or unknown.

Example 5: Get PnP devices of a class

PS C:\>Get-PnpDevice -Class 'Mouse'
Status     Class           FriendlyName                                                                     InstanceId
------     -----           ------------                                                                     ----------
OK         Mouse           HID-compliant mouse                                                              HID\VID_0557...
Error      Mouse           Microsoft PS/2 Mouse                                                             ACPI\PNP0F03...
OK         Mouse           Remote Desktop Mouse Device                                                      TERMINPUT_BU...
OK         Mouse           HID-compliant mouse                                                              HID\VID_045E...

This command gets all the devices that belong to the specified PnP class.

Parameters

-AsJob

Runs the cmdlet as a background job. Use this parameter to run commands that take a long time to complete.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CimSession

Runs the cmdlet in a remote session or on a remote computer. Enter a computer name or a session object, such as the output of a New-CimSession or Get-CimSession cmdlet. The default is the current session on the local computer.

Type:CimSession[]
Aliases:Session
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Class

Specifies an array of PnP classes for devices. Some example values for this parameter are Monitor, DiskDrive, and Processor.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FriendlyName

Specifies an array of friendly names for devices.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-InstanceId

Specifies an array of unique instance ID of devices.

Type:String[]
Aliases:DeviceId
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-PresentOnly

Indicates that this cmdlet gets only those devices that are present when you issue the command. Present devices are physically in the system or attached to it.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Status

Specifies an array of current status values of devices. The acceptable values for this parameter are:

  • OK
  • ERROR
  • UNKNOWN
  • DEGRADED
Type:String[]
Accepted values:OK, ERROR, DEGRADED, UNKNOWN
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ThrottleLimit

Specifies the maximum number of concurrent operations that can be established to run the cmdlet. If this parameter is omitted or a value of 0 is entered, then Windows PowerShell® calculates an optimum throttle limit for the cmdlet based on the number of CIM cmdlets that are running on the computer. The throttle limit applies only to the current cmdlet, not to the session or to the computer.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Outputs

CimInstance[]

The Microsoft.Management.Infrastructure.CimInstance object is a wrapper class that displays Windows Management Instrumentation (WMI) objects. The path after the pound sign (#) provides the namespace and class name for the underlying WMI object.