Изменить приоритет служб Windows

Изменить приоритет служб Windows

У меня есть служба Windows, которая должна работать с высоким приоритетом.
В конце дня я хочу использовать этот скрипт для изменения приоритета после запуска службы:

Const HIGH = 256

strComputer = "."
strProcess = "BntCapi2.exe"

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery _
    ("Select * from Win32_Process Where Name = '" & strProcess & "'")

For Each objProcess in colProcesses
    objProcess.SetPriority(HIGH)
Next

Но в настоящее время я не могу изменить приоритет, даже с помощью taskmananger. taskmananger выдает ошибку "Access Denied", но я вошел в систему как администратор и изменил учетную запись пользователя службы на администратора.

Я все еще получаю сообщение "доступ запрещен" при попытке изменить приоритет. Есть идеи, какое разрешение мне нужно, чтобы сделать это?

решение1

Я нашел способ сделать это в этом блоге:http://akshayjain.org/blog/2008/08/hack-unable-to-change-priority-in-task-manager/

Если я выполню эту команду

ntsd -c qd taskmgr.exe

диспетчер задач запускается с системными привилегиями, и я могу изменить приоритет процесса. Это означает, что мой скрипт wsh тоже может это сделать. Я создал пакетный файл

@ECHO OFF
ntsd -c qd cscript.exe set_service_priority.vbs

и теперь приоритет процесса изменен, как я и хотел.

Изначально я не мог изменить приоритет процесса, потому что служба работала под системной учетной записью. Странно, что даже после смены пользователя службы на administrator(это я ;) я получал сообщение "доступ запрещен". Но с этим трюком это работает как по волшебству.

решение2

Возможно, вам придется добавить следующее в начало вашего скрипта:

Set objLoc = createobject("wbemscripting.swbemlocator")
objLoc.Security_.privileges.addasstring "sedebugprivilege", true 

Хотя... Я бы не хотел использовать ничего выше 128... (256 = Realtime)

Полный список здесь:http://msdn.microsoft.com/en-us/library/aa393587.aspx

решение3

http://setiathome.berkeley.edu/forum_thread.php?id=69381

процесс wmic, где name="notepad.exe" CALL setpriority 32768

Бездействие: 64 Ниже нормы: 16384 Норма: 32 Выше нормы: 32768 Высокий приоритет: 128 Реальное время: 256

Связанный контент