Isso pode ser feito através de WMI
Para fazer isso, você cria um cliente de evento WMI com New-WmiEventConsumer
, de -ConsumerType CommandLine
, para poder passar um -CommandLineTemplate
.
O evento em si seria um filtro WMI, criado com New-WmiEventFilter
e -Query "select * from Win32_PowerManagementEvent where EventType = 4
"(4 = suspender).
Em seguida, amarre o cliente e o evento com New-WmiFilterToConsumerBinding
.
Observe que o problema com a suspensão na falha de energia é que você pode não ter muito aviso.