You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell中统计Get-PnpDevice同FriendlyName设备数并赋值变量

PowerShell 获取匹配PnP设备数量的解决方案

你可以通过以下方法正确将匹配到的设备总数赋值给$NoOfDis变量,同时优化原有逻辑:

核心实现逻辑

先将Get-PnpDevice的查询结果统一存储到变量,避免重复执行查询导致的结果不一致,直接调用返回对象的Count属性即可获取设备总数,正确赋值代码如下:

# 先存储所有匹配的Generic USB类设备对象
$genericUsbDevices = Get-PnpDevice -FriendlyName '*Generic USB*'
# 直接读取数量属性赋值给目标变量
$NoOfDis = $genericUsbDevices.Count

原有代码问题说明

  • 赋值语法错误:原有代码$NoOfDis - Get-PnpDevice...中错把赋值符=写为减号-
  • 比较逻辑错误:直接将Get-PnpDevice的返回对象和数字做大小对比是无效的,必须基于返回结果的数量属性判断
  • 多设备兼容问题:当匹配到多个设备时,直接展开InstanceId会得到数组,传入Disable-PnpDevice会执行报错

修正后完整可运行代码

# 一次性查询所有匹配设备
$genericUsbDevices = Get-PnpDevice -FriendlyName '*Generic USB*'
# 赋值设备总数
$NoOfDis = $genericUsbDevices.Count

if ($NoOfDis -gt 1) {
    "More than 1 "
}
elseif ($NoOfDis -eq 1) {
    "Equal to 1"
    # 仅单设备时读取实例ID执行禁用
    $env:disid = $genericUsbDevices.InstanceId
    Disable-PnpDevice -InstanceId $env:disid -Confirm:$false
}
else {
    "No device connected" 
}

内容的提问来源于stack exchange,提问作者Zero

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 20:06:03