Powershell Skript Arbeitsspeicher auslesen und Programm schließen
Hallo zusammen,
Ich habe folgendes Problem.
Kurz zum Hintergrund ich arbeite bei einem Verkehrsunternehmen und wir haben in unserem Tunnel TFT Bildschirme zur Fahrgast Anzeige.
Diese laufen auf einem Windows System sind aber sehr schwach was den Arbeitsspeicher angeht.
Es läuft eine Website im Firefox. Da immer Zugzielanzeigen und Infozeilen den ganzen Tag laufen läuft der Arbeitsspeicher recht schnell voll.
Jetzt kam die Idee auf jeden Anzeiger mit Powershell zu überwachen und wenn der Arbeitsspeicher zb. 95% belegt ist
den Browser zu schließen und neu starten.
Ich habe online gesucht habe aber nichts richtiges gefunden.
Meine Idee ist nun den Arbeitsspeicher alle 5 min in eine Datei zu schreiben und wenn der Arbeitsspeicher bei 95% dann den Browser schließen und wieder neu öffnen.
Wer kann mir dabei helfen da ich mit Powershell überhaupt nicht auskenne und das Thema ziemlich eilig ist
Danke Euch...
Liebe Grüße
Markus
Ich habe folgendes Problem.
Kurz zum Hintergrund ich arbeite bei einem Verkehrsunternehmen und wir haben in unserem Tunnel TFT Bildschirme zur Fahrgast Anzeige.
Diese laufen auf einem Windows System sind aber sehr schwach was den Arbeitsspeicher angeht.
Es läuft eine Website im Firefox. Da immer Zugzielanzeigen und Infozeilen den ganzen Tag laufen läuft der Arbeitsspeicher recht schnell voll.
Jetzt kam die Idee auf jeden Anzeiger mit Powershell zu überwachen und wenn der Arbeitsspeicher zb. 95% belegt ist
den Browser zu schließen und neu starten.
Ich habe online gesucht habe aber nichts richtiges gefunden.
Meine Idee ist nun den Arbeitsspeicher alle 5 min in eine Datei zu schreiben und wenn der Arbeitsspeicher bei 95% dann den Browser schließen und wieder neu öffnen.
Wer kann mir dabei helfen da ich mit Powershell überhaupt nicht auskenne und das Thema ziemlich eilig ist
Danke Euch...
Liebe Grüße
Markus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 668680
Url: https://administrator.de/contentid/668680
Ausgedruckt am: 03.12.2024 um 17:12 Uhr
8 Kommentare
Neuester Kommentar
Für sowas brauchst du kein Skript, es reicht im Performance-Monitor einen Trigger anzulegen der beim Überschreiten der gewünschten RAM Schwelle dein Skript ausführt.
Von Hand geht auch, effizienter geht es aber mit den Performance-Triggern wenn du eh schon nen Winblows nutzt.
(Bezeichnung des Counters anpassen falls ein deutsches System zum Einsatz kommt)
Von Hand geht auch, effizienter geht es aber mit den Performance-Triggern wenn du eh schon nen Winblows nutzt.
(Get-Counter '\Memory\Available MBytes').CounterSamples.CookedValue
Ahhhhhh die anderen waren schneller :D
$processName = "firefox"
$lessThanInProcent = 5
$os = Get-Ciminstance Win32_OperatingSystem
$procentFreeRam = [math]::Round(($os.FreePhysicalMemory/$os.TotalVisibleMemorySize)*100,2)
if($procentFreeRam -le $lessThanInProcent)
{
Get-Process -ProcessName "*$processName*" | Stop-Process -Force
Get-Process -ProcessName "*$processName*" | Start-Process
}
Befehl für die CPU Auslastung
(Get-Counter "\prozessor(_total)\prozessorzeit (%)").countersamples.CookedValue
Moin Zusammen,
der Befehl zum Abrufen des wirklich freien Speicherplatzes lautet ...
... wenn man diesen in MB angezeigt bekommen möchte. 😉
Der Counter "\Memory\Available MBytes" oder "\Arbeitsspeicher\Verfügbare MB" ist diesbezüglich leider nicht korrekt, da dieser die RAM Belegung durch das sogenannte "Stand-By-Memory" nicht mitberücksichtigt. 😔
Gruss Alex
der Befehl zum Abrufen des wirklich freien Speicherplatzes lautet ...
((Get-Counter "\Arbeitsspeicher\Freie und Nullseitenlisten - Bytes").CounterSamples.CookedValue) / 1024 / 1024
... wenn man diesen in MB angezeigt bekommen möchte. 😉
Der Counter "\Memory\Available MBytes" oder "\Arbeitsspeicher\Verfügbare MB" ist diesbezüglich leider nicht korrekt, da dieser die RAM Belegung durch das sogenannte "Stand-By-Memory" nicht mitberücksichtigt. 😔
Gruss Alex