温馨提示:本文翻译自stackoverflow.com,查看原文请点击:PowerShell - How to use "get-PnPdevice" to get InstanceID of a device
powershell scripting device instanceid

PowerShell - 如何使用“ get-PnPdevice”获取设备的InstanceID

发布于 2020-04-11 13:22:58

我想以字符串的形式获取设备的instanceID并将其分配给变量

我只知道设备名称,所以当我这样做时:

Get-PnpDevice -FriendlyName 'TSP100'

它显示:

Status     Class           FriendlyName       InstanceId                                                              
------     -----           ------------      ------------                                                               
OK         PrintQueue      TSP100            SWD\PRIN...                                                               

因此理想情况下,它看起来应该像这样:

$env:tsp100id = (Get-PnpDevice -FriendlyName 'TSP100' *some stuff*)

查看更多

提问者
CYber GeNik
被浏览
396
postanote 2020-02-02 13:17

为什么不这样要求房产呢?

# Assign the first instanceId of the target device to a variable
$env:tsp100id = Get-PnpDevice -FriendlyName 'Generic USB Hub' | 
Select-Object -Property InstanceId | 
Select-Object -First 1
$env:tsp100id

# Results
<#
@{InstanceId=USB\VID_05E3&PID_0610\8&26FFBCBB&0&1}
#>

# Assign and output to the screen
($env:tsp100id = (Get-PnpDevice -FriendlyName 'Generic USB Hub').InstanceId[0])

# Results
<#
USB\VID_05E3&PID_0610\8&26FFBCBB&0&1
#>

另外,只是好奇。为什么要将此分配为环境条目?

至于...

另外,我将如何删除USB \ VID_05E3&PID_0610 \并仅获得8&26FFBCBB&0&1

在这种情况下,最简单的方法是在反斜杠上进行分割。例如:

(($env:tsp100id = (Get-PnpDevice -FriendlyName 'Generic USB Hub').InstanceId[0]) -split '\\')[-1]
# Results
<#
8&26FFBCBB&0&1
#>

这只是说在反斜杠上分开,然后对最后一个先采取行动。