Ressourcenmonitor mit (Powershell-?)Script bedienen

Mitglied: klausilein

klausilein (Level 1) - Jetzt verbinden

14.04.2021 um 11:59 Uhr, 391 Aufrufe, 8 Kommentare, 1 Danke

Der Resourcenmonitor von Windows 10 (resmon oder perfmon /res) gibt mir mit einem Rechtsklick auf einen Prozess die Möglichkeit diesen Prozess anzuhalten und auch wieder weiter laufen zu lassen. Ich möchte dies nun in einem Script nachbilden. In Powershell ist mir dies bis jetzt nicht gelungen. Die Cdmlets Kill-Process und Wait-Process entsprechen nicht dem Anhalten im Ressourcenmonitor. Wer kann mir helfen?
Gruß klausilein
Mitglied: H41mSh1C0R
LÖSUNG 14.04.2021 um 12:03 Uhr
Aloa,

schau dir mal pssuspend(Teil der sysinternals suite) an:

https://docs.microsoft.com/de-de/sysinternals/downloads/pssuspend

VG
Bitte warten ..
Mitglied: colinardo
LÖSUNG 14.04.2021, aktualisiert um 12:50 Uhr
Servus @klausilein
Oder wenn's mit Bordmitteln sein soll, zwei Methoden (Einmal über's die Debugging-Function oder NtSuspendProcess der ntdll)
Grüße Uwe
Bitte warten ..
Mitglied: klausilein
14.04.2021 um 21:34 Uhr
Hallo Ihr Zwei! Danke für Euere Antworten. Das mit pssuspend werde ich probieren. ich daenke, es löst mein problem.
Uwe, ich bin Powershell-Neuling, ich verstehe an Deinem Script einiges nicht. Zu was sind die Zeilen 1 bis 6? Die Zeilen 11 und 21 sind wohl nicht relevant? Was macht die Zeile 17 bzw. 24?
Gruß klausilein
Bitte warten ..
Mitglied: colinardo
14.04.2021, aktualisiert um 22:33 Uhr
Zitat von @klausilein:
Uwe, ich bin Powershell-Neuling, ich verstehe an Deinem Script einiges nicht. Zu was sind die Zeilen 1 bis 6?
Diese Zeilen laden die benötigten Win32 Funktionen aus den entsprechenden Windows DLLs in einen Custom Namespace mit dem Namen "W32.debug", über diesen mache ich 4 statische Funktionen in der PowerShell praktisch nutzbar.

Die Zeilen 11 und 21 sind wohl nicht relevant
Doch das sind sie davon brauchen tust du Zeile 14 welche sich das Process Object des entsprechenden Prozesses holt. Davon brauchen wir später die ProcessID bzw. die Property "Handle" für die alternative Variante die ich auskommentiert habe.

Was macht die Zeile 17 bzw. 24?
Zeile 17 hält den Prozess der in Zeile 14 angegeben ist an und 24 gibt ihn wieder frei, genau das was du ja wolltest 😉.

Unter den beiden Zeilen steht eine alternative Variante über die ntdll um Prozesse zu "suspenden" und wieder zu "resumen".
Beide Methoden sind von der Funktionsweise her ähnlich.

Hth
Uwe
Bitte warten ..
Mitglied: klausilein
15.04.2021 um 12:01 Uhr
Hallo Uwe, danke, daß Du Dir die Zeit genommen hast! Ist nicht selbstverständlich!
Nun zu Zeile 11 und 21
Das habe ich in der Powershell-Hife gefunden.
Wenn ich das richtig verstehe, dann hält sleep 1 das Script für 1 mS an. Ist das richtig? Wenn ja, dann verstehe ich Deine Antwort nicht,
Bezüglich der Zeilen 17 und 24 habe ich mich falsch ausgedrückt, deren Sinn habe ich schon verstanden. Nur mit dem Schnipsel
kann ich nichts anfangen.
Warum steht das in [ ] und was bedeuten die beiden : ?
Gruß klausilein
Bitte warten ..
Mitglied: colinardo
15.04.2021, aktualisiert um 12:16 Uhr
Hallo Uwe, danke, daß Du Dir die Zeit genommen hast! Ist nicht selbstverständlich!
Kein Thema, dafür ist ein Forum ja da :-) face-smile.
Zitat von @klausilein:
Das habe ich in der Powershell-Hife gefunden.
Wenn ich das richtig verstehe, dann hält sleep 1 das Script für 1 mS an. Ist das richtig? Wenn ja, dann verstehe ich Deine Antwort nicht,

Das ist natürlich nur für das Beispiel im Code damit du es selbst ausprobieren kannst, das wartet kurz bis Notepad gestartet ist da es ansonsten keinen Prozess notepad gibt. In deinen Scripts brauchst du das natürlich nicht aber eben die Zeile mit der Variablen $proc die ist ja wichtig weil wir die ProcessID bzw. das Handle des Prozesses an die Methode anschließend als Parameter übergeben.


Bezüglich der Zeilen 17 und 24 habe ich mich falsch ausgedrückt, deren Sinn habe ich schon verstanden. Nur mit dem Schnipsel
kann ich nichts anfangen.
Warum steht das in [ ] und was bedeuten die beiden : ?
Gruß klausilein

Das [] begrenzt die Klasse den ich oben ja mit dem Add-Type importiert habe. "W32" ist der Namespace und "debug" der Name der erstellten Klasse.
Der Doppelpunkt leitet dann den Aufruf einer "statischen" Methode dieser Klasse ein, da die Member ja als "static" im Add-Type markiert wurden. Statische Methoden lassen sich im Gegensatz zu anderen Methoden direkt ohne Erstellen einer Instanz einer Klasse aufrufen.
Das verstehst du jetzt aber nur wenn du etwas tiefer ins objektorientierte Programmieren einsteigst.
Hier mal etwas Lektüre dazu
https://docs.microsoft.com/de-de/dotnet/csharp/programming-guide/classes ...

Und wie immer erst mal für die PS-Grundlagen empfehle ich der Reihe nach:

Powershell Leitfaden für Anfänger

Pflichtlektüre
Erweiterte Grundlagen
Zusätzliche Ressourcen
Bitte warten ..
Mitglied: klausilein
15.04.2021 um 14:27 Uhr
Hallo Uwe! Danke!
Langsam sehe ich Licht am Ende des Tunnels. Einen Teil der von Dir genannten Literatur habe ich mir schon zu Gemüte geführt.
Ich gehöre zu den Menschen für die ein PC nur ein Werkzeug ist, wie eine Bohrmaschine in die man nur den richtigen Bohrer einspannt und die richtige Drehzahl wählt, alles andere ist in der Bohrmaschine inbegriffen, so viel wie von Bohrmaschine verstehe ich vom (Windows-)PC. Ich schreibe Texte, verwalte meine Bankkonten und bearbeite meine Bilder mit Photoshop und daneben probiere ich immer wieder allerlei Dinge aus, die mir häufig mein Windows zerschießen. Das Neuaufsetzen von Windows mit all meinen Programmen ist sehr zeitaufwendig. Häufig lösche ich auch Dateien, die ich noch brauche. Ich habe mir deshalb ein Backup-Programm (im Augenblick Ashampoo Backup Pro 15) zugelegt, mit dem ich jeden Freitag 13.00 Uhr automatisch das komplette Laufwerk C: und meine Daten auf das externe Laufwerk Z: sichere. Wenn die Sicherung nicht statt findet, weil der PC nicht an ist, dann wird die Sicherung automatisch nachgeholt. Das Laufwerk Z: schalte ich mit einer Wlan-Steckdose am Freitag über eine Zeitsteuerung ein und aus. Z: ist also im Normalbetrieb nicht verfügbar. Wenn das Backup-Programm nun eine verpasste Sicherung nachholen will, dann ist Z: nicht verfügbar und das Programm gibt eine Fehlermeldung aus. Schalte ich nun Z: ein, dann wird die Sicherung leider nicht nachgeholt. Ich muß bis zum nächsten Freitag warten oder die Sicherung manuell anstoßen. Das möchte ich nun automatisieren.
Damit (stammt nicht von mir!) soll der Beginn der Sicherung erfaßt werden. Muß mit dem Einschalten des PCs gestartet werden und läuft dauernd mit bis $Endless =0, d.h. im Regelfall immer!?
Dann muß das Backup-Programm vor der Fehlermeldung, Z: nicht verfügbar, angehalten werden. Danach wird Z: eingeschaltet und nach einer Pause das Backup-Programm wieder gestartet.
Gruß klausilein
Bitte warten ..
Mitglied: colinardo
15.04.2021, aktualisiert um 16:50 Uhr
Hallo Klausilein,
das ist jetzt doch langsam ziemlich Offtopic. Ich bitte dich für neue Fragen einen neuen Thread auf zu machen. Aber um das mal kurz und knackig zu beantworten: Die Vorgehensweise ist Murks. Vor dem Start der jeweiligen Backup-Anwendung und dem Start des Backups sollte man einfach prüfen ob das Laufwerk vorhanden ist oder nicht und das Programm nur starten lassen wenn das Laufwerk auch verfügbar ist (Oder gleich ein vernünftiges Backup-Programm verwenden welche solche Situationen im Normalfall problemlos handeln):
Das ganze dann in den Taskplaner gepackt, fertig.

Wenn du dazu noch was wissen willst bitte PN.

Grüße Uwe
Bitte warten ..
Heiß diskutierte Inhalte
LAN, WAN, Wireless
Unterschiedliche IP-Adressbereiche im Netzwerk
achkleinVor 1 TagFrageLAN, WAN, Wireless17 Kommentare

Hallo, ich stehe vor einem Problem mit der WLAN-Verbindung zum Router (Fritzbox Cable 6490). Das verbundene Notebook hat die Adresse 192.168.0.164, Gateway ist 192.168.0.149: ...

Off Topic
Microsoft und der (leidige) Datenschutz
Franz-Josef-IIVor 1 TagAllgemeinOff Topic18 Kommentare

Hello Ich möchte vorausschicken, daß ich rein prinzipiell nichts gegen Microsoft habe, eher gegen die US-amerikanische Politik 😊 Microsoft bietet die Datenverarbeitung in der ...

Off Topic
32 bit Problem
brammerVor 1 TagAllgemeinOff Topic8 Kommentare

Hallo, also das ist mal ein Problem das ich auch haben möchte eine Aktie ist mehr Wert als das die Börsensoftware darstellen kann. brammer

Hardware
Thin- oder Zero-Client für RDP und Dual-Monitor im LAN gesucht
FestplattenaufzieherVor 1 TagFrageHardware9 Kommentare

Hallo, Kurzfassung meiner Frage: Ich suche Thin/Zero-Clients (4 Stück) mit Dual-Monitor-Unterstützung für den RDP-Zugriff auf PCs in einem LAN - idealerweise lautlos und relativ ...

Windows 10
Windows 10 2021-04 end of life?
gelöst Paedi12Vor 1 TagFrageWindows 103 Kommentare

Hi Leute! Ich bin gerade auf der Suche, wie lange die Windows Version 2021-04 unterstützt wird. Kann aber nichts finden. Hat jemand eine Ahnung, ...

LAN, WAN, Wireless
Richtfunk Beratung
gelöst PretreVor 1 TagFrageLAN, WAN, Wireless5 Kommentare

Hallo zusammen, hab folgendes vor, die 2 Standorte sollen per Richtfunk (PTMP) mit Internet versorgt werden. Habs mal skizziert, denke das ist einfacher zu ...

Switche und Hubs
Netgear Switch Problem bei VLAN Konfiguration
gelöst meltersVor 1 TagFrageSwitche und Hubs15 Kommentare

Hallo, ich habe einen Netgear XS716T Switch zum Testen in Betrieb genommen, komme aber mit der VLAN Konfiguration nicht so ganz klar. Bislang habe ...

Router & Routing
Suche Tipps für Selfmade-Load-Balancing-Router auf HP MicroServer Gen10+
gelöst MagicChris86Vor 21 StundenFrageRouter & Routing7 Kommentare

Hi Leute, ich habe einen HP MicroServer Gen10+ Performance übrig, der bei einer Kundin rausgeflogen ist, weil sie mehr Power brauchte für Desktopvirtualisierung für ...