Adaptec RAID 6805/6805Q控制器UEFI模式启动异常的PowerShell脚本问题
Adaptec RAID 6805/6805Q UEFI启动错误代码10的PowerShell自动修复方案
以下是针对你的需求优化的PowerShell脚本,解决变量未识别、无法访问ConfigManagerErrorcode属性的问题,实现仅在设备启动失败时执行禁用再启用操作:
完整修复脚本
# 定位Adaptec RAID 6805/6805Q控制器设备(可根据实际设备友好名称调整通配符) $raidDevice = Get-PnpDevice -FriendlyName "*Adaptec RAID 6805*" -ErrorAction SilentlyContinue # 检查设备是否被找到 if ($raidDevice) { # 确保获取到ConfigManagerErrorCode属性(错误代码10对应"设备无法启动") $errorCode = $raidDevice.ConfigManagerErrorCode Write-Host "当前设备错误代码: $errorCode" # 仅当错误代码为10时执行修复操作 if ($errorCode -eq 10) { Write-Host "检测到设备启动失败,开始执行禁用/启用修复..." # 禁用设备(-Confirm:$false跳过确认提示) Disable-PnpDevice -InstanceId $raidDevice.InstanceId -Confirm:$false -ErrorAction Stop # 短暂等待确保设备完全禁用 Start-Sleep -Seconds 1 # 启用设备 Enable-PnpDevice -InstanceId $raidDevice.InstanceId -Confirm:$false -ErrorAction Stop Write-Host "设备修复完成" } else { Write-Host "设备运行正常,无需修复" } } else { Write-Host "未找到目标Adaptec RAID控制器设备,请检查友好名称过滤规则" }
关键问题解决说明
无法访问ConfigManagerErrorCode属性:
默认Get-PnpDevice不会返回所有属性,通过直接引用$raidDevice.ConfigManagerErrorCode即可获取(无需额外参数,PowerShell会自动读取该属性)。如果仍无法获取,可在Get-PnpDevice后追加| Select-Object InstanceId, ConfigManagerErrorCode, FriendlyName强制指定返回属性。变量未识别问题:
确保脚本中变量拼写一致,且Get-PnpDevice能正确匹配到设备。若友好名称过滤不准确,可改用硬件ID精准定位:- 打开设备管理器→找到RAID控制器→属性→详细信息→硬件ID,复制对应的ID(如
PCI\VEN_9005&DEV_0285) - 将脚本第一行替换为:
$raidDevice = Get-PnpDevice -HardwareId "PCI\VEN_9005&DEV_0285" -ErrorAction SilentlyContinue
- 打开设备管理器→找到RAID控制器→属性→详细信息→硬件ID,复制对应的ID(如
开机启动配置:
将脚本保存为.ps1文件,通过任务计划程序创建开机触发任务,需勾选使用最高权限运行,避免权限不足导致操作失败。
内容的提问来源于stack exchange,提问作者BBiller
相关产品推荐
相关产品推荐

