Get-PnpDeviceProperty
Gets detailed properties for a PnP device.
Syntax
Get-PnpDeviceProperty
-InstanceId <String[]>
[[-KeyName] <String[]>]
[-CimSession <CimSession[]>]
[-ThrottleLimit <Int32>]
[-AsJob]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Get-PnpDeviceProperty
-InputObject <CimInstance[]>
[[-KeyName] <String[]>]
[-CimSession <CimSession[]>]
[-ThrottleLimit <Int32>]
[-AsJob]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
The Get-PnpDeviceProperty cmdlet gets detailed properties for a Plug and Play (PnP) device. You can specify a device by instance ID or by using the Get-PnpDevice cmdlet.
A device property is a key-value pair. A property key takes the form {GUID} PID. The property value is one of several types, such as UTF-8, GUID, Uint32, or Boolean. The output object contains the typed data of a value, and the value type. Many properties also have friendly names, in the form of DEVPKEY_XXX.
Examples
Example 1: Get properties for a device by using an ID
PS C:\>Get-PnpDeviceProperty -InstanceId 'SWD\PRINTENUM\{E82E5EFD-6616-4E4F-9A96-7D94554A8BF0}'
InstanceId KeyName Type Data
---------- ------- ---- ----
SWD\PRI... DEVPKEY_Device_DeviceDesc String Local Print Queue
SWD\PRI... DEVPKEY_Device_HardwareIds StringList {PRINTENUM\LocalPrintQueue}
SWD\PRI... DEVPKEY_Device_CompatibleIds StringList {GenPrintQueue, SWD\GenericRaw, SWD\Generic}
SWD\PRI... DEVPKEY_Device_Class String PrintQueue
SWD\PRI... DEVPKEY_Device_ClassGuid Guid {1ED2BBF9-11F0-4084-B21F-AD83A8E6DCDC}
. . .
This command gets the PnP device properties for the device that has the specified ID.
Example 2: Get properties for a device by using the pipeline
PS C:\>Get-PnpDevice -InstanceId 'SWD\PRINTENUM\{E82E5EFD-6616-4E4F-9A96-7D94554A8BF0}' | Get-PnpDeviceProperty
InstanceId KeyName Type Data
---------- ------- ---- ----
SWD\PRI... DEVPKEY_Device_DeviceDesc String Local Print Queue
SWD\PRI... DEVPKEY_Device_HardwareIds StringList {PRINTENUM\LocalPrintQueue}
SWD\PRI... DEVPKEY_Device_CompatibleIds StringList {GenPrintQueue, SWD\GenericRaw, SWD\Generic}
SWD\PRI... DEVPKEY_Device_Class String PrintQueue
SWD\PRI... DEVPKEY_Device_ClassGuid Guid {1ED2BBF9-11F0-4084-B21F-AD83A8E6DCDC}
. . .
This command uses the Get-PnpDevice cmdlet to get the PnP device that has the specified ID. The command passes that object to the current cmdlet by using the pipeline operator. The current command gets the device properties for that device.
Example 3: Get properties by using GUID-ID pairs
PS C:\>Get-PnpDeviceProperty -KeyName '{A45C254E-DF1C-4EFD-8020-67D146A850E0} 2', '{A45C254E-DF1C-4EFD-8020-67D146A850E0} 10', '{4340A6C5-93FA-4706-972C-7B648008A5A7} 3' -InstanceId 'SWD\PRINTENUM\{E82E5EFD-6616-4E4F-9A96-7D94554A8BF0}'
InstanceId KeyName Type Data
---------- ------- ---- ----
SWD\PRI... DEVPKEY_Device_DeviceDesc String Local Print Queue
SWD\PRI... DEVPKEY_Device_ClassGuid Guid {1ED2BBF9-11F0-4084-B21F-AD83A8E6DCDC}
SWD\PRI... DEVPKEY_Device_ProblemCode UInt32 0
This command gets some of the properties of the PnP device that has the specified instance ID. The command specifies three key names of properties to get. The command specifies names as GUID-ID pairs.
Example 4: Get properties by using DEVPKEY names
PS C:\>Get-PnpDeviceProperty -KeyName 'DEVPKEY_Device_DeviceDesc', 'DEVPKEY_Device_ClassGuid', 'DEVPKEY_Device_ProblemCode' -InstanceId 'SWD\PRINTENUM\{E82E5EFD-6616-4E4F-9A96-7D94554A8BF0}'
InstanceId KeyName Type Data
---------- ------- ---- ----
SWD\PRI... DEVPKEY_Device_DeviceDesc String Local Print Queue
SWD\PRI... DEVPKEY_Device_ClassGuid Guid {1ED2BBF9-11F0-4084-B21F-AD83A8E6DCDC}
SWD\PRI... DEVPKEY_Device_ProblemCode UInt32 0
This command gets some of the properties of the PnP device that has the specified instance ID. The command specifies three key names of properties to get. The command specifies names as DEVPKEY short names.
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 |
-Confirm
Prompts you for confirmation before running the cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Specifies the input object that is used in a pipeline command.
Type: | CimInstance[] |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-InstanceId
Specifies an array of unique instance ID of devices.
Type: | String[] |
Aliases: | DeviceId |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-KeyName
Specifies an array of key names.
Type: | String[] |
Aliases: | Key |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
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 |
-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Inputs
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.
Outputs
System.Int32, Win32_PnPDeviceProperty[]
This cmdlet generates an Int32 WMI success or failure code, or an array of Win32_PnPDeviceProperty objects that represent properties for a PnP device. A Win32_PnPDeviceProperty object contains the following fields:
- Device. The instance ID for the device with which this property is associated.
- KeyName. The friendly name for the property. If no friendly name exists, this matches the Key field.
- Key. The unique [GUID]-ID pairing representing the property.
- Data. The typed data associated with the key. This value is defined in the classes which inherit from Win32_PnPDeviceProperty. For example, a Win32PnPDevicePropertySint32 object would be returned for an Int32 property. Data would be an Int32 value in this case.
- Type. The type of the binary data. This is defined in the PnpDeviceProperty.Type enum.
Notes
The objects returned by Get-PnpDeviceProperty are all of the (WMI Object) Win32_PnPDeviceProperty type. They are always of a WMI class inherited from Win32_PnPDeviceProperty. For example, a device may contain a String and signed Int32 properties. The cmdlet returns a Win32_PnPDeviceProperty array, where the first object in the array is a Win32_PnPDevicePropertyString object and the second is a Win32_PnPDevicePropertySint32 object. For each object type, there is a Data variable, of the given type, which contains the value of the property.
The following is a full list of possible WMI classes and the type of the Data variable:
Win32_PnPDevicePropertyUint8. Uint8.
Win32_PnPDevicePropertyUint16. Uint16.
Win32_PnPDevicePropertyUint32. Uint32.
Win32_PnPDevicePropertyUint64. Uint64.
Win32_PnPDevicePropertySint8. Sint8.
Win32_PnPDevicePropertySint16. Sint16.
Win32_PnPDevicePropertySint32. Sint32.
Win32_PnPDevicePropertySint64. Sint64.
Win32_PnPDevicePropertyString. String.
Win32_PnPDevicePropertyBoolean. Boolean.
Win32_PnPDevicePropertyReal32. Real32.
Win32_PnPDevicePropertyReal64. Real64.
Win32_PnPDevicePropertyDateTime. DateTime.
Win32_PnPDevicePropertySecurityDescriptor. Win32_SecurityDescriptor.
Win32_PnPDevicePropertyBinary. Uint8 array.
Win32_PnPDevicePropertyUint16Array. Uint16 array.
Win32_PnPDevicePropertyUint32Array. Uint32 array.
Win32_PnPDevicePropertyUint64Array. Uint64 array.
Win32_PnPDevicePropertySint8Array. Sint8 array.
Win32_PnPDevicePropertySint16Array. Sint16 array.
Win32_PnPDevicePropertySint32Array. Sint32 array.
Win32_PnPDevicePropertySint64Array. Sint64 array.
Win32_PnPDevicePropertyStringArray. String array.
Win32_PnPDevicePropertyBooleanArray. Boolean array.
Win32_PnPDevicePropertyReal32Array. Real32 array.
Win32_PnPDevicePropertyReal64Array. Real64 array.
Win32_PnPDevicePropertyDateTimeArray. DateTime array.
Win32_PnPDevicePropertySecurityDescriptorArray. Win32_SecurityDescriptor array.