Mam następujący problem: muszę wiedzieć, kiedy komputer się uruchamia, czy komputer został uruchomiony po wyłączeniu (zimny start) lub czy komputer został po prostu ponownie uruchomiony (gorący start). Dzięki skryptowi startowemu ustawionemu w gpedit powinienem znać odpowiedź, na przykład:
If PC restarted then
msg: The PC has been warm reboot
elseif PC shutdown then
msg: The PC has been cold reboot
end if
(uwaga: w rzeczywistości wiadomość e-mail jest wysyłana, ale to nie jest ważne).
Teraz pytam społeczność, jak mogę odzyskać te informacje z systemu? Moim punktem wyjścia jest narzędzie „Eventviewer”, ale nie jestem bardzo zadowolony z tego rozwiązania. Myślę, że zdarzenia ACPI są przechowywane w sklepie BCD i zastanawiam się, czy można je odzyskać w jakikolwiek sposób. Może przez WMIC? Czy też istnieje plik dziennika systemowego, z którego można bezpośrednio pobrać informacje?
Czy ktoś ma jakieś pomysły, jak postępować?
Uwaga: na razie interesuje mnie tylko środowisko Windows, ale myślę, że jest ono również interesujące dla systemów Unix i Unix (takich jak Linux).
Odpowiedzi:
Możesz użyć PowerShell, aby uzyskać szczegóły
Powyższe polecenie spowoduje uzyskanie najnowszych informacji o zdarzeniach związanych z zamykaniem systemu / ponownym uruchomieniem systemu. Domyślnie dzienniki są pobierane jako pierwsze, więc ograniczenie do 1 daje najnowsze zdarzenie. Btw, dzięki komentarzowi @ Luciano, który bardzo pomógł. Poniżej znajduje się kompletny skrypt dla Twojej sprawy.
Możesz się odnieść tutaj na temat wykonywania skryptu powershell na starcie.
źródło