在远程 PC 上获取电源选项设置 (C#)

Getting Power Options settings on a remote PC (C#)

我正在尝试通过 C# 获取有关远程 PC 上电源选项的以下信息:

我不打算更改这些设置:只是阅读它们。
CURRENTUSER\Control Panel\PowerCfg 中的注册表没有多大帮助,因为 none 似乎指向上面的设置。
我也尝试过使用 PowerEnumerate(),但找不到使该功能在远程计算机上运行的方法。

我将如何从远程计算机获取这些设置的值?

您需要使用电源管理 Api,这里是示例 class PowerManager.cs 并查看电源方案管理 MSDN

编辑: 您正在寻求从远程 PC 捕获详细信息的东西,您可以在 window 服务中安装您的程序,您可以通过该服务读取更新。

注册表中的方案(不必要地)复杂,但是:

HKLM\SYSTEM\CurrentControlSet\Control\Power\PowerSettings

包含不同设置的 GUID 值,以及库存计划的 AC 和 DC 默认值。

钥匙

HKLM\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes

包含对每个设置组和设置的 GUID 下的电源方案设置所做的任何修改。

HKLM\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\ActivePowerScheme

包含当前活动电源方案的 GUID。

我当然不会通过注册表更改设置,但我相信您可以阅读它们。

例如,如果您的活动电源方案为高性能,则 ActivePowerScheme 包含 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c。如果您查看 PowerSchemesc5e7fda-e8bf-4a96-9a85-a6e23a8c635c 并看到

0012ee47-9041-4b5d-9b77-535fba8b1442
    6738e2c4-e8a5-4a42-b16a-e040e769756e
        ACSettingIndex  REG_DWORD  0x00000e10 (3600)

那么你就知道关闭交流电源的硬盘时间是3600秒或60分钟。