获取远程笔记本Win32_PortableBattery的FullChargeCapacity返回空值求助
解决远程获取笔记本电池FullChargeCapacity空值的问题
方案1:改用CIM命令替代WMI
Get-WmiObject属于较旧的WMI实现,部分设备的Win32_PortableBattery类中FullChargeCapacity字段可能未被正确填充。改用更新的CIM命令尝试:
$NTB_Battery_ActualCapacity = (Get-CimInstance -ClassName Win32_PortableBattery -ComputerName $remote_PC).FullChargeCapacity
方案2:从远程注册表读取
如果CIM命令仍然返回空值,可以直接读取目标电脑的注册表,电池的FullChargeCapacity通常存储在ACPI设备的参数路径下:
# 定义远程注册表基础路径 $baseRegPath = "\\$remote_PC\HKLM\SYSTEM\CurrentControlSet\Enum\ACPI\PNP0C0A" # 遍历所有电池子项并读取FullChargeCapacity Get-ChildItem -Path $baseRegPath | ForEach-Object { $batteryParamsPath = Join-Path -Path $_.PSPath -ChildPath "Device Parameters" $capacityData = Get-ItemProperty -Path $batteryParamsPath -Name FullChargeCapacity -ErrorAction SilentlyContinue if ($capacityData) { $NTB_Battery_ActualCapacity = $capacityData.FullChargeCapacity Write-Host "远程电脑$remote_PC的电池FullChargeCapacity:$NTB_Battery_ActualCapacity" } }
注意事项
- 执行命令需要拥有目标远程电脑的管理员权限
- 目标电脑需开启
RemoteRegistry服务,可通过以下命令检查/启动:# 检查服务状态 Get-Service -ComputerName $remote_PC -Name RemoteRegistry # 启动服务(需管理员权限) Start-Service -ComputerName $remote_PC -Name RemoteRegistry
内容的提问来源于stack exchange,提问作者Michal Košík
相关产品推荐
相关产品推荐

