
Есть ли способ определить, запустилась ли моя система вручную, нажав кнопку питания, или она запустилась из-за пакета Wake-On-LAN? Могу ли я где-то сохранить это значение и использовать его программно?
решение1
В Windows источник пробуждения регистрируется в системном журнале. Я не уверен, регистрирует ли он конкретно ваш WOL-пакет как источник, но вам придется попробовать это самостоятельно, поскольку существуют различные системы, поэтому описанный ниже методнетотказоустойчивость. (Надеюсь, все английские термины переведены правильно, так как я использую голландскую копию Windows. Поэтому, если вы не можете найти что-то, поищите что-нибудь отдаленно похожее! ;-))
Ручной, человеческий способ:
- НайдиСистемный журналоткрыв диалоговое окно запуска, нажав Win+ r. Entereventvwr.mscа затем бегите.
- Слева откройтеЖурналы Windowsа потомСистема.
- Щелкните правой кнопкой мышиСистемаи выберитеФильтровать текущий журнал...
- В появившемся диалоговом окне в разделеИсточники событий, выбиратьУстранение неполадок питанияи нажмитеХОРОШО.
Теперь он должен перечислить все записи журнала, связанные с питанием. Если вы нажмете на одну,Общийна вкладке также должен быть указанИсточник кильватерного следа.
Пример через PowerShell:
Системные журналы можно получить через PowerShell. Следующая команда PowerShell вернет последнюю запись журнала о питании, содержащую«Источник пробуждения». Адаптируйте его под свои нужды. (Регулярные выражения, вот это да!)
Get-EventLog "System" | Where-Object {$_.source -like "*Microsoft-Windows-Power-Troubleshooter*"} | select -first 1 | Format-List