Назад | Перейти на главную страницу

Установите флажок Restore on AC / Power Loss в CMD / Powershell в Windows 10.

Я установил восстановление при отключении переменного тока / мощности из меню Windows Bios при запуске компьютера для нескольких компьютеров с Windows.

Как кто-то может подтвердить (удаленно), что я это сделал, есть ли способ сделать это с удаленного рабочего стола?

Бонусные баллы, если вы знаете, как изменить его удаленно (если это возможно).

Что я наделал:

Нашел WakeUpType собственность Win32_ComputerSystem класс

WakeUpType

Тип данных: uint16
Тип доступа: Read-only
Квалификаторы: MappingStrings ("SMBIOS|Type 1|System Information|Wake-up Type")

Событие, вызывающее включение системы.

Это значение исходит из Тип пробуждения член Системная информация структура в SMBIOS Информация.

- 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
}