12.11.2024

Güç durumunda değişiklikleri takip etmek

Dizüstü bilgisayarlardaki güç durumu değişikliklerini takip etmek istiyroum. Bilgisayar ne zaman bataryaya geçmiş, ne zaman şarj adaptörü takılmış. Bu geçişleri izlemek için System olay günlüğü kayıtlarını incelemek gerek. 105 numaralı olay güç durumundaki değişiklikleri takip eder. Örneğin son 12 saatteki geçişleri görmek için:

Get-WinEvent -FilterhashTable @{Logname="System";Id=105;StartTime=(Get-Date).AddHours(-12)} | 
Format-Table TimeCreated,
@{N="AC";E={$_.Properties[0].Value}},
@{N="Şarj";E={[int](100*[int]($_.Properties[1].Value)/[int]($_.Properties[2].Value))}}

Ya da düşük güç kipine giriş ve bu durumdan çıkışlar. Bu geçişleri takip etmek için System olay günlüğündeki 506 (düşük güç kipine giriş) ve 507 (düşük güç kipinden çıkış) olaylarını aramak gerek. Örnek olarak yine son 12 saatteki olay kayıtlarına bakmak için

Get-WinEvent -FilterHashtable @{LogName="System";Id=506,507;StartTime=(Get-Date).AddHours(-12)} -ea Silently |
Format-Table TimeCreated, @{N="ModernBekleme";E={if ($_.Id -eq 506) {"Giriş"} else {"Çıkış"}}}

506 olayı sırasında şarj seviyesini görmek için $_.Properties[4] / $_.Properties[5] oranını,

507 olayı sırasında ise $_.Properties[24] / $_.Properties[25] oranını kullanabiliriz. Elbette bunu uygun forma dönüştürmek için örneğin şunun gibi bir ifade gerekir:

[int](100*([float]$_.properties[24].value)/[float]($_.properties[25].value))

Hiç yorum yok: