在 Windows 10 上从 CMD/Powershell 检查“交流电/断电时恢复”

在 Windows 10 上从 CMD/Powershell 检查“交流电/断电时恢复”

我已经在几台 Windows 机器的计算机启动时从 Windows Bios 菜单设置了交流电/电源丢失时恢复。

有人如何(远程)确认我已经完成此操作,有没有办法从远程桌面执行此操作?

如果您知道如何远程更改它(如果可以做到的话),则可以获得加分。

我做了什么:

  • 跑了wmic bios get /format:list,但没有看到合适的东西。
  • 查看了以下文件:wmic 文档但不知道要寻找什么。

答案1

找到的WakeUpType财产Win32_ComputerSystem班级

唤醒类型

数据类型:uint16
访问类型:Read-only
限定符:MappingStrings(“ SMBIOS|Type 1|System Information|Wake-up Type”)

导致系统启动的事件。

该值来自唤醒类型成员系统信息结构中的系统管理基本输入输出系统信息。

- Reserved (0)
- Other (1)
- Unknown (2)
- APM Timer (3)
- Modem Ring (4)
- LAN Remote (5)
- Power Switch (6)
- PCI PME# (7)
- AC Power Restored (8)

系统管理 BIOS (SMBIOS) 参考规范也一样。

下一个脚本需要进行以下调整以满足(您的)特定的操作情况:

  • $computers数组(例如从文件中读取);
  • $WakeUpType = Get-WmiObject(例如添加-Authentication-Credential等参数,参见Get-Help 'Get-WmiObject' -ShowWindow)。

$WakeUpTypes = DATA {ConvertFrom-StringData -StringData @’
    0 = Reserved          (0)
    1 = Other             (1)
    2 = Unknown           (2)
    3 = APM Timer         (3)
    4 = Modem Ring        (4)
    5 = LAN Remote        (5)
    6 = Power Switch      (6)
    7 = PCI PME#          (7)
    8 = AC Power Restored (8)
   na = ? unreachable ? (N/A)
‘@}

$computers  = ".", "$env:COMPUTERNAME", ### I *know* that these are the same 
              "bububu"                  ### and this is fake name for debugging

$namespace = "ROOT\CIMV2"
$classname = "Win32_ComputerSystem"

ForEach ( $computer in $computers ) {
    Try {
          $WakeUpType = Get-WmiObject `
            -Class $classname -ComputerName $computer -Namespace $namespace `
            -ErrorAction SilentlyContinue
          $WakeUpName = $WakeUpTypes.Item("$($WakeUpType.WakeUpType)")
    } Catch {
          $WakeUpName = $WakeUpTypes.Item("na") 
    }
    If ( $WakeUpName -eq $null ) { $WakeUpName = "Undefined as yet ($WakeUpType)" }
    "{0,-20} {1}" -f $computer, $WakeUpName
}

答案2

在 PowerShell 中运行

Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -Property e,WakeUpType

相关内容