prozesspriorität mit wmic ändern
wie kann ich unter win2k3 einem prozess nachträglich eine andere priorität zuweisen?
folgendes problem hat mich heute morgen ereilt und ich dachte zuerst... kann ja nicht so schwer sein, doch weit gefehlt...
im moment läuft das serverbackup sehr lange und behindert ab 9.00 uhr morgens das arbeiten der angestellten durch lange wartezeiten bei einigen programmen... also dachte ich mir, ich lasse um 9:00 eine batch durchlaufen, die mit folgendem befehl die priorität senkt:
"wmic process where caption='backuptool.exe' call setpriority 8"
die 8 habe ich mit "wmic process get caption, pritority" ermittelt, was dem prio-level normal entspricht. leider erzeugt das ganze einen fehler denn die wmic erwartet hier eine zahl im format sint32 (weitere VERSTÄNDLICHE infos konnte ich dazu allerdings nicht auftreiben)
funktioniert hat dann "wmic process where caption='backuptool.exe' call setpriority 64" - nur, dass ich das ganze mit Ja(j) oder Nein(n) bestätigen sollte, was ebenfalls nicht funktioniert hat, da der befehl für Ja eigentlich ein Y erwartet... ;)
ziel muss sein, die backuptool.exe mit prio-level "niedriger als normal" auszuführen. wer hat also eine idee, welche werte zu welchem prio-level führen und wie ich die bestätigungsabfrage umgehen kann...
oder gibt es vielleicht noch einen anderen weg, via shell und OHNE benutzereingaben die priorität laufender prozesse zu ändern?
thx & bida
das chriskind
folgendes problem hat mich heute morgen ereilt und ich dachte zuerst... kann ja nicht so schwer sein, doch weit gefehlt...
im moment läuft das serverbackup sehr lange und behindert ab 9.00 uhr morgens das arbeiten der angestellten durch lange wartezeiten bei einigen programmen... also dachte ich mir, ich lasse um 9:00 eine batch durchlaufen, die mit folgendem befehl die priorität senkt:
"wmic process where caption='backuptool.exe' call setpriority 8"
die 8 habe ich mit "wmic process get caption, pritority" ermittelt, was dem prio-level normal entspricht. leider erzeugt das ganze einen fehler denn die wmic erwartet hier eine zahl im format sint32 (weitere VERSTÄNDLICHE infos konnte ich dazu allerdings nicht auftreiben)
funktioniert hat dann "wmic process where caption='backuptool.exe' call setpriority 64" - nur, dass ich das ganze mit Ja(j) oder Nein(n) bestätigen sollte, was ebenfalls nicht funktioniert hat, da der befehl für Ja eigentlich ein Y erwartet... ;)
ziel muss sein, die backuptool.exe mit prio-level "niedriger als normal" auszuführen. wer hat also eine idee, welche werte zu welchem prio-level führen und wie ich die bestätigungsabfrage umgehen kann...
oder gibt es vielleicht noch einen anderen weg, via shell und OHNE benutzereingaben die priorität laufender prozesse zu ändern?
thx & bida
das chriskind
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 69734
Url: https://administrator.de/contentid/69734
Ausgedruckt am: 22.11.2024 um 16:11 Uhr
2 Kommentare
Neuester Kommentar
Du könntest ein kleines VBS Skript verwenden:
'* Verbindung mit WMI (Windows Management Instrumentation) aufnehmen
Set wmi = GetObject("winmgmts:{(Security)}")
Set oProc = wmi.ExecQuery("select * from win32_process where name='backuptool.exe'")
For each proc in oProc
call proc.SetPriority(16384)
Next
Einfach den Code oben in einer .vbs Datei speichern und mit wscript.exe Name.vbs starten.
16384 ist übrigens below normal.
Siehe http://msdn2.microsoft.com/en-us/library/aa393587.aspx , da stehen auch die Werte für die anderen Prios.
'* Verbindung mit WMI (Windows Management Instrumentation) aufnehmen
Set wmi = GetObject("winmgmts:{(Security)}")
Set oProc = wmi.ExecQuery("select * from win32_process where name='backuptool.exe'")
For each proc in oProc
call proc.SetPriority(16384)
Next
Einfach den Code oben in einer .vbs Datei speichern und mit wscript.exe Name.vbs starten.
16384 ist übrigens below normal.
Siehe http://msdn2.microsoft.com/en-us/library/aa393587.aspx , da stehen auch die Werte für die anderen Prios.