Found WakeUpType property of the Win32_ComputerSystem class
WakeUpType
Data type: uint16
Access type: Read-only
Qualifiers: MappingStrings ("SMBIOS|Type 1|System Information|Wake-up Type")
Event that causes the system to power up.
This value comes from the Wake-up Type member of the System Information structure in the SMBIOS information.
- 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)
Read System Management BIOS (SMBIOS) Reference Specification as well.
Next script requires following adjustments to satisfy (your) particular operational circumstances:
$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 }