我想以字符串的形式获取设备的instanceID并将其分配给变量
我只知道设备名称,所以当我这样做时:
Get-PnpDevice -FriendlyName 'TSP100'
它显示:
Status Class FriendlyName InstanceId
------ ----- ------------ ------------
OK PrintQueue TSP100 SWD\PRIN...
因此理想情况下,它看起来应该像这样:
$env:tsp100id = (Get-PnpDevice -FriendlyName 'TSP100' *some stuff*)
为什么不这样要求房产呢?
# 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
#>
这只是说在反斜杠上分开,然后对最后一个先采取行动。
这将完美运行,谢谢!我们有一些服务需要具有TSP100打印机的设备ID,并且一些引导脚本在首次设置该打印机时会使用该env变量。
另外,我将如何删除
USB\VID_05E3&PID_0610\
并获取8&26FFBCBB&0&1
嗨,postanote,该脚本经常失败,因为有时FriendlyName并不总是仅是'TSP100',有时它还有其他东西。有什么方法可以使用Regex解决此问题?像“ TSP100 ”
是的,只需尝试“ TSP100 ”