Как вывести Powercfg / availablesleepstates в объекты с помощью powershell

Вывод командной строки:

C:\powercfg -availablesleepstates
The following sleep states are available on this system:
    Standby (S3)
    Hibernate
    Hybrid Sleep
    Fast Startup

The following sleep states are not available on this system:
    Standby (S1)
        The system firmware does not support this standby state.

    Standby (S2)
        The system firmware does not support this standby state.

    Standby (S0 Low Power Idle)
        The system firmware does not support this standby state.

скрипт powershell:

$info = (powercfg /a | Select-String -Pattern "sleep states are available" -context 4) | select -Last 4
$items = $info -split ","
$ourObject = New-Object -TypeName psobject

$ourObject | Add-Member -MemberType NoteProperty -Name PCFG0bj -Value $items -Force
$ourObject | fl

Output:
PCFG0bj : {> The following sleep states are available on this system:
                Standby (S3)
                Hibernate
                Hybrid Sleep
                Fast Startup}

person Premo103    schedule 03.03.2020    source источник
comment
В качестве альтернативы пути регулярного выражения вы можете вызывать базовые API-интерфейсы Win32, используемые powercfg, но для этого потребуется использовать Add-Type для компиляции кода C#, поскольку, насколько мне известно, вы не можете напрямую вызывать API-интерфейсы Win32 через PowerShell. Подробнее здесь: stackoverflow.com/questions/7878840   -  person Persistent13    schedule 04.03.2020